@clickview/lite 0.69.1-dev.1 → 0.69.1-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{9985-lite-3c49d1b796.chunk.css → 3902-lite-5eaa7e7ae0.chunk.css} +1 -2
- package/dist/css/{555-lite-1b5aa9652d.chunk.css → 4356-lite-b05b606d3d.chunk.css} +1 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1386-332e63f68c-lite.chunk.js +2 -0
- package/dist/scripts/1386-332e63f68c-lite.chunk.js.map +1 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js +3 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js.map +1 -0
- package/dist/scripts/{2640-536c550749-lite.chunk.js → 2640-052f4606f6-lite.chunk.js} +2 -2
- package/dist/scripts/2640-052f4606f6-lite.chunk.js.map +1 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js +2 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js.map +1 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js +2 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js.map +1 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js +2 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js.map +1 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js +2 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js.map +1 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js +3 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js.map +1 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js +2 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-bad2e20859.min.js → bundle-32e967af87.min.js} +3 -3
- package/dist/scripts/{bundle-bad2e20859.min.js.map → bundle-32e967af87.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js +0 -2
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js.map +0 -1
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js +0 -3
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js.map +0 -1
- package/dist/scripts/2640-536c550749-lite.chunk.js.map +0 -1
- package/dist/scripts/555-d811b49435-lite.chunk.js +0 -2
- package/dist/scripts/555-d811b49435-lite.chunk.js.map +0 -1
- package/dist/scripts/5679-b40a221c78-lite.chunk.js +0 -2
- package/dist/scripts/5679-b40a221c78-lite.chunk.js.map +0 -1
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js +0 -2
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js.map +0 -1
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js +0 -3
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js.map +0 -1
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js +0 -2
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js.map +0 -1
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js +0 -2
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js.map +0 -1
- /package/dist/css/{6078-lite-4d1b877b3f.chunk.css → 4527-lite-4d1b877b3f.chunk.css} +0 -0
- /package/dist/scripts/{2392-acfd69dfa3-lite.chunk.js.LICENSE.txt → 2392-19e4bb187b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7210-d8fa7ca624-lite.chunk.js.LICENSE.txt → 7210-2e4563178c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-bad2e20859.min.js.LICENSE.txt → bundle-32e967af87.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2640-536c550749-lite.chunk.js","mappings":"8JAUMA,EAA4C,CAChDC,UAAW,YAaAC,EAAgB,CAC3BC,YAAW,SACTC,EACAC,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,uBACLC,IAAK,kBACLC,KAAM,SACNN,KAAAA,EACAJ,iBAAAA,EACAW,iBAAkB,CAAC,kBACnBN,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAK,YAAW,SACTC,EACAT,EACAC,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,wBAAF,OAA0BK,GAC7BJ,IAAK,mBAAF,OAAqBI,GACxBH,KAAM,QACNN,KAAAA,EACAJ,iBAAAA,EACAW,iBAAkB,CAAE,iCAAkC,YAAF,OAAcE,IAClER,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAO,SAAQ,SACND,EACAR,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,wBAAF,OAA0BK,GAC7BJ,IAAK,YAAF,OAAcI,GACjBE,cAAe,YAAF,OAAcF,GAC3BH,KAAM,QACNV,iBAAAA,EACAK,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAS,cAAa,WAIQ,IAHnBC,EAAA,uDAA8B,CAAC,EAC/BZ,EAA8D,uCAC9DC,EAAkB,uCAClBC,EAAmB,uCAEbE,EAAMS,OAAOC,OAAOF,GAAQG,KAAK,KAEvC,MAAO,CACLZ,IAAM,eAAqB,4BAA6BS,GACxDR,IAAK,kBAAF,OAAoBA,GACvBY,WAAY,SAACC,GACX,MAAO,CACLlB,KAAMkB,EACNC,MAAOD,EAASE,OAChBC,WAAY,CACVC,QAAS,CACPC,KAAM,KACNC,SAAUX,EAAOY,SAIzB,EACAnB,KAAM,QACNoB,WAAW,EACXzB,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAwB,uBAAsB,SAACC,GACrB,MAAO,CACLxB,IAAK,eAAqB,sCAAuC,CAAEyB,SAAUD,IAC7EvB,IAAK,kCAAF,OAAoCuB,GACvCtB,KAAM,SACNV,iBAAAA,EAEJ,EAEAkC,WAAU,SAACF,GACT,MAAO,CACLxB,IAAK,wBAAF,OAA0BwB,EAAE,WAC/BvB,IAAK,WAAF,OAAauB,GAChBF,WAAW,EAEf,E,oDChIUK,E,6CAAZ,SAAYA,GACV,qCACA,oCACD,CAHD,CAAYA,IAAAA,EAAW,K,6sBC4BvB,IACMC,EAAYC,EAAA,mBADA,iBAGLC,EAAkB,CAC7BC,SAAQ,SAAC7B,GACP,MAAO,CAAE,QAAS,cAAe,QAAS8B,SAAS9B,EACrD,EAEA+B,eAAc,SAAC/B,GACb,MAAO,CAAE,QAAS,cAAe,QAAS8B,SAAS9B,EACrD,EAEAgC,uBAAsB,SAACC,EAAiCC,GAEtD,OADqBC,EAAA,uBAAuCF,EAAwBC,GAChEE,QAAO,SAAAC,GAAC,OAAIA,EAAEC,OAAO,IAAEC,KAAI,SAAAF,GAAC,OAAIA,EAAEf,EAAE,GAC1D,EAEAkB,uBAAwB,SAACxC,GACvB,OAAQA,GACN,IAAK,QACH,OAAO,SAACsB,GAAU,OAAK,kBAA4BmB,EAAA,QAAoBnB,GAAI,EAG7E,IAAK,WACH,OAAO,SAACA,GAAU,OAAK,kBAA+BoB,EAAA,cAA6BpB,GAAI,EAGzF,IAAK,UACH,OAAO,SAACA,EAAYqB,GAClB,OAAO,kBAAqCC,EAAA,iBAAsCtB,EAAIqB,GACxF,EAGF,IAAK,SACH,OAAO,SAACrB,GAAU,OAAK,kBAA6BuB,EAAA,SAAsBvB,GAAI,EAGhF,IAAK,cACH,OAAO,SAACA,GAAU,OAChB,kBAA0CwB,EAAA,sBAAwCxB,GAAI,EAG1F,IAAK,OACH,OAAO,SAACA,GAAU,OAChB,kBAA2ByB,EAAA,OAAkBzB,GAAI,EAGzD,EAEA0B,mBAAkB,SAACC,GACjB,OAAQA,GACN,IAAK,WACH,OAAO,cACT,IAAK,UACH,OAAO,oBACT,IAAK,QACH,OAAO,WACT,IAAK,SACH,OAAO,YACT,IAAK,cACH,OAAO,iBACT,IAAK,OACH,OAAO,UAEb,EAEAC,oBAAmB,SAACD,GAClB,MAAO,CACLE,OAAQvB,EAAgBoB,mBAAmBC,GAC3CG,SAAU,WACVC,cAAe,cAEnB,EAEAC,gBAAe,SACbC,EACAJ,EACAF,EACAO,EACA9D,EACA+D,EACAC,EACAC,GAyBA,UAAaJ,EAAU/D,EAAA,cAA0BgE,EAAMrD,QAAST,GAvBhD,SAACkE,GACfC,EAAA,gBAA8B,OAAD,wBACtBD,GAAY,CAAEE,WAAYX,EAAOY,OACtCF,EAAA,eAA6BjC,EAAgBsB,oBAAoBD,GAAa,CAC5Ee,WAAY,UACZb,OAAQ,eACRc,aAAc,WAIdP,GACFA,EAAUE,GAEZH,EAAO9D,QAAQ+B,EAAU,cAAe,CAAEqC,KAAMZ,EAAOY,KAAMG,YAAY,IAC3E,IAEc,WACRP,GACFA,IAEFF,EAAO7D,MAAM8B,EAAU,YAAa,CAAEqC,KAAMZ,EAAOY,KAAMG,YAAY,IACvE,IAGF,EAEAC,8BAA6B,SAACX,EAAcY,GAC1C,IAAMC,EAAW,CACfC,iBAAiBF,aAAW,EAAXA,EAAaG,oBAAoB,EAClDC,iBAAiBJ,aAAW,EAAXA,EAAaK,qBAAqB,GAG/CC,EAAqB,OACxBjD,EAAYkD,gBAAkB,mBAC9BlD,EAAYmD,gBAAkB,mBAGjC,OAAOpB,EAAMqB,QAAQC,QAAO,SAACC,EAAMC,GACjC,OAAKxE,OAAOyE,KAAKP,GAAuB5C,SAASkD,EAAKE,SAGnC,SAAfF,EAAKG,MACPJ,EAAKL,EAAsBM,EAAKE,UAAW,EACrB,UAAfF,EAAKG,QACZJ,EAAKL,EAAsBM,EAAKE,UAAW,GAEtCH,GAPEA,CAQX,GAAGV,EACL,E,oKCzJI9E,EAAY,oBAUZ,SAAU6F,EAAUC,GACxB,IACEC,EAKED,EALFC,SACAC,EAIEF,EAJFE,YACAC,EAGEH,EAHFG,UACAC,EAEEJ,EAFFI,aACAC,EACEL,EADFK,WAGF,OACE,uBAAKC,UAAU,+BACVD,EAAW5E,QACZ,gCACE,uBAAK6E,UAAU,QACb,gBAACC,EAAA,EAAI,CAACrG,UAAWA,EAAWsG,OAAO,eAErC,uBAAKF,UAAU,QACb,gBAACG,EAAA,EAAQ,KACP,gBAACA,EAAA,SAAe,CAACxE,GAAG,mBAAmByE,QAAQ,gBAC5CP,EAAUQ,OAGb,gBAACF,EAAA,OAAa,KACXJ,EAAWnD,KAAI,SAAA0D,GAAI,OAClB,gBAACH,EAAA,OAAa,CACZ/F,IAAG,UAAKkG,EAAKC,MAAK,YAAID,EAAKE,QAC3BC,QAAS,WAAF,OAAQX,EAAaQ,EAAK,GAEhCA,EAAKD,MACQ,QAO5B,uBAAKL,UAAU,QACb,gBAACC,EAAA,EAAI,CAACrG,UAAWA,EAAWsG,OAAO,cAErC,gBAACQ,EAAA,EAAQ,CAAC/E,GAAG,oBAAoBgF,QAAShB,EAAUiB,SAAU,WAAF,OAAQhB,GAAaD,EAAS,IAGhG,C,0BC1DA,SAAgB,eAAiB,QAAQ,iBAAmB,S,ggCCa5D,IAAM,EAAY,oBACZ5D,EAAYC,EAAA,mBAAiC,GAW7C,SAAU6E,EAAUnB,GACxB,IAAMK,EAAae,EAAA,wBAEoC,IAArB,YAAe,GAAM,GAA/CnB,EAAQ,KAAEC,EAAW,KACwD,IAAzC,WAAkC,QAAO,GAA7EmB,EAAa,KAAEC,EAAgB,KACsE,IAAzE,WAAgCjB,EAAWkB,MAAK,SAAAC,GAAC,MAAgB,SAAZA,EAAEX,KAAgB,KAAE,GAArGV,EAAS,KAAEC,EAAY,KASzB3F,EAAM2G,EAAA,gBAA0B,CACpCK,SAAUzB,EAAM7B,MAAMuD,KAAKC,kBAC3BC,KAAM5B,EAAM6B,QACZ/G,QAASkF,EAAM7B,MAAMrD,QACrBmF,SAAAA,IAGI6B,EAAcV,EAAA,iBAA2B,CAC7C3G,IAAAA,EACAmG,KAAMT,IAGR,OACE,gCACE,uBAAKG,UAAU,QACb,gBAAC,aAAiC,CAACR,MAAO,GACxC,6BAAO,gBAACS,EAAA,EAAI,CAACrG,UAAW,EAAWsG,OAAO,WAC1C,uBAAKF,UAAU,0BACb,4BACEA,UAAS,2CAAsC,kBAC/CyB,YAAY,EACZjC,MAAOgC,EACPE,KAAM,EACNC,UAAQ,IAEV,gBAAC,IAAe,CAACC,OAhC3B,WACEZ,EAAiB,UACjBa,YAAW,kBAAMb,EAAiB,OAAO,GAAE,IAG7C,EA2B2Cc,KAAMN,GACrC,0BAAQxB,UAAS,wFAAmF,oBAA2B3F,KAAK,UACjI0B,EAAUgF,MAIjB,gBAACtB,EAAS,CACRE,SAAUA,EACVC,YAAaA,EACbC,UAAWA,EACXC,aAAcA,EACdC,WAAYA,MAIlB,gBAACgC,EAAA,EAAY,CAACC,MAAM,SAClB,gBAACD,EAAA,SAAmB,CAACtB,QAASf,EAAMuC,cAAeH,KAAM/F,EAAU,QAASqE,QAAQ,UAI5F,C,ICrFY8B,E,6CAAZ,SAAYA,GACV,kBACA,oBACA,wCACA,8DACA,oEACA,wBACA,8BACA,iBACD,CATD,CAAYA,IAAAA,EAAY,K,yKCYxB,IACM,EAAYlG,EAAA,mBADA,iBAuBLmG,EAAkB,CAC7BC,sBAAuB,SAAClD,GACtB,IAAQmD,EAA6DnD,EAA7DmD,aAAcC,EAA+CpD,EAA/CoD,QAASC,EAAsCrD,EAAtCqD,cAAe/E,EAAuB0B,EAAvB1B,OAAQgF,EAAetD,EAAfsD,WAEtD,GAAIH,IAAiBI,EAAA,SAAoBJ,IAAiBI,EAAA,SACxD,MAAO,CAAEC,KAAM,eAAwBZ,KAAM,EAAUS,EAAgB,uBAAyB,4BAMlG,IAAII,MAAMC,QAAQN,GAGlB,OAAQA,GACN,KAAKJ,EAAaW,OAChB,MAAO,CAAEH,KAAM,eAAwBZ,KAAM,EAAU,sBACzD,KAAKI,EAAaY,6BAChB,MAAO,CAAEJ,KAAM,eAAwBZ,KAAM,EAAU,kBACzD,KAAKI,EAAaa,UAChB,MAAO,CACLL,KAAM,UACNZ,KAAMK,EAAgBa,qBAAqBxF,EAAQgF,EAAYD,IAEnE,KAAKL,EAAae,gCAChB,MAAO,CAAEP,KAAM,UAAmBZ,KAAM,EAAUS,EAAgB,uBAAyB,4BAC7F,KAAKL,EAAagB,aAChB,MAAO,CACLR,KAAM,UACNZ,KAAMK,EAAgBa,qBAAqBxF,EAAQgF,EAAYD,IAEnE,KAAKL,EAAaiB,QAChB,MAAO,CAAET,KAAM,UAAmBZ,KAAM,EAAU,mBACpD,KAAKI,EAAakB,kBAChB,MAAO,CAAEV,KAAM,UAAmBZ,KAAM,EAAU,uBACpD,QACE,MAAO,CAAC,EAEd,EAEAuB,eAAgB,SAACnE,GACf,IAAQoE,EAAgDpE,EAAhDoE,eAAgBC,EAAgCrE,EAAhCqE,oBAAqBC,EAAWtE,EAAXsE,OAC7C,IAAKF,IAAmBC,EACtB,OAAOpB,EAAgBC,sBAAsBlD,GAE/C,IAAKoE,EACH,MAAO,CAAEZ,KAAM,UAAmBZ,KAAM,EAAU,aAEpD,IAAM2B,EAAUC,EAAA,UAAmBJ,GAC7BK,EAAgBD,EAAA,cAAuBJ,EAAgB,IAAIM,KAAQ,OAEzE,IAAKL,EAAqB,CACxB,IAAI,EAAOE,EACP,EAAU,eACV,EAAU,SAAU,CAAEI,KAAMF,IAKhC,OAHIH,IAAWM,EAAA,YACb,EAAO,EAAU,YAEZ,CAAEpB,KAAM,WAAoBZ,KAAA,EACpC,CAED,IAAIA,EAAO2B,EACP,EAAU,uBACV,EAAU,iBAAkB,CAAEI,KAAMF,IAKxC,OAHIH,IAAWM,EAAA,YACbhC,EAAO,EAAU,oBAEZ,CAAEY,KAAM,UAAmBZ,KAAAA,EACpC,EAEAkB,qBAAoB,SAACe,EAAmBvB,EAAyBD,G,MAC/D,IAAKwB,IAAUvB,EACb,OAAO,KAET,GAAID,EACF,OAAO,EAAU,wBAEnB,IAAKyB,EAAA,cAAwBD,GAC3B,OAAO,EAAU,oBAEnB,IAAME,EAAcC,EAAA,yBAA4D,QAAnB,EAAAH,EAAMI,qBAAa,eAAE3E,OAKlF,GAAIyE,IAAgBA,EAAYG,UAC9B,OAAO,EAAU,cAEnB,IAEIC,EACAC,EAE8B,EAL5BC,EAASP,EAAA,YAAsBD,GAGF,E,64BAAA,CAEXvB,GAAU,IAAlC,IAAK,EAAL,qBAAoC,KAAzB4B,EAAS,UAIbC,GAAgBD,EAAU5E,MAAQ6E,EAAa7E,SAClD6E,EAAeD,GAKbH,GAAeG,EAAU5E,OAASyE,EAAYG,WAM9CG,GAAUH,EAAUG,OAAO/E,MAAQ+E,EAAO/E,SAMzC8E,GAAuBF,EAAU5E,MAAQ8E,EAAoB9E,SAChE8E,EAAsBF,EACzB,CAED,+BAGA,OAAKE,EAQqB,IAAtB9B,EAAWrH,OACN,EAAU,iBAMfmJ,EAAoB9E,QAAU6E,EAAa7E,MACtC,EAAU,eAAgB,CAAE4E,UAAWC,EAAajG,OAEtD,EAAU,iBAAkB,CAAEgG,UAAWE,EAAoBlG,OAjB3D,EAAU,YAkBrB,EAEAoG,uBAAsB,SAAClC,GAMrB,OAAIA,EAAQmC,YACH,KAELnC,EAAQoC,mBACH,YAKLpC,EAAQqC,gBACH,eADT,CAEF,G,WCpMF,SAAgB,OAAS,SCczB,ICfYC,EDgBN,EAAY5I,EAAA,mBADA,4BAUlB,SAAS6I,EAAiBnF,GACxB,IAAQoF,EAAwCpF,EAAxCoF,OAAQC,EAAgCrF,EAAhCqF,MAAOC,EAAyBtF,EAAzBsF,YAAavE,EAAYf,EAAZe,QAEpC,OACE,0BACET,UAAS,UAAK8E,EAAS,SAAgB,GAAE,yEACzCrE,QAAUqE,EAAmB,KAAVrE,GAEnB,uBAAKT,UAAU,QACb,qBAAGA,UAAU,mBAAmB+E,GAChC,qBAAG/E,UAAU,qBAAqBgF,IAEnCF,GAAU,gBAACG,EAAA,EAAY,CAACC,QAAS,aAGxC,CAaM,SAAUC,EAAiBzF,GAC/B,IAAM0F,EAAmB1F,EAAM2F,4BAA8B3F,EAAM6C,cAE7D+C,EAAanD,EAAgBqC,uBAAuB9E,EAAM6F,eAEhE,EAAuBpD,EAAgBC,sBAAsB,CAC3DE,QAAS5C,EAAM4C,QACfD,aAAc3C,EAAM2C,aACpBE,cAAe7C,EAAM6C,cACrB/E,OAAQkC,EAAMlC,OACdgF,WAAY9C,EAAM8C,aALZE,EAAI,EAAJA,KAAMZ,EAAI,EAAJA,KAQR0D,EAAoBrD,EAAgBa,qBAAqBtD,EAAMlC,OAAQkC,EAAM8C,WAAY9C,EAAM6C,eAE/FkD,EAAoD,YAAfH,EACzCpD,EAAagB,aAAehB,EAAaa,UACrC2C,EAAmD,YAAfJ,EACxCpD,EAAae,gCAAkCf,EAAaY,6BAE9D,OAAKsC,EAUH,uBAAKpF,UAAU,aACb,0BACEA,UAAS,iEAAkE,iBAC5D,YAEf,gBAACiF,EAAA,EAAY,CAACC,QAASxC,EAAM1C,UAAU,uBACvC,wBAAMA,UAAU,QAAQ8B,IAE1B,sBAAI9B,UAAU,gCACZ,0BACE,gBAAC6E,EAAgB,CACfC,OAAQpF,EAAM4C,UAAYoD,EAC1BX,MAAO,EAAU,gBACjBC,YAAwC,EAAZ,YAAfM,EAAqC,0BAAuC,iBACzF7E,QAAS,WAAF,OAAQf,EAAMiG,mBAAmBD,EAAoB,KAGhE,0BACE,gBAACb,EAAgB,CACfC,OAAQpF,EAAM4C,UAAYmD,EAC1BV,MAAO,EAAU,kBACjBC,YAAaQ,EACb/E,QAAS,WAAF,OAAQf,EAAMiG,mBAAmBF,EAAqB,KAWjD,YAAfH,GACC,0BACE,gBAACT,EAAgB,CACfC,OAAQpF,EAAM4C,UAAYJ,EAAaW,OACvCkC,MAAO,EAAU,UACjBC,YAAa,EAAU,qBACvBvE,QAAS,WAAF,OAAQf,EAAMiG,mBAAmBzD,EAAaW,OAAO,OA/CpE,uBAAK7C,UAAU,6BACb,gBAACiF,EAAA,EAAY,CAACC,QAASxC,EAAM1C,UAAU,uBACvC,4BAAO8B,GAoDf,ECjIA,SAAY8C,GACV,cACA,wBACA,cACA,aACD,CALD,CAAYA,IAAAA,EAAS,K,qHCyBf,SAAUgB,EAAmBlG,GACjC,I,IAAmD,G,EAArB,YAAe,G,EAAM,E,o4BAA3CmG,EAAM,KAAEC,EAAS,KAkBzB,OACE,uBAAK9F,UAAU,oEACZN,EAAM7B,MAAMxD,OAASuK,EAAUmB,MAC9B,gBAACZ,EAAgB,CACf7C,QAAS5C,EAAM7B,MAAMyE,QACrBiD,cAAe7F,EAAM4C,QACrBD,aAAc3C,EAAMlC,OAAOwI,OAC3BxI,OAAQkC,EAAMlC,OACdgF,WAAY9C,EAAM8C,WAElBD,cAAe7C,EAAM6C,cACrB8C,0BAA2B3F,EAAM2F,0BACjCM,mBAAoBjG,EAAMiG,qBAG9B,gBAACM,EAAA,EAAS,CAACzG,MAAOE,EAAM7B,MAAMuD,KAAK8E,aAActE,OA/BrD,WACMiE,IAGJC,GAAU,GAEV5H,EAAA,gBAA8B,CAC5BvC,GAAI+D,EAAMlC,OAAO7B,GACjByC,KAAMsB,EAAMlC,OAAOY,MAClBF,EAAA,eAA6BjC,EAAA,sBAAoCyD,EAAMpC,YAAa,CACrFe,WAAY,WACZ8H,WAAY,cACZ7H,aAAc,WAElB,IAoBF,C,eC7DA,SAAgB,gBAAkB,SCQlC,IAAM,EAAY,uBAMZ,SAAU8H,EAAa1G,GAC3B,OACE,gBAAC2G,EAAA,EAAS,CACR5F,QAASf,EAAM4G,oBACftG,UAAS,4CAAuC,oBAEhD,uBAAKA,UAAU,6BACb,uBAAKA,UAAU,QACb,gBAACiF,EAAA,EAAY,CAACC,QAAS,UAAmB5E,KAAM2E,EAAAsB,EAAA,YAElD,gBAACtG,EAAA,EAAI,CAACrG,UAAW,EAAWsG,OAAO,kBAI3C,C,qJChBA,IAAM,GAAY,gCACZ,GAAYlE,EAAA,mBAAiC,IAW7C,SAAUwK,GAAsB9G,GACpC,I,IAIC,G,GAJqC,OACpC+G,EAAA,0BACA,CAAEC,MAAM,GACR,CAAEC,QAAS,oB,EACZ,E,o4BAJOC,EAAU,KAAEC,EAAa,KAMjC,OAAKD,EAAWF,KAId,uBAAK1G,UAAS,4DACZ,gBAAC8G,EAAA,EAAO,CACNC,QAASrH,EAAMqH,QACftG,QAAS,WAAK,MAAC,OAAgB,QAAhB,EAAAf,EAAMsH,kBAAU,sBAAI,EACnChH,UAAU,yCAEV,wBAAMA,UAAU,6BACd,gBAACC,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,4BAGvC,0BAAQO,QAAS,WAAF,OAAQoG,EAAc,CAAEH,MAAM,GAAQ,yBAAiB,GAAU,eAC9E,gBAACzB,EAAA,EAAY,CACXC,QAAS,WACT5E,KAAM2E,EAAAsB,EAAA,MACNvG,UAAU,6CAjBT,gCAsBX,C,eCnDMiH,GAAgC,uB,YCHtC,UAAgB,UAAY,QAAQ,iBAAmB,QAAQ,OAAS,SCSxE,IAAMC,GAAoB,KAUpB,SAAUC,GAAkBzH,G,QChBK0H,EAC/BC,EDgBAC,EFfF,SAA8BF,GAI9BA,IACDG,OAAeC,QAAU,CAAEC,UAAW,aAEzC,IAAMJ,GAAS,EAAAK,GAAA,GAAU,yCAA0CN,GASnE,OAPA,aAAgB,W,QACTA,GAAeC,IAGS,QAA7B,EAAW,QAAX,EAAAE,OAAOI,YAAI,eAAEC,wBAAgB,SAAEC,GAAGZ,IACpC,GAAG,CAAEG,EAAYC,IAEVJ,EACT,CEF4Ba,CAAsC,QAAlB,EAAApI,EAAMqI,oBAAY,eAAE5L,SAAS6L,GAAA,oBAG3E,GCpBqCZ,EDkBI,QAAlB,EAAA1H,EAAMqI,oBAAY,eAAE5L,SAAS6L,GAAA,kBCjB9CX,GAAS,EAAAK,GAAA,GAAU,gDAAiDN,GAE1E,aAAgB,W,MACTA,GAAeC,IAGQ,QAA5B,EAAAE,OAAOU,6BAAqB,SAAEC,gBAChC,GAAG,CAAEd,EAAYC,KDYZ3H,EAAMqI,aAAa5M,OACtB,OAAO,KAUT,IAAMgN,EANG,OADCzI,EAAMyI,SACM,KAEFjB,GAKdkB,EAA6B,CAAE5H,OAAQ,GAAF,OAAK2H,EAAQ,MAAM5H,MAAO,GAAF,OAAK4H,EAAQ,OAEhF,OACE,uBAAKnI,UAAU,kCACZN,EAAMqI,aAAa5L,SAAS6L,GAAA,oBAC3B,uBACErM,GAAI2L,EACJtH,UAAS,qCACTqI,MAAOD,GAEP,uBACEpI,UAAU,qBAAoB,YACnBmI,EAAQ,WACTzI,EAAMvF,OAIrBuF,EAAMqI,aAAa5L,SAAS6L,GAAA,mBAC7B,uBAAKhI,UAAS,kCAA6B,eACzC,uBACEA,UAAS,6BAAwB,qBACjCqI,MAAOD,EAA0B,YACtB1I,EAAMvF,IAAG,mBACH,kBAAiB,eACrB,QAAO,oBACDgO,KAM7B,CE3CM,SAAUG,GAAwB5I,GACtC,IAAMqH,EAAUrH,EAAM6I,gCAClB7I,EAAM8I,0BACN9I,EAAM+I,oBAEJC,IAAoBhJ,EAAMqI,aAAa5M,OAE7C,OACE,uBAAK6E,UAAU,oDACZN,EAAMiJ,0BAA4BD,GACjC,gBAAClC,GAAqB,CACpBO,QAASA,EACTC,WAAYtH,EAAMsH,aAItB,uBAAKhH,UAAU,2CACZN,EAAMxD,UACL,gBAACkK,EAAY,CAACE,oBAAqB5G,EAAM4G,sBAE1C5G,EAAMiJ,yBAA2BD,GAChC,gBAACvB,GAAiB,CAChBY,aAAcrI,EAAMqI,aACpB5N,IAAKuF,EAAM7B,MAAMuD,KAAK8E,aACtBc,WAAYtH,EAAMsH,WAClBD,QAASA,KAMrB,CCtDA,UAAgB,gBAAkB,SCQlC,IAAM,GAAY,oCAQZ,SAAU6B,GAA0BlJ,GACxC,OAAKA,EAAMmJ,wBAIT,uBAAK7I,UAAU,8DACb,gBAACqG,EAAA,EAAS,CACR5F,QAASf,EAAMoJ,oBACf9I,UAAS,4CAAuC,qBAEhD,uBAAKA,UAAU,6BACb,uBAAKA,UAAU,QACb,gBAACiF,EAAA,EAAY,CAACC,QAAS,SAAkB5E,KAAM2E,EAAAsB,EAAA,YAEjD,gBAACtG,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,oBAZlC,IAiBX,C,4BCEM,SAAU6I,GAAUrJ,GACxB,IAAQsJ,GAAmB,EAAAC,GAAA,KAAnBD,eAEFE,EAAuBxJ,EAAMxD,UAC7BwD,EAAMiJ,2BAA6BjJ,EAAMqI,aAAa5M,OACtDoN,EAAkCS,EAAeG,GAAA,sBAEvD,OACE,uBAAKnJ,UAAU,4BACb,gBAAC4F,EAAkB,CACjB/H,MAAO6B,EAAM7B,MACbL,OAAQkC,EAAMlC,OACdF,WAAYoC,EAAMpC,WAClBkF,WAAY9C,EAAM8C,WAClBF,QAAS5C,EAAM4C,QACf+C,0BAA2B3F,EAAM2F,0BACjC9C,cAAeyG,EAAeG,GAAA,qBAC9BxD,mBAAoBjG,EAAMiG,qBAE3BjG,EAAM7B,OAASqL,GACd,gBAACZ,GAAuB,CACtBzK,MAAO6B,EAAM7B,MACb3B,SAAUwD,EAAMxD,SAChB6L,aAAcrI,EAAMqI,aACpBQ,gCAAiCA,EACjCI,wBAAyBjJ,EAAMiJ,wBAC/BF,oBAAqB/I,EAAM+I,oBAC3BD,0BAA2B9I,EAAM8I,0BACjClC,oBAAqB5G,EAAM4G,oBAC3BU,WAAYtH,EAAMsH,aAGrBtH,EAAM7B,OAAS6B,EAAMtD,gBACpB,gBAACwM,GAAyB,CACxBC,wBAAyBG,EAAeG,GAAA,2BACxCL,oBAAqBpJ,EAAMoJ,sBAKrC,C,4BCvEM,GAAY,+BAEZ,SAAUM,KACd,IAAMC,GAAc,WAOpB,OACE,uBAAKrJ,UAAU,oDACb,2BACE,yBAAOA,UAAU,MAAMsJ,QAAQ,IAAG,gBAACrJ,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,aACrE,qBAAGF,UAAU,sBAAqB,gBAACC,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,WAEvE,2BACE,gBAACqJ,GAAA,EAAY,CACX9I,QAbR,WACE4I,EAAYG,cAAc,mBAAoBH,EAAYvO,OAAO+D,iBACjEwK,EAAYI,YACd,EAWQC,KAAML,EAAYvO,OAAO+D,mBAKnC,CCxBA,IAAM,GAAY,+BAEZ,SAAU8K,KACd,IAAMN,GAAc,WAOpB,OACE,uBAAKrJ,UAAU,oDACb,2BACE,yBAAOA,UAAU,MAAMsJ,QAAQ,IAAG,gBAACrJ,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,aACrE,qBAAGF,UAAU,sBAAqB,gBAACC,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,WAEvE,2BACE,gBAACqJ,GAAA,EAAY,CACX9I,QAbR,WACE4I,EAAYG,cAAc,mBAAoBH,EAAYvO,OAAO6D,iBACjE0K,EAAYI,YACd,EAWQC,KAAML,EAAYvO,OAAO6D,mBAKnC,C,eC7BaiL,IAAoC,WAASC,MAAM,CAC9DlL,iBAAiB,WACjBE,iBAAiB,a,YCUb,GAAY,wBACZ,GAAY7C,EAAA,mBAAiC,IAQnD,SAAS8N,KACP,OACE,gBAAC,MAAI,CAAC9J,UAAU,4BACd,sBAAIA,UAAU,MACZ,gBAACC,EAAA,EAAI,CAACrG,UAAW,GAAWsG,OAAO,aAErC,gBAACyJ,GAAoB,MACrB,gBAACP,GAAoB,MAG3B,CAEM,SAAUW,GAAcrK,GAa5B,OACE,gCACE,gBAACsK,GAAA,EAAW,CACVC,cAAevK,EAAMuK,cACrBC,SAhBN,SACEnQ,EACAoQ,GAEAzK,EAAM0K,gBAAgB,CACpBlL,QAAS,CACPL,gBAAiB9E,EAAK8E,gBACtBF,gBAAiB5E,EAAK4E,kBAEvBwL,EACL,EAOME,mBAAmB,EACnBC,iBAAkBV,IAElB,uBAAK5J,UAAU,4BACb,gBAAC8J,GAAiB,MAClB,gBAAC/H,EAAA,EAAY,CAACC,MAAM,SAClB,gBAACD,EAAA,SAAmB,CAACtB,QAASf,EAAMuC,cAAeH,KAAM,GAAU,QAAS1B,QAAQ,YAMhG,C,yMC3BA,IACM,GAAYpE,EAAA,mBADA,kBAGZ,SAAUuO,GAAU7K,G,YAClB9B,GAAW,UAEXE,GAAS,UACf,GAKI,EAAA0M,GAAA,GAAY,MAJdC,EAAsB,EAAtBA,uBACAxC,EAAqB,EAArBA,sBACAyC,EAAiB,EAAjBA,kBACArF,EAAyB,EAAzBA,0BAG+D,G,EAAnC,WAA4B,Q,EAAO,E,s4BAAzDsF,EAAM,KAAEC,EAAS,KAEnBC,EAAc,kBAAkCC,GAAA,iBAChDtN,EAASvB,EAAA,yBAAuCyD,EAAMpC,WAA7CrB,CAAyDyD,EAAMqL,SAA0B,QAAhB,EAAAF,EAAY9Q,YAAI,eAAE4B,IACpGqP,EAAS,kBAA6BC,GAAA,YACtCpN,EAAQ,kBAA4B6B,EAAMlF,QAC5CX,EAAA,WAAuB6F,EAAMlF,SAC7BX,EAAA,yBAAqC6F,EAAMqL,WACzCvI,EAAa,mBACD,QAAhB,EAAAqI,EAAY9Q,YAAI,eAAEmR,kBAAmBC,GAAA,aAA4BN,EAAY9Q,KAAKqR,aAE9E9I,EAAU,kBAA2CzI,EAAA,aAAyB6F,EAAMqL,WAKpFtM,EAAc,kBAClB4M,GAAA,SAA6C7N,EAAOzD,KAAM0I,EAAA,gBAA2BjF,EAAOzD,KAAKuR,eACjGnO,GAAA,cAAgCK,EAAOzD,KAAKuR,gBAG9C,SAASlB,EAAgBrQ,EAA0BiE,GACjD/B,EAAA,kBACE2B,EACAJ,EAAOzD,KACP2F,EAAMpC,WACNO,EAAM9D,KACNA,EACA+D,EACA,KACAE,EAEJ,CAEA,SAAS2H,EAAmBrD,GAC1B,UACE1E,EACA/D,EAAA,cACEgE,EAAM9D,KAAKS,QACX,CAAE8H,QAAAA,IACF,kBAAMxE,EAAO9D,QAAQ,GAAU,mBAAoB,CAAEoE,KAAMZ,EAAOzD,KAAKqE,KAAMG,YAAY,IAAQ,IACjG,kBAAMT,EAAO7D,MAAM,GAAU,iBAAkB,CAAEmE,KAAMZ,EAAOzD,KAAKqE,KAAMG,YAAY,IAAQ,IAGnG,CAEA,IAAMgN,KAAe1N,EAAM9D,OACpBiR,EAAOjR,OACPyD,EAAOzD,OACPuI,EAAQvI,OACRyI,GACDkI,GAEN,OACE,gBAACc,GAAA,EAAK,CACJzG,MAAO,GAAU,SACjBiC,WAAYtH,EAAMsH,WAClByE,oBAAqBF,GAEnB,WACA,IAAKA,EAAY,OAAO,KAExB,OAAQZ,GACN,IAAK,OACH,OACE,gBAAC5B,GAAS,CACRzL,WAAYoC,EAAMpC,WAClBE,OAAQA,EAAOzD,KACfyI,WAAYA,EAAWzI,KACvB8D,MAAOA,EAAM9D,KACbuI,QAASA,EAAQvI,KACjB4O,wBAAyBjJ,EAAMiJ,wBAC/BzM,SAAUD,EAAA,WAAyByD,EAAMpC,YACzClB,eAAgBH,EAAA,iBAA+ByD,EAAMpC,YACrDyK,aAAc9L,EAAA,yBAAuCwO,EAAwBxC,GAC7E5C,0BAA2BA,EAC3ByD,oBAAqB,WAAF,OAAQ8B,EAAU,gBAAgB,EACrDtE,oBAAqB,WAAF,OAAQsE,EAAU,aAAa,EAClDjF,mBAAoBA,EACpBqB,WAAYtH,EAAMsH,WAClBwB,0BAA2B9I,EAAM8I,0BACjCC,oBAAqB/I,EAAM+I,sBAGjC,IAAK,gBACH,OACE,gBAACsB,GAAa,CACZE,cAAehO,EAAA,gCAA8C4B,EAAM9D,KAAM0E,EAAY1E,MACrFqQ,gBAAiBA,EACjBnI,cAAe,WAAF,OAAQ2I,EAAU,OAAO,IAG5C,IAAK,aACH,OACE,gBAAC/J,EAAS,CACRrD,OAAQA,EAAOzD,KACfgR,SAAUrL,EAAMqL,SAChBzN,WAAYoC,EAAMpC,WAClBO,MAAOA,EAAM9D,KACbwH,QAASyJ,EAAOjR,KAAKwH,QACrBU,cAAe,WAAF,OAAQ2I,EAAU,OAAO,IAIhD,CA7CE,GAgDR,C,gGC9JA,SAAgB,OAAS,QAAQ,QAAU,S,sGCO3C,IACM7O,EAAYC,EAAA,mBADA,oBAiBZ,SAAUiK,EAAUvG,GACxB,I,IAAmE,G,EAArB,YAAe,G,EAAM,E,o4BAA3DgM,EAAc,KAAEC,EAAiB,KAenCC,EACJ,uBAAK5L,UAAU,iDACb,yBACE3F,KAAK,OACLwR,aAAa,MACb7L,UAAS,uBAAoC,WAAlBN,EAAMoM,QAAuB,SAAgB,IACxErK,YAAY,EACZjC,MAAOE,EAAMF,MACbmC,UAAQ,IAEV,gBAAC,EAAAoK,gBAAe,CAACjK,KAAMpC,EAAMF,OAC3B,0BACEwM,KAAMN,EAAiB,SAAW,GAClC1L,UAAS,gEACTS,QA3BR,SAAgBwL,GACdA,EAAEC,iBAEExM,EAAMkC,QACRlC,EAAMkC,SAEJ8J,IAGJC,GAAkB,GAClB9J,YAAW,kBAAM8J,GAAkB,EAAM,GAAE,KAC7C,GAkBSD,EACChM,EAAMyM,YAAcpQ,EAAU,UAC9B2D,EAAM0M,UAAYrQ,EAAU,WAOtC,OAAI2D,EAAMW,MAEN,gBAACgM,EAAA,QAAU,CAACrM,UAAU,cACpB,gBAACqM,EAAA,QAAU,KAAE3M,EAAMW,OAClBuL,GAKAA,CACT,CAvDA3F,EAAUqG,aAAe,CACvBR,QAAS,S,6hBCoCL,SAAU9B,EAIdtK,GACA,IAAQ2K,EAAmF3K,EAAnF2K,kBAAmBkC,EAAgE7M,EAAhE6M,mBAAoBtC,EAA4CvK,EAA5CuK,cAAeC,EAA6BxK,EAA7BwK,SAAab,EAAW,EAAK3J,EAArF,uEAMA8M,EAAqCnC,GAAqB3K,EAAM4K,iBAClE5K,EAAM4K,iBAAiBmC,KA3D7B,SAA4DxC,GAC1D,IAAKA,EACH,MAAO,CAAC,EAEV,IAAMnP,EAAS,cAAuBmP,GAetC,OAbA,SAASyC,EAAgBC,GACvB9R,OAAOyE,KAAKxE,GAAQ8R,SAAQ,SAACxS,GACtBU,EAAO+R,eAAezS,KAGvB,aAAsBuS,EAAMvS,IAC9BsS,EAAgBC,EAAMvS,IACC,OAAhBU,EAAOV,WACPU,EAAOV,GAClB,GACF,CAEAsS,CAAgB5R,GACTA,CACT,CAuCkCgS,CAAsB7C,IAClDA,EA4BE8C,EAA+B,CACnCC,mBAAoBtN,EAAMsN,oBAG5B,OACE,gBAAC,KAAM,eACLC,oBAAkB,GACb5D,EAA6D,CAClEY,cAAeuC,EACftC,SAnCoB,SACtBpP,EAAkB,GAEhB,IADAoS,EAAa,EAAbA,cAAeC,EAAS,EAATA,UAAWC,EAAa,EAAbA,cAOtBC,EAAgBd,GAAsB7M,EAAM4K,iBAC9C5K,EAAM4K,iBAAiBmC,KAAK3R,GAC5BA,EAEJoP,EAASmD,GAAe,WAAoD,I,IAAnDnO,EAAA,uDAA6C,CAAC,EAGrE,GAFAA,EAAQoO,OAASH,IAEbjO,EAAQqO,OACV,IAAK,IAAL,MAA6B1S,OAAO2S,QAAQtO,EAAQqO,QAAO,eAAE,CAAxD,O,EAAA,K,EAAA,E,o4BAAQnT,EAAG,KAAEoF,EAAK,KACrB4N,EAAchT,EAAKoF,EACpB,CAGH0N,GAAc,EAChB,GACF,EAYIH,cAAeA,IAEd,eAA0BrN,EAAM+N,UAC7B,SAACC,GAA0B,OAAMhO,EAAM+N,SAA6DC,EAAE,EACtG,iBAAqBhO,EAAM+N,UAAY/N,EAAM+N,SAAW,KAIlE,CAEM,SAAUE,IACd,OAAO,SACT,CApEA3D,EAAYsC,aAAe,CACzBjC,mBAAmB,EACnBkC,oBAAoB,E,+BCvDtB,IAAYvE,E,iBAAZ,SAAYA,GACV,qCACA,mCACA,cACA,oBACD,CALD,CAAYA,IAAAA,EAAa,I,oKCOzB,IAAM4F,EAAqC,CAAC,EAEtC,SAAUlG,EAAUmG,EAAazG,GACrC,I,IAAmD,G,EAArB,YAAe,G,EAAM,E,o4BAA3CC,EAAM,KAAEyG,EAAS,KA4BzB,OA1BA,aAAgB,WACd,GAAKD,GAAQzG,IAAcwG,EAAcC,GAAzC,CAGA,IAAME,EAASC,SAASC,cAAc,UAgBtC,OAdAF,EAAOF,IAAMA,EACbE,EAAOG,OAAQ,EACfH,EAAOI,OAAS,WACdP,EAAcC,IAAO,EAMrBtG,OAAO1F,YAAW,kBAAMiM,GAAU,EAAK,GAAE,EAC3C,EAEAE,SAASI,KAAKC,YAAYN,GAEnB,WACLA,EAAOI,OAAS,KAChBH,SAASI,KAAKE,YAAYP,EAC5B,CArBQ,CAsBV,GAAG,CAAEF,EAAKzG,IAEHwG,EAAcC,IAAQxG,CAC/B,C,qFChCMtL,EAAY,qBADA,uBAGLS,EAAoB,CAC/B+R,qBAAoB,SAACjS,EAAiCC,GACpD,MAAO,CACL,CACEZ,GAAI,oBACJyC,KAAMrC,EAAU,mBAChBY,QAASL,EACTkS,YAAa,4BAEf,CACE7S,GAAI,mBACJyC,KAAMrC,EAAU,aAChBY,QAASJ,EACTiS,YAAa,2BAGnB,E,+BCvBF,IAAIC,EAAkB,EAAQ,OAE1BC,EAA4B,CAC9B,aAAc,OACd,YAAa,MACb,QAAW,QA2GbC,EAAOC,QAjGP,SAAc9M,EAAM5C,GAClB,IAAI2P,EACFC,EACAC,EACAC,EACAC,EACAC,EACAlV,GAAU,EACPkF,IACHA,EAAU,CAAC,GAEb2P,EAAQ3P,EAAQ2P,QAAS,EACzB,IAkDE,GAjDAE,EAAmBN,IAEnBO,EAAQhB,SAASmB,cACjBF,EAAYjB,SAASoB,gBAErBF,EAAOlB,SAASC,cAAc,SACzBoB,YAAcvN,EAEnBoN,EAAKI,WAAa,OAElBJ,EAAK7G,MAAMkH,IAAM,QAEjBL,EAAK7G,MAAMmH,SAAW,QACtBN,EAAK7G,MAAMoH,IAAM,EACjBP,EAAK7G,MAAMqH,KAAO,mBAElBR,EAAK7G,MAAMsH,WAAa,MAExBT,EAAK7G,MAAMuH,iBAAmB,OAC9BV,EAAK7G,MAAMwH,cAAgB,OAC3BX,EAAK7G,MAAMyH,aAAe,OAC1BZ,EAAK7G,MAAM0H,WAAa,OACxBb,EAAKc,iBAAiB,QAAQ,SAAS/D,GAErC,GADAA,EAAEgE,kBACE/Q,EAAQgR,OAEV,GADAjE,EAAEC,sBAC6B,IAApBD,EAAEkE,cAA+B,CAC1CtB,GAASuB,QAAQC,KAAK,iCACtBxB,GAASuB,QAAQC,KAAK,4BACtB9I,OAAO4I,cAAcG,YACrB,IAAIJ,EAASxB,EAA0BxP,EAAQgR,SAAWxB,EAAmC,QAC7FnH,OAAO4I,cAAcI,QAAQL,EAAQpO,EACvC,MACEmK,EAAEkE,cAAcG,YAChBrE,EAAEkE,cAAcI,QAAQrR,EAAQgR,OAAQpO,GAGxC5C,EAAQ0C,SACVqK,EAAEC,iBACFhN,EAAQ0C,OAAOqK,EAAEkE,eAErB,IAEAnC,SAASI,KAAKC,YAAYa,GAE1BF,EAAMwB,mBAAmBtB,GACzBD,EAAUwB,SAASzB,IAEFhB,SAAS0C,YAAY,QAEpC,MAAM,IAAIC,MAAM,iCAElB3W,GAAU,CACZ,CAAE,MAAO4W,GACP/B,GAASuB,QAAQnW,MAAM,qCAAsC2W,GAC7D/B,GAASuB,QAAQC,KAAK,4BACtB,IACE9I,OAAO4I,cAAcI,QAAQrR,EAAQgR,QAAU,OAAQpO,GACvD5C,EAAQ0C,QAAU1C,EAAQ0C,OAAO2F,OAAO4I,eACxCnW,GAAU,CACZ,CAAE,MAAO4W,GACP/B,GAASuB,QAAQnW,MAAM,uCAAwC2W,GAC/D/B,GAASuB,QAAQnW,MAAM,0BACvB6U,EAjFN,SAAgBA,GACd,IAAI+B,GAAW,YAAYC,KAAKC,UAAUC,WAAa,IAAM,QAAU,KACvE,OAAOlC,EAAQmC,QAAQ,gBAAiBJ,EAC1C,CA8EgBX,CAAO,YAAahR,EAAUA,EAAQ4P,QAnFjC,oCAoFfvH,OAAO2J,OAAOpC,EAAShN,EACzB,CACF,CAAE,QACImN,IACkC,mBAAzBA,EAAUkC,YACnBlC,EAAUkC,YAAYnC,GAEtBC,EAAUmC,mBAIVlC,GACFlB,SAASI,KAAKE,YAAYY,GAE5BH,GACF,CAEA,OAAO/U,CACT,C,+BC9GA,SAASqX,EAAQC,GAAkC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,EAAQC,EAAM,CAE/UzW,OAAO8W,eAAe/C,EAAS,aAAc,CAC3CpP,OAAO,IAEToP,EAAQ7C,qBAAkB,EAE1B,IAAI6F,EAASC,EAAuB,EAAQ,QAExCC,EAAmBD,EAAuB,EAAQ,QAElDE,EAAY,CAAC,OAAQ,SAAU,UAAW,YAE9C,SAASF,EAAuBP,GAAO,OAAOA,GAAOA,EAAIU,WAAaV,EAAM,CAAE,QAAWA,EAAO,CAEhG,SAASW,EAAQC,EAAQC,GAAkB,IAAI7S,EAAOzE,OAAOyE,KAAK4S,GAAS,GAAIrX,OAAOuX,sBAAuB,CAAE,IAAIC,EAAUxX,OAAOuX,sBAAsBF,GAASC,IAAmBE,EAAUA,EAAQ5V,QAAO,SAAU6V,GAAO,OAAOzX,OAAO0X,yBAAyBL,EAAQI,GAAKE,UAAY,KAAKlT,EAAKmT,KAAKC,MAAMpT,EAAM+S,EAAU,CAAE,OAAO/S,CAAM,CAEpV,SAASqT,EAAcC,GAAU,IAAK,IAAIlW,EAAI,EAAGA,EAAImW,UAAU1X,OAAQuB,IAAK,CAAE,IAAIoW,EAAS,MAAQD,UAAUnW,GAAKmW,UAAUnW,GAAK,CAAC,EAAGA,EAAI,EAAIuV,EAAQpX,OAAOiY,IAAS,GAAIlG,SAAQ,SAAUxS,GAAO2Y,EAAgBH,EAAQxY,EAAK0Y,EAAO1Y,GAAO,IAAKS,OAAOmY,0BAA4BnY,OAAOoY,iBAAiBL,EAAQ/X,OAAOmY,0BAA0BF,IAAWb,EAAQpX,OAAOiY,IAASlG,SAAQ,SAAUxS,GAAOS,OAAO8W,eAAeiB,EAAQxY,EAAKS,OAAO0X,yBAAyBO,EAAQ1Y,GAAO,GAAI,CAAE,OAAOwY,CAAQ,CAQzf,SAASM,EAAkBN,EAAQlT,GAAS,IAAK,IAAIhD,EAAI,EAAGA,EAAIgD,EAAMvE,OAAQuB,IAAK,CAAE,IAAIyJ,EAAazG,EAAMhD,GAAIyJ,EAAWqM,WAAarM,EAAWqM,aAAc,EAAOrM,EAAWgN,cAAe,EAAU,UAAWhN,IAAYA,EAAWiN,UAAW,GAAMvY,OAAO8W,eAAeiB,EAAQzM,EAAW/L,IAAK+L,EAAa,CAAE,CAM5T,SAASkN,EAAgBC,EAAGC,GAA+G,OAA1GF,EAAkBxY,OAAO2Y,gBAAkB,SAAyBF,EAAGC,GAAsB,OAAjBD,EAAEG,UAAYF,EAAUD,CAAG,EAAUD,EAAgBC,EAAGC,EAAI,CAMzK,SAASG,EAAuBC,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIC,eAAe,6DAAgE,OAAOD,CAAM,CAIrK,SAASE,EAAgBP,GAAwJ,OAAnJO,EAAkBhZ,OAAO2Y,eAAiB3Y,OAAOiZ,eAAiB,SAAyBR,GAAK,OAAOA,EAAEG,WAAa5Y,OAAOiZ,eAAeR,EAAI,EAAUO,EAAgBP,EAAI,CAE5M,SAASP,EAAgBzB,EAAKlX,EAAKoF,GAAiK,OAApJpF,KAAOkX,EAAOzW,OAAO8W,eAAeL,EAAKlX,EAAK,CAAEoF,MAAOA,EAAOgT,YAAY,EAAMW,cAAc,EAAMC,UAAU,IAAkB9B,EAAIlX,GAAOoF,EAAgB8R,CAAK,CAEhN,IAAIvF,EAA+B,SAAUgI,IAhB7C,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIC,UAAU,sDAAyDF,EAAStC,UAAY7W,OAAOsZ,OAAOF,GAAcA,EAAWvC,UAAW,CAAED,YAAa,CAAEjS,MAAOwU,EAAUZ,UAAU,EAAMD,cAAc,KAAWtY,OAAO8W,eAAeqC,EAAU,YAAa,CAAEZ,UAAU,IAAca,GAAYZ,EAAgBW,EAAUC,EAAa,CAiBjcG,CAAUrI,EAAiBgI,GAE3B,IArBoBM,EAAaC,EAMbC,EAAeC,EAe/BC,GAfgBF,EAeMxI,EAfSyI,EAMrC,WAAuC,GAAuB,oBAAZE,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFC,QAAQpD,UAAUqD,QAAQC,KAAKN,QAAQC,UAAUG,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO7I,GAAK,OAAO,CAAO,CAAE,CANvQgJ,GAAoC,WAAkC,IAAsCC,EAAlCC,EAAQtB,EAAgBU,GAAkB,GAAIC,EAA2B,CAAE,IAAIY,EAAYvB,EAAgBwB,MAAM5D,YAAayD,EAASR,QAAQC,UAAUQ,EAAOtC,UAAWuC,EAAY,MAASF,EAASC,EAAMzC,MAAM2C,KAAMxC,WAAc,OAEpX,SAAoCc,EAAMqB,GAAQ,GAAIA,IAA2B,WAAlB3D,EAAQ2D,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAId,UAAU,4DAA+D,OAAOR,EAAuBC,EAAO,CAF4F2B,CAA2BD,KAAMH,EAAS,GAiBna,SAASnJ,IACP,IAAIwJ,GA5BR,SAAyBC,EAAUnB,GAAe,KAAMmB,aAAoBnB,GAAgB,MAAM,IAAIH,UAAU,oCAAwC,CA8BpJuB,CAAgBJ,KAAMtJ,GAEtB,IAAK,IAAI2J,EAAO7C,UAAU1X,OAAQwa,EAAO,IAAIhT,MAAM+S,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ/C,UAAU+C,GA0BzB,OArBA7C,EAAgBW,EAFhB6B,EAAQd,EAAOO,KAAKtC,MAAM+B,EAAQ,CAACY,MAAMQ,OAAOF,KAED,WAAW,SAAUG,GAClE,IAAIC,EAAcR,EAAM7V,MACpBoC,EAAOiU,EAAYjU,KACnBF,EAASmU,EAAYnU,OACrB6L,EAAWsI,EAAYtI,SACvBvO,EAAU6W,EAAY7W,QAEtB8W,EAAOpE,EAAgB,QAAEqE,SAASC,KAAKzI,GAEvCyH,GAAS,EAAIpD,EAA0B,SAAGhQ,EAAM5C,GAEhD0C,GACFA,EAAOE,EAAMoT,GAIXc,GAAQA,EAAKtW,OAAuC,mBAAvBsW,EAAKtW,MAAMe,SAC1CuV,EAAKtW,MAAMe,QAAQqV,EAEvB,IAEOP,CACT,CAoBA,OA5EoBlB,EA0DPtI,GA1DoBuI,EA0DH,CAAC,CAC7Bla,IAAK,SACLoF,MAAO,WACL,IAAI2W,EAAed,KAAK3V,MAIpB+N,GAHQ0I,EAAarU,KACXqU,EAAavU,OACZuU,EAAajX,QACbiX,EAAa1I,UACxB/N,EA1EV,SAAkCoT,EAAQsD,GAAY,GAAc,MAAVtD,EAAgB,MAAO,CAAC,EAAG,IAAkE1Y,EAAKsC,EAAnEkW,EAEzF,SAAuCE,EAAQsD,GAAY,GAAc,MAAVtD,EAAgB,MAAO,CAAC,EAAG,IAA2D1Y,EAAKsC,EAA5DkW,EAAS,CAAC,EAAOyD,EAAaxb,OAAOyE,KAAKwT,GAAqB,IAAKpW,EAAI,EAAGA,EAAI2Z,EAAWlb,OAAQuB,IAAOtC,EAAMic,EAAW3Z,GAAQ0Z,EAASE,QAAQlc,IAAQ,IAAawY,EAAOxY,GAAO0Y,EAAO1Y,IAAQ,OAAOwY,CAAQ,CAFhN2D,CAA8BzD,EAAQsD,GAAuB,GAAIvb,OAAOuX,sBAAuB,CAAE,IAAIoE,EAAmB3b,OAAOuX,sBAAsBU,GAAS,IAAKpW,EAAI,EAAGA,EAAI8Z,EAAiBrb,OAAQuB,IAAOtC,EAAMoc,EAAiB9Z,GAAQ0Z,EAASE,QAAQlc,IAAQ,GAAkBS,OAAO6W,UAAU+E,qBAAqBzB,KAAKlC,EAAQ1Y,KAAgBwY,EAAOxY,GAAO0Y,EAAO1Y,GAAQ,CAAE,OAAOwY,CAAQ,CA0Ezd8D,CAAyBP,EAAcpE,GAE/CiE,EAAOpE,EAAgB,QAAEqE,SAASC,KAAKzI,GAE3C,OAAoBmE,EAAgB,QAAE+E,aAAaX,EAAMrD,EAAcA,EAAc,CAAC,EAAGjT,GAAQ,CAAC,EAAG,CACnGe,QAAS4U,KAAK5U,UAElB,MAzE0EyS,EAAkBmB,EAAY3C,UAAW4C,GAA2EzZ,OAAO8W,eAAe0C,EAAa,YAAa,CAAEjB,UAAU,IA4ErPrH,CACT,CA3DmC,CA2DjC6F,EAAgB,QAAEgF,eAEpBhI,EAAQ7C,gBAAkBA,EAE1BgH,EAAgBhH,EAAiB,eAAgB,CAC/CnK,YAAQiV,EACR3X,aAAS2X,G,+BC9GX,IACI9K,EADW,EAAQ,OACQA,gBAE/BA,EAAgBA,gBAAkBA,EAClC4C,EAAOC,QAAU7C,C,YCLjB4C,EAAOC,QAAU,WACf,IAAIK,EAAYjB,SAASoB,eACzB,IAAKH,EAAU6H,WACb,OAAO,WAAa,EAKtB,IAHA,IAAIhS,EAASkJ,SAAS+I,cAElBC,EAAS,GACJta,EAAI,EAAGA,EAAIuS,EAAU6H,WAAYpa,IACxCsa,EAAOvE,KAAKxD,EAAUgI,WAAWva,IAGnC,OAAQoI,EAAOoS,QAAQC,eACrB,IAAK,QACL,IAAK,WACHrS,EAAOsS,OACP,MAEF,QACEtS,EAAS,KAKb,OADAmK,EAAUmC,kBACH,WACc,UAAnBnC,EAAU5U,MACV4U,EAAUmC,kBAELnC,EAAU6H,YACbE,EAAOpK,SAAQ,SAASoC,GACtBC,EAAUwB,SAASzB,EACrB,IAGFlK,GACAA,EAAOuS,OACT,CACF,C","sources":["file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareOption.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/embed-size/EmbedSize.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/copy-embed/copy-embed.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/copy-embed/CopyEmbed.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/share-link-privacy.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link/SharePermanentLink.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/get-embed-code/get-embed-code.scss","file:///app/packages/libs/shared/src/apps/share-v2/components/get-embed-code/GetEmbedCode.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/looking-for-integration/LookingForIntegration.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/useGoogleClassrooms.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/share-integrations.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/ShareIntegrations.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-integrations/useMicrosoftTeamsShare.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-embed/SharePermanentLinkEmbed.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-setting/share-permanent-link-setting.scss","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-permanent-link-setting/SharePermanentLinkSetting.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/main-share/MainShare.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/instant-feedback-field/InstantFeedbackField.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/prevent-skipping-field/PreventSkippingField.tsx","file:///app/packages/libs/shared/src/apps/share-v2/validation/ShareSettingsFormValidationSchema.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/share/components/share-settings/ShareSettings.tsx","file:///app/packages/libs/shared/src/apps/share-v2/views/share/ShareView.tsx","file:///app/packages/libs/shared/src/components/copy-input/copy-input.scss","file:///app/packages/libs/shared/src/components/copy-input/CopyInput.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/hooks/useScript.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/node_modules/copy-to-clipboard/index.js","file:///app/node_modules/react-copy-to-clipboard/lib/Component.js","file:///app/node_modules/react-copy-to-clipboard/lib/index.js","file:///app/node_modules/toggle-selection/index.js"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n limit?: number;\n objectTypeId?: MasterType | MasterType[];\n recipientUserId?: string | string[];\n recipientGroupId?: string | string[];\n start?: string;\n end?: string;\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: ['sent:shares-v2'],\n success,\n error,\n always\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `update:share-v2:${shareId}`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}` ],\n success,\n error,\n always\n };\n },\n\n getShare(\n shareId: string,\n success?: (response: Share) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<Share>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const key = Object.values(params).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', params),\n key: `sent:shares-v2:${key}`,\n formatData: (response: Share[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: null, // TODO: Share V2 - fix hardcoded value\n previous: params.cursor\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n getShareLinkByObjectId(id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n type: HttpVerbs.POST,\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n }\n};","export enum ShareOption {\n InstantFeedback = 'instant_feedback',\n PreventSkipping = 'prevent_skipping'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, EventVersion, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ShareOption } from 'libs/shared/apps/share-v2/enums/ShareOption';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Alerts } from 'libs/shared/hooks/UseAlerts';\nimport type { Classification, Clip, Interactive, InteractiveMetadata, Playlist, Series, Subject, Video } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nexport type SharableEntityType = 'video' | 'playlist' | 'subject' | 'series' | 'interactive' | 'clip';\nexport type SharableEntity = Video | Playlist | Subject | Series | InteractiveMetadata | Clip;\nexport interface ShareSettingsFormFields {\n preventSkipping: boolean;\n instantFeedback: boolean;\n}\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const ShareViewHelper = {\n canEmbed(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n\n canAddPolicies(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n \n getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n },\n\n getFetchFunctionByType: (type: SharableEntityType) => {\n switch (type) {\n case 'video': {\n return (id: string) => Flight.useBasicFetch<Video>(VideoRequests.video(id));\n }\n \n case 'playlist': {\n return (id: string) => Flight.useBasicFetch<Playlist>(PlaylistRequests.getPlaylist(id));\n }\n \n case 'subject': {\n return (id: string, userId: string) => {\n return Flight.useBasicFetch<Classification>(ClassificationRequests.classification(id, userId));\n };\n }\n \n case 'series': {\n return (id: string) => Flight.useBasicFetch<Series>(SeriesRequests.series(id));\n }\n \n case 'interactive': {\n return (id: string) =>\n Flight.useBasicFetch<InteractiveMetadata>(InteractiveRequests.interactiveMetadata(id));\n }\n \n case 'clip': {\n return (id: string) =>\n Flight.useBasicFetch<Clip>(ClipRequests.clip(id));\n }\n }\n },\n\n getAnalyticsEntity(entityType: string): EntityType {\n switch (entityType) {\n case 'playlist':\n return EntityType.Playlist;\n case 'subject':\n return EntityType.Classification;\n case 'video':\n return EntityType.Video;\n case 'series':\n return EntityType.Series;\n case 'interactive':\n return EntityType.Interactive;\n case 'clip':\n return EntityType.Clip;\n }\n },\n\n getAnalyticsOptions(entityType: SharableEntityType): AnalyticsOptions {\n return {\n entity: ShareViewHelper.getAnalyticsEntity(entityType),\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n };\n },\n\n updateShareLink(\n dispatch: Flight.Dispatch,\n entity: SharableEntity,\n entityType: SharableEntityType,\n share: Share,\n data: UpdateShareRequest,\n alerts: Alerts,\n onSuccess?: (data: Share) => void,\n onError?: () => void\n ): void {\n const success = (updatedShare: Share) => {\n AnalyticsHelper.logUserAction(\n { ...updatedShare, objectName: entity.name },\n AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(entityType), {\n actionType: UserAction.Edit,\n entity: EntityType.ShareLink,\n eventVersion: EventVersion.V3\n })\n );\n\n if (onSuccess)\n onSuccess(updatedShare);\n\n alerts.success(getPhrase('editSuccess', { name: entity.name, escapeText: true }));\n };\n\n const error = () => {\n if (onError)\n onError();\n\n alerts.error(getPhrase('editError', { name: entity.name, escapeText: true }));\n };\n\n Flight.fetch(dispatch, ShareRequests.updateShare(share.shareId, data, success, error));\n },\n\n getShareSettingsInitialValues(share: Share, interactive: Interactive | null) {\n const defaults = {\n preventSkipping: interactive?.preventScrubbing || false,\n instantFeedback: interactive?.immediateFeedback || false\n };\n\n const ShareOptionKeyMapping: {[key in ShareOption]: keyof typeof defaults} = {\n [ShareOption.InstantFeedback]: 'instantFeedback',\n [ShareOption.PreventSkipping]: 'preventSkipping'\n };\n\n return share.options.reduce((prev, curr) => {\n if (!Object.keys(ShareOptionKeyMapping).includes(curr.option))\n return prev;\n\n if (curr.value === 'True')\n prev[ShareOptionKeyMapping[curr.option]] = true;\n else if (curr.value === 'False')\n prev[ShareOptionKeyMapping[curr.option]] = false;\n\n return prev;\n }, defaults);\n }\n\n};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'sharev2.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"embedHtmlInput\":\"lpm1A\",\"copyBtnContainer\":\"EE1mM\"};","import React from 'react';\nimport CopyToClipboard from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmbedSize } from 'libs/shared/apps/share-v2/components/embed-size/EmbedSize';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SharableEntity, SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport styles from './copy-embed.scss';\n\nconst namespace = 'sharev2.copyEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyEmbedProps {\n entity: SharableEntity;\n entityType: SharableEntityType;\n share: Share;\n liteUrl: string;\n entityId: string;\n onClickCancel: () => void;\n}\n\nexport function CopyEmbed(props: CopyEmbedProps): JSX.Element {\n const videoSizes = EmbedHelper.getEmbedResolutions();\n\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ copyBtnPhrase, setCopyBtnPhrase ] = React.useState<'copy' | 'copied'>('copy');\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes.find(s => s.width === '100%'));\n \n function onCopy(): void {\n setCopyBtnPhrase('copied');\n setTimeout(() => setCopyBtnPhrase('copy'), 2000);\n\n // @TODO add analytics logging\n }\n\n const url = EmbedHelper.buildEmbedUrl({\n embedUrl: props.share.link.shortenedEmbedUrl,\n host: props.liteUrl,\n shareId: props.share.shareId,\n autoplay\n });\n\n const embedString = EmbedHelper.getEmbedString({\n url,\n size: videoSize\n });\n \n return (\n <>\n <div className='mb-3'>\n <LanguageNamespaceContext.Provider value={namespace}>\n <label><Text namespace={namespace} phrase='label' /></label>\n <div className='position-relative mb-3'>\n <textarea\n className={`form-control rounded w-100 h-100 ${styles.embedHtmlInput}`}\n spellCheck={false}\n value={embedString}\n rows={7}\n readOnly\n />\n <CopyToClipboard onCopy={onCopy} text={embedString}>\n <button className={`btn btn-outline-dark border border-secondary position-absolute bottom-0 end-0 ${styles.copyBtnContainer}`} type='button'>\n {getPhrase(copyBtnPhrase)}\n </button>\n </CopyToClipboard>\n </div>\n <EmbedSize\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n />\n </LanguageNamespaceContext.Provider>\n </div>\n <PopupButtons align='start'>\n <PopupButtons.Cancel onClick={props.onClickCancel} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'clickview' | 'tv' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent)\n return 'tv';\n \n if (privacy.isClickViewContent)\n return 'clickview';\n\n /**\n * Remove this check once we have `isTvContent` changes in staging\n */\n if (privacy.canManageAccess)\n return 'private';\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"NV2KW\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { type SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { type SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport type { YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-link-privacy.scss';\n\nconst namespace = 'sharev2.shareLinkPrivacy';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharePrivacyItemProps {\n active: boolean;\n title: string;\n description: string;\n onClick: () => void\n}\n\nfunction SharePrivacyItem(props: SharePrivacyItemProps) {\n const { active, title, description, onClick } = props;\n\n return (\n <button\n className={`${active ? styles.active : ''} dropdown-item d-flex align-items-center justify-content-between py-2`}\n onClick={!active ? onClick : null}\n >\n <div className='me-4'>\n <p className='font-label mb-1'>{title}</p>\n <p className='font-size-sm mb-0'>{description}</p>\n </div>\n {active && <SvgContainer svgName={cvSvgLibrary.Check} />}\n </button>\n );\n}\n\ninterface ShareLinkPrivacyProps {\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n entityTypeId: MasterType;\n yearGroups: YearGroup[];\n privacy: SharePrivacy;\n entityPrivacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function ShareLinkPrivacy(props: ShareLinkPrivacyProps): JSX.Element {\n const canUpdatePrivacy = props.shareOverrideRestrictions && !props.hasStudentExp;\n\n const accessType = ShareLinkHelper.getShareLinkAccessType(props.entityPrivacy);\n\n const { icon, text } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.privacy,\n entityTypeId: props.entityTypeId,\n hasStudentExp: props.hasStudentExp,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n const respectRatingText = ShareLinkHelper.getRespectRatingText(props.entity, props.yearGroups, props.hasStudentExp);\n\n const respectRatingPrivacy: SharePrivacy = accessType === 'private' ?\n SharePrivacy.JustMySchool : SharePrivacy.Protected;\n const justMySchoolPrivacy: SharePrivacy = accessType === 'private' ?\n SharePrivacy.JustMySchoolOverrideRestriction : SharePrivacy.ProtectedOverrideRestriction;\n\n if (!canUpdatePrivacy) {\n return (\n <div className='d-flex align-items-center'>\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span>{text}</span>\n </div>\n );\n }\n \n return (\n <div className='btn-group'>\n <button\n className={`btn border-0 info-link dropdown-toggle p-1 bg-light-blue-hover`}\n data-bs-toggle='dropdown'\n >\n <SvgContainer svgName={icon} className='svg-container me-1' />\n <span className='me-1'>{text}</span>\n </button>\n <ul className='dropdown-menu cursor-pointer'>\n <li>\n <SharePrivacyItem\n active={props.privacy === justMySchoolPrivacy}\n title={getPhrase('justMySchool')}\n description={accessType === 'private' ? getPhrase('justMySchoolDescription') : getPhrase('clickViewOnly')}\n onClick={() => props.onClickSavePrivacy(justMySchoolPrivacy)}\n />\n </li>\n <li>\n <SharePrivacyItem\n active={props.privacy === respectRatingPrivacy}\n title={getPhrase('respectRatings')}\n description={respectRatingText}\n onClick={() => props.onClickSavePrivacy(respectRatingPrivacy)}\n />\n </li>\n {/* <li>\n <SharePrivacyItem\n active={props.privacy === SharePrivacy.PinCode}\n title={getPhrase('pinCode')}\n description={getPhrase('pinCodeDescription')}\n onClick={() => props.onClickSavePrivacy(SharePrivacy.PinCode)}\n />\n </li> */}\n {accessType === 'private' &&\n <li>\n <SharePrivacyItem\n active={props.privacy === SharePrivacy.Public}\n title={getPhrase('public')}\n description={getPhrase('publicDescription')}\n onClick={() => props.onClickSavePrivacy(SharePrivacy.Public)}\n />\n </li>\n }\n </ul>\n </div>\n );\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import React from 'react';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareLinkPrivacy } from 'libs/shared/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { CopyInput } from 'libs/shared/components/copy-input/CopyInput';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface SharePermanentLinkProps {\n share: Share;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n shareOverrideRestrictions: boolean;\n entity: SharableEntity;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function SharePermanentLink(props: SharePermanentLinkProps): JSX.Element {\n const [ logged, setLogged ] = React.useState(false);\n \n function onCopy() {\n if (logged)\n return;\n\n setLogged(true);\n \n AnalyticsHelper.logUserAction({\n id: props.entity.id,\n name: props.entity.name\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.CopyLink,\n eventVersion: EventVersion.V3\n }));\n }\n\n return (\n <div className='d-flex justify-content-start align-items-start flex-column gap-2'>\n {props.share.type === ShareType.Link && (\n <ShareLinkPrivacy\n privacy={props.share.privacy}\n entityPrivacy={props.privacy}\n entityTypeId={props.entity.typeId}\n entity={props.entity}\n yearGroups={props.yearGroups}\n \n hasStudentExp={props.hasStudentExp}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n )}\n <CopyInput value={props.share.link.shortenedUrl} onCopy={onCopy} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverBackground\":\"okJLU\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './get-embed-code.scss';\n\nconst namespace = 'sharev2.getEmbedCode';\n\ninterface GetEmbedCodeProps {\n onClickGetEmbedCode: () => void\n}\n\nexport function GetEmbedCode(props: GetEmbedCodeProps) {\n return (\n <DivButton\n onClick={props.onClickGetEmbedCode}\n className={`d-inline-block p-1 pe-2 rounded-1 ${styles.hoverBackground}`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Code} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='getEmbedCode' />\n </div>\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'sharev2.lookingForIntegration';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\ninterface LookingForIntegrationProps {\n appLink: Core.AppLink;\n backToName?: string;\n closePopup?: () => void;\n}\n\ninterface LookingForIntegrationViewModel {\n show: boolean;\n}\n\nexport function LookingForIntegration(props: LookingForIntegrationProps): JSX.Element {\n const [ visibility, setVisibility ] = useViewModel<LookingForIntegrationViewModel>(\n SharedViewModelKeys.LOOKING_FOR_INTEGRATION,\n { show: true },\n { storage: StorageType.LocalStorage }\n );\n\n if (!visibility.show)\n return <></>;\n\n return (\n <div className={`d-flex justify-content-between rounded p-2 bg-light-blue`}>\n <AppLink\n appLink={props.appLink}\n onClick={() => props.closePopup?.()}\n className='d-inline-flex align-items-center mb-0'\n >\n <span className='ms-1 font-label text-info'>\n <Text namespace={namespace} phrase='lookingForIntegration' />\n </span>\n </AppLink>\n <button onClick={() => setVisibility({ show: false })} aria-label={`${getPhrase('ariaClose')}`}>\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n size={SvgContainerSize.Small}\n className='text-info d-inline-block svg-container'\n />\n </button>\n </div>\n );\n}","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nconst GOOGLE_CLASSROOM_CONTAINER_ID = 'g-share-to-classroom';\n\nexport function useGoogleClassrooms(shouldLoad: boolean): string {\n /**\n * Google sdk reads the config off the window.\n */\n if (shouldLoad)\n (window as any).___gcfg = { parsetags: 'explicit' };\n\n const loaded = useScript('https://apis.google.com/js/platform.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.gapi?.sharetoclassroom?.go(GOOGLE_CLASSROOM_CONTAINER_ID);\n }, [ shouldLoad, loaded ]);\n\n return GOOGLE_CLASSROOM_CONTAINER_ID;\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverable\":\"ARIeV\",\"msTeamsContainer\":\"eFMEH\",\"avatar\":\"yBYuA\"};","import React from 'react';\n\nimport { AppLink } from 'libs/common/backbone/core';\n\nimport { useGoogleClassrooms } from 'libs/shared/apps/share-v2/views/share/components/share-integrations/useGoogleClassrooms';\nimport { useMicrosoftTeamsShare } from 'libs/shared/apps/share-v2/views/share/components/share-integrations/useMicrosoftTeamsShare';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport styles from './share-integrations.scss';\n\nconst DEFAULT_ICON_SIZE = '32';\n\ninterface ShareIntegrationsProps {\n integrations: IntegrationId[];\n url: string;\n appLink?: AppLink;\n iconSize?: 'sm' | 'md';\n closePopup?: () => void;\n}\n\nexport function ShareIntegrations(props: ShareIntegrationsProps): JSX.Element {\n const googleContainerId = useGoogleClassrooms(props.integrations?.includes(IntegrationId.GoogleClassroom));\n useMicrosoftTeamsShare(props.integrations?.includes(IntegrationId.MicrosoftTeams));\n\n if (!props.integrations.length)\n return null;\n\n function getIconSize() {\n switch (props.iconSize) {\n case 'sm': return '24';\n case 'md':\n default: return DEFAULT_ICON_SIZE;\n }\n }\n\n const iconSize = getIconSize();\n const integrationsContainerStyle = { height: `${iconSize}px`, width: `${iconSize}px` };\n\n return (\n <div className='d-flex gap-1 align-items-start'>\n {props.integrations.includes(IntegrationId.GoogleClassroom) &&\n <div\n id={googleContainerId}\n className={`rounded partial-loading-background`}\n style={integrationsContainerStyle}\n >\n <div\n className='g-sharetoclassroom'\n data-size={iconSize}\n data-url={props.url}\n />\n </div>\n }\n {props.integrations.includes(IntegrationId.MicrosoftTeams) &&\n <div className={`rounded overflow-hidden ${styles.hoverable}`}>\n <div\n className={`teams-share-button ${styles.msTeamsContainer}`}\n style={integrationsContainerStyle}\n data-href={props.url}\n data-button-type='smallTransWhite'\n data-preview='false'\n data-icon-px-size={iconSize}\n />\n </div>\n }\n </div>\n );\n}\n","import React from 'react';\n\nimport { useScript } from 'libs/shared/hooks/useScript';\n\nexport function useMicrosoftTeamsShare(shouldLoad: boolean): void {\n const loaded = useScript('https://teams.microsoft.com/share/launcher.js', shouldLoad);\n\n React.useEffect(() => {\n if (!shouldLoad || !loaded)\n return;\n\n window.shareToMicrosoftTeams?.renderButtons();\n }, [ shouldLoad, loaded ]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { GetEmbedCode } from 'libs/shared/apps/share-v2/components/get-embed-code/GetEmbedCode';\nimport { LookingForIntegration } from 'libs/shared/apps/share-v2/components/looking-for-integration/LookingForIntegration';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\n\nimport { ShareIntegrations } from '../share-integrations/ShareIntegrations';\n\ninterface SharePermanentLinkEmbedProps {\n share: Share;\n canEmbed: boolean;\n enableIntegrationBanner: boolean;\n integrations: IntegrationId[];\n hasManageIntegrationsPermission: boolean;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n\n onClickGetEmbedCode: () => void;\n closePopup: () => void;\n}\n\nexport function SharePermanentLinkEmbed(props: SharePermanentLinkEmbedProps): JSX.Element {\n const appLink = props.hasManageIntegrationsPermission\n ? props.integrationSettingAppLink\n : props.messagePopupAppLink;\n\n const hasIntegrations = !!props.integrations.length;\n \n return (\n <div className='d-flex flex-column gap-2 justify-content-between'>\n {props.enableIntegrationBanner && !hasIntegrations &&\n <LookingForIntegration\n appLink={appLink}\n closePopup={props.closePopup}\n />\n }\n \n <div className='d-flex flex-row justify-content-between'>\n {props.canEmbed &&\n <GetEmbedCode onClickGetEmbedCode={props.onClickGetEmbedCode} />\n }\n {props.enableIntegrationBanner && hasIntegrations &&\n <ShareIntegrations\n integrations={props.integrations}\n url={props.share.link.shortenedUrl}\n closePopup={props.closePopup}\n appLink={appLink}\n />\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hoverBackground\":\"l3eJu\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-permanent-link-setting.scss';\n\nconst namespace = 'sharev2.sharePermanentLinkSetting';\n\ninterface SharePermanentLinkSettingProps {\n manageShareLinkSettings: boolean;\n \n onClickEditSettings: () => void;\n}\n\nexport function SharePermanentLinkSetting(props: SharePermanentLinkSettingProps): JSX.Element {\n if (!props.manageShareLinkSettings)\n return null;\n \n return (\n <div className='d-flex flex-row justify-content-between align-items-center'>\n <DivButton\n onClick={props.onClickEditSettings}\n className={`d-inline-block p-1 pe-2 rounded-1 ${styles.hoverBackground}`}\n >\n <div className='d-flex align-items-center'>\n <div className='me-2'>\n <SvgContainer svgName={cvSvgLibrary.Cog} size={SvgContainerSize.Standard} />\n </div>\n <Text namespace={namespace} phrase='editSettings' />\n </div>\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { type SharableEntity, type SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SharePermanentLink } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link/SharePermanentLink';\nimport { SharePermanentLinkEmbed } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link-embed/SharePermanentLinkEmbed';\nimport { SharePermanentLinkSetting } from 'libs/shared/apps/share-v2/views/share/components/share-permanent-link-setting/SharePermanentLinkSetting';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport type { YearGroup } from 'libs/shared/interfaces';\n\ninterface MainShareProps {\n share: Share;\n integrations: IntegrationId[];\n entity: SharableEntity;\n entityType: SharableEntityType;\n yearGroups: YearGroup[];\n privacy: SharePrivacyResponse;\n \n canEmbed: boolean;\n canAddPolicies: boolean;\n enableIntegrationBanner: boolean;\n shareOverrideRestrictions: boolean;\n\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n\n closePopup: () => void;\n onClickEditSettings: () => void;\n onClickGetEmbedCode: () => void;\n onClickSavePrivacy: (privacy: SharePrivacy) => void;\n}\n\nexport function MainShare(props: MainShareProps): JSX.Element {\n const { hasPermissions } = usePermissions();\n \n const showLinkEmbedOptions = props.canEmbed\n || (props.enableIntegrationBanner && !!props.integrations.length);\n const hasManageIntegrationsPermission = hasPermissions(PermissionName.ManageIntegrations);\n\n return (\n <div className='d-flex flex-column gap-2'>\n <SharePermanentLink\n share={props.share}\n entity={props.entity}\n entityType={props.entityType}\n yearGroups={props.yearGroups}\n privacy={props.privacy}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n onClickSavePrivacy={props.onClickSavePrivacy}\n />\n {props.share && showLinkEmbedOptions && (\n <SharePermanentLinkEmbed\n share={props.share}\n canEmbed={props.canEmbed}\n integrations={props.integrations}\n hasManageIntegrationsPermission={hasManageIntegrationsPermission}\n enableIntegrationBanner={props.enableIntegrationBanner}\n messagePopupAppLink={props.messagePopupAppLink}\n integrationSettingAppLink={props.integrationSettingAppLink}\n onClickGetEmbedCode={props.onClickGetEmbedCode}\n closePopup={props.closePopup}\n />\n )}\n {props.share && props.canAddPolicies &&\n <SharePermanentLinkSetting\n manageShareLinkSettings={hasPermissions(PermissionName.ManageShareLinkSettings)}\n onClickEditSettings={props.onClickEditSettings}\n />\n }\n </div>\n );\n}","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'sharev2.instantFeedbackField';\n\nexport function InstantFeedbackField(): JSX.Element {\n const formikProps = useFormikContext<ShareSettingsFormFields>();\n\n function setInstantFeedbackField(): void {\n formikProps.setFieldValue('instantFeedback', !formikProps.values.instantFeedback);\n formikProps.submitForm();\n }\n\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='heading' /></label>\n <p className='m-0 text-secondary'><Text namespace={namespace} phrase='info' /></p>\n </div>\n <div>\n <ToggleSwitch\n onClick={setInstantFeedbackField}\n on={!!formikProps.values.instantFeedback}\n />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'sharev2.preventSkippingField';\n\nexport function PreventSkippingField(): JSX.Element {\n const formikProps = useFormikContext<ShareSettingsFormFields>();\n\n function setPreventSkippingField(): void {\n formikProps.setFieldValue('preventSkipping', !formikProps.values.preventSkipping);\n formikProps.submitForm();\n }\n\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''><Text namespace={namespace} phrase='heading' /></label>\n <p className='m-0 text-secondary'><Text namespace={namespace} phrase='info' /></p>\n </div>\n <div>\n <ToggleSwitch\n onClick={setPreventSkippingField}\n on={!!formikProps.values.preventSkipping}\n />\n </div>\n </div>\n );\n}","import { boolean, object } from 'yup';\n\nexport const ShareSettingsFormValidationSchema = object().shape({\n preventSkipping: boolean(),\n instantFeedback: boolean()\n});","import React from 'react';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InstantFeedbackField } from 'libs/shared/apps/share-v2/components/instant-feedback-field/InstantFeedbackField';\nimport { PreventSkippingField } from 'libs/shared/apps/share-v2/components/prevent-skipping-field/PreventSkippingField';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { type ShareSettingsFormFields } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { ShareSettingsFormValidationSchema } from 'libs/shared/apps/share-v2/validation/ShareSettingsFormValidationSchema';\nimport { type FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'sharev2.shareSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ShareSettingsProps {\n initialValues: ShareSettingsFormFields;\n onClickSaveLink: (data: UpdateShareRequest, onError: () => void) => void;\n onClickCancel: () => void;\n}\n\nfunction ShareSettingsForm(): JSX.Element {\n return (\n <Form className='d-flex flex-column gap-2'>\n <h3 className='h6'>\n <Text namespace={namespace} phrase='heading' />\n </h3>\n <PreventSkippingField />\n <InstantFeedbackField />\n </Form>\n );\n}\n\nexport function ShareSettings(props: ShareSettingsProps): JSX.Element {\n function onSubmit(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n props.onClickSaveLink({\n options: {\n instantFeedback: data.instantFeedback,\n preventSkipping: data.preventSkipping\n }\n }, onDone);\n }\n \n return (\n <>\n <FormWrapper<ShareSettingsFormFields>\n initialValues={props.initialValues}\n onSubmit={onSubmit}\n castInitialValues={false}\n validationSchema={ShareSettingsFormValidationSchema}\n >\n <div className='d-flex flex-column gap-3'>\n <ShareSettingsForm />\n <PopupButtons align='start'>\n <PopupButtons.Cancel onClick={props.onClickCancel} text={getPhrase('back')} variant='link' />\n </PopupButtons>\n </div>\n </FormWrapper>\n </>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CopyEmbed } from 'libs/shared/apps/share-v2/components/copy-embed/CopyEmbed';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport type { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\nimport { type SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MainShare } from 'libs/shared/apps/share-v2/views/share/components/main-share/MainShare';\nimport { ShareSettings } from 'libs/shared/apps/share-v2/views/share/components/share-settings/ShareSettings';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport type { Config, CurrentUser, Interactive, InteractiveMetadata, PopupViewProps, YearGroup } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\ntype ShareScreen = 'main' | 'link-settings' | 'copy-embed';\n\ninterface ShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType\n enableIntegrationBanner: boolean;\n integrationSettingAppLink?: Core.AppLink;\n messagePopupAppLink?: Core.AppLink;\n shareId?: string;\n}\n\nconst namespace = 'shared.sharev2';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ShareView(props: ShareViewProps): JSX.Element {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n const {\n shareToGoogleClassroom,\n shareToMicrosoftTeams,\n isLoadingSettings,\n shareOverrideRestrictions\n } = useSettings(null);\n \n const [ screen, setScreen ] = React.useState<ShareScreen>('main');\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const share = Flight.useBasicFetch<Share>(props.shareId\n ? ShareRequests.getShare(props.shareId)\n : ShareRequests.getShareLinkByObjectId(props.entityId));\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n /**\n * Fetch interactive videos options to set them as defaults\n * if the interactive share data does not have any options set\n */\n const interactive = Flight.useBasicFetch<Interactive>(\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) && entity.data.interactiveId &&\n InteractiveRequests.interactive(entity.data.interactiveId)\n );\n\n function onClickSaveLink(data: UpdateShareRequest, onError: () => void): void {\n ShareViewHelper.updateShareLink(\n dispatch,\n entity.data,\n props.entityType,\n share.data,\n data,\n alerts,\n null,\n onError\n );\n }\n\n function onClickSavePrivacy(privacy: SharePrivacy): void {\n Flight.fetch(\n dispatch,\n ShareRequests.updateShare(\n share.data.shareId,\n { privacy },\n () => alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name, escapeText: true })),\n () => alerts.error(getPhrase('privaciesError', { name: entity.data.name, escapeText: true }))\n )\n );\n }\n\n const dataLoaded = !!share.data\n && !!config.data\n && !!entity.data\n && !!privacy.data\n && !!yearGroups\n && !isLoadingSettings;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!dataLoaded}\n >\n {(() => {\n if (!dataLoaded) return null;\n \n switch (screen) {\n case 'main':\n return (\n <MainShare\n entityType={props.entityType}\n entity={entity.data}\n yearGroups={yearGroups.data}\n share={share.data}\n privacy={privacy.data}\n enableIntegrationBanner={props.enableIntegrationBanner}\n canEmbed={ShareViewHelper.canEmbed(props.entityType)}\n canAddPolicies={ShareViewHelper.canAddPolicies(props.entityType)}\n integrations={ShareViewHelper.getEnabledIntegrations(shareToGoogleClassroom, shareToMicrosoftTeams)}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onClickEditSettings={() => setScreen('link-settings')}\n onClickGetEmbedCode={() => setScreen('copy-embed')}\n onClickSavePrivacy={onClickSavePrivacy}\n closePopup={props.closePopup}\n integrationSettingAppLink={props.integrationSettingAppLink}\n messagePopupAppLink={props.messagePopupAppLink}\n />\n );\n case 'link-settings':\n return (\n <ShareSettings\n initialValues={ShareViewHelper.getShareSettingsInitialValues(share.data, interactive.data)}\n onClickSaveLink={onClickSaveLink}\n onClickCancel={() => setScreen('main')}\n />\n );\n case 'copy-embed':\n return (\n <CopyEmbed\n entity={entity.data}\n entityId={props.entityId}\n entityType={props.entityType}\n share={share.data}\n liteUrl={config.data.liteUrl}\n onClickCancel={() => setScreen('main')}\n />\n );\n }\n })()}\n </Popup>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"normal\":\"Q1UGv\",\"copyBtn\":\"J3fBx\"};","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport styles from './copy-input.scss';\n\nconst namespace = 'shared.copyInput';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CopyInputProps {\n value: string;\n label?: string;\n // Greyed means the input will be greyed out. Normal means it will appear like a normal input\n styling?: 'greyed' | 'normal';\n onCopy?: () => void;\n copyText?: string;\n copiedText?: string;\n}\n\nCopyInput.defaultProps = {\n styling: 'normal'\n};\n\nexport function CopyInput(props: CopyInputProps): JSX.Element {\n const [ showCopiedText, setShowCopiedText ] = React.useState(false);\n\n function onCopy(e: React.MouseEvent): void {\n e.preventDefault();\n\n if (props.onCopy)\n props.onCopy();\n\n if (showCopiedText)\n return;\n\n setShowCopiedText(true);\n setTimeout(() => setShowCopiedText(false), 2000);\n }\n\n const input = (\n <div className='d-flex flex-row gap-2 position-relative w-100'>\n <input\n type='text'\n autoComplete='off'\n className={`form-control ${props.styling === 'normal' ? styles.normal : ''}`}\n spellCheck={false}\n value={props.value}\n readOnly\n />\n <CopyToClipboard text={props.value}>\n <button\n role={showCopiedText ? 'status' : ''}\n className={`btn btn-outline-dark border border-secondary py-0 text-nowrap`}\n onClick={onCopy}\n >\n {showCopiedText ?\n props.copiedText || getPhrase('copied') :\n props.copyText || getPhrase('copy')\n }\n </button>\n </CopyToClipboard>\n </div>\n );\n\n if (props.label) {\n return (\n <Form.Group className='form-group'>\n <Form.Label>{props.label}</Form.Label>\n {input}\n </Form.Group>\n );\n }\n\n return input;\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import React from 'react';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\n/**\n * We only need to load any script once.\n */\nconst loadedScripts: HashObject<boolean> = {};\n\nexport function useScript(src: string, shouldLoad: boolean): boolean {\n const [ loaded, setLoaded ] = React.useState(false);\n\n React.useEffect(() => {\n if (!src || !shouldLoad || loadedScripts[src])\n return;\n\n const script = document.createElement('script');\n\n script.src = src;\n script.async = true;\n script.onload = () => {\n loadedScripts[src] = true;\n /**\n * Onload event is fired before script content is parsed.\n * By calling set timeout, we ensure setLoaded is called after\n * the script is parsed in the event loop.\n */\n window.setTimeout(() => setLoaded(true), 0);\n };\n\n document.body.appendChild(script);\n\n return () => {\n script.onload = null;\n document.body.removeChild(script);\n };\n }, [ src, shouldLoad ]);\n\n return loadedScripts[src] || loaded;\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CopyToClipboard = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _excluded = [\"text\", \"onCopy\", \"options\", \"children\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CopyToClipboard = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(CopyToClipboard, _React$PureComponent);\n\n var _super = _createSuper(CopyToClipboard);\n\n function CopyToClipboard() {\n var _this;\n\n _classCallCheck(this, CopyToClipboard);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props = _this.props,\n text = _this$props.text,\n onCopy = _this$props.onCopy,\n children = _this$props.children,\n options = _this$props.options;\n\n var elem = _react[\"default\"].Children.only(children);\n\n var result = (0, _copyToClipboard[\"default\"])(text, options);\n\n if (onCopy) {\n onCopy(text, result);\n } // Bypass onClick if it was present\n\n\n if (elem && elem.props && typeof elem.props.onClick === 'function') {\n elem.props.onClick(event);\n }\n });\n\n return _this;\n }\n\n _createClass(CopyToClipboard, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n _text = _this$props2.text,\n _onCopy = _this$props2.onCopy,\n _options = _this$props2.options,\n children = _this$props2.children,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var elem = _react[\"default\"].Children.only(children);\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(elem, _objectSpread(_objectSpread({}, props), {}, {\n onClick: this.onClick\n }));\n }\n }]);\n\n return CopyToClipboard;\n}(_react[\"default\"].PureComponent);\n\nexports.CopyToClipboard = CopyToClipboard;\n\n_defineProperty(CopyToClipboard, \"defaultProps\", {\n onCopy: undefined,\n options: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n CopyToClipboard = _require.CopyToClipboard;\n\nCopyToClipboard.CopyToClipboard = CopyToClipboard;\nmodule.exports = CopyToClipboard;","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n"],"names":["normalizeOptions","namespace","ShareRequests","createShare","data","success","error","always","url","key","type","invalidationKeys","updateShare","shareId","getShare","bootstrapName","getSentShares","params","Object","values","join","formatData","response","count","length","pagination","cursors","next","previous","cursor","normalize","getShareLinkByObjectId","id","objectId","getPrivacy","ShareOption","getPhrase","LanguageService","ShareViewHelper","canEmbed","includes","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","IntegrationHelper","filter","i","enabled","map","getFetchFunctionByType","VideoRequests","PlaylistRequests","userId","ClassificationRequests","SeriesRequests","InteractiveRequests","ClipRequests","getAnalyticsEntity","entityType","getAnalyticsOptions","entity","location","workflowPhase","updateShareLink","dispatch","share","alerts","onSuccess","onError","updatedShare","AnalyticsHelper","objectName","name","actionType","eventVersion","escapeText","getShareSettingsInitialValues","interactive","defaults","preventSkipping","preventScrubbing","instantFeedback","immediateFeedback","ShareOptionKeyMapping","InstantFeedback","PreventSkipping","options","reduce","prev","curr","keys","option","value","EmbedSize","props","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","className","Text","phrase","Dropdown","variant","label","size","width","height","onClick","Checkbox","checked","onChange","CopyEmbed","EmbedHelper","copyBtnPhrase","setCopyBtnPhrase","find","s","embedUrl","link","shortenedEmbedUrl","host","liteUrl","embedString","spellCheck","rows","readOnly","onCopy","setTimeout","text","PopupButtons","align","onClickCancel","SharePrivacy","ShareLinkHelper","getPrivateIconAndText","entityTypeId","privacy","hasStudentExp","yearGroups","MasterType","icon","Array","isArray","Public","ProtectedOverrideRestriction","Protected","getRespectRatingText","JustMySchoolOverrideRestriction","JustMySchool","PinCode","PasswordProtected","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","DateHelper","dayDifference","Date","days","ShareLinkStatus","video","VideoHelper","restriction","RestrictionHelper","_restrictions","yearGroup","maxYearGroup","minAllowedYearGroup","rating","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","ShareType","SharePrivacyItem","active","title","description","SvgContainer","svgName","ShareLinkPrivacy","canUpdatePrivacy","shareOverrideRestrictions","accessType","entityPrivacy","respectRatingText","respectRatingPrivacy","justMySchoolPrivacy","onClickSavePrivacy","SharePermanentLink","logged","setLogged","Link","typeId","CopyInput","shortenedUrl","descriptor","GetEmbedCode","DivButton","onClickGetEmbedCode","S","LookingForIntegration","SharedViewModelKeys","show","storage","visibility","setVisibility","AppLink","appLink","closePopup","GOOGLE_CLASSROOM_CONTAINER_ID","DEFAULT_ICON_SIZE","ShareIntegrations","shouldLoad","loaded","googleContainerId","window","___gcfg","parsetags","useScript","gapi","sharetoclassroom","go","useGoogleClassrooms","integrations","IntegrationId","shareToMicrosoftTeams","renderButtons","iconSize","integrationsContainerStyle","style","SharePermanentLinkEmbed","hasManageIntegrationsPermission","integrationSettingAppLink","messagePopupAppLink","hasIntegrations","enableIntegrationBanner","SharePermanentLinkSetting","manageShareLinkSettings","onClickEditSettings","MainShare","hasPermissions","usePermissions","showLinkEmbedOptions","PermissionName","InstantFeedbackField","formikProps","htmlFor","ToggleSwitch","setFieldValue","submitForm","on","PreventSkippingField","ShareSettingsFormValidationSchema","shape","ShareSettingsForm","ShareSettings","FormWrapper","initialValues","onSubmit","onDone","onClickSaveLink","castInitialValues","validationSchema","ShareView","useSettings","shareToGoogleClassroom","isLoadingSettings","screen","setScreen","currentUser","UserRequests","entityId","config","ConfigRequests","isAuthenticated","CustomerRequests","customerId","MasterTypeHelper","interactiveId","dataLoaded","Popup","showLoadingSpinner","showCopiedText","setShowCopiedText","input","autoComplete","styling","CopyToClipboard","role","e","preventDefault","copiedText","copyText","Form","defaultProps","castValuesOnSubmit","formattedInitialValues","cast","omitChildValues","child","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","reset","errors","entries","children","f","useFormikContextWrapper","loadedScripts","src","setLoaded","script","document","createElement","async","onload","body","appendChild","removeChild","getShareIntegrations","settingName","deselectCurrent","clipboardToIE11Formatting","module","exports","debug","message","reselectPrevious","range","selection","mark","createRange","getSelection","textContent","ariaHidden","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","console","warn","clearData","setData","selectNodeContents","addRange","execCommand","Error","err","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","_typeof","obj","Symbol","iterator","constructor","prototype","defineProperty","_react","_interopRequireDefault","_copyToClipboard","_excluded","__esModule","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_defineProperties","configurable","writable","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","_React$PureComponent","subClass","superClass","TypeError","create","_inherits","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","valueOf","call","_isNativeReflectConstruct","result","Super","NewTarget","this","_possibleConstructorReturn","_this","instance","_classCallCheck","_len","args","_key","concat","event","_this$props","elem","Children","only","_this$props2","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutProperties","cloneElement","PureComponent","undefined","rangeCount","activeElement","ranges","getRangeAt","tagName","toUpperCase","blur","focus"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[555],{54405:(e,t,a)=>{a.d(t,{X:()=>n});var n={interactive:function(){return{url:"/mocks/insights/interactive.json",key:"demo:interactive",normalize:!1}},interactiveMetadata:function(){return{url:"/mocks/insights/interactive-metadata.json",key:"demo:interactive:metadata",normalize:!1}},interactiveResults:function(){return{url:"/mocks/insights/interactive-results.json",key:"demo:interactive:results",normalize:!1}},videoViews:function(){return{url:"/mocks/insights/video-views.json",key:"demo:video:views",normalize:!1}},users:function(){return{url:"/mocks/insights/users.json",key:"demo:users",normalize:!1}},individualHeatmap:function(){return{url:"/mocks/insights/individual-heatmap.json",key:"demo:individual:heatmap",normalize:!1}},aggregateHeatmap:function(){return{url:"/mocks/insights/aggregate-heatmap.json",key:"demo:aggregate:heatmap",normalize:!1}}}},18006:(e,t,a)=>{a.d(t,{c:()=>n,q:()=>r});var n="D8qRe7",r="GRWx6w"},9566:(e,t,a)=>{a.d(t,{G:()=>m,V:()=>u});var n=a(23481),r=a(110),i=a(35223),s=a(14070),l=a(97291),c=a(93975),o=n.T.encloseNamespace("myShares.demoInsights"),m={share:{shareId:"demo-insights",type:c.y.Link},sharedObject:null,shareRecipients:null,dateShared:r.O.subtract(new Date,7,"days").toISOString(),viewCount:23},d={application:l.O.MY_SHARES,action:s.e.MyShares.INTERACTIVE_OVERVIEW_DEMO},u={svgName:i.vn.Analytics,label:o("demoInsights"),appLink:d,group:"insights",className:"btn btn-outline-dark"}},85988:(e,t,a)=>{a.r(t),a.d(t,{MySharesView:()=>se});var n=a(32735),r=a(81886),i=a(23481),s=a(20354),l=a(74917),c=a(87801),o=a(16714),m=a(39151),d=a(1666),u=a(54405),p=a(31949),g=a(25882),h=a(79967),b=a(22902),y=a(79612),f=a(37802),v=a(46390),E=a(86099),k=a(99746),I=a(8935),S=a(75896),j=a(15611),O=a(89965),N=a(83914),w=a(83345),x=a(4594),C=a(35223);const L={noCaret:"_F6P_",filterContainer:"ZBgdA"};function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,l=[],c=!0,o=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(e){o=!0,r=e}finally{try{if(!c&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(o)throw r}}return l}}(e,t)||F(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e){return function(e){if(Array.isArray(e))return U(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||F(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){if(e){if("string"==typeof e)return U(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?U(e,t):void 0}}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var V="insights.insightsTypeFilters",T=i.T.encloseNamespace(V);function M(e){var t=e.breakpoints.xs||e.breakpoints.sm,a=[].concat(P(t?[{label:T("interactives"),filter:x.E.Interactive},{label:T("videos"),filter:x.E.Video},{label:T("clips"),filter:x.E.Clip}]:[]),[{label:T("playlists"),filter:x.E.Playlist},{label:T("series"),filter:x.E.Series}]),i=e.typeIdParams.filter((function(e){return a.some((function(t){return e===t.filter}))})),s=A(n.useState(!1),2),l=s[0],c=s[1],o=A(n.useState(i),2),m=o[0],d=o[1];function u(){var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:S.m.uniq([].concat(P(e.typeIdParams),P(m)))})}))}function p(){d([]);var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:[]})}))}return n.createElement("div",{className:"d-flex align-items-center fw-semibold"},n.createElement("p",{className:"d-none d-md-inline h6 mb-0"},n.createElement(w.x,{namespace:V,phrase:"filters"})),n.createElement("div",{className:"".concat(L.filterContainer," d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2")},n.createElement("div",{className:"d-none d-md-flex gap-2"},n.createElement(R,{typeId:x.E.Interactive,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(R,{typeId:x.E.Video,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(R,{typeId:x.E.Clip,typeFilters:e.typeIdParams,appLink:e.appLink})),n.createElement(I.Z,{onToggle:function(e){c(e),e||u()},show:l,className:"col"},n.createElement(I.Z.Toggle,{className:"".concat(L.noCaret," col-12 col-md-auto"),variant:i.length?"dark":"outline-dark"},n.createElement("div",{className:"d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0"},n.createElement(N.x,{svgName:C.vn.Filter,className:"svg-container d-inline-block d-md-none"}),n.createElement(w.x,{namespace:V,phrase:t?"filters":"moreFilters"}),i.length?" - ".concat(i.length):"")),n.createElement(I.Z.Menu,null,n.createElement("div",{className:"mx-1 px-2 py-1 mb-0"},n.createElement("h2",{className:"h6 mb-3"},n.createElement(w.x,{namespace:V,phrase:"types"})),n.createElement("ul",{className:"list-unstyled me-5"},a.map((function(a){return n.createElement("li",{key:"".concat(a.label,"-filter"),className:"my-1"},n.createElement(O.X,{id:"".concat(a.label,"-filter"),label:a.label,onChange:function(){return e=a.filter,void d(S.m.addOrRemoveImmutable(m,e));var e},checked:(r=a.filter,t?!!m.find((function(e){return e===r}))||!!e.typeIdParams.find((function(e){return e===r})):!!m.find((function(e){return e===r})))}));var r}))),n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("button",{onClick:function(){p(),c(!1)},className:"btn btn-link text-secondary p-0 mb-0"},n.createElement(w.x,{namespace:V,phrase:"resetAll"})),n.createElement("button",{onClick:function(){u(),c(!1)},className:"btn btn-link text-info p-0 mb-0"},n.createElement(w.x,{namespace:V,phrase:"apply"}))))))),!!e.typeIdParams.length&&n.createElement("button",{onClick:p,className:"d-none d-md-block btn btn-link ms-1"},n.createElement(w.x,{namespace:V,phrase:"resetAll"})))}function R(e){var t=e.typeFilters.includes(e.typeId),a=e.appLink,r=a.params,i=S.m.addOrRemoveImmutable(e.typeFilters,e.typeId),s=Object.assign(Object.assign({},a),{params:Object.assign(Object.assign({},r),{typeId:i})});function l(){return e.typeId===x.E.Video?"videos":e.typeId===x.E.Clip?"clips":e.typeId===x.E.Interactive?"interactives":void 0}return n.createElement(j.F,{className:"btn ".concat(t?"btn-dark":"btn-outline-dark"," fw-semibold"),appLink:s,ariaLabel:"".concat(T("ariaFilterBy"),": ").concat(T(l()))},n.createElement(w.x,{namespace:V,phrase:l()}))}var _=a(51922),G=a(18006),D=a(9566);const B={background:"HAuP3"};var z="myShares.demoInsights",H=i.T.encloseNamespace(z);function Z(e){var t=e.liteUrl.includes("staging"),a=e.breakpoints.xs||e.breakpoints.sm;return n.createElement("div",null,n.createElement(_.g,{heading:H("demoHeading"),isFirst:!0}),n.createElement("div",{className:"".concat(B.background," rounded-3 border-md bg-light-orange mb-4")},n.createElement(_.F,{shareData:Object.assign(Object.assign({},D.G),{sharedObject:Object.assign(Object.assign({},e.demoInteractive),{id:t?G.c:G.q})}),getObjectActions:function(){return[Object.assign(Object.assign({},D.V),{button:!a})]},getObjectAppLink:function(){return null},imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups,breakpoints:e.breakpoints},n.createElement("div",{className:"d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2"},n.createElement(w.x,{namespace:z,phrase:"demoInsightPill"})))))}var q=a(67467),Q=a(5056),W=a(28001),X=a(45231),Y=a(65858),$=a(97958),J=a(99742),K=a(14070),ee=a(97291),te="myShares.mySharesEmptyState",ae=i.T.encloseNamespace(te);function ne(){return n.createElement($.u,null,n.createElement($.u.Image,{src:J.W.EmptyStates.MY_VIDEOS_PUBLIC,altText:ae("heading")}),n.createElement($.u.Heading,null,n.createElement(w.x,{namespace:te,phrase:"heading"})),n.createElement($.u.Info,null,n.createElement(w.x,{namespace:te,phrase:"info"})),n.createElement($.u.Cta,{text:i.T.getPhrase(te,"cta"),appLink:{application:ee.O.SIGN_UP,action:K.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:Y.Vw.Click,location:Y.LZ.MySharesLanding,entity:Y.py.AppLink,workflowPhase:Y.eu.Start,descriptor:Y.Yu.SignUp}}))}var re=a(69003),ie=i.T.encloseNamespace("myShares.myShares");function se(e){var t,a,i,I;(0,y.M)({title:ie("myShares")});var S=(0,b.T)(),j=S.hasPermissions,O=S.hasLocalPermissions,N=(0,f.r)(null),w=N.hasShareFlowV2,x=N.hasClassrooms,C=(0,v.G)().isPlugin,L=(0,h.k)(),A=(0,g.v)().accessPolicy,P=(0,re.cl)(e.typeId),F=!O(o.E.ViewMySharesLanding)||j(o.C.ViewMyShares)&&w,U=w&&j(o.C.ViewInsights),V=null===(t=null==A?void 0:A.metadata)||void 0===t?void 0:t.hasDemoInsights,T=s.a.useBasicFetch(m.L.config()),R=s.a.useBasicFetch(p.N.currentUser()),_=s.a.useBasicFetch((null===(a=R.data)||void 0===a?void 0:a.isAuthenticated)&&d.h.yearGroups(R.data.customerId)),G=s.a.useBasicFetch(V&&u.X.interactiveMetadata()),D=(0,X.a)(P.sentSharesParams,!0,F);return n.useEffect((function(){j(o.C.ViewMyShares)&&w||r.Q.Ab.PageLoad("/")}),[F]),F?n.createElement("div",{className:"px-3"},n.createElement(k.p,{analyticsUrl:null===(i=T.data)||void 0===i?void 0:i.analyticsWebUrl,hasAnalytics:j(o.C.ViewCustomerAnalytics)}),n.createElement("div",{className:"d-flex justify-content-between border-bottom pb-3 mb-3"},n.createElement("h1",{className:"mb-1"},"Reports"),n.createElement(l.B,{hasClassroomsFeature:x})),n.createElement("div",{className:"mb-3"},n.createElement(M,{appLink:P.currentAppLink,typeIdParams:P.typeIdAppLinkParams,breakpoints:L})),V&&G.data&&n.createElement(Z,{demoInteractive:G.data,liteUrl:null===(I=T.data)||void 0===I?void 0:I.liteUrl,breakpoints:L,imageCdnUrl:D.imageCdnUrl,yearGroups:_.data}),function(){var e;return D.showPartialLoading?n.createElement(W.L,null):D.sentShares.length?n.createElement(n.Fragment,null,n.createElement(Q.R,{sentShares:D.sentShares,sharedObjects:D.sharedObjects.items,shareRecipients:D.shareRecipients.items,interactivesPendingReview:D.interactivesPendingReview.itemsArr,getObjectAppLink:E.Qh,getObjectActions:function(e,t){return(0,re.sD)(e,t,P.audienceAppLinkParams,U,C,L)},groupByDateShared:!0,breakpoints:L,hasDemoInsights:V,imageCdnUrl:null===(e=T.data)||void 0===e?void 0:e.imageCdnUrl,yearGroups:_.data}),(D.hasMore||D.isFetching)&&n.createElement(c._,{isFetching:D.isFetching,fetchNext:D.fetchNext,nextCursor:D.nextCursor})):n.createElement(q.o,null)}()):n.createElement(ne,null)}}}]);
|
|
2
|
-
//# sourceMappingURL=555-d811b49435-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/555-d811b49435-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-list/type-filter/insights-type-filters.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-list/type-filter/InsightsTypeFilters.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/my-shares-demo-insights.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/empty-state/MySharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesView.tsx"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","export const DEMO_INTERACTIVE_STAGING_ID = 'D8qRe7';\nexport const DEMO_INTERACTIVE_PROD_ID = 'GRWx6w';","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst DEMO_INSIGHT_DAYS_AGO = 7;\n\nexport const DEMO_INSIGHTS_SHARE: MySharesTableData = {\n share: {\n shareId: 'demo-insights',\n type: ShareType.Link\n } as ShareLink,\n sharedObject: null,\n shareRecipients: null,\n dateShared: DateHelper.subtract(new Date(), DEMO_INSIGHT_DAYS_AGO, 'days').toISOString(),\n viewCount: 23\n};\n\nconst DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTION: ActionOptions = {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n className: 'btn btn-outline-dark'\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"noCaret\":\"_F6P_\",\"filterContainer\":\"ZBgdA\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './insights-type-filters.scss';\n\nconst namespace = 'insights.insightsTypeFilters';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsTypeFilterProps {\n appLink: Core.AppLink;\n typeIdParams: MasterType[];\n breakpoints: Breakpoints;\n}\n\nexport function InsightsTypeFilters(props: InsightsTypeFilterProps) {\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n const moreFilterOptions = [\n ...(isMobile ? [{\n label: getPhrase('interactives'),\n filter: MasterType.Interactive\n }, {\n label: getPhrase('videos'),\n filter: MasterType.Video\n }, {\n label: getPhrase('clips'),\n filter: MasterType.Clip\n }] : []),\n {\n label: getPhrase('playlists'),\n filter: MasterType.Playlist\n }, {\n label: getPhrase('series'),\n filter: MasterType.Series\n }];\n\n const moreFiltersSelected = getMoreFiltersSelected();\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ moreFilters, setMoreFilters ] = React.useState(moreFiltersSelected);\n\n function applyFilter() {\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: ArrayHelper.uniq([\n ...props.typeIdParams,\n ...moreFilters\n ])\n }\n });\n }\n\n function resetFilters() {\n setMoreFilters([]);\n\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: []\n }\n });\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n applyFilter();\n }\n\n function onClickApply() {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onClickReset() {\n resetFilters();\n setShowDropdown(false);\n }\n\n function onSelectFilter(filter: MasterType) {\n setMoreFilters(ArrayHelper.addOrRemoveImmutable(moreFilters, filter));\n }\n\n function isFilterSelected(filter: MasterType) {\n if (isMobile) {\n return !!moreFilters.find(selectedFilter => selectedFilter === filter) ||\n !!props.typeIdParams.find(selectedFilter => selectedFilter === filter);\n }\n\n return !!moreFilters.find(selectedFilter => selectedFilter === filter);\n }\n\n function getMoreFiltersSelected() {\n return props.typeIdParams.filter(typeId =>\n moreFilterOptions.some(option => typeId === option.filter));\n }\n\n return (\n <div className='d-flex align-items-center fw-semibold'>\n <p className='d-none d-md-inline h6 mb-0'><Text namespace={namespace} phrase='filters' /></p>\n <div className={`${styles.filterContainer} d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2`}>\n <div className='d-none d-md-flex gap-2'>\n <InsightTypeFilterButton\n typeId={MasterType.Interactive}\n typeFilters={props.typeIdParams}\n appLink={props.appLink}\n />\n <InsightTypeFilterButton typeId={MasterType.Video} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton typeId={MasterType.Clip} typeFilters={props.typeIdParams} appLink={props.appLink} />\n </div>\n <Dropdown onToggle={onToggleDropdown} show={showDropdown} className='col'>\n <Dropdown.Toggle\n className={`${styles.noCaret} col-12 col-md-auto`}\n variant={moreFiltersSelected.length ? 'dark' : 'outline-dark'}\n >\n <div className='d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0'>\n <SvgContainer svgName={cvSvgLibrary.Filter} className='svg-container d-inline-block d-md-none' />\n <Text namespace={namespace} phrase={isMobile ? 'filters' : 'moreFilters'} />\n {moreFiltersSelected.length ? ` - ${moreFiltersSelected.length}` : ''}\n </div>\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className='mx-1 px-2 py-1 mb-0'>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='types' /></h2>\n <ul className='list-unstyled me-5'>\n {moreFilterOptions.map(option => (\n <li key={`${option.label}-filter`} className='my-1'>\n <Checkbox\n id={`${option.label}-filter`}\n label={option.label}\n onChange={() => onSelectFilter(option.filter)}\n checked={isFilterSelected(option.filter)}\n />\n </li>\n ))}\n </ul>\n <div className='d-flex justify-content-between'>\n <button onClick={onClickReset} className='btn btn-link text-secondary p-0 mb-0'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n <button onClick={onClickApply} className='btn btn-link text-info p-0 mb-0'>\n <Text namespace={namespace} phrase='apply' />\n </button>\n </div>\n </div>\n </Dropdown.Menu>\n </Dropdown>\n </div>\n {!!props.typeIdParams.length &&\n <button onClick={resetFilters} className='d-none d-md-block btn btn-link ms-1'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n }\n </div>\n );\n}\n\ninterface InsightTypeFilterButtonProps {\n typeId: MasterType;\n typeFilters: MasterType[];\n appLink: Core.AppLink;\n}\n\nfunction InsightTypeFilterButton(props: InsightTypeFilterButtonProps) {\n const selected = props.typeFilters.includes(props.typeId);\n\n const currentAppLink = props.appLink;\n const currentParams = currentAppLink.params as HashObject;\n\n const newType: MasterType[] = ArrayHelper.addOrRemoveImmutable(props.typeFilters, props.typeId);\n\n const newAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n typeId: newType\n }\n };\n\n function getTypePhrase(): string {\n if (props.typeId === MasterType.Video) return 'videos';\n if (props.typeId === MasterType.Clip) return 'clips';\n if (props.typeId === MasterType.Interactive) return 'interactives';\n }\n\n return (\n <AppLink\n className={`btn ${selected ? 'btn-dark' : 'btn-outline-dark'} fw-semibold`}\n appLink={newAppLink}\n ariaLabel={`${getPhrase('ariaFilterBy')}: ${getPhrase(getTypePhrase())}`}\n >\n <Text namespace={namespace} phrase={getTypePhrase()} />\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"HAuP3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INTERACTIVE_PROD_ID, DEMO_INTERACTIVE_STAGING_ID } from 'apps/my-shares/constants/DemoInsights';\nimport { DEMO_INSIGHTS_ACTION, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nimport styles from './my-shares-demo-insights.scss';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n liteUrl: string;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n breakpoints: Breakpoints;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isStaging = props.liteUrl.includes('staging');\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: isStaging ? DEMO_INTERACTIVE_STAGING_ID : DEMO_INTERACTIVE_PROD_ID\n };\n }\n\n function getObjectActions() {\n return [\n {\n ...DEMO_INSIGHTS_ACTION,\n button: !isMobile\n }\n ];\n }\n\n return (\n <div>\n <MySharesTableHeading heading={getPhrase('demoHeading')} isFirst={true} />\n\n <div className={`${styles.background} rounded-3 border-md bg-light-orange mb-4`}>\n <MySharesTableRow\n shareData={{ ...DEMO_INSIGHTS_SHARE, sharedObject: getDemoInteractive() }}\n getObjectActions={getObjectActions}\n getObjectAppLink={() => null}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n breakpoints={props.breakpoints}\n >\n <div className='d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2'>\n <Text namespace={namespace} phrase='demoInsightPill' />\n </div>\n </MySharesTableRow>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesEmptyState() {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC} altText={getPhrase('heading')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MySharesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AudienceFilterView } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterView';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { InsightsTypeFilters } from 'apps/my-shares/components/insights-list/type-filter/InsightsTypeFilters';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { useMySharesTable } from 'apps/my-shares/hooks/useMySharesTable';\nimport { MySharesEmptyState } from 'apps/my-shares/views/my-shares/empty-state/MySharesEmptyState';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesViewProps {\n typeId: string | string[];\n}\n\nexport function MySharesView(props: MySharesViewProps) {\n // Shared hooks\n useSetPageMetadata({ title: getPhrase('myShares') });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2, hasClassrooms } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const breakpoints = useBreakpoints();\n const { accessPolicy } = useAccessPolicy();\n\n const sharesParams = getSharesParams(props.typeId);\n\n // Local variables\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMySharesLanding) ||\n hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n const hasInsightsPermission = hasShareFlowV2 && hasPermissions(PermissionName.ViewInsights);\n const showDemoInsight = accessPolicy?.metadata?.hasDemoInsights;\n\n // Flight fetching\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(showDemoInsight &&\n InsightsDemoRequests.interactiveMetadata());\n\n const shareData = useMySharesTable(sharesParams.sentSharesParams, true, shouldFetch);\n\n React.useEffect(() => {\n if (!(hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2))\n Core.LocationUtils.PageLoad('/');\n }, [shouldFetch]);\n\n if (!shouldFetch)\n return <MySharesEmptyState />;\n\n return (\n <div className='px-3'>\n <InsightsAdminAlert\n analyticsUrl={config.data?.analyticsWebUrl}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n />\n\n <div className='d-flex justify-content-between border-bottom pb-3 mb-3'>\n <h1 className='mb-1'>Reports</h1>\n\n <AudienceFilterView hasClassroomsFeature={hasClassrooms} />\n </div>\n\n <div className='mb-3'>\n <InsightsTypeFilters\n appLink={sharesParams.currentAppLink}\n typeIdParams={sharesParams.typeIdAppLinkParams}\n breakpoints={breakpoints}\n />\n </div>\n\n {showDemoInsight && demoInteractive.data &&\n <MySharesDemoInsight\n demoInteractive={demoInteractive.data}\n liteUrl={config.data?.liteUrl}\n breakpoints={breakpoints}\n imageCdnUrl={shareData.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n }\n\n {(() => {\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n\n if (!shareData.sentShares.length)\n return (\n <MySharesTableEmptyState />\n );\n\n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={(obj, shareId) => getShareObjectActions(\n obj,\n shareId,\n sharesParams.audienceAppLinkParams,\n hasInsightsPermission,\n isPlugin,\n breakpoints\n )}\n groupByDateShared\n breakpoints={breakpoints}\n hasDemoInsights={showDemoInsight}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n })()}\n </div>\n );\n}\n"],"names":["InsightsDemoRequests","interactive","url","key","normalize","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","DEMO_INTERACTIVE_STAGING_ID","DEMO_INTERACTIVE_PROD_ID","getPhrase","DEMO_INSIGHTS_SHARE","share","shareId","type","sharedObject","shareRecipients","dateShared","Date","toISOString","viewCount","DEMO_INSIGHTS_APPLINK","application","action","DEMO_INSIGHTS_ACTION","svgName","label","appLink","group","className","namespace","LanguageService","InsightsTypeFilters","props","isMobile","breakpoints","xs","sm","moreFilterOptions","filter","MasterType","moreFiltersSelected","typeIdParams","typeId","some","option","showDropdown","setShowDropdown","moreFilters","setMoreFilters","applyFilter","currentParams","params","ArrayHelper","resetFilters","Text","phrase","InsightTypeFilterButton","typeFilters","Dropdown","onToggle","isShowing","show","variant","length","SvgContainer","map","Checkbox","id","onChange","checked","find","selectedFilter","onClick","selected","includes","currentAppLink","newType","newAppLink","getTypePhrase","AppLink","ariaLabel","MySharesDemoInsight","isStaging","liteUrl","heading","isFirst","MySharesTableRow","shareData","demoInteractive","getObjectActions","button","getObjectAppLink","imageCdnUrl","yearGroups","MySharesEmptyState","EmptyState","src","ImageUrls","altText","text","analyticsData","analyticsOptions","actionType","location","entity","workflowPhase","descriptor","SignUp","MySharesView","useSetPageMetadata","title","usePermissions","hasPermissions","hasLocalPermissions","useSettings","hasShareFlowV2","hasClassrooms","isPlugin","usePluginHelper","useBreakpoints","accessPolicy","useAccessPolicy","sharesParams","shouldFetch","PermissionName","hasInsightsPermission","showDemoInsight","metadata","hasDemoInsights","config","ConfigRequests","currentUser","UserRequests","data","isAuthenticated","CustomerRequests","customerId","useMySharesTable","sentSharesParams","InsightsAdminAlert","analyticsUrl","analyticsWebUrl","hasAnalytics","AudienceFilterView","hasClassroomsFeature","typeIdAppLinkParams","showPartialLoading","PartialMySharesTable","sentShares","MySharesTable","sharedObjects","items","interactivesPendingReview","itemsArr","obj","audienceAppLinkParams","groupByDateShared","hasMore","isFetching","InfiniteScrollFooter","fetchNext","nextCursor","MySharesTableEmptyState"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5679],{50938:(e,t,n)=>{n.d(t,{z:()=>y});var r=n(32735),o=n(6748),a=n(23481),l=n(38307),i=n(26136),c=n(97408),s=n(40782),u=n(64818);const d={heatMap:"rwDjh",avatarContainer:"kW4ZM"};function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var f=a.T.encloseNamespace("shared.engagementTable");function v(e){var t;return r.createElement("div",{className:"".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.children)}function g(e){return r.createElement(v,{className:"d-inline-block ".concat(e.column.isSorted?"fw-bold":"")},f(e.phraseKey))}function b(e){return r.useMemo((function(){var t,n,o=(t=e.engagement,n=0,t.forEach((function(e){var t,r=Math.max.apply(Math,function(e){if(Array.isArray(e))return m(e)}(t=e.heatMap)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r>n&&(n=r)})),n);return[{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"name"})},width:22,accessor:"user",sortType:function(t,n){return(0,i.B2)(t.values.user,e.anonymiseUsers)>(0,i.B2)(n.values.user,e.anonymiseUsers)?1:-1},Cell:function(t){var n,o,a,l,s=t.value,m=(o=s,a=e.anonymiseUsers,{name:(l=(0,i.B2)(o,a).split(" ").filter((function(e){return!!e})))[0],surname:l.slice(1).join(" ")}),f=m.name,g=m.surname;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement("span",{className:d.avatarContainer},r.createElement(c.q,{imageCdnUrl:e.imageCdnUrl,initials:u.l.getInitials(f,g),imageUrl:!e.anonymiseUsers&&"avatar"in s?null===(n=s.avatar)||void 0===n?void 0:n.url:null,showAnonymousUser:"sessionId"in s})),r.createElement("span",{className:"ms-2 clamp-1"},f," ",g))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"views"})},accessor:"viewCount",width:15,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement("div",null,t))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"engagement"})},accessor:"engagementRate",width:20,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(v,{className:"w-33"},r.createElement(s.O,{percentage:t,layout:s.I.LabelBefore}))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"heatMap"})},accessor:"heatMap",width:48,disableSortBy:!0,Cell:function(e){var t=e.row.original;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement(l.c,{engagement:t,max:o,className:"".concat(d.heatMap," flex-grow-1")}))}}]}),[e.anonymiseUsers])}var h={table:"bg-white rounded px-0",header:"border-bottom",headerCell:"m-3",cell:"mx-3 my-2"};function y(e){var t,n,a,l=b({engagement:e.engagement,imageCdnUrl:e.imageCdnUrl,anonymiseUsers:e.anonymiseUsers}),c=(t=e.engagement,n=e.users,a=e.anonSessions,r.useMemo((function(){var e=[];return t.forEach((function(t){var r=null==n?void 0:n.find((function(e){return e.id===t.userId}));r?e.push(Object.assign(Object.assign({},t),{user:r})):t.sessionId&&e.push(Object.assign(Object.assign({},t),{user:(0,i.jP)(t.sessionId,a)}))})),console.log("TABLE DATA:",e),e}),[null==n?void 0:n.length,a]));return c.length?r.createElement(o.i,{columns:l,data:c,theme:Object.assign(Object.assign({},h),{table:e.border?"".concat(h.table," border"):h.table}),enableSort:!0}):r.createElement(r.Fragment,null)}},49475:(e,t,n)=>{function r(e){var t=[];return Object.keys(e).forEach((function(n){var r=e[n];r&&t.push("".concat(n,":").concat(Array.isArray(r)?r.join(","):r))})),t.join(":")}n.d(t,{u:()=>r})},6748:(e,t,n)=>{n.d(t,{i:()=>j});var r=n(32735),o=n(42648),a=n(35509),l=n(91967),i=n(15611),c=n(17808),s=n(1287),u=n(83914),d=n(90281),m={opacity:"0.8",cursor:"grabbing"},f=n(35223);function v(e){return function(e){if(Array.isArray(e))return b(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||g(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){if(e){if("string"==typeof e)return b(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e){var t,n,r,o;return{canScrollLeft:(null===(t=e.current)||void 0===t?void 0:t.scrollLeft)>0,canScrollRight:(null===(n=e.current)||void 0===n?void 0:n.scrollLeft)+1<(null===(r=e.current)||void 0===r?void 0:r.scrollWidth)-(null===(o=e.current)||void 0===o?void 0:o.clientWidth)}}const y={sortIndicator:"gFhu0",scrollContainer:"sWUp9",scrollbarTrack:"Vn2qM"};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var S=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function w(e){var t,n;return e.column.canSort?r.createElement("span",{className:"".concat(y.sortIndicator,"\n ").concat(e.column.isSorted?"":"text-secondary","\n ").concat(null!==(n=null===(t=e.theme)||void 0===t?void 0:t.sortIndicator)&&void 0!==n?n:"")},r.createElement(u.x,{svgName:e.column.isSortedDesc||!e.column.isSorted?f.vn.ArrowRight:f.vn.ArrowLeft,size:u.S.Small})):r.createElement(r.Fragment,null)}function E(e){var t,n,o,u,d,f,g,b,h={columns:e.columns,data:e.data,disableSortBy:!e.enableSort,manualSortBy:e.manualSort,autoResetHiddenColumns:e.autoResetHiddenColumns,autoResetSortBy:e.autoResetSortBy,initialState:{sortBy:e.initialSortBy||[]}};e.initialSelectedRowIds&&(h.initialState={selectedRowIds:(g=e.initialSelectedRowIds,b={},g.forEach((function(e){return b[e]=!0})),b)}),e.getRowId&&(h.getRowId=e.getRowId);var y,S=a.useTable.apply(void 0,[h].concat((y=function(e){var t=[a.useSortBy,a.useRowSelect,"flex"===e.layout?a.useFlexLayout:a.useBlockLayout];return e.allowFiltering&&(t=[].concat(v(t),[a.useFilters])),e.allowGlobalFiltering&&(t=[].concat(v(t),[a.useGlobalFilter])),t}(Object.assign({},e)),function(e){if(Array.isArray(e))return p(e)}(y)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(y)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(y)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))),E=S.getTableProps,j=S.getTableBodyProps,C=S.headerGroups,O=S.rows,A=S.prepareRow,R=S.toggleAllRowsSelected,I=S.setGlobalFilter,N=S.setHiddenColumns,k=S.state.sortBy;function x(){return O.map((function(t){A(t);var n=function(t){var n,r,o,a,i,c=l.q.isFunction(null===(n=e.theme)||void 0===n?void 0:n.row)?e.theme.row(t):null!==(o=null===(r=e.theme)||void 0===r?void 0:r.row)&&void 0!==o?o:"";return t.isSelected&&(null===(a=e.theme)||void 0===a?void 0:a.selectedRow)&&(c+=" ".concat(null===(i=e.theme)||void 0===i?void 0:i.selectedRow)),e.onSelectRow&&(c+=" cursor-pointer"),e.enableSortableRows&&(c+=" cursor-grab"),c}(t),o=!!e.getRowAppLink&&e.getRowAppLink(t);function a(){e.onSelectRow&&(e.allowSelectMultipleRows||R(!1),e.onSelectRow(t),t.toggleRowSelected(!0))}function c(e,l){var c=function(e,t){return"dragAttributes"in e&&"dragListeners"in e?Object.assign(Object.assign(Object.assign({},e.dragAttributes),e.dragListeners),{"aria-roledescription":"Sortable row",ref:t}):{}}(e,l);return o?r.createElement("div",{role:"row",key:t.id},r.createElement(i.F,Object.assign({},e,c,{className:n,appLink:o}),B(t))):r.createElement("div",Object.assign({},e,c,{key:t.id,role:"row",className:n,onClick:a}),B(t))}var u=t.getRowProps();return e.enableSortableRows?r.createElement(s.W,{id:t.original.id,key:t.id,childProps:u,childComponent:r.forwardRef((function(e,t){return c(e,t)}))}):c(u)}))}function B(t){return t.cells.map((function(n){var o=function(t,n){var r,o,a="";return"function"==typeof(null===(r=e.theme)||void 0===r?void 0:r.cell)&&(a=e.theme.cell(t,n)),"string"==typeof(null===(o=e.theme)||void 0===o?void 0:o.cell)&&(a=e.theme.cell),e.onSelectCell&&(a+=" cursor-pointer"),a}(t,n);return r.createElement("div",Object.assign({key:n.column.id},n.getCellProps(),{className:o,onClick:function(){e.onSelectCell&&e.onSelectCell(n)}}),n.render("Cell"))}))}return r.useEffect((function(){e.onSort&&e.onSort(k)}),[k]),r.useEffect((function(){e.globalFilter&&I(e.globalFilter)}),[e.globalFilter]),r.useEffect((function(){e.hiddenColumns&&N(e.hiddenColumns)}),[e.hiddenColumns&&e.hiddenColumns.length]),r.createElement("div",Object.assign({},E(),{className:null!==(n=null===(t=e.theme)||void 0===t?void 0:t.table)&&void 0!==n?n:""}),r.createElement("div",{className:null!==(u=null===(o=e.theme)||void 0===o?void 0:o.header)&&void 0!==u?u:""},C.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderGroupProps(),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerRow)&&void 0!==o?o:""}),t.headers.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderProps(t.getSortByToggleProps()),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerCell)&&void 0!==o?o:""}),t.render("Header",{renderSortIndicator:function(){return r.createElement(w,{column:t,theme:e.theme})}}),!t.hideSortIndicator&&r.createElement(w,{column:t,theme:e.theme}))})))}))),r.createElement("div",Object.assign({},j(),{className:null!==(f=null===(d=e.theme)||void 0===d?void 0:d.body)&&void 0!==f?f:""}),e.enableSortableRows?r.createElement(c.Q,{ids:O.map((function(e){return e.original.id})),getDragOverlay:function(t){var n,o,a=O.findIndex((function(e){return e.original.id===t})),l=O[a];return r.createElement("div",Object.assign({},e,{className:(n=e.theme,o="g-0 ",n&&(o+=n.row),o),style:m}),B(l))},onSortEnd:e.onSortingRowsEnd},x()):x()))}function j(e){var t=e.enableSlider,n=e.scrollIncrement,a=e.scrollable,i=S(e,["enableSlider","scrollIncrement","scrollable"]),c=function(){var e,t,n=r.useRef(null),o=(e=r.useState(h(n)),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,l,i=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){s=!0,o=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw o}}return i}}(e,t)||g(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=o[0],i=o[1],c=l.q.throttle((function(){i(h(n))}),200),s=r.useCallback((function(e){var t;n.current&&(null===(t=n.current)||void 0===t||t.removeEventListener("scroll",c)),e&&(i(h(n)),e.addEventListener("scroll",c)),n.current=e}),[]);return r.useEffect((function(){(null==n?void 0:n.current)&&i(h(n))}),[n]),{ref:s,scrollState:a,scroll:function(e){var t;null===(t=n.current)||void 0===t||t.scrollBy({left:e,top:0,behavior:"smooth"})}}}(),s=c.ref,u=c.scrollState,m=c.scroll;if(a)return r.createElement(o.$B,{renderTrackHorizontal:function(){return r.createElement("div",{className:y.scrollbarTrack})},autoHeightMax:1e4,autoHeight:!0},r.createElement(E,Object.assign({},i)));if(!t)return r.createElement(E,Object.assign({},i));function f(e){m(n*("right"===e?1:-1))}return r.createElement("div",{className:"mx-n4 overflow-x-hidden overflow-y-hidden"},r.createElement("div",{className:"px-4"},r.createElement("div",{className:"position-relative"},r.createElement(d.W,{direction:d.f.Left,onClick:function(){return f("left")},hide:!u.canScrollLeft}),r.createElement("div",{className:"".concat(y.scrollContainer," ").concat(e.scrollContainerClassName),ref:s},r.createElement(E,Object.assign({},i))),r.createElement(d.W,{direction:d.f.Right,onClick:function(){return f("right")},hide:!u.canScrollRight}))))}j.defaultProps={scrollIncrement:250,scrollable:!1,layout:"flex"}}}]);
|
|
2
|
-
//# sourceMappingURL=5679-b40a221c78-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5679-b40a221c78-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/engagement-table.scss","file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/EngagementTableUtils.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/EngagementTable.tsx","file:///app/packages/libs/shared/src/apps/analytics/utils/FilterParamUtils.ts","file:///app/packages/libs/shared/src/constants/DragOverlayStyles.ts","file:///app/packages/libs/shared/src/components/table/TableUtils.ts","file:///app/packages/libs/shared/src/components/table/table.scss","file:///app/packages/libs/shared/src/components/table/Table.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"heatMap\":\"rwDjh\",\"avatarContainer\":\"kW4ZM\"};","import React from 'react';\nimport { Column, ColumnInstance, Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EngagementHeatMap } from 'libs/shared/apps/analytics/components/engagement-heat-map/EngagementHeatMap';\nimport { AnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { UserOrAnonSession } from 'libs/shared/apps/analytics/interfaces/UserOrAnonSession';\nimport { anonymiseUserName, getAnonSession } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { PercentageIndicator, PercentageIndicatorLayout } from 'libs/shared/components/percentage-indicator/PercentageIndicator';\nimport { Engagement, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './engagement-table.scss';\n\nconst namespace = 'shared.engagementTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CellWrapperProps {\n className?: string;\n}\n\nfunction CellWrapper(props: React.PropsWithChildren<CellWrapperProps>): JSX.Element {\n return (\n <div className={`${props.className ?? ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface HeaderCellProps {\n column: ColumnInstance<EngagementTableData>;\n phraseKey: string;\n}\n\nfunction HeaderCell(props: HeaderCellProps): JSX.Element {\n return (\n <CellWrapper className={`d-inline-block ${props.column.isSorted ? 'fw-bold' : ''}`}>\n {getPhrase(props.phraseKey)}\n </CellWrapper>\n );\n}\n\nexport interface EngagementTableData extends Engagement {\n user: UserOrAnonSession;\n}\n\nfunction getMaxHeatMapValue(engagement: Engagement[]): number {\n let max = 0;\n\n engagement.forEach(e => {\n const localMax = Math.max(...e.heatMap);\n\n if (localMax > max)\n max = localMax;\n });\n\n return max;\n}\n\nfunction getUsersName(user: UserOrAnonSession, anonymiseUsers: boolean) {\n const fullName = anonymiseUserName(user, anonymiseUsers);\n const nameParts = fullName.split(' ').filter(n => !!n);\n\n return {\n name: nameParts[0],\n surname: nameParts.slice(1).join(' ')\n };\n}\n\ninterface EngagementColumnProps {\n engagement: Engagement[],\n imageCdnUrl: string;\n anonymiseUsers: boolean;\n}\n\nexport function useGetColumns(props: EngagementColumnProps): Column<EngagementTableData>[] {\n return React.useMemo(() => {\n const maxHeatMapValue = getMaxHeatMapValue(props.engagement);\n\n return [\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='name' />,\n width: 22,\n accessor: 'user',\n sortType: (rowA: Row<EngagementTableData>, rowB: Row<EngagementTableData>) => {\n const nameA = anonymiseUserName(rowA.values.user, props.anonymiseUsers);\n const nameB = anonymiseUserName(rowB.values.user, props.anonymiseUsers);\n\n return nameA > nameB ? 1 : -1;\n },\n Cell: ({ value }) => {\n const { name, surname } = getUsersName(value, props.anonymiseUsers);\n return (\n <CellWrapper className='d-flex align-items-center h-100'>\n <span className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(name, surname)}\n imageUrl={!props.anonymiseUsers && 'avatar' in value ? value.avatar?.url : null}\n showAnonymousUser={'sessionId' in value}\n />\n </span>\n <span className={'ms-2 clamp-1'}>\n {name} {surname}\n </span>\n </CellWrapper>\n );\n }\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='views' />,\n accessor: 'viewCount',\n width: 15,\n sortType: 'basic', // Default is 'alphanumeric' which would treat the numbers as strings\n sortDescFirst: true,\n Cell: ({ value }) => (\n <CellWrapper className='d-flex align-items-center h-100'>\n <div>{value}</div>\n </CellWrapper>\n )\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='engagement' />,\n accessor: 'engagementRate',\n width: 20,\n sortType: 'basic', // Default is 'alphanumeric' which would treat the numbers as strings\n sortDescFirst: true,\n Cell: ({ value }) => (\n <CellWrapper className='w-33'>\n <PercentageIndicator\n percentage={value}\n layout={PercentageIndicatorLayout.LabelBefore}\n />\n </CellWrapper>\n )\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='heatMap' />,\n accessor: 'heatMap',\n width: 48,\n disableSortBy: true,\n Cell: ({ row: { original } }) => (\n <CellWrapper className='d-flex align-items-center h-100'>\n <EngagementHeatMap\n engagement={original}\n max={maxHeatMapValue}\n className={`${styles.heatMap} flex-grow-1`}\n />\n </CellWrapper>\n )\n }\n ];\n }, [props.anonymiseUsers]);\n}\n\nexport function useGetTableData(\n engagement: Engagement[],\n users: User[],\n anonSessions: AnonSessions\n): EngagementTableData[] {\n return React.useMemo(() => {\n const data: EngagementTableData[] = [];\n\n engagement.forEach(e => {\n const user = users?.find(u => u.id === e.userId);\n\n // Omit deleted users\n if (user)\n data.push({ ...e, user });\n else if (e.sessionId)\n data.push({ ...e, user: getAnonSession(e.sessionId, anonSessions) });\n });\n console.log('TABLE DATA:', data);\n return data;\n }, [ users?.length, anonSessions ]);\n}","import React from 'react';\n\nimport { AnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Engagement, User } from 'libs/shared/interfaces';\n\nimport { useGetColumns, useGetTableData } from './EngagementTableUtils';\n\nconst theme: TableTheme = {\n table: 'bg-white rounded px-0',\n header: 'border-bottom',\n headerCell: 'm-3',\n cell: 'mx-3 my-2'\n};\n\ninterface EngagementTableProps {\n engagement: Engagement[];\n imageCdnUrl: string;\n users?: User[];\n anonymiseUsers: boolean;\n border?: boolean;\n anonSessions?: AnonSessions;\n}\n\nexport function EngagementTable(props: EngagementTableProps): JSX.Element {\n const columns = useGetColumns({\n engagement: props.engagement,\n imageCdnUrl: props.imageCdnUrl,\n anonymiseUsers: props.anonymiseUsers\n });\n\n const data = useGetTableData(props.engagement, props.users, props.anonSessions);\n\n if (!data.length)\n return <></>;\n\n return (\n <Table\n columns={columns}\n data={data}\n theme={{\n ...theme,\n table: props.border ? `${theme.table} border` : theme.table\n }}\n enableSort\n />\n );\n}","import { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\n\nexport function getFilterParamsKey(filters: FilterQueryParams): string {\n const keys: string[] = [];\n\n Object.keys(filters).forEach((key: keyof FilterQueryParams) => {\n const val = filters[key];\n\n if (!val)\n return;\n\n keys.push(`${key}:${Array.isArray(val) ? val.join(',') : val}`);\n });\n\n return keys.join(':');\n}","export const DragOverlayStyles = { opacity: '0.8', cursor: 'grabbing' };","import React from 'react';\nimport { PluginHook, useBlockLayout, useFilters, useFlexLayout, useGlobalFilter, useRowSelect, useSortBy } from 'react-table';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface PluginOptions {\n allowFiltering?: boolean;\n allowGlobalFiltering?: boolean;\n layout?: 'flex' | 'block';\n}\n\nexport function getPlugins<T extends HashObject>(props: PluginOptions): PluginHook<T>[] {\n let plugins: PluginHook<T>[] = [\n useSortBy,\n useRowSelect,\n props.layout === 'flex' ? useFlexLayout : useBlockLayout\n ];\n\n if (props.allowFiltering)\n plugins = [\n ...plugins,\n useFilters\n ];\n\n if (props.allowGlobalFiltering)\n plugins = [\n ...plugins,\n useGlobalFilter\n ];\n\n return plugins;\n}\n\nexport function getSelectedRowIds(ids: string[]): Record<string, boolean> {\n const idHash: Record<string, boolean> = {};\n\n ids.forEach(id => idHash[id] = true);\n\n return idHash;\n}\n\ninterface TableScrollState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n\nfunction calculateScrollState(ref: React.MutableRefObject<HTMLDivElement>): TableScrollState {\n const canScrollLeft = ref.current?.scrollLeft > 0;\n const canScrollRight = (ref.current?.scrollLeft + 1) < ref.current?.scrollWidth - ref.current?.clientWidth;\n\n return { canScrollLeft, canScrollRight };\n}\n\ninterface UseTableScroll {\n ref: (el: HTMLDivElement) => void;\n scrollState: TableScrollState;\n scroll: (scrollBy: number) => void;\n}\n\nexport function useTableScroll(): UseTableScroll {\n const elRef = React.useRef<HTMLDivElement>(null);\n const [ scrollState, setScrollState ] = React.useState<TableScrollState>(calculateScrollState(elRef));\n\n function onScroll(): void {\n setScrollState(calculateScrollState(elRef));\n }\n\n function scroll(scrollBy: number): void {\n elRef.current?.scrollBy({ left: scrollBy, top: 0, behavior: 'smooth' });\n }\n\n const throttledOnScroll = FunctionHelper.throttle(onScroll, 200);\n\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (elRef.current) {\n elRef.current?.removeEventListener('scroll', throttledOnScroll);\n }\n\n if (el) {\n setScrollState(calculateScrollState(elRef));\n el.addEventListener('scroll', throttledOnScroll);\n }\n\n elRef.current = el;\n }, []);\n\n React.useEffect(() => {\n if (elRef?.current) {\n setScrollState(calculateScrollState(elRef));\n }\n }, [elRef]);\n\n return { ref, scrollState, scroll };\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortIndicator\":\"gFhu0\",\"scrollContainer\":\"sWUp9\",\"scrollbarTrack\":\"Vn2qM\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport {\n Cell,\n Column as BaseColumn,\n HeaderGroup,\n HeaderProps as BaseHeaderProps,\n IdType,\n Row,\n SortingRule,\n TableOptions,\n TableRowProps,\n useTable } from 'react-table';\nimport { DragEndEvent } from '@dnd-kit/core';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { PropsWithSortableItemProps, SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { DragOverlayStyles } from 'libs/shared/constants/DragOverlayStyles';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getPlugins, getSelectedRowIds, useTableScroll } from './TableUtils';\n\nimport styles from './table.scss';\n\nexport interface TableTheme {\n table?: string;\n header?: string;\n headerRow?: string;\n headerCell?: string;\n body?: string;\n row?: string | ((row: Row<any>) => string);\n selectedRow?: string;\n cell?: string | ((row?: Row<any>, cell?: Cell<any, any>) => string);\n sortIndicator?: string;\n}\n\nexport type HeaderProps<T extends HashObject> = BaseHeaderProps<T> & {\n renderSortIndicator: () => void;\n}\n\nexport type Column<T extends HashObject> = BaseColumn<T> & {\n hideSortIndicator?: boolean;\n}\n\ninterface SortIndicatorProps<T extends HashObject> {\n column: HeaderGroup<T>;\n theme?: TableTheme;\n}\n\nfunction SortIndicator<T extends HashObject>(props: SortIndicatorProps<T>): JSX.Element {\n if (!props.column.canSort)\n return <></>;\n\n return (\n <span\n className={\n `${styles.sortIndicator}\n ${!props.column.isSorted ? 'text-secondary' : ''}\n ${props.theme?.sortIndicator ?? ''}`\n }\n >\n <SvgContainer\n svgName={(props.column.isSortedDesc || !props.column.isSorted)\n ? cvSvgLibrary.ArrowRight\n : cvSvgLibrary.ArrowLeft\n }\n size={SvgContainerSize.Small}\n />\n </span>\n );\n}\n\ninterface BaseTableProps<T extends HashObject> {\n /**\n * Must be memoized.\n */\n data: T[];\n\n /**\n * Must be memoized.\n * \n * For documentation on Column Options, see https://react-table.tanstack.com/docs/api/useTable#column-options\n */\n columns: Column<T>[];\n\n theme?: TableTheme;\n\n onSelectRow?: (row: Row<T>) => void;\n\n onSelectCell?: (cell: Cell<T>) => void;\n\n onRowMouseOver?: (row: Row<T>) => void;\n\n onRowMouseLeave?: (row: Row<T>) => void;\n\n allowSelectMultipleRows?: boolean;\n\n initialSelectedRowIds?: string[];\n\n getRowId?: (row: T) => string;\n\n getRowAppLink?: (row: Row<T>) => Core.AppLink;\n\n enableSort?: boolean;\n\n manualSort?: boolean;\n\n onSort?: (sortingRule: SortingRule<T>[]) => void;\n \n // Opt-in to utilise react-table's useFilter hook.\n allowFiltering?: boolean;\n\n // Opt-in to utilise react-table's useGlobalFilter hook.\n allowGlobalFiltering?: boolean;\n\n // Use either a flex layout or a block layout. Default is flex.\n layout?: 'flex' | 'block';\n\n // Used by useGlobalFilter hook, needs to be enabled by prop above.\n globalFilter?: string;\n\n // Set initial state of hidden columns in react-table.\n hiddenColumns?: IdType<T>[];\n\n // Determine whether hidden columns should be preserved on a table update event.\n autoResetHiddenColumns?: boolean;\n\n // Determine whether sort order state should be preserved on a table update event.\n autoResetSortBy?: boolean;\n\n // Determine whether rows are sortable by drag and drop\n enableSortableRows?: boolean;\n\n onSortingRowsEnd?: (event: DragEndEvent) => void;\n\n // Set initial state of sorting in react-table\n initialSortBy?: SortingRule<T>[];\n}\n \ntype SortableRowProps = PropsWithSortableItemProps<TableRowProps>;\n\nfunction BaseTable<T extends HashObject>(props: BaseTableProps<T>): JSX.Element {\n const tableOptions: TableOptions<T> = {\n columns: props.columns,\n data: props.data,\n disableSortBy: !props.enableSort,\n manualSortBy: props.manualSort,\n autoResetHiddenColumns: props.autoResetHiddenColumns,\n autoResetSortBy: props.autoResetSortBy,\n initialState: {\n sortBy: props.initialSortBy || []\n }\n };\n\n if (props.initialSelectedRowIds)\n tableOptions.initialState = { selectedRowIds: getSelectedRowIds(props.initialSelectedRowIds) };\n\n if (props.getRowId)\n tableOptions.getRowId = props.getRowId;\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n toggleAllRowsSelected,\n setGlobalFilter,\n setHiddenColumns,\n state: { sortBy }\n } = useTable<T>(tableOptions, ...getPlugins<T>({ ...props }));\n\n function getTableRowsClass(row: Row<T>) {\n let className = FunctionHelper.isFunction(props.theme?.row)\n ? props.theme.row(row)\n : props.theme?.row ?? '';\n\n if (row.isSelected && props.theme?.selectedRow)\n className += ` ${props.theme?.selectedRow}`;\n\n if (props.onSelectRow)\n className += ' cursor-pointer';\n\n if (props.enableSortableRows)\n className += ' cursor-grab';\n\n return className;\n }\n\n function renderTableRows(): JSX.Element[] {\n return rows.map(row => {\n prepareRow(row);\n \n const className = getTableRowsClass(row);\n const rowAppLink = !!props.getRowAppLink && props.getRowAppLink(row);\n\n function onClickRow(): void {\n if (!props.onSelectRow)\n return;\n\n if (!props.allowSelectMultipleRows)\n toggleAllRowsSelected(false);\n \n props.onSelectRow(row);\n row.toggleRowSelected(true);\n }\n\n function getSortableProps(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any) {\n if ('dragAttributes' in props && 'dragListeners' in props) {\n return {\n ...props.dragAttributes,\n ...props.dragListeners,\n 'aria-roledescription': 'Sortable row',\n ref\n };\n }\n\n return {};\n }\n\n function renderRow(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any): JSX.Element {\n const sortableProps = getSortableProps(props, ref);\n\n if (rowAppLink) {\n return (\n <div\n role='row'\n key={row.id}\n >\n <AppLink\n {...props}\n {...sortableProps}\n className={className}\n appLink={rowAppLink}\n >\n {renderCells(row)}\n </AppLink>\n </div>\n );\n }\n\n return (\n <div\n {...props}\n {...sortableProps}\n key={row.id}\n role='row'\n className={className}\n onClick={onClickRow}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n const rowProps = row.getRowProps();\n\n if (props.enableSortableRows) {\n return (\n <SortableItemWrapper\n id={row.original.id}\n key={row.id}\n childProps={rowProps}\n childComponent={React.forwardRef(\n (props: SortableRowProps, ref: React.LegacyRef<HTMLDivElement>) => (renderRow(props, ref))\n )}\n />\n );\n }\n\n return renderRow(rowProps);\n });\n }\n\n function getDragOverlayClassName(theme: TableTheme): string {\n let className = 'g-0 ';\n\n if (theme)\n className += theme.row;\n\n return className;\n }\n\n function getDragOverlay(id: string) {\n const rowIndex = rows.findIndex(item => item.original.id === id);\n const row = rows[rowIndex];\n \n return (\n <div\n {...props}\n className={getDragOverlayClassName(props.theme)}\n style={DragOverlayStyles}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n function getCellClassName(row: Row<T>, cell: Cell<T>): string {\n let cellClassName = '';\n\n if (typeof props.theme?.cell === 'function')\n cellClassName = props.theme.cell(row, cell);\n\n if (typeof props.theme?.cell === 'string')\n cellClassName = props.theme.cell;\n\n if (props.onSelectCell)\n cellClassName += ' cursor-pointer';\n\n return cellClassName;\n }\n\n function renderCells(row: Row<T>): JSX.Element[] {\n return row.cells.map(cell => {\n const cellClassName = getCellClassName(row, cell);\n\n function onClickCell(): void {\n props.onSelectCell && props.onSelectCell(cell);\n }\n\n return (\n <div key={cell.column.id} {...cell.getCellProps()} className={cellClassName} onClick={onClickCell} >\n {cell.render('Cell')}\n </div>\n );\n });\n }\n\n React.useEffect(() => {\n if (!props.onSort)\n return;\n\n props.onSort(sortBy);\n }, [sortBy]);\n\n React.useEffect(() => {\n if (!props.globalFilter)\n return;\n\n setGlobalFilter(props.globalFilter);\n }, [props.globalFilter]);\n\n React.useEffect(() => {\n if (!props.hiddenColumns)\n return;\n\n setHiddenColumns(props.hiddenColumns);\n }, [props.hiddenColumns && props.hiddenColumns.length]);\n\n return (\n <div {...getTableProps()} className={props.theme?.table ?? ''}>\n <div className={props.theme?.header ?? ''}>\n {headerGroups.map(headerGroup => (\n <div {...headerGroup.getHeaderGroupProps()} className={props.theme?.headerRow ?? ''}>\n {headerGroup.headers.map(column => (\n <div {...column.getHeaderProps(column.getSortByToggleProps())} className={props.theme?.headerCell ?? ''}>\n {column.render('Header', { renderSortIndicator: () => <SortIndicator column={column} theme={props.theme} /> })}\n {!(column as Column<T>).hideSortIndicator &&\n <SortIndicator column={column} theme={props.theme} />\n }\n </div>\n ))}\n </div>\n ))}\n </div>\n <div {...getTableBodyProps()} className={props.theme?.body ?? ''}>\n { props.enableSortableRows ? (\n <SortableContainerWrapper\n ids={rows.map(row => row.original.id)}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortingRowsEnd}\n >\n {renderTableRows()}\n </SortableContainerWrapper>\n ) : (\n renderTableRows()\n )}\n </div>\n </div>\n );\n}\n\ninterface TableProps<T extends HashObject> extends BaseTableProps<T> {\n enableSlider?: boolean;\n scrollIncrement?: number;\n scrollContainerClassName?: string;\n scrollable?: boolean;\n initialSortBy?: SortingRule<T>[];\n}\n\nTable.defaultProps = {\n scrollIncrement: 250,\n scrollable: false,\n layout: 'flex'\n};\n\nexport function Table<T extends HashObject>(props: TableProps<T>): JSX.Element {\n const { enableSlider, scrollIncrement, scrollable, ...tableProps } = props;\n\n const { ref, scrollState, scroll } = useTableScroll();\n\n if (scrollable) {\n return (\n <Scrollbars\n renderTrackHorizontal={() => <div className={styles.scrollbarTrack} />}\n autoHeightMax={10000}\n autoHeight\n >\n <BaseTable {...tableProps} />\n </Scrollbars>\n );\n }\n\n if (!enableSlider)\n return <BaseTable {...tableProps} />;\n\n function onClickScroll(direction: 'left' | 'right'): void {\n scroll(scrollIncrement * (direction === 'right' ? 1 : -1));\n }\n\n return (\n <div className='mx-n4 overflow-x-hidden overflow-y-hidden'>\n <div className='px-4'>\n <div className='position-relative'>\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => onClickScroll('left')}\n hide={!scrollState.canScrollLeft}\n />\n <div className={`${styles.scrollContainer} ${props.scrollContainerClassName}`} ref={ref}>\n <BaseTable {...tableProps } />\n </div>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => onClickScroll('right')}\n hide={!scrollState.canScrollRight}\n />\n </div>\n </div>\n </div>\n );\n}"],"names":["getPhrase","LanguageService","CellWrapper","props","className","children","HeaderCell","column","isSorted","phraseKey","useGetColumns","engagement","max","maxHeatMapValue","forEach","e","localMax","Math","heatMap","Header","width","accessor","sortType","rowA","rowB","values","user","anonymiseUsers","Cell","nameParts","value","name","split","filter","n","surname","slice","join","Avatar","imageCdnUrl","initials","UserHelper","imageUrl","avatar","url","showAnonymousUser","sortDescFirst","PercentageIndicator","percentage","layout","disableSortBy","original","row","EngagementHeatMap","theme","table","header","headerCell","cell","EngagementTable","users","anonSessions","columns","data","find","u","id","userId","push","sessionId","console","log","length","Table","border","enableSort","getFilterParamsKey","filters","keys","Object","key","val","Array","isArray","DragOverlayStyles","opacity","cursor","calculateScrollState","ref","canScrollLeft","current","scrollLeft","canScrollRight","scrollWidth","clientWidth","SortIndicator","canSort","sortIndicator","SvgContainer","svgName","isSortedDesc","size","S","BaseTable","ids","idHash","tableOptions","manualSortBy","manualSort","autoResetHiddenColumns","autoResetSortBy","initialState","sortBy","initialSortBy","initialSelectedRowIds","selectedRowIds","getRowId","useTable","plugins","useSortBy","useRowSelect","useFlexLayout","useBlockLayout","allowFiltering","useFilters","allowGlobalFiltering","useGlobalFilter","getPlugins","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","toggleAllRowsSelected","setGlobalFilter","setHiddenColumns","state","renderTableRows","map","FunctionHelper","isSelected","selectedRow","onSelectRow","enableSortableRows","getTableRowsClass","rowAppLink","getRowAppLink","onClickRow","allowSelectMultipleRows","toggleRowSelected","renderRow","sortableProps","dragAttributes","dragListeners","getSortableProps","role","AppLink","appLink","renderCells","onClick","rowProps","getRowProps","SortableItemWrapper","childProps","childComponent","cells","cellClassName","onSelectCell","getCellClassName","getCellProps","render","onSort","globalFilter","hiddenColumns","headerGroup","getHeaderGroupProps","headerRow","headers","getHeaderProps","getSortByToggleProps","renderSortIndicator","hideSortIndicator","body","SortableContainerWrapper","getDragOverlay","rowIndex","findIndex","item","style","onSortEnd","onSortingRowsEnd","enableSlider","scrollIncrement","scrollable","tableProps","elRef","scrollState","setScrollState","throttledOnScroll","el","removeEventListener","addEventListener","scroll","scrollBy","left","top","behavior","useTableScroll","renderTrackHorizontal","autoHeightMax","autoHeight","onClickScroll","direction","WidgetButton","W","hide","scrollContainerClassName","defaultProps"],"sourceRoot":""}
|