{"version":3,"file":"pwc-466.c1044e17.chunk.js","mappings":"2RAAA,8DACA,yCACA,8CAEA,SAA6E,SAAC,MAAoC,IAAnCA,QAAkC,KAAlCA,QAASC,UAAyB,KAAzBA,UAAWC,SAAc,KAAdA,SACzFC,GAAK,gBAAAC,kBAALD,EAEP,OACG,6BAAC,oBAAAE,WAAD,CACGC,MAAOH,EAAE,8BACTH,QAASA,QACTC,UAAWA,UACXM,kBAAmBC,oBAAAA,kBAAkBC,YACrCC,eAAgBP,EAAE,mBAClBQ,UAAWX,QACXY,kBAAmBJ,oBAAAA,kBAAkBK,UACrCC,eAAgBX,EAAE,kBAClBY,WAAW,SAEVZ,EAAE,gCACH,uCACID,SAASc,KAAI,SAACC,QAASC,OAAV,OAAoB,mCAAIC,UAAU,UAAUC,IAAG,kBAAaF,QAAUD,eAMvD,QAA1BI,QAAAA,U,uhBC3Bf,OAkBA,+oBAlBA,6BACA,6DACA,yCACA,8CACA,iEAGA,6DAEA,2CACA,2BACA,4EACA,0CACA,qEAEA,4CACA,2DACA,8DACA,grBAAAC,EAAA,EAAAA,EAAA,iBAAAA,IAAA,4BAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,oWAEO,IAAMC,mBAAyE,SAAC,MAA2F,IAAD,iHAAzFvB,QAAyF,KAAzFA,QAASwB,wBAAgF,KAAhFA,wBAAyBC,iBAAuD,KAAvDA,iBAAkBC,MAAqC,KAArCA,MAAOC,aAA8B,KAA9BA,aAAcC,WAAgB,KAAhBA,WACvJzB,GAAK,gBAAAC,kBAALD,EAEP,WAA0C,SAAA0B,UAAS,CAChD,CAACC,MAAO3B,EAAE,0BAA2B4B,MAFR,UAChC,oDAAOC,cAAP,cAAsBC,iBAAtB,cAGMC,qBAAsB,8CAAOC,qBAAP,uDAAsBC,8BAAtB,4BAAoDC,QAAAA,QAAOC,mBAA3D,+BAAoD,oBAAoBC,SAC9FC,6BAA4B,+EAAG,8KACHN,oBADG,mCACmBN,WADnB,oDACsCa,WAAAA,QAAUC,cAAcL,QAAAA,QAAOM,KAAKC,aAD1E,wCAC5BC,uBAD4B,YAE5BC,qBAAuBd,cAC7Ba,MAAAA,wBAAAA,uBAAwBE,WAAWC,SAAQ,SAAAC,GACxCH,qBAAqBI,KAAK,CAACpB,MAAOmB,EAAEE,KAAMpB,MAAOkB,EAAEG,OACnDH,EAAEF,WAAWC,SAAQ,SAAAK,WAClBP,qBAAqBI,KAAK,CAACpB,MAAM,MAAD,OAAQuB,UAAUF,MAAQpB,MAAOsB,UAAUD,aAGjFnB,iBAAiBqB,OAAOC,OAAO,GAAIT,uBATD,yDAAH,0DAYlC,SAAAU,YAAU,WACFhB,iCACL,IAEH,gBAAkC,SAAAX,UAAqB,CACpD4B,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,mBAAoB3B,qBAAmB,yEAAGG,QAAAA,QAAOC,mBAAV,wDAAG,qBAAoBwB,MAAMC,oBAA7B,iCAAG,sBAAwCX,YAA3C,gDAAmDzB,MAAAA,kBAAnD,EAAmDA,aAAcyB,YAAjE,gBA1BV,OA2B7BY,YAAa,OANhB,qDAAOC,UAAP,cAAkBC,aAAlB,cASMC,OAAM,+EAAG,gKAEZD,aAAa,cAAD,iBACND,WADM,IAETN,WAAW,KAJF,iBAOHS,WArCoB,SAqCCH,UAAUJ,mBAAiDI,UAAUJ,mBAAqB,KAP5G,iBAQWQ,UAAAA,QAASC,UAAU7C,iBAAkB2C,YARhD,OAQTJ,YARS,eAUTE,aAAa,cAAD,iBACND,WADM,IAETR,cAAc,EACdC,WAAYa,4CACZZ,WAAW,EACXK,YAAaA,eAfP,gFAkBTQ,SAAAA,QAAQC,MAAR,gCAAuChD,kBAAvC,cACAyC,aAAa,cAAD,iBACND,WADM,IAETR,cAAc,EACdE,WAAW,EACXC,UAAU,KAvBJ,wEAAH,0DA4BZ,SAAAJ,YAAU,WACHe,6CACDG,gBAEH,CAACT,UAAUD,cAGd,IAAMO,0CAA4C,kBAAe/C,yBAA2ByC,UAAUR,cAEhGkB,OAAS,WACZT,aAAa,cAAD,iBACND,WADM,IAETP,WAAW,MAIXgB,YAAc,WACjB1E,QAAQiE,UAAUD,cAqBf1D,MAAQ2D,UAAUR,aACnBQ,UAAUN,UAAYxD,EAAE,8BAAgC8D,UAAUL,SAAWzD,EAAE,oBAAsBA,EAAE,qBACvGA,EAAE,uBAEDyE,QAAS,gCAEf,OAAOC,UAAAA,QAASC,aACb,6BAAC,oBAAAC,WAAD,CAAYC,OAAQC,cAAAA,QAAaD,OAAOE,MAAOC,QAASlB,UAAUP,UAAWpD,MAAOA,MAAO8E,MAAOH,cAAAA,QAAaI,kBAAmBrF,QAASiE,UAAUN,UAAYgB,OAASD,YAAaY,UAAW5D,MAAO6D,UAAWtB,UAAUN,WAAaM,UAAUP,WAClP,oCAAKvC,UAAU,cACZ,oCAAKA,UAAU,+BACZ,oCAAKA,UAAU,oBACX8C,UAAUR,aACPQ,UAAUL,SACiC,qCAAMzC,UAAU,iBAAiBhB,EAAE,sBAA5E,yCAAOA,EAAE,uBACZ,6BAAC,oBAAAqF,YAAD,CAAaC,SAzBR,SAACC,GACrBxB,aAAa,cAAD,iBACND,WADM,IAETJ,mBAAoB6B,EAAEd,OAAO7C,UAsBsB4D,QAAS3D,cAAeF,MAAO3B,EAAE,+BAAgCmF,UAAW5D,MAAOkE,aAAa,EAAM7D,MAAOkC,UAAUJ,sBAGpK,oCAAK1C,UAAU,gBACZ,6BAAC,gBAAA0E,sBAAD,MACK5B,UAAUR,cACT,0DACG,6BAAC,oBAAAqC,cAAD,CACGhE,MAAO3B,EAAE,kBACT4F,WAAYvF,oBAAAA,kBAAkBK,UAC9BmF,UAAU,EACVV,UAAW5D,MACXuE,QAASvB,YACTwB,OAAO,WAEV,6BAAC,oBAAAJ,cAAD,CACGhE,MAAO3B,EAAE,gBACT4F,WAAYvF,oBAAAA,kBAAkB2F,QAC9BH,UAAU,EACVV,UAAW5D,MACXuE,QAAS9B,OACT+B,OAAO,UAvC8BjC,UAAUR,eAAiBQ,UAAUL,UA4ChF,0DACG,6BAAC,oBAAAkC,cAAD,CACGhE,MAAO3B,EAAE,sBACT4F,WAAYvF,oBAAAA,kBAAkBK,UAC9BmF,UAAU,EACVV,UAAW5D,MACXuE,QAASvB,YACTwB,OAAO,cAEV,6BAAC,oBAAAJ,cAAD,CACGhE,MAAO3B,EAAE,qBACT4F,WAAYvF,oBAAAA,kBAAkB2F,QAC9BH,UAAU,EACVV,UAAW5D,MACXuE,QAxET,WACftB,SACIV,UAAUD,cACXoC,OAAOC,SAASC,KAAOrC,UAAUD,YAAYuC,MAsExBL,OAAO,cAzDgBjC,UAAUR,cAAgBQ,UAAUL,UA8DjE,6BAAC,oBAAAkC,cAAD,CACGhE,MAAO3B,EAAE,iBACT4F,WAAYvF,oBAAAA,kBAAkB2F,QAC9BH,UAAU,EACVV,UAAW5D,MACXuE,QAASvB,YACTwB,OAAO,qBAObtB,SA3Kd,8CAiMP,cAMe,iCANU,SAAC,MAAD,mBAIuB,CAACpD,wBAJxB,MACrBA,wBAGsEC,iBAJjD,MACIA,iBAG+DzB,QAJnE,MACsBA,QAGsD0B,MAJ5E,MAErBA,MAEwGC,aAJnF,MAGrBA,aACsHC,WAJjG,MAGPA,cAGoC4E,eAAAA,WAAYC,iBAAAA,aAAnD,CAAiElF,oBAAjE,0B,seC3Nf,OAWA,+oBAXA,6BACA,qEACA,oEACA,yCACA,8CACA,2DACA,8DACA,2CACA,2BACA,IAEA,gBAFA,wEACA,0CACA,6TAEA,IAAMmF,iBAAmBC,kBAAAA,QAAOC,IAAV,iGAIhBC,kBAAoB,SAACzB,MAAe0B,OAAgBC,MAAhC,qEAAiH3B,MAAjH,uBAAqI0B,OAArI,+BAAkKzE,QAAAA,QAAO2E,gBAAgBC,oBAAzL,YAAgNF,KAAhN,kCAEtBG,2BAAqC,KAE5BC,mBAAkD,SAAC,MAAkC,IAAjCzF,MAAgC,KAAhCA,MAAO0F,MAAyB,KAAzBA,MAAOC,OAAkB,KAAlBA,OAAQjE,KAAU,KAAVA,KAC7EjD,GAAK,gBAAAC,kBAALD,EACP,WAAoC,SAAA0B,UAASuF,OAA7C,oDAAOE,WAAP,cAAmBC,cAAnB,cACA,YAAsC,SAAA1F,UAASwF,QAA/C,qDAAOG,YAAP,cAAoBC,eAApB,cACA,YAA4C,SAAA5F,UAAiB1B,EAAE,iBAA/D,qDAAOuH,eAAP,cAAuBC,kBAAvB,cACA,YAAkC,SAAA9F,UAAiB,IAAnD,qDAAO+F,UAAP,cAAkBC,aAAlB,cAEAC,OAAAA,QAAMtE,WAAU,kBAAM,WACnBuE,aAAab,+BACb,IAEH,IAKMc,qBAAuB,WAC1BH,aAAa,IACbE,aAAab,6BAuCVe,YAAc,WACE,IAAfX,YACDC,cAAcH,OAGG,IAAhBI,aACDC,eAAeJ,SAIrB,OACG,oCAAKlG,UAAU,qBACXyG,WAAa,6BAAC,gBAAAM,cAAD,KAAgBN,WAC9B,oCAAKzG,UAAU,0CACZ,6BAACuF,iBAAD,KACG,sCAAOyB,QAAQ,0BAA0BhI,EAAE,oBAC3C,6BAAC,oBAAAiI,UAAD,CACGC,SAAS,yBACTnC,OAAO,yBACPnE,MAAOuF,WAAWgB,WAClB7C,SAxDO,SAACC,GACpBsC,uBACA,IAAM5C,MAAQmD,SAAS7C,EAAEd,OAAO7C,MAAMyG,OAAQ,KAAO,EAC/C1B,OAAS2B,KAAKC,MAAMtD,OAASgC,MAAQC,SAE3CE,cAAcnC,OACdqC,eAAeX,QAEfI,2BAA6Bd,OAAOuC,YAAW,WAC9B,IAAVvD,OAAeA,MAAQwD,WAAAA,QAAUC,UAAUC,wBAC5CjB,aAAa1H,EAAE,uCAElB,MA6CSmF,UAAW5D,MACXqH,SAAU,EACVC,OAAQf,YACRgB,KAAMC,oBAAAA,WAAWC,OACjBC,YAAa,KAGnB,6BAAC1C,iBAAD,KACG,sCAAOyB,QAAQ,2BAA2BhI,EAAE,qBAC5C,6BAAC,oBAAAiI,UAAD,CACGC,SAAS,0BACTnC,OAAO,0BACPnE,MAAOyF,YAAYc,WACnB7C,SAvDQ,SAACC,GACrBsC,uBACA,IAAMlB,OAASyB,SAAS7C,EAAEd,OAAO7C,MAAMyG,OAAQ,KAAO,EAChDpD,MAAQqD,KAAKC,MAAM5B,QAAUM,MAAQC,SAE3CE,cAAcnC,OACdqC,eAAeX,QAEfI,2BAA6Bd,OAAOuC,YAAW,WAC9B,IAAVvD,OAAeA,MAAQwD,WAAAA,QAAUC,UAAUC,wBAC5CjB,aAAa1H,EAAE,uCAElB,MA4CSmF,UAAW5D,MACXqH,SAAU,EACVC,OAAQf,YACRgB,KAAMC,oBAAAA,WAAWC,OACjBC,YAAa,KAGnB,6BAAC,oBAAAtD,cAAD,CACGxF,MAAOH,EAAE,mBACT4F,WAAYvF,oBAAAA,kBAAkB6I,SAC9B/D,UAAW5D,MACXuE,QApDS,WAClBsB,cAAcH,OACdK,eAAeJ,QACfW,wBAkDS9B,OAAO,eACPoD,MAAO,6BAAC,oBAAAC,OAAOC,UAAR,SAGb,oCAAKrI,UAAU,oBACZ,0CAAQhB,EAAE,mBACP,oCAAKgB,UAAU,gBACZ,6BAAC,oBAAAiH,UAAD,CACGC,SAAS,kBACTnC,OAAO,kBACPnE,MAAO8E,kBAAkBS,WAAYE,YAAapE,MAClDkC,UAAW5D,MACXqH,SAAU,EACVU,UAAU,IAEb,6BAAC,oBAAA3D,cAAD,CACGhE,MAAO4F,eACP3B,WAAYvF,oBAAAA,kBAAkB2F,QAC9Bb,UAAW5D,MACXuE,QAhHE,YACjB,4BAAKY,kBAAkBS,WAAYE,YAAapE,OAChDuE,kBAAkBxH,EAAE,oBA+GL+F,OAAO,yBACPd,MAAO,cA7HrB,8CA6IP,cAOe,iCAPU,gFAKA,CAAC1D,MALD,MAGrBA,MAE6B0F,MALR,MAIrBA,MACoCC,OALf,MAIdA,OACqCjE,KALvB,MAINA,QAGmCoD,eAAAA,WAAYkD,eAAAA,WAAnD,CAA+DvC,oBAA/D,0B,+jBCzKf,0DACA,yCACA,qEACA,8CACA,iEACA,4DACA,2CACA,4DACA,2BACA,IAQA,mEARA,oEAEA,wEACA,0CAEA,6DACA,qEACA,6DACA,4ZAAA7F,EAAA,EAAAA,EAAA,iBAAAA,IAAA,4BAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,oWAEA,IAAMqI,SAAWhD,kBAAAA,QAAOiD,KAAV,uJACIC,oBAAAA,UAAUC,KAAKC,OAAOC,UAKlCC,gBAAkBtD,kBAAAA,QAAOC,IAAV,sZAKEiD,oBAAAA,UAAUK,MAAMC,OAAO1J,aAexC2J,qBAAuBzD,kBAAAA,QAAOC,IAAV,yJAOpByD,sBAAwB1D,kBAAAA,QAAOC,IAAV,0MACQ3B,cAAAA,QAAaqF,mBAOnCC,mBAAyE,SAAC,MAAkD,IAAjDvK,QAAgD,KAAhDA,QAASwK,YAAuC,KAAvCA,YAAaC,cAA0B,KAA1BA,cAAe/I,MAAW,KAAXA,MACnHvB,GAAK,gBAAAC,kBAALD,EACP,gBAA0B2H,OAAAA,QAAMjG,SAAS,CACtC6I,gBAAgB,EAChB/G,WAAW,EACXC,UAAU,IAHb,gEAAO+G,MAAP,oBAAcC,SAAd,oBAMMC,oBAAmB,+EAAG,iIACzBD,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,EAAMC,UAAU,KADtB,gCAIhBkH,UAAAA,QAASC,sBAAsBN,cAAczJ,KAAI,SAAAgK,GAAC,OAAIA,EAAE5H,SAJxC,OAKtBwH,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,EAAOC,UAAU,KAL1B,4EAOtBY,SAAAA,QAAQC,MAAR,aACAmG,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,EAAOC,UAAU,KAR1B,sEAAH,yDAYnBqH,iBAAgB,+EAAG,sLACtBL,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,EAAMC,UAAU,KADzB,iBAIbsH,mBAAqB7I,QAAAA,QAAO8I,gBAAgBC,+BAAiC,GAAKX,cAAczJ,KAAI,SAAAgK,GAAC,OAAIK,SAAAA,QAAQC,oBAAoBN,EAAE5H,SACvImI,0BAA4Bd,cAAczJ,KAAI,SAAAgK,GAAC,OAAIQ,iBAAAA,QAAgBC,+BAA+BT,EAAE5H,SALvF,iBAObsI,QAAQC,IAAIT,mBAAmBU,OAAOL,4BAPzB,OASnBvL,UACAwK,aAAeA,cAVI,kFAYnBhG,SAAAA,QAAQC,MAAR,cACAmG,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,EAAOC,UAAU,KAb7B,yEAAH,yDAqBhBiI,4BACH,wCACG,6BAAC,cAAAC,MAAD,CAAOC,QAAQ,oCAAf,MAEG,6BAACpC,SAAD,qCAFH,MAIG,6BAACA,SAAD,sBAJH,0DAMG,6BAAC,gBAAAqC,gBAAD,CAAiB/F,QAAS4E,qBAA1B,2BANH,sBAYAoB,+BACH,wCACG,6BAAC,cAAAH,MAAD,CAAOC,QAAQ,uCAAf,MAEG,6BAACpC,SAAD,oBAFH,MAIG,6BAACA,SAAD,sBAJH,0DAMG,6BAAC,gBAAAqC,gBAAD,CAAiB/F,QAAS4E,qBAA1B,2BANH,sBAYAqB,kBACH,6BAACjC,gBAAD,KACG,6BAAC,oBAAAkC,SAAD,CAAUC,UAAWzB,MAAMD,eAAgBzE,QAlCjB,WAC7B2E,SAAS,cAAD,iBAAKD,OAAL,IAAYD,gBAAiBC,MAAMD,mBAiCqC2B,QAASlM,EAAE,4BACxF,yCAAOA,EAAE,4BAITmM,mBACH,6BAACjC,sBAAD,KACG,6BAAC,oBAAAvE,cAAD,CACGhE,MAAO3B,EAAE,0BACT4F,WAAYvF,oBAAAA,kBAAkB6I,SAC9BC,MAAO,6BAAC,oBAAAC,OAAOgD,cAAR,MACPvG,UAAU,EACVV,UAAW5D,MACXuE,QAAS4E,oBACT3E,OAAQ,sCAKXsG,YACH,oCAAKrL,UAAU,gBACZ,6BAAC,oBAAA2E,cAAD,CACGhE,MAAO3B,EAAE,kBACT4F,WAAYvF,oBAAAA,kBAAkBK,UAC9BmF,UAAU,EACVV,UAAW5D,MACX0D,MAAM,SACNa,QAASjG,QACTkG,OAAQ,mCAEX,6BAAC,oBAAAJ,cAAD,CACGhE,MAAO3B,EAAE,oBACT4F,WAAYvF,oBAAAA,kBAAkBC,YAC9BuF,UAAW2E,MAAMD,gBAAkBC,MAAMhH,UACzC2B,UAAW5D,MACX0D,MAAM,SACNa,QAASgF,iBACT/E,OAAQ,wCAKXuG,SAAWhC,cAAciC,MAAK,SAAA1B,GAAC,OAAIA,EAAE2B,WACrC/H,QAAS,gCAEf,OAAOC,UAAAA,QAASC,aACb,6BAAC,oBAAAC,WAAD,CAAYC,OAAQC,cAAAA,QAAaD,OAAOE,MAAOC,SAAS,EAAM7E,MAAOH,EAAE,uBAAwBiF,MAAOH,cAAAA,QAAaI,kBAAmBrF,QAASA,QAASsF,UAAW5D,MAAO6D,UAAWoF,MAAMhH,WACxL,oCAAKxC,UAAU,cACZ,oCAAKA,UAAU,+BACXwJ,MAAM/G,UAAY,6BAAC,gBAAAsE,cAAD,KAAgB/H,EAAE,sBACpCsM,WAAapK,QAAAA,QAAO8I,gBAAgBC,+BAAiCS,4BAA8BI,+BACnGC,kBACD,6BAAC9B,qBAAD,KACIkC,mBACAE,gBAIE5H,SAjId,8CAmJP,cAKe,iCALU,SAAC,MAAD,aAGuB,CAAC5E,QAHxB,MACrBA,QAEsDwK,YAHjC,MACZA,YAE0DC,cAH9C,MACCA,cAE4D/I,MAH7D,MAErBA,SAGkD8E,eAAAA,WAAvC,CAAmD+D,oBAAnD,0B,gSCzMf,iC,oRAXA,8CACA,oEACA,OASA,+oBATA,6BACA,yCACA,qEACA,8DACA,wEACA,0CACA,oEACA,4DACA,6DACA,kVAEO,IAAMqC,aAAejG,kBAAAA,QAAOC,IAAV,0GAAlB,kCAIP,IAAMiG,cAAgBlG,kBAAAA,QAAOC,IAAV,0GAINkG,oBAA2E,SAAC,MAAqD,IAApDC,UAAmD,KAAnDA,UAAWrL,MAAwC,KAAxCA,MAAOsL,eAAiC,KAAjCA,eAAgBC,YAAiB,KAAjBA,YAClH9M,GAAK,gBAAAC,kBAALD,EACP,WAA4D,SAAA0B,UAAS,IAArE,oDAAOqL,uBAAP,cAA+BC,0BAA/B,cACA,YAAwC,SAAAtL,UAAS,MAAjD,qDAAOuL,aAAP,cAAqBC,gBAArB,cACA,YAAkC,SAAAxL,WAAS,GAA3C,qDAAO0D,UAAP,cAAkB+H,aAAlB,cACA,YAAsD,SAAAzL,UAAS,IAA/D,qDAAO0L,oBAAP,cAA4BC,uBAA5B,cACA,YAA4C,SAAA3L,UAAiB1B,EAAE,iBAA/D,sDAAOuH,eAAP,eAAuBC,kBAAvB,gBAEA,SAAAnE,YAAU,WACFiK,2BAEL,KAEH,SAAAjK,YAAU,WACPmE,kBAAmB+F,YAAAA,QAAWC,mBAAmBV,cAAgBA,cAAgBC,uBAA+C/M,EAAE,gBAAxBA,EAAE,qBAC5G,CAAC8M,cAEJ,IAAMQ,uBAAsB,+EAAG,qLAEK3C,UAAAA,QAAS8C,qBAAqBb,WAFnC,UAEnBc,gBAFmB,cAIpBH,YAAAA,QAAWC,mBAAmBE,iBAJV,uBAKtBV,0BAA0BU,iBAC1BL,uBAAuBK,iBAND,sDAQhBC,uBARgB,sFAWzBT,gBAAgBlN,EAAE,oCAXO,uEAAH,yDAqBtB2N,qBAAoB,+EAAG,+JAC1BR,cAAa,GACb3F,kBAAkBxH,EAAE,iBAFM,kCAIa4N,iBAAAA,QAAgBD,uBAJ7B,cAIjBE,sBAJiB,eAKvBC,mBAAmBD,uBALI,iBAMjBE,mBAAmBF,uBANF,+BAQvBV,cAAa,GARU,gGAAH,yDAapBY,mBAAkB,+EAAG,kBAAOC,oBAAP,2JAIY,KAH9BC,qBAAuBC,qBAA4C,cAAvBF,mBAAqCA,mBAAqBjB,yBAGnFoB,QAAsF,IAAtEZ,YAAAA,QAAWa,0BAA0BH,sBAAsBE,QAAgBF,uBAAyBb,oBAJrH,wEAQxBD,cAAa,GACb3F,kBAAkBxH,EAAE,iBATI,kCAWc2K,UAAAA,QAAS0D,wBAAwBzB,UAAWqB,sBAX1D,QAWfK,qBAXe,kBAYQL,uBAC1BjB,0BAA0BsB,sBAC1BjK,SAAAA,QAAQkK,KAAR,2DAAiEN,qBAAjE,wCAAqHK,qBAArH,8CAEHjB,uBAAuBiB,sBAhBF,kFAkBrBpB,gBAAgBlN,EAAE,gCAlBG,QAoBxBmN,cAAa,GApBW,yEAAH,2DAuBlBW,mBAAqB,SAACU,WACzBxB,0BAA0ByB,kBAAkBD,aAOzCN,qBAAuB,SAACtM,OAI3B,OAAqB,KADrBA,MAAQ2L,YAAAA,QAAWmB,2BAA2B9M,QACpCuM,QACPjB,gBAAgBlN,EAAE,0BACX,KAEVgN,0BAA0BpL,OACnBA,QAGJ6M,kBAAoB,SAACD,WACxB,IAAMG,OAASpB,YAAAA,QAAWa,0BAA0BI,WAapD,OAZAtB,gBAAgB,MACM,IAAlByB,OAAOR,SACJQ,OAAOC,SAAS,uCACjB1B,gBAAgBlN,EAAE,sCAElBwO,UAAYA,UAAUK,QAAQ,gBAAiB,KAE9CF,OAAOC,SAAS,2BACjB1B,gBAAgBlN,EAAE,6CAA8C,CAAC8O,UAAWrG,WAAAA,QAAUsG,yBAEzFP,UAAYA,UAAUK,QAAQ,OAAQ,MAElCL,WAGV,OACG,oCAAKxN,UAAU,oBACZ,6BAACyL,aAAD,CAAczL,UAAU,gBACrB,6BAAC,oBAAAiH,UAAD,CACGR,UAAWwF,aACX+B,UAAWhP,EAAE,qCACbsF,SAvCK,SAAC2J,KACfnB,mBAAmBmB,IAAIxK,OAAO7C,QAuCrBsN,YAAalP,EAAE,4BACf4B,MAAOmL,uBACPlE,OAAQ,kBAAMkF,mBAAmBhB,yBACjChH,OAAO,qBACPZ,UAAW5D,MACXsE,SAAUT,YAEb,6BAAC,oBAAAO,cAAD,CACGC,WAAYvF,oBAAAA,kBAAkB2F,QAC9BrE,MAAO4F,eACPpC,UAAW5D,MACXuE,QAjGQ,YACjB,4BAAKiH,wBACLvF,kBAAkBxH,EAAE,mBACpB6M,eAAeE,yBA+FNhH,OAAO,2BACPd,MAAO,OACPY,SAAUT,WAA+C,IAAlC2H,uBAAuBoB,SAAiBZ,YAAAA,QAAWC,mBAAmBP,iBAGnG,6BAACP,cAAD,KACG,6BAAC,oBAAA/G,cAAD,CACGhE,MAAO3B,EAAE,qCACT4F,WAAYvF,oBAAAA,kBAAkBK,UAC9ByE,UAAW5D,MACXuE,QAAS6H,qBACT5H,OAAO,+BACPN,aAAa,EACbI,SAAUT,eA/IlB,gDAgKP,cAKe,iCALU,SAAC,MAAD,WACrBwH,UADqB,MACrBA,UAAWC,eADU,MACVA,eAAgBC,YADN,MACMA,YADN,MAGwB,CAACvL,MAHzB,MAErBA,MACqDqL,UAAAA,UAAWC,eAAAA,eAAgBC,YAAAA,eAE9BzG,eAAAA,WAAvC,CAAmDsG,qBAAnD,0B,mqBC1Lf,OA+BA,+oBA/BA,6BACA,6DACA,8CACA,yCACA,yCAEA,yDACA,2BACA,IAuBA,0KAvBA,qEAEA,mEACA,2CACA,uEACA,wCACA,6DACA,6EACA,0CACA,2DACA,4DAEA,wEACA,kDACA,8DACA,wDACA,iEACA,0CACA,0CACA,gDACA,qEACA,oEAEA,wrBAAAxL,EAAA,EAAAA,EAAA,iBAAAA,IAAA,4BAAAA,GAAA,UAAAA,GAAA,GAAAA,EAAA,oWAEA,IAAMgO,qBAAuB3I,kBAAAA,QAAOC,IAAV,+HAKpB2I,sBAAwB5I,kBAAAA,QAAOC,IAAV,2GAIrB4I,mBAAqB7I,kBAAAA,QAAOC,IAAV,2GAMlB6I,oBAAsB9I,kBAAAA,QAAOiD,KAAV,4GAInB8F,oBAAsB/I,kBAAAA,QAAOC,IAAV,+MAGF,SAAA+I,OAAK,OACtBA,MAAMC,WAAaC,SAAAA,QAAQC,OAAOjG,oBAAAA,UAAUK,MAAMjJ,QAAQ8O,QAVxC,IAWfJ,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMgG,GAAGD,KAAKE,WACvDtG,oBAAAA,UAAUK,MAAMgG,GAAGE,KAAKC,eACb,SAAAV,OAAK,OACtBA,MAAMC,WAAa/F,oBAAAA,UAAUK,MAAMjJ,QAAQ8O,QACxCJ,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMgG,GAAGD,KAAKK,KACvDzG,oBAAAA,UAAUK,MAAMgG,GAAGE,KAAKG,UAI9BC,oBAAsB7J,kBAAAA,QAAOC,IAAV,+MAGF,SAAA+I,OAAK,OACtBA,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMgG,GAAGD,KAAKE,WACvDtG,oBAAAA,UAAUK,MAAMgG,GAAGE,KAAKC,eACV,SAAAV,OAAK,OACtBA,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMgG,GAAGD,KAAKK,KACvDzG,oBAAAA,UAAUK,MAAMgG,GAAGE,KAAKG,UAI3BE,kBAAoB9J,kBAAAA,QAAOC,IAAV,weAEO,SAAA+I,OAAK,OAAIA,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMgG,GAAGD,KAAKK,KAAOzG,oBAAAA,UAAUK,MAAMgG,GAAGE,KAAKG,UAa9G,SAAAZ,OAAK,OAAIA,MAAMjO,QAAUsO,oBAAAA,WAAWC,KAAOpG,oBAAAA,UAAUK,MAAMwG,KAAKC,MAAQ9G,oBAAAA,UAAUK,MAAMwG,KAAKP,cASzGS,eAAiBjK,kBAAAA,QAAOC,IAAV,iHAIdiK,2BAA6BlK,kBAAAA,QAAOiD,KAAV,6HAK1BD,SAAWhD,kBAAAA,QAAOiD,KAAV,8JACIC,oBAAAA,UAAUC,KAAKC,OAAOC,UAK3B8G,eAAiE,SAAC,MAAsK,IAArK9Q,QAAoK,KAApKA,QAAS+Q,aAA2J,KAA3JA,aAAcC,gBAA6I,KAA7IA,gBAAiBC,cAA4H,KAA5HA,cAAeC,cAA6G,KAA7GA,cAAexP,MAA8F,KAA9FA,MAAOyP,QAAuF,KAAvFA,QAAS/N,KAA8E,KAA9EA,KAAMgO,0BAAwE,KAAxEA,0BAA2B7K,IAA6C,KAA7CA,IAAK8K,sBAAwC,KAAxCA,sBAAuBC,YAAiB,KAAjBA,YACzNnR,GAAK,gBAAAC,kBAALD,EACP,WAAkB,SAAA0B,WAAA,gCAAwC,gCAAA0P,0BAAyBC,WAA5E7L,SAAP,2CACA,YAAkD,SAAA9D,WAAkB,GAApE,qDAAO4P,kBAAP,cAA0BC,qBAA1B,cACA,mBAA0B,eAAAC,oBAA1B,oEAAOhH,MAAP,sBAAcC,SAAd,sBACA,YAAwE,SAAA/I,WAAS,GAAjF,qDAAO+P,6BAAP,cAAqCC,gCAArC,cACA,YAA8C,SAAAhQ,UAAmB,IAAjE,qDAAOiQ,gBAAP,cAAwBC,mBAAxB,cACA,YAAsD,SAAAlQ,UAAuBsP,SAA7E,sDAAOa,oBAAP,eAA4BC,uBAA5B,eACA,aAA4D,SAAApQ,UAAiBqP,eAA7E,uDAAOgB,uBAAP,eAA+BC,0BAA/B,eAEMC,oBAAsB,CAAC,CAACrQ,MADJ,2BAC8BD,MAAO3B,EAAE,oCACjE,aAAsC,SAAA0B,UAAiB,IAAvD,uDAAOoL,YAAP,eAAoBD,gBAApB,eACA,aAA0D,SAAAnL,UAASmP,iBAAnE,uDAAOqB,sBAAP,eAA8BC,yBAA9B,eAEArB,MAAAA,eAAAA,cAAejO,SAAQ,SAAAuP,cACpBH,oBAAoBlP,KAAK,CAACnB,MAAOwQ,aAAarB,cAAepP,MAAOyQ,aAAaC,WAGpF1K,OAAAA,QAAMtE,WAAU,WACb,IAAMiP,SAAW,GACbrB,2BACDqB,SAASvP,KAAK/C,EAAE,mCAEfmR,MAAAA,iBAAA,EAAAA,YAAaoB,QAAO,SAAAC,GAAC,OAAIA,EAAEC,iBAAmBC,eAAAA,gBAAgBC,cAAYxE,QAAS,GACpFmE,SAASvP,KAAK/C,EAAE,kCAGnB4R,mBAAmBU,YACnB,CAACrP,KAAMkO,cAEVxJ,OAAAA,QAAMtE,WAAU,WACbyO,uBAAuBd,WACvB,CAACA,UAEJrJ,OAAAA,QAAMtE,WAAU,kBAAMoH,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,UAAW0N,sBAAsB1N,UAAWC,SAAUyN,sBAAsBzN,cAAY,CAACyN,wBAEnI,IAAM0B,cAAa,+EAAG,iBAAOC,YAAP,0GACnBpI,SAAS,cAAD,iBAAKD,OAAL,IAAY/G,UAAU,KAC1BuN,UAAY6B,WAFG,+BAGhBpI,SAAS,cAAD,iBAAKD,OAAL,IAAYhH,WAAW,KAHf,gCAKPmH,UAAAA,QAASiI,cAAc3P,KAAM4P,YALtB,QAMb,iBAAAC,kBAAiB,CAAC9B,QAAS6B,aAC3BpI,SAAS,CAACjH,WAAW,EAAOC,UAAU,IAPzB,8EASbgH,SAAS,CAACjH,WAAW,EAAOC,UAAU,IATzB,uEAAH,2DAcbsP,mBAAkB,+EAAG,kBAAOF,YAAP,6GACxBf,uBAAuBe,cACnBA,aAAeG,cAAAA,aAAaC,SAAWtB,gBAAgBxD,OAAS,GAF5C,wBAGrBuD,iCAAgC,GAHX,sDAKfkB,cAAcC,YALC,0DAAH,4DASlBK,eAAc,+EAAG,qIACpBxB,iCAAgC,GADZ,iBAEdkB,cAAcI,cAAAA,aAAaC,SAFb,0DAAH,yDAkBdE,0BAAyB,+EAAG,kIAC3BjB,sBAD2B,gDAEtBvH,UAAAA,QAASyI,uBAAuBnQ,MAFV,0DAItB0H,UAAAA,QAJsB,aAIW1H,KAJX,iBAIuB2K,iBAAAA,QAAgBD,uBAJvC,yEAIbU,wBAJa,qDAM/B8D,0BAA0BD,wBAC1B,iBAAAY,kBAAiB,CAACjC,iBAAkBqB,wBAPL,2DAAH,yDAUzBmB,KAAe,CAClB,CACG9C,KAAMvQ,EAAE,qBACRsT,WAAYhC,kBACZxL,QAAS,kBAAMyL,sBAAqB,KACpC,CACAhB,KAAMvQ,EAAE,sBACRsT,YAAahC,kBACbxL,QAAS,kBAAMyL,sBAAqB,MAIpCgC,gBAAiB,gCAAAnC,0BAAyBoC,IAAIR,cAAAA,aAAaC,SAAStR,MAEpE8C,QAAS,gCAEf,OAAOC,UAAAA,QAASC,aACb,0DACG,6BAAC,oBAAAC,WAAD,CAAYC,OAAQC,cAAAA,QAAaD,OAAOE,MAAOC,SAAS,EAAM7E,MAAOH,EAAE,oBAAqBiF,MAAM,QAAQpF,QAASA,QAASsF,UAAW5D,MAAOkS,iBAAiB,EAAMrO,UAAWoF,MAAMhH,WACnL,oCAAKxC,UAAU,cACZ,oCAAKA,UAAU,+BACXkB,QAAAA,QAAOwR,gCAAkC,oCAAK1S,UAAU,sBACtD,6BAACmO,qBAAD,CAAsBnO,UAAU,oBAC5BwJ,MAAM/G,UAAY,6BAAC,gBAAAsE,cAAD,KAAgB/H,EAAE,sBACrC,6BAAC,oBAAA2T,kBAAD,CAAmBxO,UAAW5D,MAAOiE,QAASA,QAASP,MAAM,OAAO2O,kBAAkB,EAAMjS,MAAO3B,EAAE,2BAA4BsF,SAAUyN,mBAAoBnR,MAAOiQ,wBAG5K,6BAACzC,sBAAD,CAAuBpO,UAAU,sBAC9B,6BAACuO,oBAAD,CAAqBhO,MAAOA,MAAOkO,WAAYuB,UAAYgC,cAAAA,aAAaC,SACpEjC,UAAYgC,cAAAA,aAAaC,QACvB,6BAACvC,2BAAD,KACG,6BAAC,cAAA/E,MAAD,CAAOC,QAAQ,6BAAf,eAEG,6BAACpC,SAAD,KAAW,CAAC+J,eAAAA,iBAFf,4EAMH,0DACG,6BAACjD,kBAAD,CAAmB/O,MAAOA,OACvB,6BAAC,oBAAAsS,KAAD,CAAMR,KAAMA,KAAMlO,UAAW5D,SAEhC,6BAACkP,eAAD,KACIa,mBAAqB,2DACjBpP,QAAAA,QAAO8I,gBAAgB8I,yBAA2BhD,MAAAA,gBAAAA,cAAe3C,SAAU,oCAAKnN,UAAU,uCACzF,6BAAC,oBAAAqE,YAAD,CAAaF,UAAW5D,MAAOK,MAAOmQ,uBAAwBzM,SA9D7D,SAACC,GA5DZ,6BA6DnBA,EAAEd,OAAO7C,MACVoQ,0BAA0B,IAE1BA,0BAA0BzM,EAAEd,OAAO7C,QA0DiG4D,QAASyM,oBAAqBtQ,MAAO3B,EAAE,yBAEhJ,6BAAC,wBAAD,CAAgB+T,MAAO7R,QAAAA,QAAO8I,gBAAgB8I,uBAAyB/B,uBAAjD,UAA6E3L,IAA7E,YAAoFqC,WAAAA,QAAUuL,YAAY5B,aAA1G,YAA0HL,wBAA2B3L,IAAKmK,KAAMvQ,EAAE,kBAAmB6M,eAAgB,SAACtH,GAAD,OAAesH,gBAAetH,IAAIuH,YAAaA,gBAE3QwE,mBAAqB,6BAAC,4BAAD,UAMpCpP,QAAAA,QAAO8I,gBAAgBiJ,0BAA4B/R,QAAAA,QAAOgS,SAAWhS,QAAAA,QAAOM,KAAKC,cAAgBmO,aAAauD,KAAK1R,cAAgBuO,UAAYgC,cAAAA,aAAaC,SAC9J,6BAAC7D,sBAAD,KACG,6BAACiB,oBAAD,CAAqB9O,MAAOA,OACzB,6BAACkP,eAAD,KACG,6BAACpB,mBAAD,KACG,6BAAC,oBAAA+E,YAAD,CAAaC,UAAWrU,EAAE,iCAAkCiM,UAAWiG,sBAAuBpM,QAASqN,6BAEzGjB,uBACD,0DACG,6BAAC5C,oBAAD,KAAsBtP,EAAE,yBACxB,6BAAC,yBAAD,CAAiB4M,UAAW3J,KAAM4J,eAAgB,SAACtH,GAAD,OAAesH,gBAAetH,IAAIuH,YAAaA,kBAO7G,oCAAK9L,UAAU,gBACZ,6BAAC,gBAAA0E,sBAAD,KACG,6BAAC,oBAAAC,cAAD,CACGhE,MAAO3B,EAAE,iBACT4F,WAAYvF,oBAAAA,kBAAkBK,UAC9ByE,UAAW5D,MACXuE,QAASjG,QACTkG,OAAO,kCAOxB0L,8BAAgC,6BAAC,mCAAD,CAA2B5R,QA5G7C,WAClBiS,uBAAuBd,SACvBU,iCAAgC,IA0GsD5R,UAAWoT,eAAgBnT,SAAU4R,mBACtHlN,SA7KJ,sCAkMP,cASe,iCATU,SAAC,MAAD,uCAOmB,CAAC5E,QAPpB,MACrBA,QAMkDiR,cAP7B,MAErBA,cAKiEC,cAP5C,MAGrBA,cAIgFxP,MAP3D,MAIrBA,MAGuFyP,QAPlE,OAKrBA,QAEgG/N,KAP3E,OAKZA,KAE6FgO,0BAPjF,OAKNA,0BAEkH7K,IAP5G,OAKqBA,IAE4FyK,gBAPjH,OAK0BA,gBAEwGD,aAPlI,OAK2CA,aAEqGM,sBAPhJ,OAKyDA,sBAE8GC,YAPvK,OAMrBA,eAGkDmD,uBAAAA,mBAAoBC,8BAAAA,0BAA2BlO,eAAAA,WAAYkD,eAAAA,WAAYiL,qBAAAA,iBAA9G,CAAgI7D,gBAAhI,0B,kVChUf,2DACA,8DAKMhD,qBAAoB,8EAAG,8JACH8G,SAAAA,QAAQC,iBAHN,uBAG2D,CAACjM,WAAAA,QAAUkM,YAAYC,KADjF,cACpBC,SADoB,uCAEnBA,SAASC,KAAKC,cAFK,wDAAH,wDAA1B,SAKe,CACZpH,qBAAAA,sBADY,0B,uNCXf,8DACA,yCAEA,2DACA,4DACA,8CAEO,+BAA+B,WACnC,IAAIqH,YACAC,kBACAC,aACAC,mBACEC,sBAAwBlT,QAAAA,QAAOmT,wBAA0BnT,QAAAA,QAAOgS,QAChEoB,uBAAyBpT,QAAAA,QAAO8I,gBAAgBuK,2BAA6BrT,QAAAA,QAAOgS,QAEpFsB,cAAgB,CACnBC,iBAAkBvT,QAAAA,QAAOuT,iBACzBC,qBAAsBxT,QAAAA,QAAOwT,sBAG5BxT,QAAAA,QAAO8I,gBAAgB2K,8BACxBX,YAAcY,SAAAA,QAAK5V,EAAE,yCACrBiV,kBAAoBW,SAAAA,QAAK5V,EAAE,8CAA+CwV,eAC1EN,aAAeU,SAAAA,QAAK5V,EAAE,+CACtBmV,mBAAqBS,SAAAA,QAAK5V,EAAE,uDAE5BiV,kBAAoBW,SAAAA,QAAK5V,EAAE,8CAA+CwV,eAC1ER,YAAcY,SAAAA,QAAK5V,EAAE,yCACrBkV,aAAeU,SAAAA,QAAK5V,EAAE,+CACtBmV,mBAAqBS,SAAAA,QAAK5V,EAAE,sDAG/B,IAAM6V,WAAa,IAAIC,IAoCvB,OAlCAD,WAAWE,IAAI/C,cAAAA,aAAagD,OAAQ,CACjCpU,MAAOoR,cAAAA,aAAagD,OACpBrU,MAAOqT,YACPiB,QAAShB,kBACT9L,MAAO,6BAAC,oBAAAC,OAAO8M,iBAAR,MACPrQ,UAAWuP,sBACXe,UAAYf,sBAA0D,GAAlCQ,SAAAA,QAAK5V,EAAE,4BAG7CkC,QAAAA,QAAO8I,gBAAgB2K,8BAAgCE,WAAWE,IAAI/C,cAAAA,aAAaoD,OAAQ,CACzFxU,MAAOoR,cAAAA,aAAaoD,OACpBzU,MAAOiU,SAAAA,QAAK5V,EAAE,gCAAiCwV,eAC/CS,QAASL,SAAAA,QAAK5V,EAAE,sCAAuCwV,eACvDrM,MAAO,6BAAC,oBAAAC,OAAOiN,mBAAR,MACPxQ,UAAWyP,sBACXa,UAAYb,sBAA0D,GAAlCM,SAAAA,QAAK5V,EAAE,4BAG7CkC,QAAAA,QAAO8I,gBAAgB2K,8BAAgCE,WAAWE,IAAI/C,cAAAA,aAAasD,SAAU,CAC3F1U,MAAOoR,cAAAA,aAAasD,SACpB3U,MAAOiU,SAAAA,QAAK5V,EAAE,kCAAmCwV,eACjDS,QAASL,SAAAA,QAAK5V,EAAE,wCAAyCwV,eACzDrM,MAAO,6BAAC,oBAAAC,OAAOmN,oBAAR,MACP1Q,UAAU,IAGbgQ,WAAWE,IAAI/C,cAAAA,aAAaC,QAAS,CAClCrR,MAAOoR,cAAAA,aAAaC,QACpBtR,MAAOuT,aACPe,QAASd,mBACThM,MAAO,6BAAC,oBAAAC,OAAOoN,UAAR,MACP3Q,UAAU,IAGNgQ","sources":["component/modals/ConfirmPrivacyChangeModal.tsx","component/modals/CopyMediaModal.tsx","component/modals/EmbedCodeFormField.tsx","component/modals/ResetDataModal.tsx","component/modals/SetAccessPhrase.tsx","component/modals/ShareModal.tsx","service/accessPhraseApi.ts","util/MediaPrivacyOptionsGenerator.tsx"],"sourcesContent":["import React from 'react';\nimport {useTranslation} from 'react-i18next';\nimport {AlertModal, ControlButtonType} from '@techsmith/tsc-cloud-style-guide';\n\nconst ConfirmPrivacyChangeModal: React.FC = ({onClose, onConfirm, warnings}) => {\n const {t} = useTranslation();\n\n return (\n \n {t('confirmPrivacyChange.warning')}\n \n \n );\n};\n\nexport default ConfirmPrivacyChangeModal;\n\ninterface IConfirmPrivacyChangeModalProps {\n onClose(): void;\n onConfirm(): void;\n warnings: string[];\n}\n","import React, {useState, useEffect} from 'react';\nimport ReactDOM from 'react-dom';\nimport {useTranslation} from 'react-i18next';\nimport {BasicModal, ControlButton, ControlButtonType, SelectInput, themeNames} from '@techsmith/tsc-cloud-style-guide';\nimport cssConstants from '../../constants/cssConstants';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport Optional from '../../model/optional';\nimport videoApi from '../../service/videoApi';\nimport {IWorkerState} from '../../model/workerState';\nimport {MinWidthButtonWrapper} from '../util/StyledElements';\nimport '../../static/css/modal.less';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {themeStore} from '../../context/themeProvider';\nimport useModalPortal from '../util/ModalPortalHelper';\nimport {IFolderTreeNode} from '../../model/folderTreeNode';\nimport {foldersStore} from '../../context/foldersProvider';\nimport config from '../../service/config';\nimport folderApi from '../../service/folderApi';\nimport logging from '../../service/logging';\n\nexport const CopyMediaModalBase: React.FC = ({onClose, hideConfirmationButtons, selectedMediaUrl, theme, activeFolder, folderTree}) => {\n const {t} = useTranslation();\n const rootFolderDropdownValue = 'root';\n const [folderOptions, setFolderOptions] = useState([\n {label: t('details.rootFolderName'), value: rootFolderDropdownValue}\n ]);\n const loggedInUserIsOwner = config.libraryConfig?.loggedInUserIsProfileOwner || config.watchConfig?.isOwner;\n const getFolderTreeForLoggedInUser = async () => {\n const loggedInUserFolderTree = loggedInUserIsOwner ? folderTree : await folderApi.getFolderTree(config.user.TechSmithId);\n const updatedFolderOptions = folderOptions;\n loggedInUserFolderTree?.SubFolders.forEach(f => {\n updatedFolderOptions.push({label: f.Name, value: f.Hash});\n f.SubFolders.forEach(subfolder => {\n updatedFolderOptions.push({label: ` - ${subfolder.Name}`, value: subfolder.Hash});\n });\n });\n setFolderOptions(Object.assign([], updatedFolderOptions));\n };\n\n useEffect(() => {\n void getFolderTreeForLoggedInUser();\n }, []);\n\n const [copyState, setCopyState] = useState({\n didCopyMedia: false,\n isVisible: true,\n isWorking: false,\n hasError: false,\n selectedFolderHash: loggedInUserIsOwner ? config.watchConfig?.media.ParentFolder?.Hash ?? activeFolder?.Hash ?? rootFolderDropdownValue : rootFolderDropdownValue,\n copiedMedia: null\n });\n\n const onCopy = async () => {\n let copiedMedia: IMediaDetails;\n setCopyState({\n ...copyState,\n isWorking: true\n });\n try {\n const folderHash: string = copyState.selectedFolderHash !== rootFolderDropdownValue ? copyState.selectedFolderHash : null;\n copiedMedia = await videoApi.copyMedia(selectedMediaUrl, folderHash);\n\n setCopyState({\n ...copyState,\n didCopyMedia: true,\n isVisible: !shouldCloseAutomaticallyAfterCopyingMedia(),\n isWorking: false,\n copiedMedia: copiedMedia\n });\n } catch (err) {\n logging.error(`Failed to copy media: ${selectedMediaUrl}`, err);\n setCopyState({\n ...copyState,\n didCopyMedia: true,\n isWorking: false,\n hasError: true\n });\n }\n };\n\n useEffect(() => {\n if (shouldCloseAutomaticallyAfterCopyingMedia()) {\n onCloseCopy();\n }\n }, [copyState.copiedMedia]);\n\n\n const shouldCloseAutomaticallyAfterCopyingMedia = (): boolean => hideConfirmationButtons && copyState.didCopyMedia;\n\n const onHide = () => {\n setCopyState({\n ...copyState,\n isVisible: false\n });\n };\n\n const onCloseCopy = () => {\n onClose(copyState.copiedMedia);\n };\n\n const onViewNow = () => {\n onHide();\n if (copyState.copiedMedia) {\n window.location.href = copyState.copiedMedia.Url;\n }\n };\n\n const onSelectChange = (e: React.ChangeEvent) => {\n setCopyState({\n ...copyState,\n selectedFolderHash: e.target.value\n });\n };\n\n const shouldShowCopySuccessConfirmationButtons = (): boolean => copyState.didCopyMedia && !copyState.hasError;\n\n const shouldShowCopyErrorButtons = (): boolean => copyState.didCopyMedia && copyState.hasError;\n\n const title = copyState.didCopyMedia\n ? copyState.isWorking ? t('copyMedia.copyingToLibrary') : copyState.hasError ? t('copyMedia.failed') : t('copyMedia.success')\n : t('copyMedia.titleText');\n\n const target = useModalPortal();\n\n return ReactDOM.createPortal(\n \n
\n
\n
\n {copyState.didCopyMedia ?\n !copyState.hasError ?\n {t('copyMedia.redirect')} : {t('general.errorText')} :\n \n }\n
\n
\n \n {!copyState.didCopyMedia &&\n <>\n \n \n \n }\n {shouldShowCopySuccessConfirmationButtons() &&\n <>\n \n \n \n }\n {shouldShowCopyErrorButtons() &&\n \n }\n \n
\n
\n
\n
, target);\n};\n\nexport interface ICopyMediaModalProps {\n onClose(copiedMedia?: IMediaDetails): void;\n hideConfirmationButtons?: boolean;\n selectedMediaUrl: string;\n}\n\nexport interface IStateMappedProps {\n theme: themeNames;\n activeFolder: IFolderTreeNode;\n folderTree: IFolderTreeNode;\n}\n\ninterface ICopyState extends IWorkerState {\n isVisible: boolean;\n didCopyMedia: boolean;\n selectedFolderHash: Optional;\n copiedMedia: Optional;\n}\n\nconst mapStatesToProps = (\n {hideConfirmationButtons, selectedMediaUrl, onClose}: ICopyMediaModalProps,\n {theme}: Partial,\n {activeFolder, folderTree}: Partial\n): ICopyMediaModalProps & IStateMappedProps => ({hideConfirmationButtons, selectedMediaUrl, onClose, theme, activeFolder, folderTree});\n\nexport default withMemoizedContexts(mapStatesToProps, themeStore, foldersStore)(CopyMediaModalBase);\n","import React, {ChangeEvent, useState} from 'react';\nimport styled from 'styled-components';\nimport copy from 'copy-to-clipboard';\nimport {useTranslation} from 'react-i18next';\nimport {ControlButton, ControlButtonType, TextInput, Glyphs, themeNames, inputTypes} from '@techsmith/tsc-cloud-style-guide';\nimport config from '../../service/config';\nimport Constants from '../../constants/Constants';\nimport {StyledWarning} from '../util/StyledElements';\nimport '../../static/css/modal.less';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {themeStore} from '../../context/themeProvider';\nimport {mediaStore} from '../../context/mediaProvider';\n\nconst DimensionWrapper = styled.div`\n width: 5rem;\n`;\n\nconst generateEmbedCode = (width: number, height: number, hash: string): string => ``;\n\nlet dimensionsWarningTimeoutId: number = null;\n\nexport const EmbedCodeModalBase: React.FC = ({theme, Width, Height, Hash}) => {\n const {t} = useTranslation();\n const [embedWidth, setEmbedWidth] = useState(Width);\n const [embedHeight, setEmbedHeight] = useState(Height);\n const [copyButtonText, setCopyButtonText] = useState(t('general.copy'));\n const [errorText, setErrorText] = useState('');\n\n React.useEffect(() => () => {\n clearTimeout(dimensionsWarningTimeoutId);\n }, []);\n\n const onCopyClick = () => {\n copy(generateEmbedCode(embedWidth, embedHeight, Hash));\n setCopyButtonText(t('general.copied'));\n };\n\n const clearErrorAndTimeout = () => {\n setErrorText('');\n clearTimeout(dimensionsWarningTimeoutId);\n };\n\n const onWidthChange = (e: ChangeEvent) => {\n clearErrorAndTimeout();\n const width = parseInt(e.target.value.trim(), 10) || 0;\n const height = Math.round(width / (Width / Height));\n\n setEmbedWidth(width);\n setEmbedHeight(height);\n\n dimensionsWarningTimeoutId = window.setTimeout(() => {\n if (width !== 0 && width < Constants.embedCode.minWidthWarningInPixel) {\n setErrorText(t('embedCode.smallDimensionsWarning'));\n }\n }, 1000);\n };\n\n const onHeightChange = (e: ChangeEvent) => {\n clearErrorAndTimeout();\n const height = parseInt(e.target.value.trim(), 10) || 0;\n const width = Math.round(height * (Width / Height));\n\n setEmbedWidth(width);\n setEmbedHeight(height);\n\n dimensionsWarningTimeoutId = window.setTimeout(() => {\n if (width !== 0 && width < Constants.embedCode.minWidthWarningInPixel) {\n setErrorText(t('embedCode.smallDimensionsWarning'));\n }\n }, 1000);\n };\n\n const onResetClick = () => {\n setEmbedWidth(Width);\n setEmbedHeight(Height);\n clearErrorAndTimeout();\n };\n\n const onInputBlur = () => {\n if (embedWidth === 0) {\n setEmbedWidth(Width);\n }\n\n if (embedHeight === 0) {\n setEmbedHeight(Height);\n }\n };\n\n return (\n
\n {errorText && {errorText}}\n
\n \n \n \n \n \n \n \n \n }\n />\n
\n
\n \n
\n
\n );\n};\n\nexport interface IStateMappedProps {\n theme: themeNames;\n Width: number;\n Height: number;\n Hash: string;\n}\n\nconst mapStatesToProps = (\n // eslint-disable-next-line no-empty-pattern\n {},\n {theme}: Partial,\n {Width, Height, Hash}: Partial\n): IStateMappedProps => ({theme, Width, Height, Hash});\n\nexport default withMemoizedContexts(mapStatesToProps, themeStore, mediaStore)(EmbedCodeModalBase);\n","import React from 'react';\nimport {useTranslation, Trans} from 'react-i18next';\nimport styled from 'styled-components';\nimport {BasicModal, Checkbox, ControlButton, ControlButtonType, Glyphs, themeNames, TscStyles} from '@techsmith/tsc-cloud-style-guide';\nimport cssConstants from '../../constants/cssConstants';\nimport logging from '../../service/logging';\nimport {StyledWarning, HyperLinkButton} from '../util/StyledElements';\nimport quizApi from '../../service/quizApi';\nimport '../../static/css/modal.less';\nimport conversationApi from '../../service/conversationApi';\nimport {IWorkerState} from '../../model/workerState';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {themeStore} from '../../context/themeProvider';\nimport {IMediaDetails} from '../../model/mediaDetails';\nimport mediaApi from '../../service/mediaApi';\nimport useModalPortal from '../util/ModalPortalHelper';\nimport ReactDOM from 'react-dom';\nimport config from '../../service/config';\n\nconst BoldText = styled.span`\n font-weight: ${TscStyles.font.weight.semibold};\n padding: 0 0.25rem;\n display: inline-flex;\n`;\n\nconst CheckboxWrapper = styled.div`\n display: flex;\n flex-direction: row;\n margin: 1rem 0 2rem 0;\n padding: 1rem;\n border: solid 1px ${TscStyles.color.action.destructive};\n background-color: rgba(205, 66, 66, .15);\n border-radius: 0.25rem;\n max-width: 22rem;\n justify-content: center;\n\n > div {\n margin: 0;\n }\n\n span {\n margin-left: 1rem;\n }\n`;\n\nconst FooterButtonsWrapper = styled.div`\n display: flex;\n .button-group {\n margin-left: auto;\n }\n`;\n\nconst DownloadButtonWrapper = styled.div`\n @media screen and (max-width: ${cssConstants.contentBreakpoint}px) {\n > button > span:last-of-type {\n display: none;\n }\n }\n`;\n\nexport const ResetDataModalBase: React.FC = ({onClose, onResetData, selectedMedia, theme}) => {\n const {t} = useTranslation();\n const [state, setState] = React.useState({\n resetConfirmed: false,\n isWorking: false,\n hasError: false\n } as IResetDataModalState);\n\n const onDownloadDataClick = async () => {\n setState({...state, isWorking: true, hasError: false});\n\n try {\n await mediaApi.downloadBatchMediaCsv(selectedMedia.map(m => m.Hash));\n setState({...state, isWorking: false, hasError: false});\n } catch (e) {\n logging.error(e);\n setState({...state, isWorking: false, hasError: true});\n }\n };\n\n const onResetDataClick = async () => {\n setState({...state, isWorking: true, hasError: false});\n\n try {\n const removeQuizPromises = config.featureSwitches.DisableAnalyticsAndQuizEditing ? [] : selectedMedia.map(m => quizApi.removeQuizResponses(m.Hash));\n const clearConversationPromises = selectedMedia.map(m => conversationApi.clearMediaConversationComments(m.Hash));\n\n await Promise.all(removeQuizPromises.concat(clearConversationPromises));\n\n onClose();\n onResetData && onResetData();\n } catch (e) {\n logging.error(e);\n setState({...state, isWorking: false, hasError: true});\n }\n };\n\n const toggleResetConfirmation = (): void => {\n setState({...state, resetConfirmed: !state.resetConfirmed});\n };\n\n const resetWarningWithQuizMessage: JSX.Element = (\n
\n \n All\n viewer data, quiz responses,\n and\n conversations\n will be archived and reset. If you want a local backup,\n download the media data\n before resetting.\n \n
\n );\n\n const resetWarningWithoutQuizMessage: JSX.Element = (\n
\n \n All\n viewer data\n and\n conversations\n will be archived and reset. If you want a local backup,\n download the media data\n before resetting.\n \n
\n );\n\n const resetConfirmation: JSX.Element = (\n \n \n {t('resetData.confirmation')}\n \n );\n\n const downloadDataButton: JSX.Element = (\n \n }\n disabled={false}\n themeName={theme}\n onClick={onDownloadDataClick}\n testId={'reset-data-modal-download-button'}\n />\n \n );\n\n const buttonGroup: JSX.Element = (\n
\n \n \n
\n );\n\n const hasVideo = selectedMedia.some(m => m.IsVideo);\n const target = useModalPortal();\n\n return ReactDOM.createPortal(\n \n
\n
\n {state.hasError && {t('general.errorText')}}\n {hasVideo && !config.featureSwitches.DisableAnalyticsAndQuizEditing ? resetWarningWithQuizMessage : resetWarningWithoutQuizMessage}\n {resetConfirmation}\n \n {downloadDataButton}\n {buttonGroup}\n \n
\n
\n
, target\n );\n};\n\nexport interface IResetDataModalProps {\n onClose(): void;\n onResetData?(): void;\n selectedMedia: IMediaDetails[];\n}\n\nexport interface IResetDataModalState extends IWorkerState {\n resetConfirmed: boolean;\n}\n\nexport interface IStateMappedProps {\n theme: themeNames;\n}\n\nconst mapStatesToProps = (\n {onClose, onResetData, selectedMedia}: IResetDataModalProps,\n {theme}: Partial\n): IStateMappedProps & IResetDataModalProps => ({onClose, onResetData, selectedMedia, theme});\n\nexport default withMemoizedContexts(mapStatesToProps, themeStore)(ResetDataModalBase);\n","import {TextInput, ControlButton, ControlButtonType, themeNames} from '@techsmith/tsc-cloud-style-guide';\nimport copy from 'copy-to-clipboard';\nimport React, {useEffect, useState} from 'react';\nimport {useTranslation} from 'react-i18next';\nimport styled from 'styled-components';\nimport Constants from '../../constants/Constants';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {themeStore} from '../../context/themeProvider';\nimport accessPhraseApi from '../../service/accessPhraseApi';\nimport logging from '../../service/logging';\nimport mediaApi from '../../service/mediaApi';\nimport StringUtil from '../../util/StringUtil';\n\nexport const InputWrapper = styled.div`\n margin-top: 0.125rem;\n`;\n\nconst ButtonWrapper = styled.div`\n margin-top: 0.5rem;\n`;\n\nexport const SetAccessPhraseBase: React.FC = ({mediaHash, theme, setCurrentCopy, currentCopy}) => {\n const {t} = useTranslation();\n const [accessPhraseInputValue, setAccessPhraseInputValue] = useState('');\n const [errorMessage, setErrorMessage] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [currentAccessPhrase, setCurrentAccessPhrase] = useState('');\n const [copyButtonText, setCopyButtonText] = useState(t('general.copy'));\n\n useEffect(() => {\n void initializeAccessPhrase();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n setCopyButtonText(!StringUtil.isNullOrWhiteSpace(currentCopy) && currentCopy === accessPhraseInputValue ? t('general.copied') : t('general.copy'));\n }, [currentCopy]);\n\n const initializeAccessPhrase = async () => {\n try {\n const curAccessPhrase = await mediaApi.getMediaAccessPhrase(mediaHash);\n\n if (!StringUtil.isNullOrWhiteSpace(curAccessPhrase)) {\n setAccessPhraseInputValue(curAccessPhrase);\n setCurrentAccessPhrase(curAccessPhrase);\n } else {\n await generateAccessPhrase();\n }\n } catch {\n setErrorMessage(t('accessPhrase.failedToInitialize'));\n }\n };\n\n const onCopyClick = () => {\n copy(accessPhraseInputValue);\n setCopyButtonText(t('general.copied'));\n setCurrentCopy(accessPhraseInputValue);\n };\n\n const generateAccessPhrase = async () => {\n setIsLoading(true);\n setCopyButtonText(t('general.copy'));\n try {\n const generatedAccessPhrase = await accessPhraseApi.generateAccessPhrase();\n updateAccessPhrase(generatedAccessPhrase);\n await submitAccessPhrase(generatedAccessPhrase);\n } finally {\n setIsLoading(false);\n }\n };\n\n // If we assign a new access phrase on the same frame we submit, the forcedAccessPhrase parameter should be used\n const submitAccessPhrase = async (forcedAccessPhrase?: string) => {\n const accessPhraseToSubmit = sanitizeAccessPhrase(forcedAccessPhrase !== 'undefined' ? forcedAccessPhrase : accessPhraseInputValue);\n\n // if we fail sanitation we do not submit or if any errors come from the check\n if (accessPhraseToSubmit.length === 0 || StringUtil.validateAccessPhraseInput(accessPhraseToSubmit).length !== 0 || accessPhraseToSubmit === currentAccessPhrase) {\n return;\n }\n\n setIsLoading(true);\n setCopyButtonText(t('general.copy'));\n try {\n const returnedAccessPhrase = await mediaApi.updateMediaAccessPhrase(mediaHash, accessPhraseToSubmit);\n if (returnedAccessPhrase !== accessPhraseToSubmit) {\n setAccessPhraseInputValue(returnedAccessPhrase);\n logging.warn(`mismatched Access Phrase: The sent Access Phrase ${accessPhraseToSubmit} does not match the returned ${returnedAccessPhrase} due to differing normalization methods.`);\n }\n setCurrentAccessPhrase(returnedAccessPhrase);\n } catch {\n setErrorMessage(t('accessPhrase.failedToSubmit'));\n }\n setIsLoading(false);\n };\n\n const updateAccessPhrase = (newString: string): void => {\n setAccessPhraseInputValue(accessPhraseCheck(newString));\n };\n\n const onChange = (evt: React.ChangeEvent): void => {\n updateAccessPhrase(evt.target.value);\n };\n\n const sanitizeAccessPhrase = (value: string) => {\n // all ws combination in input changed to a single space, note we also 'trim()' the value we actually submit\n // to server; so leading and trailing ws will not be submitted to handle accidental newlines and non-printables\n value = StringUtil.sanitizeAccessPhraseSubmit(value);\n if (value.length === 0) {\n setErrorMessage(t('accessPhrase.noLength'));\n return '';\n }\n setAccessPhraseInputValue(value);\n return value;\n };\n\n const accessPhraseCheck = (newString: string): string => {\n const errors = StringUtil.validateAccessPhraseInput(newString);\n setErrorMessage(null);\n if (errors.length !== 0) {\n if (errors.includes('accessPhrase.unprintableCharacter')) {\n setErrorMessage(t('accessPhrase.unprintableCharacter'));\n // eslint-disable-next-line no-control-regex\n newString = newString.replace(/[\\x00-\\x1F]+/g, '');\n }\n if (errors.includes('accessPhrase.maxLength')) {\n setErrorMessage(t('status.accessPhraseRequired.errorMaxLength', {maxLength: Constants.maxAccessPhraseLength}));\n }\n newString = newString.replace(/\\s+/g, ' ');\n }\n return newString;\n };\n\n return (\n
\n \n submitAccessPhrase(accessPhraseInputValue)}\n testId=\"access-phrase-text\"\n themeName={theme}\n disabled={isLoading}\n />\n \n \n \n \n \n
\n );\n};\n\nexport interface ISetAccessPhraseProps {\n mediaHash: string;\n setCurrentCopy?(e: string): void;\n currentCopy: string;\n}\n\nexport interface IStateMappedProps {\n theme: themeNames;\n}\n\nconst mapStatesToProps = (\n {mediaHash, setCurrentCopy, currentCopy}: ISetAccessPhraseProps,\n {theme}: Partial\n): IStateMappedProps & ISetAccessPhraseProps => ({theme, mediaHash, setCurrentCopy, currentCopy});\n\nexport default withMemoizedContexts(mapStatesToProps, themeStore)(SetAccessPhraseBase);\n","import React, {useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {BasicModal, ControlButton, ControlButtonType, CustomSelectInput, SelectInput, SlideToggle, Tabs, themeNames, TscStyles} from '@techsmith/tsc-cloud-style-guide';\nimport {MediaPrivacy} from '../../model/mediaDetails';\nimport {Trans, useTranslation} from 'react-i18next';\nimport {MediaPrivacyOptionModel} from '../../model/mediaPrivacyOptionModel';\nimport {getMediaPrivacyOptions} from '../../util/MediaPrivacyOptionsGenerator';\nimport '../../static/css/modal.less';\nimport styled from 'styled-components';\nimport {ITab} from '../../model/tab';\nimport ShareMediaLink from './ShareMediaLink';\nimport {MinWidthButtonWrapper, StyledWarning} from '../util/StyledElements';\nimport EmbedCodeFormField from './EmbedCodeFormField';\nimport {IWorkerState, SetupWorkerState} from '../../model/workerState';\nimport mediaApi from '../../service/mediaApi';\nimport ConfirmPrivacyChangeModal from './ConfirmPrivacyChangeModal';\nimport {CaptioningTypes, ICaptionData} from '../../model/captionModels';\nimport config from '../../service/config';\nimport CssUtil from '../../util/CssUtil';\nimport {IConversationData} from '../../model/conversationModel';\nimport withMemoizedContexts from '../../context/contextContainerHoC';\nimport {conversationsStore} from '../../context/conversationsProvider';\nimport Constants from '../../constants/Constants';\nimport {selectedConversationStore} from '../../context/selectedConversationProvider';\nimport cssConstants from '../../constants/cssConstants';\nimport {themeStore} from '../../context/themeProvider';\nimport {mediaStore, updateMediaState} from '../../context/mediaProvider';\nimport {captionDataStore} from '../../context/captionDataProvider';\nimport useModalPortal from '../util/ModalPortalHelper';\nimport SetAccessPhrase from './SetAccessPhrase';\nimport {IBaseLibrary} from '../../model/library';\nimport accessPhraseApi from '../../service/accessPhraseApi';\n\nconst PrivacySelectWrapper = styled.div`\n padding-right: 2px;\n text-align: start;\n`;\n\nconst ShareOptionsContainer = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst AccessPhraseToggle = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst backgroundAlpha = 0.1;\n\nconst AccessPhraseMessage = styled.span`\n font-size: 0.8125rem;\n`;\n\nconst ShareOptionsWrapper = styled.div<{theme: themeNames; hasWarning: boolean}>`\n display: flex;\n flex-direction: column;\n background-color: ${props =>\n props.hasWarning ? CssUtil.toRgba(TscStyles.color.message.caution, backgroundAlpha) :\n props.theme === themeNames.dusk ? TscStyles.color.ui.dusk.mediumDark :\n TscStyles.color.ui.dawn.lightMedium};\n border: 1px solid ${props =>\n props.hasWarning ? TscStyles.color.message.caution :\n props.theme === themeNames.dusk ? TscStyles.color.ui.dusk.dark :\n TscStyles.color.ui.dawn.medium};\n border-radius: 4px;\n`;\n\nconst AccessPhraseWrapper = styled.div<{theme: themeNames}>`\n display: flex;\n flex-direction: column;\n background-color: ${props =>\n props.theme === themeNames.dusk ? TscStyles.color.ui.dusk.mediumDark :\n TscStyles.color.ui.dawn.lightMedium};\n border: 1px solid ${props =>\n props.theme === themeNames.dusk ? TscStyles.color.ui.dusk.dark :\n TscStyles.color.ui.dawn.medium};\n border-radius: 4px;\n`;\n\nconst TabsHeaderWrapper = styled.div<{theme: themeNames}>`\n height: 2.25rem;\n border-bottom: 1px solid ${props => props.theme === themeNames.dusk ? TscStyles.color.ui.dusk.dark : TscStyles.color.ui.dawn.medium};\n\n > div {\n height: 2.25rem;\n\n button {\n margin: 0;\n }\n\n span {\n font-size: 0.8125rem;\n text-transform: uppercase;\n font-weight: 600;\n color: ${props => props.theme === themeNames.dusk ? TscStyles.color.text.light : TscStyles.color.text.mediumDark};\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n }\n`;\n\nconst TabBodyWrapper = styled.div`\n padding: 1rem 1rem 0 1rem;\n`;\n\nconst InvalidMediaPrivacyWrapper = styled.span`\n text-align: center;\n padding: 1rem;\n`;\n\nconst BoldText = styled.span`\n font-weight: ${TscStyles.font.weight.semibold};\n padding-left: 0.25rem;\n display: inline-flex;\n`;\n\nexport const ShareModalBase: React.FC = ({onClose, OwnerLibrary, HasAccessPhrase, conversations, VideoReviewId, theme, Privacy, Hash, CaptioningAssignedToEmail, Url, MediaStoreWorkerState, captionData}) => {\n const {t} = useTranslation();\n const [options] = useState([...getMediaPrivacyOptions().values()]);\n const [isGetLinkSelected, setIsGetLinkSelected] = useState(true);\n const [state, setState] = SetupWorkerState();\n const [showPrivateConfirmationModal, setShowPrivateConfirmationModal] = useState(false);\n const [warningMessages, setWarningMessages] = useState([]);\n const [selectPrivacyOption, setSelectPrivacyOption] = useState(Privacy);\n const [selectedConversationId, setSelectedConversationId] = useState(VideoReviewId);\n const noConversationKey = 'shareWithoutConversation';\n const conversationOptions = [{value: noConversationKey, label: t('share.shareWithoutConversation')}];\n const [currentCopy, setCurrentCopy] = useState('');\n const [isAccessPhraseEnabled, setIsAccessPhraseEnabled] = useState(HasAccessPhrase);\n\n conversations?.forEach(conversation => {\n conversationOptions.push({value: conversation.VideoReviewId, label: conversation.Title});\n });\n\n React.useEffect(() => {\n const messages = [];\n if (CaptioningAssignedToEmail) {\n messages.push(t('confirmPrivacyChange.assignee'));\n }\n if (captionData?.filter(c => c.CaptioningType === CaptioningTypes.ThirdParty).length > 0) {\n messages.push(t('confirmPrivacyChange.captions'));\n }\n\n setWarningMessages(messages);\n }, [Hash, captionData]);\n\n React.useEffect(() => {\n setSelectPrivacyOption(Privacy);\n }, [Privacy]);\n\n React.useEffect(() => setState({...state, isWorking: MediaStoreWorkerState.isWorking, hasError: MediaStoreWorkerState.hasError}), [MediaStoreWorkerState]);\n\n const updatePrivacy = async (newPrivacy: MediaPrivacy) => {\n setState({...state, hasError: false});\n if (Privacy !== newPrivacy) {\n setState({...state, isWorking: true});\n try {\n await mediaApi.updatePrivacy(Hash, newPrivacy);\n updateMediaState({Privacy: newPrivacy});\n setState({isWorking: false, hasError: false});\n } catch {\n setState({isWorking: false, hasError: true});\n }\n }\n };\n\n const handleOptionSelect = async (newPrivacy: MediaPrivacy) => {\n setSelectPrivacyOption(newPrivacy);\n if (newPrivacy === MediaPrivacy.private && warningMessages.length > 0) {\n setShowPrivateConfirmationModal(true);\n } else {\n await updatePrivacy(newPrivacy);\n }\n };\n\n const onConfirmClick = async () => {\n setShowPrivateConfirmationModal(false);\n await updatePrivacy(MediaPrivacy.private);\n };\n\n const onCloseClick = () => {\n setSelectPrivacyOption(Privacy);\n setShowPrivateConfirmationModal(false);\n };\n\n const updateSelectedConversationId = (e: React.ChangeEvent) => {\n if (e.target.value === noConversationKey) {\n setSelectedConversationId('');\n } else {\n setSelectedConversationId(e.target.value);\n }\n };\n\n const onToggleAccessPhraseClick = async () => {\n if (isAccessPhraseEnabled) {\n await mediaApi.clearMediaAccessPhrase(Hash);\n } else {\n await mediaApi.updateMediaAccessPhrase(Hash, await accessPhraseApi.generateAccessPhrase());\n }\n setIsAccessPhraseEnabled(!isAccessPhraseEnabled);\n updateMediaState({HasAccessPhrase: !isAccessPhraseEnabled});\n };\n\n const tabs: ITab[] = [\n {\n text: t('share.linkTabText'),\n isSelected: isGetLinkSelected,\n onClick: () => setIsGetLinkSelected(true)\n }, {\n text: t('share.embedTabText'),\n isSelected: !isGetLinkSelected,\n onClick: () => setIsGetLinkSelected(false)\n }\n ];\n\n const privacySetting = getMediaPrivacyOptions().get(MediaPrivacy.private).label;\n\n const target = useModalPortal();\n\n return ReactDOM.createPortal(\n <>\n \n
\n
\n {config.showPrivacySettingOnShareModal &&
\n \n {state.hasError && {t('general.errorText')}}\n \n \n
}\n \n \n {Privacy === MediaPrivacy.private ?\n \n \n Media set to\n {{privacySetting}}.\n cannot be shared. Change the privacy setting to get a shareable link.\n \n :\n <>\n \n \n \n \n {isGetLinkSelected && <>\n {!config.featureSwitches.UseSingleConversation && !!conversations?.length &&
\n \n
}\n setCurrentCopy(e)} currentCopy={currentCopy}/>\n }\n {!isGetLinkSelected && }\n
\n \n }\n
\n
\n {(config.featureSwitches.EnableMediaAccessPhrase && (config.isAdmin || config.user.TechSmithId === OwnerLibrary.User.TechSmithId) && Privacy !== MediaPrivacy.private) &&\n \n \n \n \n \n \n {isAccessPhraseEnabled &&\n <>\n {t('accessPhrase.message')}\n setCurrentCopy(e)} currentCopy={currentCopy} />\n \n }\n \n \n \n }\n
\n \n \n \n
\n
\n
\n
\n {showPrivateConfirmationModal && }\n , target);\n};\n\nexport interface IShareModalProps {\n onClose(): void;\n}\n\nexport interface IStateMappedProps {\n conversations: IConversationData[];\n VideoReviewId: string;\n theme: themeNames;\n Privacy: MediaPrivacy;\n Hash: string;\n CaptioningAssignedToEmail: string;\n Url: string;\n captionData: ICaptionData[];\n HasAccessPhrase: boolean;\n OwnerLibrary: IBaseLibrary;\n MediaStoreWorkerState: IWorkerState;\n}\n\nconst mapStatesToProps = (\n {onClose}: IShareModalProps,\n {conversations}: Partial,\n {VideoReviewId}: Partial,\n {theme}: Partial,\n {Privacy, Hash, CaptioningAssignedToEmail, Url, HasAccessPhrase, OwnerLibrary, MediaStoreWorkerState}: Partial,\n {captionData}: Partial\n): IShareModalProps & IStateMappedProps => ({onClose, conversations, VideoReviewId, theme, Privacy, Hash, CaptioningAssignedToEmail, Url, HasAccessPhrase, OwnerLibrary, MediaStoreWorkerState, captionData});\n\nexport default withMemoizedContexts(mapStatesToProps, conversationsStore, selectedConversationStore, themeStore, mediaStore, captionDataStore)(ShareModalBase);\n","import ApiUtil from '../util/ApiUtil';\nimport Constants from '../constants/Constants';\nimport {IAccessPhrase} from '../model/accessPhraseModel';\n\nconst accessPhraseBaseUrl = '/api/v1/accessphrase';\n\nconst generateAccessPhrase = async () => {\n const response = await ApiUtil.executePostAsync(accessPhraseBaseUrl, [Constants.statusCodes.ok]);\n return response.data.accessPhrase;\n};\n\nexport default {\n generateAccessPhrase\n};\n","import React from 'react';\nimport {MediaPrivacy} from '../model/mediaDetails';\nimport {MediaPrivacyOptionModel} from '../model/mediaPrivacyOptionModel';\nimport config from '../service/config';\nimport i18n from 'i18next';\nimport {Glyphs} from '@techsmith/tsc-cloud-style-guide';\n\nexport const getMediaPrivacyOptions = () => {\n let publicTitle;\n let publicDescription;\n let privateTitle;\n let privateDescription;\n const isPublicOptionEnabled = config.arePublicVideosEnabled || config.isAdmin;\n const isListedOptionEnabled = !config.featureSwitches.DisableListedMediaPrivacy || config.isAdmin;\n\n const privacyExtras = {\n organizationName: config.organizationName,\n applicationShortName: config.applicationShortName\n };\n\n if (config.featureSwitches.HideEnterprisePrivacyOptions) {\n publicTitle = i18n.t('privacy.media.public.singleuser.title');\n publicDescription = i18n.t('privacy.media.public.singleuser.description', privacyExtras);\n privateTitle = i18n.t('privacy.media.private.singleuser.user.title');\n privateDescription = i18n.t('privacy.media.private.singleuser.user.description');\n } else {\n publicDescription = i18n.t('privacy.media.public.enterprise.description', privacyExtras);\n publicTitle = i18n.t('privacy.media.public.enterprise.title');\n privateTitle = i18n.t('privacy.media.private.enterprise.user.title');\n privateDescription = i18n.t('privacy.media.private.enterprise.user.description');\n }\n\n const optionsMap = new Map();\n\n optionsMap.set(MediaPrivacy.public, {\n value: MediaPrivacy.public,\n label: publicTitle,\n subtext: publicDescription,\n glyph: ,\n disabled: !isPublicOptionEnabled,\n badgeText: !isPublicOptionEnabled ? i18n.t('privacy.adminOnlyText') : ''\n });\n\n !config.featureSwitches.HideEnterprisePrivacyOptions && optionsMap.set(MediaPrivacy.listed, {\n value: MediaPrivacy.listed,\n label: i18n.t('privacy.media.listedOrg.title', privacyExtras),\n subtext: i18n.t('privacy.media.listedOrg.description', privacyExtras),\n glyph: ,\n disabled: !isListedOptionEnabled,\n badgeText: !isListedOptionEnabled ? i18n.t('privacy.adminOnlyText') : ''\n });\n\n !config.featureSwitches.HideEnterprisePrivacyOptions && optionsMap.set(MediaPrivacy.unlisted, {\n value: MediaPrivacy.unlisted,\n label: i18n.t('privacy.media.unlistedOrg.title', privacyExtras),\n subtext: i18n.t('privacy.media.unlistedOrg.description', privacyExtras),\n glyph: ,\n disabled: false\n });\n\n optionsMap.set(MediaPrivacy.private, {\n value: MediaPrivacy.private,\n label: privateTitle,\n subtext: privateDescription,\n glyph: ,\n disabled: false\n });\n\n return optionsMap;\n};\n"],"names":["onClose","onConfirm","warnings","t","useTranslation","AlertModal","title","confirmButtonType","ControlButtonType","destructive","confirmContent","onDismiss","dismissButtonType","secondary","dismissContent","modalWidth","map","message","index","className","key","ConfirmPrivacyChangeModal","i","CopyMediaModalBase","hideConfirmationButtons","selectedMediaUrl","theme","activeFolder","folderTree","useState","label","value","folderOptions","setFolderOptions","loggedInUserIsOwner","libraryConfig","loggedInUserIsProfileOwner","config","watchConfig","isOwner","getFolderTreeForLoggedInUser","folderApi","getFolderTree","user","TechSmithId","loggedInUserFolderTree","updatedFolderOptions","SubFolders","forEach","f","push","Name","Hash","subfolder","Object","assign","useEffect","didCopyMedia","isVisible","isWorking","hasError","selectedFolderHash","media","ParentFolder","copiedMedia","copyState","setCopyState","onCopy","folderHash","videoApi","copyMedia","shouldCloseAutomaticallyAfterCopyingMedia","logging","error","onCloseCopy","onHide","target","ReactDOM","createPortal","BasicModal","zIndex","cssConstants","modal","visible","width","defaultModalWidth","themeName","isLoading","SelectInput","onChange","e","options","isFullWidth","MinWidthButtonWrapper","ControlButton","buttonType","disabled","onClick","testId","primary","window","location","href","Url","themeStore","foldersStore","DimensionWrapper","styled","div","generateEmbedCode","height","hash","environmentData","PresentationRootUrl","dimensionsWarningTimeoutId","EmbedCodeModalBase","Width","Height","embedWidth","setEmbedWidth","embedHeight","setEmbedHeight","copyButtonText","setCopyButtonText","errorText","setErrorText","React","clearTimeout","clearErrorAndTimeout","onInputBlur","StyledWarning","htmlFor","TextInput","sharedId","toString","parseInt","trim","Math","round","setTimeout","Constants","embedCode","minWidthWarningInPixel","tabIndex","onBlur","type","inputTypes","number","minNumValue","tertiary","glyph","Glyphs","Undo16x16","readOnly","mediaStore","BoldText","span","TscStyles","font","weight","semibold","CheckboxWrapper","color","action","FooterButtonsWrapper","DownloadButtonWrapper","contentBreakpoint","ResetDataModalBase","onResetData","selectedMedia","resetConfirmed","state","setState","onDownloadDataClick","mediaApi","downloadBatchMediaCsv","m","onResetDataClick","removeQuizPromises","featureSwitches","DisableAnalyticsAndQuizEditing","quizApi","removeQuizResponses","clearConversationPromises","conversationApi","clearMediaConversationComments","Promise","all","concat","resetWarningWithQuizMessage","Trans","i18nKey","HyperLinkButton","resetWarningWithoutQuizMessage","resetConfirmation","Checkbox","isChecked","a11Text","downloadDataButton","Download16x16","buttonGroup","hasVideo","some","IsVideo","InputWrapper","ButtonWrapper","SetAccessPhraseBase","mediaHash","setCurrentCopy","currentCopy","accessPhraseInputValue","setAccessPhraseInputValue","errorMessage","setErrorMessage","setIsLoading","currentAccessPhrase","setCurrentAccessPhrase","initializeAccessPhrase","StringUtil","isNullOrWhiteSpace","getMediaAccessPhrase","curAccessPhrase","generateAccessPhrase","accessPhraseApi","generatedAccessPhrase","updateAccessPhrase","submitAccessPhrase","forcedAccessPhrase","accessPhraseToSubmit","sanitizeAccessPhrase","length","validateAccessPhraseInput","updateMediaAccessPhrase","returnedAccessPhrase","warn","newString","accessPhraseCheck","sanitizeAccessPhraseSubmit","errors","includes","replace","maxLength","maxAccessPhraseLength","ariaLabel","evt","placeholder","PrivacySelectWrapper","ShareOptionsContainer","AccessPhraseToggle","AccessPhraseMessage","ShareOptionsWrapper","props","hasWarning","CssUtil","toRgba","caution","themeNames","dusk","ui","mediumDark","dawn","lightMedium","dark","medium","AccessPhraseWrapper","TabsHeaderWrapper","text","light","TabBodyWrapper","InvalidMediaPrivacyWrapper","ShareModalBase","OwnerLibrary","HasAccessPhrase","conversations","VideoReviewId","Privacy","CaptioningAssignedToEmail","MediaStoreWorkerState","captionData","getMediaPrivacyOptions","values","isGetLinkSelected","setIsGetLinkSelected","SetupWorkerState","showPrivateConfirmationModal","setShowPrivateConfirmationModal","warningMessages","setWarningMessages","selectPrivacyOption","setSelectPrivacyOption","selectedConversationId","setSelectedConversationId","conversationOptions","isAccessPhraseEnabled","setIsAccessPhraseEnabled","conversation","Title","messages","filter","c","CaptioningType","CaptioningTypes","ThirdParty","updatePrivacy","newPrivacy","updateMediaState","handleOptionSelect","MediaPrivacy","private","onConfirmClick","onToggleAccessPhraseClick","clearMediaAccessPhrase","tabs","isSelected","privacySetting","get","enableFocusTrap","showPrivacySettingOnShareModal","CustomSelectInput","closeMenuOnClick","Tabs","UseSingleConversation","link","queryParams","EnableMediaAccessPhrase","isAdmin","User","SlideToggle","labelText","conversationsStore","selectedConversationStore","captionDataStore","ApiUtil","executePostAsync","statusCodes","ok","response","data","accessPhrase","publicTitle","publicDescription","privateTitle","privateDescription","isPublicOptionEnabled","arePublicVideosEnabled","isListedOptionEnabled","DisableListedMediaPrivacy","privacyExtras","organizationName","applicationShortName","HideEnterprisePrivacyOptions","i18n","optionsMap","Map","set","public","subtext","PrivacyLink16x16","badgeText","listed","PrivacyOrgAll16x16","unlisted","PrivacyOrgLink16x16","Lock16x16"],"sourceRoot":""}