{"version":3,"file":"static/js/5673_9fadb3b481aa287005fd.js","mappings":"gLAQO,MAAMA,EAAaC,IACtB,MAAM,mBAAEC,EAAkB,SAAEC,GAAaF,EACzC,OAAO,gBAAoB,IAAO,CAAE,aAAcC,EAAoB,YAAaC,EAAUC,KAAM,SAAU,eAAe,EAAMC,OAAQC,GAAkB,EAK1JA,EAAkB,CACpBC,KAAM,CACFC,SAAU,WACVC,MAAO,MACPC,OAAQ,MACRC,QAAS,EACTC,OAAQ,OACRC,SAAU,SACVC,KAAM,gBACNC,WAAY,SACZC,OAAQ,G,mCChBhB,SAASC,IACLC,QAAQC,KAAK,wDACjB,CACA,Q,SAPyB,cAAoB,CACzCC,kBAAmBH,EACnBI,eAAgBJ,G,kDCHpB,MAAMK,EAAiB,CACnBN,OAAQ,EACRF,KAAM,gBACNJ,OAAQ,MACRE,OAAQ,OACRC,SAAU,SACVE,WAAY,SACZJ,QAAS,EACTF,MAAO,MACPD,SAAU,YAId,EADsBP,GAAU,gBAAoB,MAAO,CAAEsB,MAAOD,EAAgBlB,KAAM,MAAO,YAAaH,EAAME,UAAYF,EAAMuB,QAAUvB,EAAMuB,QAAU,ICVnJC,EAAgB,CACzBD,QAAS,GACTE,GAAI,IAqCR,EAlCmBzB,IACf,IAAI0B,EAAIC,EACR,MAAMC,EAA0C,QAA1BF,EAAK1B,EAAM6B,iBAA8B,IAAPH,EAAgBA,EAAKF,EACvEM,EAAe,SAAaN,IAC3BO,EAAkBC,GAAuB,WAAeR,IACxDS,EAAkBC,GAAuB,WAAeV,GACzDW,EAAqB,UAAa,IACxC,IAAAC,YAAU,KACFN,EAAaO,QAAQd,WAAaK,aAAmD,EAASA,EAAaL,UAAYO,EAAaO,QAAQZ,MAAQG,aAAmD,EAASA,EAAaH,MAC7NO,EAAoBG,EAAmBE,QAAUb,EAAgBI,GACjEM,EAAoBC,EAAmBE,QAAUT,EAAeJ,GAChEM,EAAaO,QAAUT,EACvBO,EAAmBE,SAAWF,EAAmBE,QACrD,GACD,CAACT,IACJ,MAAMU,EAAoC,QAAvBX,EAAK3B,EAAMuC,cAA2B,IAAPZ,EAAgBA,EAAKH,EACjEgB,EAAY,SAAahB,IACxBiB,EAAeC,GAAoB,WAAelB,IAClDmB,EAAeC,GAAoB,WAAepB,GACnDqB,EAAkB,UAAa,GASrC,OARA,IAAAT,YAAU,KACFI,EAAUH,QAAQd,WAAae,aAA6C,EAASA,EAAUf,UAAYiB,EAAUH,QAAQZ,MAAQa,aAA6C,EAASA,EAAUb,MACrMiB,EAAiBG,EAAgBR,QAAUb,EAAgBc,GAC3DM,EAAiBC,EAAgBR,QAAUC,EAAYd,GACvDgB,EAAUH,QAAUC,EACpBO,EAAgBR,SAAWQ,EAAgBR,QAC/C,GACD,CAACC,IACG,gBAAoB,MAAO,KAC9B,gBAAoB,EAAc,CAAEpC,SAAU,YAAaqB,QAASQ,EAAiBR,UACrF,gBAAoB,EAAc,CAAErB,SAAU,YAAaqB,QAASU,EAAiBV,UACrF,gBAAoB,EAAc,CAAErB,SAAU,SAAUqB,QAASkB,EAAclB,UAC/E,gBAAoB,EAAc,CAAErB,SAAU,SAAUqB,QAASoB,EAAcpB,UAAW,E,eCpClG,MAuBA,EAvBuBvB,IACnB,MAAO8C,EAAeC,GAAoB,WAAevB,IAClDwB,EAAkBC,GAAuB,WAAezB,GACzDJ,GAAiB,IAAA8B,cAAY,CAAC3B,EAASE,KACzCsB,EAAiB,CACbxB,UACAE,MACF,GACH,IACGN,GAAoB,IAAA+B,cAAY,CAAC3B,EAASE,KAC5CwB,EAAoB,CAChB1B,UACAE,MACF,GACH,IACG0B,GAAkB,IAAAC,UAAQ,KAAM,CAClChC,iBACAD,uBACA,CAACA,EAAmBC,IACxB,OAAO,gBAAoBiC,EAAA,WAA2B,CAAEC,MAAOH,GAC3DnD,EAAMuD,SACN,gBAAoB,EAAW,CAAE1B,UAAWmB,EAAkBT,OAAQO,IAAiB,C,wECtB/F,MAqBA,EArB0B9C,IACtB,MAAM,QAAEuB,EAAO,SAAErB,EAAQ,eAAEsD,EAAc,kBAAErC,EAAiB,eAAEC,GAAmBpB,EAC3EyD,GAAW,IAAAP,cAAY,KACR,cAAbhD,EACAiB,EAAkBI,GAAW,IAAI,UAEf,WAAbrB,GACLkB,EAAeG,GAAW,IAAI,SAClC,GACD,CAACJ,EAAmBC,EAAgBlB,EAAUqB,IAUjD,OATA,IAAAa,YAAU,KACNqB,IACO,KACCD,IACArC,EAAkB,IAAI,UACtBC,EAAe,IAAI,UACvB,IAEL,CAACG,EAASiC,EAAgBC,EAAUtC,EAAmBC,IACnD,IAAI,ECjBf,EADqBpB,GAAU,gBAAoBqD,EAAA,WAA2B,MAAMK,GAAgB,gBAAoB,EAAkBC,OAAOC,OAAO,CAAC,EAAGF,EAAc1D,K,8QCLtK6D,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUf,GAAS,IAAMgB,EAAKL,EAAUM,KAAKjB,GAAS,CAAE,MAAOkB,GAAKJ,EAAOI,EAAI,CAAE,CAC1F,SAASC,EAASnB,GAAS,IAAMgB,EAAKL,EAAiB,MAAEX,GAAS,CAAE,MAAOkB,GAAKJ,EAAOI,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAepB,EAIaoB,EAAOC,KAAOR,EAAQO,EAAOpB,QAJ1CA,EAIyDoB,EAAOpB,MAJhDA,aAAiBU,EAAIV,EAAQ,IAAIU,GAAE,SAAUG,GAAWA,EAAQb,EAAQ,KAIjBsB,KAAKP,EAAWI,EAAW,CAC7GH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,OAClE,GACJ,EAeO,MAAMO,EAAmB9E,IAC5B,IAAI0B,EAAIC,EAAIoD,EAAIC,EAAIC,EACpB,MAAM,WAAEC,EAAU,YAAEC,EAAW,sBAAEC,EAAqB,aAAEC,GAAiBrF,EACnEsF,GAAuB,UACvBC,GAAW,IAAAnC,UAAQ,IACd,aAAc8B,EAAaA,EAAWK,cAAWC,GACzD,CAACN,IACEO,GAAqB,IAAArC,UAAQ,SACXoC,IAAbD,GAA0BA,GAAY,GAAKA,EAAW,GAC9D,CAACA,KACGG,EAAiBC,IAAsB,IAAAC,eAASJ,GACjDK,GAAgB,SAChBC,EAAwG,QAAjFnE,EAA8B,QAAxBD,EAAK1B,EAAM+F,eAA4B,IAAPrE,OAAgB,EAASA,EAAGsE,iBAA8B,IAAPrE,EAAgBA,EAAKkE,EAAcG,UACnJC,EAAgH,QAAvFjB,EAA8B,QAAxBD,EAAK/E,EAAM+F,eAA4B,IAAPhB,OAAgB,EAASA,EAAGmB,uBAAoC,IAAPlB,EAAgBA,EAAKa,EAAcK,iBACjK,IAAA9D,YAAU,KAEFuD,EADAF,EACmB,GAAGK,KAAuBZ,EAAWiB,OAEtC,IAAbZ,EACc,GAAGL,EAAWiB,QAAQF,SAGtBT,EACvB,GACD,CAACD,EAAUE,EAAoBP,EAAWiB,KAAML,EAAqBG,IACxE,MAAMG,GAAY,IAAAhD,UAAQ,KACtB,MACMiD,EADK,kBACMC,KAAKpB,EAAWiB,MACjC,OAAOE,GAASA,EAAM,GAAKA,EAAM,GAAK,EAAE,GACzC,CAACnB,IACJ,OAAO,gBAAoB,MAAO,CAAE,qBAAqB,GACrD,gBAAoBnF,EAAA,EAAW,CAAEE,mBAAoByF,EAAiBxF,SAAU,WAChF,gBAAoBqG,EAAA,EAAM,CAAEC,WAAW,OAAalB,EAAqBhF,KAAM+E,EAAeC,EAAqBmB,aAAenB,EAAqBoB,aAAcC,KAAM,QAASxG,KAAM,WAAYyG,WAAY,qBAAsB,aAAc1B,EAAWiB,KAAM,cAAe,mBAClR,gBAAoBU,EAAA,EAAY,CAAEL,UAAWlB,EAAqBwB,QAASC,MAAO,CAC1EP,UAAWlB,EAAqB0B,SAChCzD,SAAU,gBAAoB0D,EAAA,EAAM,CAAE,aAAc,sBAAuBC,UAAU,EAAAC,EAAA,IAAqB,CAClGf,UAAWA,EACXO,KAAM,GACNS,cAAe,QAChBF,YACRG,OAAQ,CACP5F,GAAI,cAAgByD,EAAWzD,GAC/B8B,SAAU,gBAAoB+D,EAAA,EAAa,CAAER,QAAS5B,EAAWiB,KAAMoB,aAAc,CAC7EC,SAAU,EACVC,OAAQ,eAAiBvC,EAAWzD,IACrCiG,cAAe,MAClB,gBAAoBC,EAAA,EAAM,CAAEnB,UAAWlB,EAAqBsC,MAAO,aAAc1C,EAAWiB,MAAQjB,EAAWiB,QACpH0B,OAAQ,CACPrB,UAAWlB,EAAqBwC,QAChCvE,SAAUwE,EAAgB5C,EAAaxB,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGsB,GAAa,CAAE8C,IAA+B,QAAzB/C,EAAKC,EAAW8C,WAAwB,IAAP/C,EAAgBA,EAAK,KAAOG,OAErKK,EAAqB,gBAAoBwC,EAAA,EAAY,KACjD,gBAAoBC,EAAA,EAAa,CAAEC,UAAW,SAAU7E,MAAO8E,KAAKC,IAAI9C,QAA2CA,EAAW,EAAG,MAA+B+C,MAAO,aAAgB,gBAAoB,WAAgB,KAAM,KAAK,EAE5OP,EAAkB,CAAC5C,EAAaD,EAAYqD,KAC9C,MAAM1C,GAAgB,SACtB,OAAKV,EAAY,GAGa,IAAvBA,EAAYqD,OAAe,gBAAoBlB,EAAA,EAAa,CAAER,QAAS3B,EAAY,GAAGgB,MACzF,gBAAoBsC,EAAA,EAAe,CAAE,aAActD,EAAY,GAAGgB,KAAMhG,KAAM,SAAUuI,KAAMvD,EAAY,GAAGuD,KAAMC,QAAS,KACpH,IAAIjH,EACJ,IAC8B,QAAzBA,EAAKyD,EAAY,UAAuB,IAAPzD,GAAyBA,EAAGiH,QAAQzD,EAC1E,CACA,MAAOV,GACH+D,SAAwEA,EAAmB/D,EAAEjD,QACjG,MACI,gBAAoBqH,EAAA,EAAS,KACzC,gBAAoBC,EAAA,EAAM,KACtB,gBAAoBvB,EAAA,EAAa,CAAER,QAASjB,EAAciD,oBACtD,gBAAoBC,EAAA,EAAa,KAC7B,gBAAoBN,EAAA,EAAe,CAAE,aAAc5C,EAAciD,mBAAoB3I,KAAM,SAAUuI,KAAM,gBAAoBzB,EAAA,EAAM,CAAEC,SAAU,2BACzJ,gBAAoB8B,EAAA,EAAa,KAC7B,gBAAoBC,EAAA,EAAU,KAAM9D,EAAY+D,KAAI,CAACC,EAAUC,IAAU,gBAAoBC,EAAA,EAAU,CAAE,aAAcF,EAAShD,KAAMmD,IAAKF,EAAOV,KAAMS,EAAST,KAAMC,QAAS,IAAM9E,OAAU,OAAQ,OAAQ,GAAQ,YAChN,UACUsF,EAASR,QAAQzD,EAC3B,CACA,MAAOV,GACH+D,SAAwEA,EAAmB/D,EAAEjD,QACjG,CACJ,KAAM4H,EAAShD,YAxBpB,gBAAoB,WAAgB,KAwBN,E,ICjGlCoD,E,kCACX,SAAWA,GAIPA,EAAiC,KAAI,OAIrCA,EAAiC,KAAI,MACxC,CATD,CASGA,IAA+BA,EAA6B,CAAC,IAMzD,MAAMC,EAAwBxJ,IACjC,MAAM,SAAEuD,EAAQ,UAAEkG,EAAS,sBAAEC,EAAqB,SAAEC,GAAa3J,EACjE,OAAKuD,EAGE,gBAAoBqG,EAAA,EAAO,CAAEC,YAAY,EAAMrD,WAAW,QAAYmD,GAAY,KAAyB,KAA0BD,IAA0BH,EAA2BO,KAAO,KAA2B,MAA2B,aAAcL,EAAWtJ,KAAM,QAAUoD,GAF5R,gBAAoB,WAAgB,KAEiQ,E,eChB7S,MAAMwG,EAA4B/J,IACrC,MAAM,YAAEgK,EAAW,QAAEzI,GAAYvB,EAC3B6F,GAAgB,UAAYE,QAAQkE,cACpCC,GAA4B,UAC5BC,GAAiB,IAAAjH,cAAY,CAACgC,EAAYW,EAAetE,EAASsG,KACpE,MAAMuC,EAAqBC,EAAsBxE,EAAetE,GAChE,IACI,MAAMuG,EAAUD,aAAuC,EAASA,EAAO3C,EAAY3D,GACnF,OAAIuG,GAAWA,EAAQU,OAAS,EACrBV,EAGAsC,CAEf,CACA,MAAOE,GACH,OAAOF,CACX,IACD,IACGG,GAAyB,IAAAnH,UAAQ,KACnC,IAAI1B,EAAIC,EACR,OAA2F,QAAlFA,EAAkC,QAA5BD,EAAK1B,EAAMgK,mBAAgC,IAAPtI,OAAgB,EAASA,EAAG8G,cAA2B,IAAP7G,EAAgBA,EAAK,GAAK,CAAC,GAC/H,CAAC3B,EAAMgK,cACV,OAAKA,GAAsC,IAAvBA,EAAYxB,QAAiBwB,EAG1C,gBAAoB,MAAO,CAAExD,WAAW,OAAa0D,EAA0B5J,KAAMiK,EAAyBL,EAA0BM,oBAAsBN,EAA0BO,kBAAmB,aAAc,kCAC5N,gBAAoBjB,EAAsB,CAAEE,sBAAuBH,EAA2BO,MAAQE,GAAeA,EAAYd,KAAIhE,GAAc,gBAAoBJ,EAAiB,CAAEI,WAAYA,EAAYoE,IAAKpE,EAAWzD,GAAI0D,YAAagF,EAAejF,EAAYW,EAAetE,EAASvB,EAAM0K,sBAAuBtF,sBAAuBpF,EAAMoF,sBAAuBC,aAAckF,QAH9X,gBAAoB,WAAgB,KAGsX,EAKnaF,EAAwB,CAACM,EAAQC,KACnC,IAAIC,EAAaF,EAAOG,eAGxB,OADoB,QAA8BF,aAAiD,EAASA,EAAYG,UAE7G,CAAC,CACA5E,KAAM0E,EACNnC,KAAM,gBAAoBzB,EAAA,EAAM,CAAEC,SAAU,mBAC5CyB,QAASqC,IAId,CAACrH,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGqH,GAA8B,CAAE9E,KAAM0E,IAAc,EAM1FG,EAAyB9F,GACpB,IAAIhB,SAAQC,IACf+G,OAAOC,KAAKjG,EAAW8C,IAAK,SAAU,uBACtC7D,GAAS,IAQJ8G,EAA8B,CAYvC9E,KAAM,WAENuC,KAAM,gBAAoBzB,EAAA,EAAM,CAAEC,SAAU,qBAAsB,aAAc,2CAEhFyB,QAASqC,E","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/AnnouncerContext.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/MessageBlock.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/Announcer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/LiveAnnouncer.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/AnnouncerMessage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Announcer/LiveMessage.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/@azure+communication-react@1.22.0_kdreznvoqpxsq65rzwgw6zo7je/node_modules/@azure/communication-react/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Stack } from '@fluentui/react';\nimport React from 'react';\n/**\n * @internal\n * Announcer component to maker aria announcements on actions\n */\nexport const Announcer = (props) => {\n const { announcementString, ariaLive } = props;\n return React.createElement(Stack, { \"aria-label\": announcementString, \"aria-live\": ariaLive, role: \"status\", \"aria-atomic\": true, styles: announcerStyles });\n};\n/**\n * Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.\n */\nconst announcerStyles = {\n root: {\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n whiteSpace: 'nowrap',\n border: 0\n }\n};\n//# sourceMappingURL=Announcer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/AnnouncerContext.js\nimport React from 'react';\n/** @private */\nconst AnnouncerContext = React.createContext({\n announceAssertive: logContextWarning,\n announcePolite: logContextWarning\n});\nfunction logContextWarning() {\n console.warn('Announcement failed, LiveAnnouncer context is missing');\n}\nexport default AnnouncerContext;\n//# sourceMappingURL=AnnouncerContext.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/MessageBlock.js\nimport React from 'react';\nconst offScreenStyle = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n padding: 0,\n width: '1px',\n position: 'absolute'\n};\n/** @private */\nconst MessageBlock = (props) => React.createElement(\"div\", { style: offScreenStyle, role: \"log\", \"aria-live\": props.ariaLive }, props.message ? props.message : '');\nexport default MessageBlock;\n//# sourceMappingURL=MessageBlock.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/Announcer.js\nimport React, { useEffect } from 'react';\nimport MessageBlock from './MessageBlock';\n/** @private */\nexport const EMPTY_MESSAGE = {\n message: '',\n id: ''\n};\n/** @private */\nconst Announcer = (props) => {\n var _a, _b;\n const newAssertive = (_a = props.assertive) !== null && _a !== void 0 ? _a : EMPTY_MESSAGE;\n const oldAssertive = React.useRef(EMPTY_MESSAGE);\n const [activeAssertive1, setActiveAssertive1] = React.useState(EMPTY_MESSAGE);\n const [activeAssertive2, setActiveAssertive2] = React.useState(EMPTY_MESSAGE);\n const alternateAssertive = React.useRef(false);\n useEffect(() => {\n if (oldAssertive.current.message !== (newAssertive === null || newAssertive === void 0 ? void 0 : newAssertive.message) || oldAssertive.current.id !== (newAssertive === null || newAssertive === void 0 ? void 0 : newAssertive.id)) {\n setActiveAssertive1(alternateAssertive.current ? EMPTY_MESSAGE : newAssertive);\n setActiveAssertive2(alternateAssertive.current ? newAssertive : EMPTY_MESSAGE);\n oldAssertive.current = newAssertive;\n alternateAssertive.current = !alternateAssertive.current;\n }\n }, [newAssertive]);\n const newPolite = (_b = props.polite) !== null && _b !== void 0 ? _b : EMPTY_MESSAGE;\n const oldPolite = React.useRef(EMPTY_MESSAGE);\n const [activePolite1, setActivePolite1] = React.useState(EMPTY_MESSAGE);\n const [activePolite2, setActivePolite2] = React.useState(EMPTY_MESSAGE);\n const alternatePolite = React.useRef(false);\n useEffect(() => {\n if (oldPolite.current.message !== (newPolite === null || newPolite === void 0 ? void 0 : newPolite.message) || oldPolite.current.id !== (newPolite === null || newPolite === void 0 ? void 0 : newPolite.id)) {\n setActivePolite1(alternatePolite.current ? EMPTY_MESSAGE : newPolite);\n setActivePolite2(alternatePolite.current ? newPolite : EMPTY_MESSAGE);\n oldPolite.current = newPolite;\n alternatePolite.current = !alternatePolite.current;\n }\n }, [newPolite]);\n return React.createElement(\"div\", null,\n React.createElement(MessageBlock, { ariaLive: \"assertive\", message: activeAssertive1.message }),\n React.createElement(MessageBlock, { ariaLive: \"assertive\", message: activeAssertive2.message }),\n React.createElement(MessageBlock, { ariaLive: \"polite\", message: activePolite1.message }),\n React.createElement(MessageBlock, { ariaLive: \"polite\", message: activePolite2.message }));\n};\nexport default Announcer;\n//# sourceMappingURL=Announcer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/LiveAnnouncer.js\nimport React, { useCallback, useMemo } from 'react';\nimport Announcer, { EMPTY_MESSAGE } from './Announcer';\nimport AnnouncerContext from './AnnouncerContext';\n/** @private */\nconst LiveAnnouncer = (props) => {\n const [politeMessage, setPoliteMessage] = React.useState(EMPTY_MESSAGE);\n const [assertiveMessage, setAssertiveMessage] = React.useState(EMPTY_MESSAGE);\n const announcePolite = useCallback((message, id) => {\n setPoliteMessage({\n message,\n id\n });\n }, []);\n const announceAssertive = useCallback((message, id) => {\n setAssertiveMessage({\n message,\n id\n });\n }, []);\n const updateFunctions = useMemo(() => ({\n announcePolite,\n announceAssertive\n }), [announceAssertive, announcePolite]);\n return React.createElement(AnnouncerContext.Provider, { value: updateFunctions },\n props.children,\n React.createElement(Announcer, { assertive: assertiveMessage, polite: politeMessage }));\n};\nexport default LiveAnnouncer;\n//# sourceMappingURL=LiveAnnouncer.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/AnnouncerMessage.js\nimport { useCallback, useEffect } from 'react';\nimport { v1 as createGUID } from 'uuid';\n/** @private */\nconst AnnouncerMessage = (props) => {\n const { message, ariaLive, clearOnUnmount, announceAssertive, announcePolite } = props;\n const announce = useCallback(() => {\n if (ariaLive === 'assertive') {\n announceAssertive(message || '', createGUID());\n }\n else if (ariaLive === 'polite') {\n announcePolite(message || '', createGUID());\n }\n }, [announceAssertive, announcePolite, ariaLive, message]);\n useEffect(() => {\n announce();\n return () => {\n if (clearOnUnmount) {\n announceAssertive('', createGUID());\n announcePolite('', createGUID());\n }\n };\n }, [message, clearOnUnmount, announce, announceAssertive, announcePolite]);\n return null;\n};\nexport default AnnouncerMessage;\n//# sourceMappingURL=AnnouncerMessage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// Adapted from: https://github.com/AlmeroSteyn/react-aria-live/blob/master/src/modules/LiveMessage.js\nimport React from 'react';\nimport AnnouncerContext from './AnnouncerContext';\nimport AnnouncerMessage from './AnnouncerMessage';\n/** @private */\nconst LiveMessage = (props) => React.createElement(AnnouncerContext.Consumer, null, contextProps => React.createElement(AnnouncerMessage, Object.assign({}, contextProps, props)));\nexport default LiveMessage;\n//# sourceMappingURL=LiveMessage.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Icon, TooltipHost } from '@fluentui/react';\nimport { Card, CardHeader, Text, Menu, MenuTrigger, ToolbarButton, MenuPopover, MenuItem, MenuList, Toolbar, CardFooter, ProgressBar, mergeClasses } from '@fluentui/react-components';\nimport { getFileTypeIconProps } from '@fluentui/react-file-type-icons';\nimport React from 'react';\nimport { Announcer } from '../Announcer';\nimport { useEffect, useState, useMemo } from 'react';\nimport { useLocaleAttachmentCardStringsTrampoline } from '../utils/common';\nimport { useAttachmentCardStyles, ATTACHMENT_CARD_MIN_PROGRESS, titleTooltipContainerStyle } from '../styles/AttachmentCard.styles';\n/**\n * @internal\n * A component for displaying an attachment card with attachment icon and progress bar.\n *\n * `_AttachmentCard` internally uses the `Card` component from `@fluentui/react-components`. You can checkout the details about these components [here](https://react.fluentui.dev/?path=/docs/components-card).\n */\nexport const _AttachmentCard = (props) => {\n var _a, _b, _c, _d, _e;\n const { attachment, menuActions, onActionHandlerFailed, selfResizing } = props;\n const attachmentCardStyles = useAttachmentCardStyles();\n const progress = useMemo(() => {\n return 'progress' in attachment ? attachment.progress : undefined;\n }, [attachment]);\n const isUploadInProgress = useMemo(() => {\n return progress !== undefined && progress >= 0 && progress < 1;\n }, [progress]);\n const [announcerString, setAnnouncerString] = useState(undefined);\n const localeStrings = useLocaleAttachmentCardStringsTrampoline();\n const uploadStartedString = (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.uploading) !== null && _b !== void 0 ? _b : localeStrings.uploading;\n const uploadCompletedString = (_d = (_c = props.strings) === null || _c === void 0 ? void 0 : _c.uploadCompleted) !== null && _d !== void 0 ? _d : localeStrings.uploadCompleted;\n useEffect(() => {\n if (isUploadInProgress) {\n setAnnouncerString(`${uploadStartedString} ${attachment.name}`);\n }\n else if (progress === 1) {\n setAnnouncerString(`${attachment.name} ${uploadCompletedString}`);\n }\n else {\n setAnnouncerString(undefined);\n }\n }, [progress, isUploadInProgress, attachment.name, uploadStartedString, uploadCompletedString]);\n const extension = useMemo(() => {\n const re = /(?:\\.([^.]+))?$/;\n const match = re.exec(attachment.name);\n return match && match[1] ? match[1] : '';\n }, [attachment]);\n return React.createElement(\"div\", { \"data-is-focusable\": true },\n React.createElement(Announcer, { announcementString: announcerString, ariaLive: 'polite' }),\n React.createElement(Card, { className: mergeClasses(attachmentCardStyles.root, selfResizing ? attachmentCardStyles.dynamicWidth : attachmentCardStyles.staticWidth), size: \"small\", role: \"listitem\", appearance: \"filled-alternative\", \"aria-label\": attachment.name, \"data-testid\": 'attachment-card' },\n React.createElement(CardHeader, { className: attachmentCardStyles.content, image: {\n className: attachmentCardStyles.fileIcon,\n children: React.createElement(Icon, { \"data-ui-id\": 'attachmenttype-icon', iconName: getFileTypeIconProps({\n extension: extension,\n size: 24,\n imageFileType: 'svg'\n }).iconName })\n }, header: {\n id: 'attachment-' + attachment.id,\n children: React.createElement(TooltipHost, { content: attachment.name, calloutProps: {\n gapSpace: 0,\n target: '#attachment-' + attachment.id\n }, hostClassName: titleTooltipContainerStyle },\n React.createElement(Text, { className: attachmentCardStyles.title, \"aria-label\": attachment.name }, attachment.name))\n }, action: {\n className: attachmentCardStyles.actions,\n children: MappedMenuItems(menuActions, Object.assign(Object.assign({}, attachment), { url: (_e = attachment.url) !== null && _e !== void 0 ? _e : '' }), onActionHandlerFailed)\n } })),\n isUploadInProgress ? React.createElement(CardFooter, null,\n React.createElement(ProgressBar, { thickness: \"medium\", value: Math.max(progress !== null && progress !== void 0 ? progress : 0, ATTACHMENT_CARD_MIN_PROGRESS), shape: \"rounded\" })) : React.createElement(React.Fragment, null, \" \"));\n};\nconst MappedMenuItems = (menuActions, attachment, handleOnClickError) => {\n const localeStrings = useLocaleAttachmentCardStringsTrampoline();\n if (!menuActions[0]) {\n return React.createElement(React.Fragment, null);\n }\n return menuActions.length === 1 ? React.createElement(TooltipHost, { content: menuActions[0].name },\n React.createElement(ToolbarButton, { \"aria-label\": menuActions[0].name, role: \"button\", icon: menuActions[0].icon, onClick: () => {\n var _a;\n try {\n (_a = menuActions[0]) === null || _a === void 0 ? void 0 : _a.onClick(attachment);\n }\n catch (e) {\n handleOnClickError === null || handleOnClickError === void 0 ? void 0 : handleOnClickError(e.message);\n }\n } })) : React.createElement(Toolbar, null,\n React.createElement(Menu, null,\n React.createElement(TooltipHost, { content: localeStrings.attachmentMoreMenu },\n React.createElement(MenuTrigger, null,\n React.createElement(ToolbarButton, { \"aria-label\": localeStrings.attachmentMoreMenu, role: \"button\", icon: React.createElement(Icon, { iconName: \"AttachmentMoreMenu\" }) }))),\n React.createElement(MenuPopover, null,\n React.createElement(MenuList, null, menuActions.map((menuItem, index) => React.createElement(MenuItem, { \"aria-label\": menuItem.name, key: index, icon: menuItem.icon, onClick: () => __awaiter(void 0, void 0, void 0, function* () {\n try {\n yield menuItem.onClick(attachment);\n }\n catch (e) {\n handleOnClickError === null || handleOnClickError === void 0 ? void 0 : handleOnClickError(e.message);\n }\n }) }, menuItem.name))))));\n};\n//# sourceMappingURL=AttachmentCard.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport React from 'react';\nimport { attachmentCardBaseStyles, attachmentCardFlexLayout, attachmentCardGirdLayout, attachmentGroupDisabled } from '../styles/AttachmentCardGroup.styles';\n/**\n * @internal\n * Props for `_AttachmentCardGroup` component.\n */\nexport var _AttachmentCardGroupLayout;\n(function (_AttachmentCardGroupLayout) {\n /**\n * Children are rendered in a grid layout with self resizing.\n */\n _AttachmentCardGroupLayout[\"Grid\"] = \"grid\";\n /**\n * Children are rendered in a flex layout with no resizing.\n */\n _AttachmentCardGroupLayout[\"Flex\"] = \"flex\";\n})(_AttachmentCardGroupLayout || (_AttachmentCardGroupLayout = {}));\n/**\n * @internal\n * Used with `_AttachmentCard` component where `_AttachmentCard` components are passed as children.\n * Renders the children equally spaced in multiple rows.\n */\nexport const _AttachmentCardGroup = (props) => {\n const { children, ariaLabel, attachmentGroupLayout, disabled } = props;\n if (!children) {\n return React.createElement(React.Fragment, null);\n }\n return React.createElement(Stack, { horizontal: true, className: mergeStyles(disabled && attachmentGroupDisabled, attachmentCardBaseStyles, attachmentGroupLayout === _AttachmentCardGroupLayout.Grid ? attachmentCardGirdLayout : attachmentCardFlexLayout), \"aria-label\": ariaLabel, role: \"list\" }, children);\n};\n//# sourceMappingURL=AttachmentCardGroup.js.map","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport { Icon } from '@fluentui/react';\nimport React, { useCallback } from 'react';\nimport { useMemo } from 'react';\nimport { useLocale } from '../../localization';\nimport { _AttachmentCard } from './AttachmentCard';\nimport { _AttachmentCardGroup, _AttachmentCardGroupLayout } from './AttachmentCardGroup';\nimport { _isIdentityMicrosoftTeamsUser } from \"../../../../acs-ui-common/src\";\nimport { mergeClasses } from '@griffel/react';\nimport { useAttachmentCardGroupStyles } from '../styles/AttachmentCardGroup.styles';\n/**\n * @internal\n */\nexport const _AttachmentDownloadCards = (props) => {\n const { attachments, message } = props;\n const localeStrings = useLocale().strings.messageThread;\n const attachmentCardGroupStyles = useAttachmentCardGroupStyles();\n const getMenuActions = useCallback((attachment, localeStrings, message, action) => {\n const defaultMenuActions = getDefaultMenuActions(localeStrings, message);\n try {\n const actions = action === null || action === void 0 ? void 0 : action(attachment, message);\n if (actions && actions.length > 0) {\n return actions;\n }\n else {\n return defaultMenuActions;\n }\n }\n catch (error) {\n return defaultMenuActions;\n }\n }, []);\n const hasMultipleAttachments = useMemo(() => {\n var _a, _b;\n return ((_b = (_a = props.attachments) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1;\n }, [props.attachments]);\n if (!attachments || attachments.length === 0 || !attachments) {\n return React.createElement(React.Fragment, null);\n }\n return React.createElement(\"div\", { className: mergeClasses(attachmentCardGroupStyles.root, hasMultipleAttachments ? attachmentCardGroupStyles.multipleAttachments : attachmentCardGroupStyles.singleAttachment), \"data-ui-id\": \"attachment-download-card-group\" },\n React.createElement(_AttachmentCardGroup, { attachmentGroupLayout: _AttachmentCardGroupLayout.Grid }, attachments && attachments.map(attachment => React.createElement(_AttachmentCard, { attachment: attachment, key: attachment.id, menuActions: getMenuActions(attachment, localeStrings, message, props.actionsForAttachment), onActionHandlerFailed: props.onActionHandlerFailed, selfResizing: hasMultipleAttachments }))));\n};\n/**\n * @private\n */\nconst getDefaultMenuActions = (locale, chatMessage) => {\n let actionName = locale.openAttachment;\n // if message is sent by a Teams user, we need to use a different icon (\"open\")\n const isTeamsUser = _isIdentityMicrosoftTeamsUser(chatMessage === null || chatMessage === void 0 ? void 0 : chatMessage.senderId);\n if (isTeamsUser) {\n return [{\n name: actionName,\n icon: React.createElement(Icon, { iconName: \"OpenAttachment\" }),\n onClick: defaultOnClickHandler\n }];\n }\n // otherwise, use the default icon (\"download\")\n return [Object.assign(Object.assign({}, defaultAttachmentMenuAction), { name: actionName })];\n};\n/**\n *\n * The default action handler for downloading attachments. This handler will open the attachment's URL in a new tab.\n */\nconst defaultOnClickHandler = (attachment) => {\n return new Promise(resolve => {\n window.open(attachment.url, '_blank', 'noopener,noreferrer');\n resolve();\n });\n};\n/**\n * @beta\n *\n * The default menu action for downloading attachments. This action will open the attachment's URL in a new tab.\n */\nexport const defaultAttachmentMenuAction = {\n /**\n *\n * name is used for aria-label only when there's one button. For multiple buttons, it's used as a label.\n * by default it's an unlocalized string when this is used as a imported constant,\n * but you can overwrite it with your own localized string.\n *\n * i.e. defaultAttachmentMenuAction.name = localize('Download');\n *\n * when no action is provided, the UI library will overwrite this name\n * with a localized string this string when it's used in the UI.\n */\n name: 'Download',\n // this is the icon shown on the right of the attachment card\n icon: React.createElement(Icon, { iconName: \"DownloadAttachment\", \"data-ui-id\": \"attachment-download-card-download-icon\" }),\n // this is the action that runs when the icon is clicked\n onClick: defaultOnClickHandler\n};\n//# sourceMappingURL=AttachmentDownloadCards.js.map"],"names":["Announcer","props","announcementString","ariaLive","role","styles","announcerStyles","root","position","width","height","padding","margin","overflow","clip","whiteSpace","border","logContextWarning","console","warn","announceAssertive","announcePolite","offScreenStyle","style","message","EMPTY_MESSAGE","id","_a","_b","newAssertive","assertive","oldAssertive","activeAssertive1","setActiveAssertive1","activeAssertive2","setActiveAssertive2","alternateAssertive","useEffect","current","newPolite","polite","oldPolite","activePolite1","setActivePolite1","activePolite2","setActivePolite2","alternatePolite","politeMessage","setPoliteMessage","assertiveMessage","setAssertiveMessage","useCallback","updateFunctions","useMemo","AnnouncerContext","value","children","clearOnUnmount","announce","contextProps","Object","assign","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","_AttachmentCard","_c","_d","_e","attachment","menuActions","onActionHandlerFailed","selfResizing","attachmentCardStyles","progress","undefined","isUploadInProgress","announcerString","setAnnouncerString","useState","localeStrings","uploadStartedString","strings","uploading","uploadCompletedString","uploadCompleted","name","extension","match","exec","Card","className","dynamicWidth","staticWidth","size","appearance","CardHeader","content","image","fileIcon","Icon","iconName","getFileTypeIconProps","imageFileType","header","TooltipHost","calloutProps","gapSpace","target","hostClassName","Text","title","action","actions","MappedMenuItems","url","CardFooter","ProgressBar","thickness","Math","max","shape","handleOnClickError","length","ToolbarButton","icon","onClick","Toolbar","Menu","attachmentMoreMenu","MenuTrigger","MenuPopover","MenuList","map","menuItem","index","MenuItem","key","_AttachmentCardGroupLayout","_AttachmentCardGroup","ariaLabel","attachmentGroupLayout","disabled","Stack","horizontal","Grid","_AttachmentDownloadCards","attachments","messageThread","attachmentCardGroupStyles","getMenuActions","defaultMenuActions","getDefaultMenuActions","error","hasMultipleAttachments","multipleAttachments","singleAttachment","actionsForAttachment","locale","chatMessage","actionName","openAttachment","senderId","defaultOnClickHandler","defaultAttachmentMenuAction","window","open"],"sourceRoot":""}