@clickview/lite 0.69.1-dev.0 → 0.69.1-dev.2

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.
Files changed (99) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{9985-lite-3c49d1b796.chunk.css → 3902-lite-5eaa7e7ae0.chunk.css} +1 -2
  3. package/dist/css/{555-lite-1b5aa9652d.chunk.css → 4356-lite-b05b606d3d.chunk.css} +1 -2
  4. package/dist/css/{2636-lite-f995954232.chunk.css → 4527-lite-4d1b877b3f.chunk.css} +4 -0
  5. package/dist/css/{1239-lite-8152f713c8.chunk.css → 7210-lite-a568e8ec1e.chunk.css} +1 -0
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/1210-7afb28caac-lite.chunk.js +2 -0
  8. package/dist/scripts/1210-7afb28caac-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1386-332e63f68c-lite.chunk.js +2 -0
  10. package/dist/scripts/1386-332e63f68c-lite.chunk.js.map +1 -0
  11. package/dist/scripts/232-1522c00252-lite.chunk.js +3 -0
  12. package/dist/scripts/232-1522c00252-lite.chunk.js.map +1 -0
  13. package/dist/scripts/2392-19e4bb187b-lite.chunk.js +3 -0
  14. package/dist/scripts/2392-19e4bb187b-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{2640-536c550749-lite.chunk.js → 2640-052f4606f6-lite.chunk.js} +2 -2
  16. package/dist/scripts/2640-052f4606f6-lite.chunk.js.map +1 -0
  17. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js +2 -0
  18. package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js.map +1 -0
  19. package/dist/scripts/3079-0a333d6805-lite.chunk.js +2 -0
  20. package/dist/scripts/3079-0a333d6805-lite.chunk.js.map +1 -0
  21. package/dist/scripts/3110-eee18143c6-lite.chunk.js +2 -0
  22. package/dist/scripts/3110-eee18143c6-lite.chunk.js.map +1 -0
  23. package/dist/scripts/312-693aa30814-lite.chunk.js +2 -0
  24. package/dist/scripts/312-693aa30814-lite.chunk.js.map +1 -0
  25. package/dist/scripts/3902-39aaff7ce9-lite.chunk.js +2 -0
  26. package/dist/scripts/3902-39aaff7ce9-lite.chunk.js.map +1 -0
  27. package/dist/scripts/4229-477b1858dc-lite.chunk.js +2 -0
  28. package/dist/scripts/4229-477b1858dc-lite.chunk.js.map +1 -0
  29. package/dist/scripts/4356-36ce3ceec1-lite.chunk.js +2 -0
  30. package/dist/scripts/4356-36ce3ceec1-lite.chunk.js.map +1 -0
  31. package/dist/scripts/4527-42075d96f4-lite.chunk.js +2 -0
  32. package/dist/scripts/4527-42075d96f4-lite.chunk.js.map +1 -0
  33. package/dist/scripts/{4845-f3646fb657-lite.chunk.js → 4845-9b4657e696-lite.chunk.js} +2 -2
  34. package/dist/scripts/4845-9b4657e696-lite.chunk.js.map +1 -0
  35. package/dist/scripts/5679-444d9a7f76-lite.chunk.js +2 -0
  36. package/dist/scripts/5679-444d9a7f76-lite.chunk.js.map +1 -0
  37. package/dist/scripts/6046-104677f08c-lite.chunk.js +2 -0
  38. package/dist/scripts/6046-104677f08c-lite.chunk.js.map +1 -0
  39. package/dist/scripts/{6188-e108abca25-lite.chunk.js → 6188-77fc2f3ec5-lite.chunk.js} +2 -2
  40. package/dist/scripts/6188-77fc2f3ec5-lite.chunk.js.map +1 -0
  41. package/dist/scripts/6351-dff9edbb16-lite.chunk.js +3 -0
  42. package/dist/scripts/6351-dff9edbb16-lite.chunk.js.map +1 -0
  43. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js +2 -0
  44. package/dist/scripts/6973-c4cb114bd7-lite.chunk.js.map +1 -0
  45. package/dist/scripts/7210-2e4563178c-lite.chunk.js +3 -0
  46. package/dist/scripts/7210-2e4563178c-lite.chunk.js.map +1 -0
  47. package/dist/scripts/7480-3564c0c2da-lite.chunk.js +2 -0
  48. package/dist/scripts/7480-3564c0c2da-lite.chunk.js.map +1 -0
  49. package/dist/scripts/7482-13e6f78c32-lite.chunk.js +2 -0
  50. package/dist/scripts/7482-13e6f78c32-lite.chunk.js.map +1 -0
  51. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js +2 -0
  52. package/dist/scripts/9040-be65e4eb1e-lite.chunk.js.map +1 -0
  53. package/dist/scripts/{bundle-90d3c7fd15.min.js → bundle-32e967af87.min.js} +3 -3
  54. package/dist/scripts/{bundle-90d3c7fd15.min.js.map → bundle-32e967af87.min.js.map} +1 -1
  55. package/package.json +1 -1
  56. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js +0 -2
  57. package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js.map +0 -1
  58. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js +0 -3
  59. package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js.map +0 -1
  60. package/dist/scripts/1386-d93ee75e0c-lite.chunk.js +0 -2
  61. package/dist/scripts/1386-d93ee75e0c-lite.chunk.js.map +0 -1
  62. package/dist/scripts/2392-acfd69dfa3-lite.chunk.js +0 -3
  63. package/dist/scripts/2392-acfd69dfa3-lite.chunk.js.map +0 -1
  64. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js +0 -2
  65. package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js.map +0 -1
  66. package/dist/scripts/2640-536c550749-lite.chunk.js.map +0 -1
  67. package/dist/scripts/3036-d18c598435-lite.chunk.js +0 -2
  68. package/dist/scripts/3036-d18c598435-lite.chunk.js.map +0 -1
  69. package/dist/scripts/4229-75ba28a266-lite.chunk.js +0 -2
  70. package/dist/scripts/4229-75ba28a266-lite.chunk.js.map +0 -1
  71. package/dist/scripts/4266-e856b96643-lite.chunk.js +0 -3
  72. package/dist/scripts/4266-e856b96643-lite.chunk.js.map +0 -1
  73. package/dist/scripts/4598-f326dc1aec-lite.chunk.js +0 -2
  74. package/dist/scripts/4598-f326dc1aec-lite.chunk.js.map +0 -1
  75. package/dist/scripts/4845-f3646fb657-lite.chunk.js.map +0 -1
  76. package/dist/scripts/555-d811b49435-lite.chunk.js +0 -2
  77. package/dist/scripts/555-d811b49435-lite.chunk.js.map +0 -1
  78. package/dist/scripts/6046-44c115a89c-lite.chunk.js +0 -2
  79. package/dist/scripts/6046-44c115a89c-lite.chunk.js.map +0 -1
  80. package/dist/scripts/6188-e108abca25-lite.chunk.js.map +0 -1
  81. package/dist/scripts/6317-49be898c73-lite.chunk.js +0 -2
  82. package/dist/scripts/6317-49be898c73-lite.chunk.js.map +0 -1
  83. package/dist/scripts/6973-ede6601614-lite.chunk.js +0 -2
  84. package/dist/scripts/6973-ede6601614-lite.chunk.js.map +0 -1
  85. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js +0 -3
  86. package/dist/scripts/7075-9a76ce47c9-lite.chunk.js.map +0 -1
  87. package/dist/scripts/7480-02bc4e08a3-lite.chunk.js +0 -2
  88. package/dist/scripts/7480-02bc4e08a3-lite.chunk.js.map +0 -1
  89. package/dist/scripts/9040-9393c59004-lite.chunk.js +0 -2
  90. package/dist/scripts/9040-9393c59004-lite.chunk.js.map +0 -1
  91. package/dist/scripts/9985-c488ab5f65-lite.chunk.js +0 -2
  92. package/dist/scripts/9985-c488ab5f65-lite.chunk.js.map +0 -1
  93. /package/dist/css/{3036-lite-1b3e9aa905.chunk.css → 3079-lite-1b3e9aa905.chunk.css} +0 -0
  94. /package/dist/css/{7075-lite-a377febbb0.chunk.css → 6351-lite-a377febbb0.chunk.css} +0 -0
  95. /package/dist/scripts/{4266-e856b96643-lite.chunk.js.LICENSE.txt → 232-1522c00252-lite.chunk.js.LICENSE.txt} +0 -0
  96. /package/dist/scripts/{1239-ed9b8aadb4-lite.chunk.js.LICENSE.txt → 2392-19e4bb187b-lite.chunk.js.LICENSE.txt} +0 -0
  97. /package/dist/scripts/{2392-acfd69dfa3-lite.chunk.js.LICENSE.txt → 6351-dff9edbb16-lite.chunk.js.LICENSE.txt} +0 -0
  98. /package/dist/scripts/{7075-9a76ce47c9-lite.chunk.js.LICENSE.txt → 7210-2e4563178c-lite.chunk.js.LICENSE.txt} +0 -0
  99. /package/dist/scripts/{bundle-90d3c7fd15.min.js.LICENSE.txt → bundle-32e967af87.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1239-ed9b8aadb4-lite.chunk.js","mappings":";mKAUMA,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,yCChIUK,+CAAZ,SAAYA,GACV,qCACA,oCACD,CAHD,CAAYA,IAAAA,EAAW,ktBC4BvB,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,oNC/JF,SAAgB,qBAAuB,QAAQ,kBAAoB,QAAQ,iBAAmB,QAAQ,mBAAqB,QAAQ,aAAe,QAAQ,eAAiB,QAAQ,MAAQ,QAAQ,IAAM,QAAQ,EAAI,QAAQ,UAAY,QAAQ,EAAI,QAAQ,EAAI,SCuBjQ,IAAM9E,EAAY,2BAEZ6F,EAAwB,0BAgD9B,SAASC,IACP,OACE,uBAAKC,UAAS,2HACZ,uBAAKA,UAAU,+EACf,uBAAKA,UAAU,yCACb,uBAAKA,UAAU,+BACb,uBAAKA,UAAS,UAAK,MAAU,YAAI,IAAQ,sBAE3C,uBAAKA,UAAU,+BACb,uBAAKA,UAAS,UAAK,MAAU,YAAI,IAAQ,sBAE3C,uBAAKA,UAAU,gCACb,uBAAKA,UAAS,UAAK,MAAU,YAAI,IAAQ,uBAKnD,CA8BM,SAAUC,EAAkBC,GAChC,IAAMC,EAAM,eAAkB,SAACC,GA7BjC,IAAuBC,EA8BdD,GAAOF,EAAMI,cAGlBF,EAAGG,MAAMC,MAAQ,GAAH,OAAMJ,EAAGK,cAjCJJ,EAiCiCH,EAAMG,OAhCxDK,EAAA,cAAwBL,GACnB,GAAK,EAEVA,EAAOM,SAAWC,EAAA,WACb,EAELP,EAAOM,SAAWC,EAAA,SACb,EAAI,QADb,GA0BmE,MACnE,GAAG,IAEGC,EAAoBH,EAAA,cAAwBR,EAAMG,QAExD,EAhGF,SAAuBA,GACrB,IAAMS,EAAQC,EAAA,4BAAsCV,GAEpD,GAAIK,EAAA,cAAwBL,GAC1B,MAAO,CACLS,MAAAA,EACAE,UAAW,gBACXC,eAAgBnB,EAChBoB,uBAAwB,gBAACC,EAAA,GAAa,CAACzG,KAAMyG,EAAA,YAGjD,OAAQd,EAAOM,QACb,KAAKC,EAAA,SACH,MAAO,CACLE,MAAAA,EACAE,UAAW,iBACXC,eAAgBnB,EAChBoB,uBACE,gBAACC,EAAA,GAAa,CAACzG,KAAMyG,EAAA,UAA0BC,sBAAuB,uBAG5E,KAAKR,EAAA,WACH,MAAO,CACLE,MAAAA,EACAE,UAAW,YACXC,gBAAiBH,aAAK,EAALA,EAAOtG,KAEpBsF,EAFuB,UACpBA,EAAqB,aAAI,EAAAuB,EAAA,GAAgBhB,EAAO5B,KAAM,MAE7DyC,uBACE,gBAACC,EAAA,GAAa,CACZzG,KAAMyG,EAAA,YACNC,uBAAuBN,aAAK,EAALA,EAAOtG,KAAM,mBAA0B,SAC9D8G,eAAeR,aAAK,EAALA,EAAOtG,MAAO,oBAKzC,CAgEM+G,CAAcrB,EAAMG,QAJtBS,EAAK,EAALA,MACAE,EAAS,EAATA,UACAC,EAAc,EAAdA,eACAC,EAAsB,EAAtBA,uBAGF,OACE,uBAAKlB,UAAU,gEACb,uBAAKG,IAAKA,EAAKH,UAAWE,EAAMI,YAAc,QAAU,SACrDO,GACC,uBAAKb,UAAS,UAAK,qBAAyB,uBACzCE,EAAMsB,kBAAoB,gBAACzB,EAAY,MACxC,gBAAC0B,EAAA,EAAO,CAACC,QAASxB,EAAMwB,SACtB,gBAACC,EAAA,EAAc,CACbC,MAAO1B,EAAMG,OACbwB,aAAc3B,EAAM2B,aACpBC,aAAcC,EAAA,cACdrH,KAAK,WACLsH,cAAY,EACZC,UAAQ,OAGT/B,EAAMgC,gBACP,uBAAKlC,UAAS,UAAKE,EAAMsB,kBAAoB,iBAAqB,8CAChE,uBAAKxB,UAAS,UAAK,QAAY,8GAC7B,gBAACmC,EAAA,EAAI,CAAClI,UAAWA,EAAWmI,OAAO,iBAAiB7C,QAAS,CAAE8C,WAAYnC,EAAMgC,sBAMzFrB,GACA,gCACG,WAAaX,EAAMG,OAClB,gBAACiC,EAAA,EAAmB,CAClBC,WAAYrC,EAAMG,OAClBwB,aAAc3B,EAAM2B,aACpBH,QAASxB,EAAMwB,QACfc,cAAe,CACbxG,GAAIkE,EAAMG,OAAOrE,GACjByC,KAAMyB,EAAMG,OAAO5B,MAErBgE,iBAAkB,CAChB5E,OAAQvB,EAAA,qBAAmC4D,EAAMG,OAAO3F,MACxDgE,WAAY,WACZZ,SAAUoC,EAAMwC,iBAElBC,SAAUzC,EAAM0C,mBAChBC,eAAgB3C,EAAM2C,iBAGxB,gBAACC,EAAA,EAAS,CACR1I,KAAM0G,aAAK,EAALA,EAAOtG,IACbwG,UAAWA,EACXa,aAAc3B,EAAM2B,aACpBH,QAASxB,EAAMwB,QACf1B,UAAWiB,EACXuB,cAAe,CACbxG,GAAIkE,EAAMG,OAAOrE,GACjByC,KAAMyB,EAAMG,OAAO5B,MAErBgE,iBAAkB,CAChB5E,OAAQvB,EAAA,qBAAmC4D,EAAMG,OAAO3F,MACxDgE,WAAY,WACZZ,SAAUoC,EAAMwC,kBAGjBxB,KAQjB,CAvGAjB,EAAkB8C,aAAe,CAC/BlB,aAAc,CAAEmB,KAAM,qHCxGxB,SAAgB,eAAiB,SCWjC,SAASC,EAA6B/C,GACpC,OACE,sBAAIgD,MAAOhD,EAAMgD,MAAOlD,UAAU,MAAME,EAAMgD,MAElD,CAMM,SAAUC,EAAyBjD,GACvC,OAAKA,EAAMwB,QAOT,gBAACD,EAAA,EAAO,CAACC,QAASxB,EAAMwB,QAAS1B,UAAS,UAAK,mBAC7C,gBAACiD,EAA4B,iBAAK/C,KANlC,gBAAC+C,EAA4B,iBAAK/C,GASxC,sECjCA,SAAgB,MAAQ,QAAQ,KAAO,QAAQ,mBAAqB,SCsBpE,IAAMjG,EAAY,6BAmBZ,SAAUqI,EAAoBpC,aAwCXqC,EAUjBa,EAjDN,iBACMC,EAAmC,QAAhB,EAAAnD,EAAMqC,kBAAU,eAAEe,OAEzC,GAAKD,EAAL,CAGA,IAAKA,EAAiB9H,OAAS2E,EAAMqC,WAAW5B,SAAWC,EAAA,WAAqB,CAC9E,IAAM2C,EAAWrD,EAAMqC,WAEnBgB,EAASC,MAAMjI,QACjB8H,EAAmBE,EAASC,OAE1BD,EAASE,aAAalI,QACxB8H,EAAmBE,EAASE,aAC/B,CAED,OAAOC,EAAA,QAAkBL,EAAiBjJ,KAZlC,CAaV,CAgCmBuJ,GACbC,EA/BN,mBACMC,EAAa,EAMjB,GAJI3D,EAAMqC,WAAWe,QAAUpD,EAAMqC,WAAWe,OAAO/H,QACrDsI,GAAc3D,EAAMqC,WAAWe,OAAO/H,OAGpC2E,EAAMqC,WAAW5B,SAAWC,EAAA,WAAqB,CACnD,IAAM2C,EAAWrD,EAAMqC,YAEE,QAArB,EAAAgB,EAASE,oBAAY,eAAElI,SACzBsI,GAAcN,EAASE,aAAalI,QAEpB,QAAd,EAAAgI,EAASC,aAAK,eAAEjI,SAClBsI,GAAcN,EAASC,MAAMjI,MAChC,CAED,OAAOsI,CACT,CAamBC,GACbC,GAAuB,QAAX,EAAA7D,EAAMgD,aAAK,eAAE1H,UAAuB,QAAb,EAAA0E,EAAM8D,eAAO,eAAExI,QAElDgH,EAAgB,OAAH,QACjBxG,GAAIkE,EAAMqC,WAAWvG,GAAGiI,WACxBxF,KAAMyB,EAAMqC,WAAW9D,MAEpByB,EAAMsC,eAGLC,EAAmB,OAAH,QACpB/D,WAAY,WACZb,QAvBqB0E,EAuBCrC,EAAMqC,WAtBxB2B,EAAA,SAAkC3B,EAAY3B,EAAA,YACzC,cAGLsD,EAAA,SAAgC3B,EAAY3B,EAAA,UACvC,iBADT,IAoBGV,EAAMuC,kBAGX,OACE,2BACE,uBAAKzC,UAAS,4BAAuB,qBAAyB,SAC5D,gBAACyB,EAAA,EAAO,CACNC,QAASxB,EAAMwB,QACfc,cAAeA,EACfC,iBAAkBA,EAClB0B,cAAY,GAEXjE,EAAMyC,UACL,uBAAK3C,UAAS,UAAK,OAAW,uGAC5B,uBAAKA,UAAS,UAAK,QAAY,+EAC7B,gBAACoE,EAAA,EAAY,CAACC,QAAS,UAAmBrE,UAAU,6BACpD,qBAAGA,UAAU,uCACK,QAAf,EAAAE,EAAMoE,iBAAS,eAAE9I,QAChB,4BAAO0E,EAAMoE,WACb,gBAACnC,EAAA,EAAI,CAAClI,UAAWA,EAAWmI,OAAO,eAO5CgB,GACC,gBAACzB,EAAA,EAAc,CACbC,MAAOwB,EACPvB,aAAc3B,EAAM2B,aACpBC,aAAcC,EAAA,cACdrH,KAAK,WACLuH,UAAQ,EACRsC,YAAU,EACVvC,cAAY,EACZwC,oBAAkB,KAIpBpB,GACA,uBAAKpD,UAAU,uCACb,uBAAKA,UAAU,oDACb,gBAACoE,EAAA,EAAY,CAACC,QAAS,UAAmBrE,UAAU,oCAKzDE,EAAM2C,gBACL,uBAAK7C,UAAS,UAAK,QAAY,kHAC7B,gBAACoE,EAAA,EAAY,CAACC,QAAS,YAAqBrE,UAAU,kCACtD,qBAAGA,UAAU,wCACX,gBAACmC,EAAA,EAAI,CAAClI,UAAWA,EAAWmI,OAAO,SAAS7C,QAAS,CAAEhE,MAAOqI,EAAYvB,WAAYuB,SAQ/FG,GACC,uBAAK/D,UAAU,2BACZE,EAAM8D,SACL,gBAACS,EAAA,EAAY,CAACvB,MAAOhD,EAAM8D,QAAStC,QAASxB,EAAMwE,gBAChDxE,EAAM8D,SAGV9D,EAAMgD,OACL,gBAACC,EAAwB,CACvBD,MAAOhD,EAAMqC,WAAW9D,KACxBiD,QAASxB,EAAMyE,gBAO7B,mBCvLA,IAAYC,mBAAZ,SAAYA,GACV,qCACA,mCACA,cACA,oBACD,CALD,CAAYA,IAAAA,EAAa,4ECOnBxI,EAAY,qBADA,uBAGLS,EAAoB,CAC/BgI,qBAAoB,SAAClI,EAAiCC,GACpD,MAAO,CACL,CACEZ,GAAI,oBACJyC,KAAMrC,EAAU,mBAChBY,QAASL,EACTmI,YAAa,4BAEf,CACE9I,GAAI,mBACJyC,KAAMrC,EAAU,aAChBY,QAASJ,EACTkI,YAAa,2BAGnB,+DCdI,SAAUC,EAAyB7E,GACvC,OACE,uBAAKF,UAAU,oDACb,2BACE,yBAAOA,UAAU,MAAMgF,QAAQ,IAAI9E,EAAMgD,OACzC,qBAAGlD,UAAU,sBAAsBE,EAAM+E,cAE3C,2BACE,gBAAC,IAAY,CACXC,QAAShF,EAAMgF,QACfC,GAAIjF,EAAMkF,WAKpB,mBC1BA,IAAYC,mBAAZ,SAAYA,GACV,kBACA,oBACA,wCACA,8DACA,oEACA,wBACA,8BACA,iBACD,CATD,CAAYA,IAAAA,EAAY,sBCAxB,IAAYC,mBAAZ,SAAYA,GACV,cACA,wBACA,cACA,aACD,CALD,CAAYA,IAAAA,EAAS,iECUftL,EAA4C,CAChDC,UAAW,YAcAC,EAAgB,CAC3BqL,gBAAe,SACbnL,EACAC,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,uBACLC,IAAK,uBACLC,KAAM,SACNN,KAAAA,EACAJ,iBAAAA,EACAW,iBAAkB,CAAC,qBAAD,OACKP,EAAK6B,UAAQ,kBACvB7B,EAAK6B,UAChB,cACA,8BAEF5B,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAiL,aAAY,SACV3K,EACAR,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,wBAAF,OAA0BK,GAC7BJ,IAAK,qBAAF,OAAuBI,GAC1BH,KAAM,QACNV,iBAAAA,EACAK,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAkL,oBAAmB,SACjBxJ,EACA5B,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,gCAAF,OAAkCyB,GACrCxB,IAAK,8BAAF,OAAgCwB,GACnCvB,KAAM,QACNV,iBAAAA,EACAK,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAS,cAAa,WAIQ,IAHnBC,EAAA,uDAA8B,CAAC,EAC/BZ,EAAkE,uCAClEC,EAAkB,uCAClBC,EAAmB,uCAEbmL,EAAgB,CACpBC,QAAS1K,EAAO0K,QAChBC,MAAO3K,EAAO2K,OAAS,GACvBC,OAAQC,SAAS7K,EAAOY,SAAW,GAG/BpB,EAAMS,OAAOC,OAAOuK,GAAetK,KAAK,KAE9C,MAAO,CACLZ,IAAM,eAAqB,4BAA6BkL,GACxDjL,IAAK,kBAAF,OAAoBA,GACvBY,WAAY,SAACC,GACX,MAAO,CACLlB,KAAMkB,EACNC,MAAOD,EAASE,OAChBC,WAAY,CACVC,QAAS,CACPC,KAAM+J,EAAcG,OAASvK,EAASE,SAI9C,EACAd,KAAM,QACNoB,WAAW,EACXzB,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAwL,cAAa,SAAClL,GACZ,MAAO,CACLL,IAAK,wBAAF,OAA0BK,EAAO,YACpCJ,IAAK,0BACLC,KAAM,SAEV,EAEAsL,WAAU,SAACC,GACT,MAAO,CACLzL,IAAK,qCAAF,OAAuCyL,GAC1CxL,IAAK,wBAAF,OAA0BwL,GAEjC,EAEAC,oBAAmB,SAACrL,GAClB,MAAO,CACLL,IAAK,wBAAF,OAA0BK,EAAO,YACpCJ,IAAK,gBAAF,OAAkBI,EAAO,YAEhC,88NCzGI,SAAUsL,EAAelK,SACvBmK,EAAoB,kBAA2C,eAA2BnK,IAC1FoK,EAAa,uBACbC,EAAwC,QAAtB,EAAAF,EAAkBhM,YAAI,eAAEkM,gBAyEhD,MAAO,CACLf,gBAxEF,SAA+BhG,gIACxB6G,EAAkBhM,KAAM,CAAF,gDAET,OAFS,SAEHiM,EAAsB,oBAAgC,CAC5EpK,SAAUsD,EAAQtD,SAClBvB,KAAM,SACN6L,QAAShH,EAAQgH,QACjBC,cAAe,CACbxH,gBAAiBO,EAAQP,gBACzBE,gBAAiBK,EAAQL,oBAE1B,OARY,OAATuH,EAAY,EAAH,uBAURA,GAAS,0CACjB,EA2DCC,kBAzDF,SAAiCnH,kIAC1B6G,EAAkBhM,KAAM,CAAF,gDAIT,OAFZmM,EAAUhH,EAAQoH,cAAgB,WAAsB,YAAoB,SAE1DN,EAAsB,oBAAgC,CAC5EpK,SAAUsD,EAAQtD,SAClBvB,KAAM,cACN6L,QAAAA,EACAC,cAAe,CACbxH,gBAAiBO,EAAQqH,gBACzB1H,gBAAiBK,EAAQL,iBAE3B2H,iBAAkBtH,EACfuH,WACA7J,KAAI,SAAA8J,GAAW,MAAK,CAAEA,YAAAA,EAAaC,QAASzH,EAAQyH,QAASrB,QAASpG,EAAQoG,QAAS,OACzF,OAXY,GAATc,EAAY,EAAH,KAaXF,IAAY,YAAoB,gBAClC,OADkC,SAC5BF,EAAW,kBAA8BI,EAAU5L,UAAS,gCAE7D4L,GAAS,2CACjB,EAoCCQ,kBAlCF,SAAiC1H,kIAC1B6G,EAAkBhM,KAAM,CAAF,gDAcT,OAZdmM,EAAU,YAEVhH,EAAQoH,gBAERJ,EADEhH,EAAQ2H,8BACAZ,EAAkB,iBAA4B,cAE9CA,EACN,oCACA,kCAEP,SAEuBD,EAAsB,oBAAgC,CAC5EpK,SAAUsD,EAAQtD,SAClBvB,KAAM,SACN6L,QAAAA,EACAC,cAAe,CACbxH,gBAAiBO,EAAQP,gBACzBE,gBAAiBK,EAAQL,oBAE1B,OARY,GAATuH,EAAY,EAAH,KAUXF,IAAY,YAAoB,iBAClC,OADkC,UAC5BF,EAAW,kBAA8BI,EAAU5L,UAAS,iCAE7D4L,GAAS,2CACjB,EAMCH,gBAAAA,EACAa,aAAcf,EAAkBe,aAEpC,6DC/GaC,EAAc,CACzBC,uBAAsB,SAACC,GACrB,OAAO,YAAoBA,EAAOrK,KAAI,SAAAsK,GAAI,MAAC,OAAY,QAAZ,EAAAA,EAAET,kBAAU,QAAI,EAAE,IAC/D,EAEAU,eAAc,SAACF,GACb,IAEMG,EAFaL,EAAYC,uBAAuBC,GAEtBrK,KAAI,SAAAyK,GAClC,OAAIA,EAAE/B,QACG+B,EAAE/B,QAAQ1B,WAEfyD,EAAEX,aAAeW,EAAEC,kBAAoB,cAClCD,EAAEX,YAAY9C,gBADvB,CAEF,IAEA,OAAO,SAAiBwD,EAAa3K,QAAO,SAAA8K,GAAC,QAAMA,CAAC,IACtD,EAEAC,wBAAuB,SAAC3J,SAChB4J,EAAiC,QAAhB,EAAA5J,EAAM4I,kBAAU,eAAG,GAE1C,GAAKgB,EAEL,OAAIA,EAAenC,QACVmC,EAAenC,QAAQ1B,WAE5B6D,EAAef,aAAee,EAAeH,kBAAoB,cAC5DG,EAAef,YAAY9C,gBADpC,CAEF,EAEA8D,qBAAoB,SAAC7J,EAAkB8J,GACrC,IAAMC,EAAcb,EAAYS,wBAAwB3J,GAExD,GAAK+J,EAEL,OAAOD,EAAWE,MAAK,SAAAC,GAAS,OAAIA,EAAUnM,GAAGiI,aAAegE,EAAYhE,UAAU,GACxF,yPC3CF,SAAgB,YAAc,SCiBxB,SAAUmE,EAAoBlI,GAClC,OACE,uBAAKF,UAAU,iCACb,uBAAKA,UAAU,0DACZE,EAAMX,QAAQtC,KAAI,SAAA2C,GAAM,OACvB,gBAACyI,EAAA,EAAS,CAACnD,QAAS,WAAF,OAAQhF,EAAMgF,QAAQtF,EAAO,EAAEI,UAAU,wEAAwEvF,IAAKmF,EAAO5D,IAC7I,uBAAKsM,IAAK1I,EAAOkB,MAAOd,UAAS,8BAAyB,eAAsBuI,WAAW,IAC3F,sBAAIvI,UAAU,MAAMJ,EAAOsD,OAC3B,qBAAGlD,UAAU,QAAQJ,EAAOqF,aAClB,KAKtB,sEC/BA,SAAgB,mBAAqB,QAAQ,uBAAyB,SC2BhE,SAAUuD,EAAetI,GAC7B,OACE,uBAAKF,UAAS,iEAA4D,uBACvEE,EAAM9F,KAAKkN,OAAOmB,UAAUxL,KAAI,SAAAiB,WAC/B,OACE,gBAACmK,EAAA,EAAS,CACR5N,IAAKyD,EAAMrD,QACXqK,QAAShF,EAAMgF,QACflF,UAAS,cAAS,2BAElB,uBAAKA,UAAU,OACb,uBAAKA,UAAU,SACb,gBAACC,EAAA,EAAiB,CAChByC,gBAAiB,cACjBrC,OAAQH,EAAM9F,KAAKyD,OACnBgE,aAAc,CAAEmB,KAAM,eAG1B,uBAAKhD,UAAU,mCACb,wBAAMA,UAAU,6BACbE,EAAM9F,KAAKyD,OAAOY,OAGvB,uBAAKuB,UAAU,mCACb,uBAAKA,UAAU,4CACb,2BACE,gBAAC0I,EAAA,EAAU,CACTC,QAAQ,OACRC,YAAY,QACZvE,QAAS,gBACTwE,QAASzE,EAAA0E,EAAA,YAGb,4BACuE,QAApE,EAA8D,QAA9D,EAAA1B,EAAA,uBAAiClJ,EAAOgC,EAAM9F,KAAK4N,mBAAW,eAAEvJ,YAAI,QAAI,aAI/E,qBAAGuB,UAAU,wCAAwC9B,EAAM6K,WAAa,EAAC,UACzE,qBAAG/I,UAAU,yCAAwC,QAAW9B,EAAM8K,cACtE,uBAAKhJ,UAAU,mCACb,qBAAGkF,QAAS,WAAF,OAAQhF,EAAMgF,QAAQhH,EAAM,EAAE8B,UAAU,4BAA0B,UAKtF,IAGN,2BC5EA,SAAgB,YAAc,+GC6B9B,SAASiJ,EAAsB/I,GAC7B,OAAKA,EAAM8H,WAAWxM,OAapB,uBAAKwE,UAAU,4BACb,sBAAIA,UAAU,UAAQ,iBACtB,2BACGE,EAAM8H,WAAW/K,KAAI,SAAAkL,WAAa,OACjC,uBAAKnI,UAAU,4BAA4BvF,IAAK0N,EAAUnM,GAAIkJ,QAAS,WAAF,OAAQhF,EAAMgJ,oBAAoBf,EAAU,GAC/G,uBAAKnI,UAAS,iHACZ,uBAAKA,UAAU,yCACb,gBAACmJ,EAAA,QAAU,CACTzO,KAAK,QACL+D,KAAK,kBACLzC,GAAG,kBACH6D,MAAOsI,EAAUnM,GACjBoN,SAAU,WAAF,OAAQlJ,EAAMgJ,oBAAoBf,EAAU,EACpDkB,QAASlB,EAAUnM,MAA8B,QAAvB,EAAAkE,EAAMoJ,yBAAiB,eAAEtN,MAErD,uBAAKgE,UAAU,mCACb,2BACE,gBAAC0I,EAAA,EAAU,CACTrE,QAAS,gBACTwE,QAASzE,EAAA0E,EAAA,SACTH,QAAQ,OACRC,YAAY,QACZW,oBAAoB,SAGxB,uBAAKvJ,UAAU,SACb,yBAAOA,UAAU,OAAOmI,aAAS,EAATA,EAAW1J,MACnC,qBAAGuB,UAAU,+BAA6B,mBAIxB,QAAvB,EAAAE,EAAMoJ,yBAAiB,eAAEtN,MAAOmM,EAAUnM,IACzC,uBAAKgE,UAAU,uDACb,qBACEA,UAAU,2BACVkF,QAAShF,EAAMsJ,0BAAwB,8CA9CrD,uBAAKxJ,UAAU,sEACb,uBAAKsI,IAAKmB,EAAA,6BAAsCjJ,MAAM,MAAMkJ,IAAI,qBAChE,sBAAI1J,UAAU,UAAQ,yBAAwBE,EAAMyJ,YAAW,KAC/D,qBAAG3J,UAAU,QAAM,qEACiD,qBAAGA,UAAU,+BAA+BkF,QAAShF,EAAM0J,4BAA0B,8BAsDjK,CAEM,SAAUC,EAAkB3J,GAChC,QAAgD,KAAlB,WAAe,MAAG,s4BAAxC4J,EAAM,KAAEC,EAAS,KACnBC,EAAqBF,EACvB5J,EAAM8H,WAAWlL,QAAO,SAAA8K,GAAC,OAAIA,EAAEnJ,KAAKwL,cAAczN,SAASsN,EAAOG,cAAc,IAChF/J,EAAM8H,WAEV,OACE,uBAAKhI,UAAS,mCAA8BE,EAAMF,UAAS,UACzD,uBAAKA,UAAU,qBACb,uBAAKA,UAAS,2DACZ,gBAACoE,EAAA,EAAY,CAACC,QAAS,YAAqBrB,KAAMoB,EAAA0E,EAAA,YAEpD,yBACEpO,KAAK,OACLwP,YAAY,mCACZrK,MAAOiK,EACPV,SAAU,SAAAe,GAAC,OAAIJ,EAAUI,EAAEC,OAAOvK,MAAM,EACxCG,UAAS,6CAAwC,kBAIrD,gBAACiJ,EAAqB,CACpBU,YAAaG,EACb9B,WAAYgC,EACZV,kBAAmBpJ,EAAMoJ,kBACzBE,yBAA0BtJ,EAAMsJ,yBAChCN,oBAAqBhJ,EAAMgJ,oBAC3BU,2BAA4B1J,EAAM0J,6BAK1C,gBCtGM,SAAUS,EAA2B,GAYT,IAXhC1D,EAAa,EAAbA,cACA2D,EAAoB,EAApBA,qBACAC,EAAqB,EAArBA,sBACAvK,EAAS,EAATA,UACAsJ,EAAiB,EAAjBA,kBACAtC,EAAO,EAAPA,QACAwD,EAAqB,EAArBA,sBACAC,EAA4B,EAA5BA,6BACAC,EAA6B,EAA7BA,8BACAC,EAAiB,EAAjBA,kBACAC,EAAe,EAAfA,gBAEA,OACE,uBAAK5K,UAAS,mCAA8BA,IAC1C,uBAAKA,UAAS,yEACZ,uBAAKA,UAAU,yCACb,2BACE,gBAAC0I,EAAA,EAAU,CACTrE,QAAS,gBACTwE,QAASzE,EAAA0E,EAAA,SACTH,QAAQ,OACRC,YAAY,QACZW,oBAAoB,SAGxB,uBAAKvJ,UAAU,SACb,yBAAOA,UAAU,OAAOsJ,EAAkB7K,MAC1C,qBAAGuB,UAAU,+BAA6B,iBAG9C,uBAAKA,UAAU,uDACb,qBACEA,UAAU,2BACVkF,QAASyF,GAAiB,sBAOhC,uBAAK3K,UAAU,4BACb,sBAAIA,UAAU,UAAQ,UACtB,uBAAKA,UAAU,4BACb,gBAAC+E,EAAA,EAAwB,CACvB7B,MAAM,4DACN+B,YAAY,uDACZG,SAAUuB,EACVzB,QAASsF,MAKf,uBAAKxK,UAAU,4BACb,sBAAIA,UAAU,UAAQ,YACtB,uBAAKA,UAAU,4BACb,gBAAC+E,EAAA,EAAwB,CACvB7B,MAAM,yBACN+B,YAAY,yEACZG,QAASkF,EACTpF,QAASuF,KAGb,uBAAKzK,UAAU,4BACb,gBAAC+E,EAAA,EAAwB,CACvB7B,MAAM,0BACN+B,YAAY,oEACZG,QAASmF,EACTrF,QAASwF,MAKf,2BACE,yDACA,2BACA,4BAAU1K,UAAU,eAAekK,YAAY,oBAAoBrK,MAAOmH,EAASoC,SAAU,SAAAe,GAAC,OAAIS,EAAgBT,EAAEC,OAAOvK,MAAM,KAIzI,83PC9EM,SAAUgL,EAAkB3K,GAChC,IAAkH,IAAxF,WAAqE,oBAAmB,GAA1G4K,EAAI,KAAEC,EAAO,KAEbrE,GAAsB,EAAAP,EAAA,GAAejG,EAAMjE,UAA3CyK,kBACFsE,EAAc,kBAAkCC,EAAA,iBAChDjD,EAAa,kBACjBgD,EAAY5Q,MAAQ8Q,EAAA,eAA+BF,EAAY5Q,KAAK4B,KAGS,IAA3B,aAA2B,GAAvEsN,EAAiB,KAAE6B,EAAoB,KACgC,IAArB,YAAe,GAAM,GAAvEb,EAAoB,KAAEc,EAAuB,KAC4B,IAArB,YAAe,GAAM,GAAzEb,EAAqB,KAAEc,EAAwB,KACS,IAApB,YAAe,GAAK,GAAxD1E,EAAa,KAAE2E,EAAgB,KACW,IAAlB,WAAe,IAAG,GAA1CtE,EAAO,KAAEuE,EAAU,KAC0B,IAArB,YAAe,GAAM,GAA7CC,EAAO,KAAEC,EAAU,KAE3B,SAASjC,IACPkC,QAAQC,IAAI,kCACZZ,EAAQ,mBACV,CAiCA,SAASnB,IACP,aAAsB,CACpBgC,YAAa,aACbC,OAAQ,2BACRC,KAAM,CAAC5L,EAAMjE,UACbhB,OAAQ,CACNgB,SAAUiE,EAAMjE,SAChB0B,WAAYuC,EAAMvC,aAGxB,CAqCA,IAAMoO,IACDf,EAAY5Q,QACZ4N,EAAW5N,KAGhB,OACE,gBAAC4R,EAAA,EAAK,eACJ9I,MAAO,gCACP+I,oBAAqBF,EACrB/I,KAAK,KACLkJ,cAAc,4BACVhM,GAEF,mBACA,IAAK6L,EAAY,OAAO,KAExB,OAAQjB,GACN,IAAK,mBACH,OACE,gBAACjB,EAAiB,CAChB7B,WAAiC,QAArB,EAAe,QAAf,EAAAA,EAAW5N,YAAI,eAAEA,YAAI,QAAI,GACrCkP,kBAAmBA,EACnBJ,oBAAqBiC,EACrB3B,yBAA0BA,EAC1BI,2BAA4BA,IAGlC,IAAK,mBACH,OAAO,oDACT,IAAK,WACH,OACE,gBAACS,EAA0B,CACzBf,kBAAmBA,EACnB3C,cAAeA,EACf4D,sBAAuBA,EACvBD,qBAAsBA,EACtBtD,QAASA,EACTwD,sBAAuB,WAAF,OAAQc,GAAkB3E,EAAc,EAC7D8D,6BAA8B,WAAF,OAAQW,GAAyBd,EAAqB,EAClFI,8BAA+B,WAAF,OAAQW,GAA0Bd,EAAsB,EACrFI,kBAAmB,WAAF,OAAQI,EAAQ,mBAAmB,EACpDH,gBAAiBW,IAI3B,CAhCE,GAkCF,gBAACY,EAAA,EAAY,CAACnM,UAAoB,aAAT8K,EAAsB,sBAAwB,2BAC3D,aAATA,GACC,gBAACqB,EAAA,SAAmB,CAACxD,QAAQ,OAAOzD,QA/H5C,WACEwG,QAAQC,IAAI,6BACd,EA6H2ES,KAAK,yBAAyBpM,UAAU,kBAE7G,2BACE,gBAACmM,EAAA,SAAmB,CAACxD,QAAQ,OAAOzD,QA9H5C,WACe,qBAAT4F,EAKA,CAAE,mBAAoB,YAAatO,SAASsO,IAC9CC,EAAQ,oBALR7K,EAAMmM,YAQV,EAoH6DD,KAAK,SAC1D,gBAACD,EAAA,SAAmB,CAACxD,QAAQ,OAAOzD,QAnH5C,WACOoE,IAGD,CAAE,mBAAoB,oBAAqB9M,SAASsO,GACtDC,EAAQ,YAIG,aAATD,GAkBN,mIACOxB,EAAmB,CAAF,gDAIJ,OAFlBmC,GAAW,GAAM,SAEO/E,EAAkB,CACxCzK,SAAUiE,EAAMjE,SAChB2K,gBAAiB0D,EACjBpL,gBAAiBqL,EACjB5D,cAAAA,EACAK,QAAAA,EACAF,WAAY,CAACwC,aAAiB,EAAjBA,EAAmBtN,IAChC2J,QAAS2D,aAAiB,EAAjBA,EAAmBtN,KAC5B,OARIyK,EAAY,EAAH,KAUT6F,EAAU,CACd1K,MAAO,iCACP2K,KAAM,gCACNzN,YAAa,uCACb0N,OAAQ,kCACRjJ,SAAU,qCAGZ,aAAsB,CACpBqI,YAAa,aACbC,OAAQS,EAAQpM,EAAMvC,YACtBmO,KAAM,CAAC5L,EAAMjE,UACbhB,OAAQ,CACNJ,QAAS4L,EAAU5L,WAIvB4Q,GAAW,GAAO,0CACnB,CAlDGgB,GAGJ,EAsGkEL,KAAe,aAATtB,EAAsB,SAAW,OAAQ4B,UAAWpD,EAAmBqD,YAAanB,MAK9J,ghCCpJM,SAAUoB,EAAiB1M,WAC6B,IAAlB,WAAe,IAAG,GAApD2M,EAAY,KAAEC,EAAe,KAC+C,IAApB,YAAe,GAAK,GAA5EC,EAAuB,KAAEC,EAA0B,KAErDC,EAAiB,kBAAkC/S,EAAA,sBAAkCgG,EAAMjE,WAC3FiR,GAA6C,QAAnB,EAAAD,EAAe7S,YAAI,eAAE0C,QAAO,SAAAoB,GAAK,OAAIA,EAAMxD,OAAS4K,EAAA,WAAmB,MAAK,GACtG0F,EAAc,kBAAkCC,EAAA,iBAChDpN,EAASvB,EAAA,yBAAuC4D,EAAMvC,WAA7CrB,CAAyD4D,EAAMjE,SAA0B,QAAhB,EAAA+O,EAAY5Q,YAAI,eAAE4B,IAEpGyL,EAAe/D,EAAA,OACnBwJ,EACGjQ,IAAImK,EAAA,2BACJtK,QAAO,SAAA8K,GAAC,QAAMA,CAAC,KAEdI,EAAa,kBACjBiF,EAAe9F,cAAgB+D,EAAA,qBAAqCzD,IAGtE,GAAqB,cAAjBoF,EACF,OAAO,gBAAChC,EAAiB,iBAAK3K,EAAK,CAAEmM,WAAY,WAAF,OAAQS,EAAgB,GAAG,KAG5E,GAAqB,YAAjBD,EACF,OAAO,gBAACM,EAAAA,gBAAe,iBAAKjN,EAAK,CAAEmM,WAAY,WAAF,OAAQS,EAAgB,GAAG,KAsB1E,IAAMM,EAAoD,CAAC,CACzDpR,GAAI,YACJkH,MAAO,sBACP+B,YAAa,+DACbnE,MAAO2I,EAAA,yBACN,CACDzN,GAAI,UACJkH,MAAO,iBACP+B,YAAa,wFACbnE,MAAO2I,EAAA,yBAGHsC,KACDf,EAAY5Q,MACZyD,EAAOzD,MACP6S,EAAe7S,MACf4N,EAAW5N,MAGhB,OACE,gBAAC4R,EAAA,EAAK,CACJhJ,KAAK,KACLE,MAAM,SACN+I,oBAAqBF,EACrBM,WAAYnM,EAAMmM,WAClBgB,iBAAkBtB,EAAa,0BAA4B,GAC3DG,cAAc,gCAIPH,EAIH,gCACE,gBAAC3D,EAAmB,CAClB7I,QAAS6N,EACTlI,QAAS,SAAAtF,GAAM,OAAIkN,EAAgBlN,EAAO5D,GAAG,IAG9CkR,EAAwB1R,OACvB,uBAAKwE,UAAU,0BACb,uBAAKA,UAAU,qDACb,sBAAIA,UAAU,cAAY,yBAAwBkN,EAAwB1R,OAAM,KAChF,gBAAC8R,EAAA,EAAU,CACTjJ,QAAS0I,EAA0B,eAAyB,iBAC5D7H,QAAS,WAAF,OAAQ8H,GAA4BD,EAAwB,KAGtEA,GACC,gBAACvE,EAAc,CACbpO,KAAM,CACJkN,OAAQ4F,EACRlF,WAAYA,EAAW5N,KACvByD,OAAQA,EAAOzD,MAEjB8K,QA3ElB,SAAsBhH,GACpB,IAAMoO,EAAU,CACd1K,MAAO,iCACP2K,KAAM,gCACNzN,YAAa,uCACb0N,OAAQ,kCACRjJ,SAAU,qCAGZ,aAAsB,CACpBqI,YAAa,aACbC,OAAQS,EAAQpM,EAAMvC,YACtBmO,KAAM,CAAC5L,EAAMjE,UACbhB,OAAQ,CACNJ,QAASqD,EAAMrD,UAGrB,KA8Dc,MA7BC,KAmCjB,+JC5HM,SAAU0S,EAAyB,GAYT,IAX9B5G,EAAa,EAAbA,cACAO,EAA6B,EAA7BA,8BACAoD,EAAoB,EAApBA,qBACAC,EAAqB,EAArBA,sBACAvK,EAAS,EAATA,UACAgH,EAAO,EAAPA,QACAwD,EAAqB,EAArBA,sBACAgD,EAAqC,EAArCA,sCACA/C,EAA4B,EAA5BA,6BACAC,EAA6B,EAA7BA,8BACAE,EAAe,EAAfA,gBAEA,OACE,uBAAK5K,UAAS,mCAA8BA,IAC1C,uBAAKA,UAAU,6BACb,uBAAKA,UAAU,oDACb,2BACE,gBAAC0I,EAAA,EAAU,CACTrE,QAAS,eACTsE,QAAQ,OACRC,YAAY,QACZW,oBAAoB,SAGxB,uBAAKvJ,UAAU,2BACb,yBAAOA,UAAU,OAAK,gBACtB,wBAAMA,UAAU,kBAAgB,kCAItC,uBAAKA,UAAU,4BACb,sBAAIA,UAAU,UAAQ,UACtB,uBAAKA,UAAU,4BACb,gBAAC+E,EAAA,EAAwB,CACvB7B,MAAM,8BACN+B,YAAY,qEACZG,QAASuB,EACTzB,QAASsF,IAEX,gBAACzF,EAAA,EAAwB,CACvB7B,MAAM,4CACN+B,YAAY,6FACZG,QAAS8B,EACThC,QAASsI,MAIf,uBAAKxN,UAAU,4BACb,sBAAIA,UAAU,UAAQ,YACtB,uBAAKA,UAAU,4BACb,gBAAC+E,EAAA,EAAwB,CACvB7B,MAAM,yBACN+B,YAAY,yEACZG,QAASkF,EACTpF,QAASuF,IAEX,gBAAC1F,EAAA,EAAwB,CACvB7B,MAAM,0BACN+B,YAAY,oEACZG,QAASmF,EACTrF,QAASwF,MAIf,uBAAK1K,UAAU,4BACb,yBAAOA,UAAU,OAAK,4BACtB,4BACEH,MAAOmH,EACPhH,UAAU,mCACVkK,YAAY,oBACZd,SAAU,SAAAe,GAAC,OAAIS,EAAgBT,EAAEC,OAAOvK,MAAM,KAKxD,83PC9EM,SAAUsN,EAAgBjN,GAC9B,IAAQ+G,GAAsB,EAAAd,EAAA,GAAejG,EAAMjE,UAA3CgL,kBACuE,IAArB,YAAe,GAAM,GAAvEqD,EAAoB,KAAEc,EAAuB,KAC4B,IAArB,YAAe,GAAM,GAAzEb,EAAqB,KAAEc,EAAwB,KACU,IAArB,YAAe,GAAM,GAAzD1E,EAAa,KAAE2E,EAAgB,KAC0D,IAArB,YAAe,GAAM,GAAzFpE,EAA6B,KAAEuG,EAAgC,KACrB,IAAlB,WAAe,IAAG,GAA1CzG,EAAO,KAAEuE,EAAU,KAC0B,IAArB,YAAe,GAAM,GAA7CC,EAAO,KAAEC,EAAU,KAmC3B,OACE,gBAACO,EAAA,EAAK,eACJ9I,MAAO,8BACP+I,oBAAoB,EACpBjJ,KAAK,KACLkJ,cAAc,4BACVhM,GAEJ,gBAACqN,EAAwB,CACvB5G,cAAeA,EACfO,8BAA+BA,EAC/BqD,sBAAuBA,EACvBD,qBAAsBA,EACtBtD,QAASA,EACTwD,sBAAuB,WAAF,OAAQc,GAAkB3E,EAAc,EAC7D6G,sCAAuC,WAAF,OAAQC,GAAkCvG,EAA8B,EAC7GuD,6BAA8B,WAAF,OAAQW,GAAyBd,EAAqB,EAClFI,8BAA+B,WAAF,OAAQW,GAA0Bd,EAAsB,EACrFK,gBAAiBW,IAEnB,gBAACY,EAAA,EAAY,KACX,gBAACA,EAAA,SAAmB,CAACxD,QAAQ,OAAOzD,QAtD1C,WACEhF,EAAMmM,YACR,IAqDM,gBAACF,EAAA,SAAmB,CAACxD,QAAQ,OAAOzD,QAnD1C,uIAGoB,OAFlBuG,GAAW,GAAM,SAEOxE,EAAkB,CACxC/H,gBAAiBqL,EACjBvL,gBAAiBsL,EACjB3D,cAAAA,EACAO,8BAAAA,EACAjL,SAAUiE,EAAMjE,WAChB,OANIwK,EAAY,EAAH,KAQT6F,EAAU,CACd1K,MAAO,iCACP2K,KAAM,gCACNzN,YAAa,uCACb0N,OAAQ,kCACRjJ,SAAU,qCAGZ,aAAsB,CACpBqI,YAAa,aACbC,OAAQS,EAAQpM,EAAMvC,YACtBmO,KAAM,CAAC5L,EAAMjE,UACbhB,OAAQ,CACNJ,QAAS4L,EAAU5L,WAEpB,0CACJ,EAwB4D8R,YAAanB,EAASY,KAAK,YAI1F,qCCvFA,IAAIsB,EAAQ,CAAC,SAAU,SAAU,OAAQ,MAAO,OAAQ,QAAS,QCA7DC,EAAQ,CAAC,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KCO1CC,EAAU,CAAC,EAMJC,EAAW,SAAUC,EAAQC,GACpCH,EAAQE,GAAUC,CACtB,ECXIC,EAAY,CACZ,GACA,GACA,GACA,EACA,IAAM,EAAI,GACV,IAOG,SAASC,EAAOC,GACnB,OAAIA,aAAiBC,KACVD,GAENE,MAAMF,IAAU,QAAQG,KAAKH,GACvB,IAAIC,KAAKrI,SAASoI,KAC7BA,GAASA,GAAS,IAEbI,OACAC,QAAQ,QAAS,IACjBA,QAAQ,IAAK,KACbA,QAAQ,IAAK,KACbA,QAAQ,YAAa,SACrBA,QAAQ,IAAK,QACbA,QAAQ,qBAAsB,SAC5B,IAAIJ,KAAKD,GACpB,CCzBO,IAAIM,EAAS,SAAUC,EAAMX,EAAQY,GAExC,IAAIC,EDgFD,SAAiBF,EAAMG,GAE1B,SADcA,EAAeX,EAAOW,GAAgB,IAAIT,OACpCF,EAAOQ,IAAS,GACxC,CCnFc,CAAQA,EAAMC,GAAQA,EAAKE,cAErC,OD4BG,SAAoBC,EAAMC,GAyB7B,IAhBA,IAAIC,EAAQF,EAAO,EAAI,EAAI,EAWvBG,EAJJH,EAAOI,KAAKC,IAAIL,GAQZM,EAAM,EACHN,GAAQb,EAAUmB,IAAQA,EAAMnB,EAAUxS,OAAQ2T,IACrDN,GAAQb,EAAUmB,GAgBtB,OAJAN,EAAOI,KAAKG,MAAMP,KAEE,IADpBM,GAAO,GACiB,EAAI,KACxBA,GAAO,GACJL,EAAWD,EAAMM,EAAKH,GAAUD,GAAOR,QAAQ,KAAMM,EAAK5K,WACrE,CCvEW,CAAW0K,EFSC,SAAUb,GAC7B,OAAOF,EAAQE,IAAWF,EAAe,KAC7C,CEX2B,CAAUE,GACrC,ECNAD,EAAS,SLNM,SAAUgB,EAAMM,GAC3B,GAAY,IAARA,EACA,MAAO,CAAC,WAAY,aACxB,IAAIE,EAAO3B,EAAMuB,KAAKG,MAAMD,EAAM,IAGlC,OAFIN,EAAO,IACPQ,GAAQ,KACL,CAACR,EAAO,IAAMQ,EAAO,OAAQ,MAAQR,EAAO,IAAMQ,EAC7D,IKAAxB,EAAS,SJPM,SAAUgB,EAAMM,GAC3B,GAAY,IAARA,EACA,MAAO,CAAC,KAAM,OAClB,IAAIE,EAAO1B,KAASwB,EAAM,IAC1B,MAAO,CAACN,EAAO,IAAMQ,EAAO,IAAUR,EAAO,IAAMQ,EAAO,IAC9D","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/components/shared-object-image/shared-object-image.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-object-image/SharedObjectImage.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/collection-thumbnail-title.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/title/CollectionThumbnailTitle.tsx","file:///app/packages/libs/shared/src/components/thumbnails/collection/collection-thumbnail.scss","file:///app/packages/libs/shared/src/components/thumbnails/collection/CollectionThumbnail.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/packages/projects/lite/src/apps/share-v2/components/section-setting-toggle-item/SectionSettingToggleItem.tsx","file:///app/packages/projects/lite/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/projects/lite/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/projects/lite/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/projects/lite/src/apps/share-v2/hooks/useCreateShare.ts","file:///app/packages/projects/lite/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/apps/share-v2/views/components/flow-selector-options/flow-selector-options.scss","file:///app/packages/projects/lite/src/apps/share-v2/views/components/flow-selector-options/FlowSelectorOptions.tsx","file:///app/packages/projects/lite/src/apps/share-v2/views/components/flow-selector-options/previous-shares/previous-shares.scss","file:///app/packages/projects/lite/src/apps/share-v2/views/components/flow-selector-options/previous-shares/PreviousShares.tsx","file:///app/packages/projects/lite/src/apps/share-v2/components/classroom-selector/classroom-selector.scss","file:///app/packages/projects/lite/src/apps/share-v2/components/classroom-selector/ClassroomSelector.tsx","file:///app/packages/projects/lite/src/apps/share-v2/components/ClassroomSettingsSectioned.tsx","file:///app/packages/projects/lite/src/apps/share-v2/views/ClassroomFlowView.tsx","file:///app/packages/projects/lite/src/apps/share-v2/views/FlowSelectorView.tsx","file:///app/packages/projects/lite/src/apps/share-v2/components/SessionSettingsSectioned.tsx","file:///app/packages/projects/lite/src/apps/share-v2/views/SessionFlowView.tsx","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/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};","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\",\"thumbnailContainer\":\"d3CKN\",\"insightsMask\":\"KM76U\",\"requireMarking\":\"peLH7\",\"badge\":\"mVu0E\",\"bar\":\"zO3MS\",\"a\":\"K1jW5\",\"expandBar\":\"YITJl\",\"b\":\"tCpLF\",\"c\":\"lC0cq\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnail } from 'libs/shared/components/thumbnails/collection/CollectionThumbnail';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { BaseObject, Image, Playlist, Series } from 'libs/shared/interfaces';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-object-image.scss';\n\nconst namespace = 'shared.sharedObjectImage';\n\nconst BASE_IMAGE_CLASS_NAME = 'rounded overflow-hidden';\n\ninterface ImageProps {\n image: Image;\n imageType: ImageType;\n imageClassName?: string;\n imageFallbackComponent: JSX.Element;\n}\n\nfunction getImageProps(object: BaseObject): ImageProps {\n const image = ImageHelper.getDisplayImageFromObject(object);\n\n if (VideoHelper.isVideoType(object))\n return {\n image,\n imageType: ImageType.Thumbnails,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: <ImageFallback type={ImageFallbackType.Video} />\n };\n\n switch (object.typeId) {\n case MasterType.Series:\n return {\n image,\n imageType: ImageType.TallPosters,\n imageClassName: BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent:\n <ImageFallback type={ImageFallbackType.Series} svgContainerClassName={styles.posterFallbackSvg} />\n };\n\n case MasterType.Playlist:\n return {\n image,\n imageType: ImageType.Covers,\n imageClassName: !image?.url\n ? `${BASE_IMAGE_CLASS_NAME} ${getBgColorClass(object.name, BG_COLOUR_CLASS_NAMES)}`\n : BASE_IMAGE_CLASS_NAME,\n imageFallbackComponent: (\n <ImageFallback\n type={ImageFallbackType.Playlist}\n svgContainerClassName={image?.url ? styles.coverFallbackSvg : 'd-none'}\n extraClasses={!image?.url && 'bg-transparent'}\n />\n )\n };\n }\n}\n\nfunction InsightsMask() {\n return (\n <div className={`d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center`}>\n <div className='position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3'></div>\n <div className='d-flex align-items-end gap-2 h-50 z-1'>\n <div className='d-flex align-items-end h-50'>\n <div className={`${styles.bar} ${styles.a} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-75'>\n <div className={`${styles.bar} ${styles.b} rounded shadow`}></div>\n </div>\n <div className='d-flex align-items-end h-100'>\n <div className={`${styles.bar} ${styles.c} rounded shadow`}></div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction getImageRatio(object: BaseObject): ImageFallbackType {\n if (VideoHelper.isVideoType(object))\n return 16 / 9;\n\n if (object.typeId === MasterType.Playlist)\n return 1;\n\n if (object.typeId === MasterType.Series)\n return 9 / 16;\n}\n\nSharedObjectImage.defaultProps = {\n imageOptions: { size: ImageSize.Small }\n};\n\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: boolean;\n requireMarking?: number;\n imageOptions?: ImageOptions;\n showInsightsMask?: boolean;\n showCollectionMask?: boolean;\n showVideoCount?: boolean;\n}\n\nexport function SharedObjectImage(props: SharedObjectImageProps): JSX.Element {\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (!el || !props.fixedHeight)\n return;\n\n el.style.width = `${el.offsetHeight * getImageRatio(props.object)}px`;\n }, []);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object);\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n return (\n <div className='d-flex align-items-center justify-content-center w-100 h-100'>\n <div ref={ref} className={props.fixedHeight ? 'h-100' : 'w-100'}>\n {useVideoThumbnail &&\n <div className={`${styles.thumbnailContainer} position-relative`}>\n {props.showInsightsMask && <InsightsMask />}\n <AppLink appLink={props.appLink}>\n <VideoThumbnail\n video={props.object}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideDuration\n hideMask\n />\n </AppLink>\n {!!props.requireMarking && (\n <div className={`${props.showInsightsMask && styles.requireMarking} position-absolute bottom-0 end-0 z-1 m-2`}>\n <div className={`${styles.badge} d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n </div>\n )}\n </div>\n }\n {!useVideoThumbnail &&\n <>\n {'videos' in (props.object as Playlist | Series) ? (\n <CollectionThumbnail\n collection={props.object}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n showMask={props.showCollectionMask}\n showVideoCount={props.showVideoCount}\n />\n ) : (\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={props.imageOptions}\n appLink={props.appLink}\n className={imageClassName}\n analyticsData={{\n id: props.object.id,\n name: props.object.name\n }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(props.object.type),\n actionType: UserAction.Click,\n location: props.locationContext\n }}\n >\n {imageFallbackComponent}\n </BaseImage>\n )}\n </>\n }\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"thumbnailTitle\":\"OsWjL\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './collection-thumbnail-title.scss';\n\ninterface BaseCollectionThumbnailTitleProps {\n title: string;\n}\n\nfunction BaseCollectionThumbnailTitle(props: BaseCollectionThumbnailTitleProps): JSX.Element {\n return (\n <h3 title={props.title} className='h6'>{props.title}</h3>\n );\n}\n\ninterface CollectionThumbnailTitleProps extends BaseCollectionThumbnailTitleProps {\n appLink: Core.AppLink;\n}\n\nexport function CollectionThumbnailTitle(props: CollectionThumbnailTitleProps) {\n if (!props.appLink) {\n return (\n <BaseCollectionThumbnailTitle {...props} />\n );\n }\n \n return (\n <AppLink appLink={props.appLink} className={`${styles.thumbnailTitle}`}>\n <BaseCollectionThumbnailTitle {...props} />\n </AppLink>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"M4zat\",\"mask\":\"r0Ztg\",\"thumbnailContainer\":\"uD9dz\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AnalyticsOptions, EntityType, UserAction } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { CollectionThumbnailTitle } from 'libs/shared/components/thumbnails/collection/title/CollectionThumbnailTitle';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { Playlist, Series } from 'libs/shared/interfaces';\nimport { ImageOptions } from 'libs/shared/utils/ImageHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './collection-thumbnail.scss';\n\nconst namespace = 'shared.collectionThumbnail';\n\ntype SupportedContentType = Playlist | Series;\n\ninterface CollectionThumbnailProps {\n appLink?: Core.AppLink\n collection: SupportedContentType;\n imageOptions?: ImageOptions;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showMask?: boolean;\n showVideoCount?: boolean;\n title?: string;\n titleAppLink?: Core.AppLink;\n subText?: string;\n subTextAppLink?: Core.AppLink;\n hoverText?: string;\n}\n\nexport function CollectionThumbnail(props: CollectionThumbnailProps) {\n function getFirstVideo() {\n let collectionVideos = props.collection?.videos;\n\n if (!collectionVideos)\n return;\n\n if (!collectionVideos.count && props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.clips.count)\n collectionVideos = playlist.clips;\n\n if (playlist.interactives.count)\n collectionVideos = playlist.interactives;\n }\n\n return ArrayHelper.first(collectionVideos.data);\n }\n\n function getVideoCount() {\n let totalCount = 0;\n\n if (props.collection.videos && props.collection.videos.count) {\n totalCount += props.collection.videos.count;\n }\n\n if (props.collection.typeId === MasterType.Playlist) {\n const playlist = props.collection as Playlist;\n\n if (playlist.interactives?.count)\n totalCount += playlist.interactives.count;\n\n if (playlist.clips?.count)\n totalCount += playlist.clips.count;\n }\n\n return totalCount;\n }\n\n function getEntityType(collection: SupportedContentType) {\n if (MasterTypeHelper.isType<Playlist>(collection, MasterType.Playlist)) {\n return EntityType.Playlist;\n }\n\n if (MasterTypeHelper.isType<Series>(collection, MasterType.Series)) {\n return EntityType.Series;\n }\n }\n\n const firstVideo = getFirstVideo();\n const videoCount = getVideoCount();\n const showTexts = props.title?.length || props.subText?.length;\n\n const analyticsData = {\n id: props.collection.id.toString(),\n name: props.collection.name,\n\n ...props.analyticsData\n };\n\n const analyticsOptions = {\n actionType: UserAction.Click,\n entity: getEntityType(props.collection),\n \n ...props.analyticsOptions\n };\n\n return (\n <div>\n <div className={`position-relative ${styles.thumbnailContainer} z-1`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n preventFocus\n >\n {props.showMask &&\n <div className={`${styles.mask} position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none`}>\n <div className={`${styles.badge} d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2`}>\n <SvgContainer svgName={cvSvgLibrary.Play} className='svg-container text-white' />\n <p className='d-inline fw-medium text-white mb-0'>\n {props.hoverText?.length ?\n <span>{props.hoverText}</span> :\n <Text namespace={namespace} phrase='playAll' />\n }\n </p>\n </div>\n </div>\n }\n\n {firstVideo &&\n <VideoThumbnail\n video={firstVideo}\n imageOptions={props.imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n hideMask\n hideRating\n hideDuration\n hideVideoTypeBadge\n />\n }\n\n {!firstVideo &&\n <div className='ratio ratio-16x9 bg-light rounded-3'>\n <div className='d-flex justify-content-center align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.Play} className='w-33 opacity-25 text-gray-400' />\n </div>\n </div>\n }\n\n {props.showVideoCount &&\n <div className={`${styles.badge} d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2`}>\n <SvgContainer svgName={cvSvgLibrary.Series} className='svg-container text-white me-1' />\n <p className='d-inline fw-semibold text-white mb-0'>\n <Text namespace={namespace} phrase='videos' options={{ count: videoCount, smartCount: videoCount }} />\n </p>\n </div>\n }\n </AppLink>\n\n </div>\n \n {showTexts &&\n <div className='mt-2 d-flex flex-column'>\n {props.subText &&\n <TitleSubText title={props.subText} appLink={props.subTextAppLink}>\n {props.subText}\n </TitleSubText>\n }\n {props.title &&\n <CollectionThumbnailTitle\n title={props.collection.name}\n appLink={props.titleAppLink}\n />\n }\n </div>\n }\n </div>\n );\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\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","import React from 'react';\n\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\ninterface SectionSettingToggleItemProps {\n title: string;\n description: string;\n toggled: boolean;\n onClick: () => void;\n}\n\nexport function SectionSettingToggleItem(props: SectionSettingToggleItemProps): JSX.Element {\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''>{props.title}</label>\n <p className='m-0 text-secondary'>{props.description}</p>\n </div>\n <div>\n <ToggleSwitch\n onClick={props.onClick}\n on={props.toggled}\n />\n </div>\n </div>\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}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { CreateShareLinkRequest } from 'apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\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 scopeId?: string;\n}\n\nexport const ShareRequests = {\n createShareLink(\n data: CreateShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2:link',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [\n `share:link:object:${data.objectId}`,\n `privacy:${data.objectId}`,\n 'sent:shares',\n 'get:share-v2:shares:object'\n ],\n success,\n error,\n always\n };\n },\n\n getShareLink(\n shareId: string,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `get:share-v2:link:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSharesByObjectId(\n objectId: string | number,\n success?: (shares: ShareLink[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<ShareLink>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const adaptedParams = {\n scopeId: params.scopeId,\n limit: params.limit || 25,\n offset: parseInt(params.cursor) || 0\n };\n\n const key = Object.values(adaptedParams).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', adaptedParams),\n key: `sent:shares-v2:${key}`,\n formatData: (response: ShareLink[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: adaptedParams.offset + response.length\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n createPincode(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: 'create:share-v2:pincode',\n type: HttpVerbs.POST\n };\n },\n\n getPincode(code: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n }\n};","import { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests as ShareRequestsV1 } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\n\nimport { SharePrivacy } from 'apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareRequests as ShareRequestsV2 } from 'apps/share-v2/flight-requests/ShareRequests';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\ninterface CreateShareLinkOptions {\n objectId: string;\n privacy: SharePrivacy;\n preventSkipping: boolean;\n instantFeedback: boolean;\n}\n\ninterface CreateDirectShareOptions {\n objectId: string;\n preventShipping: boolean;\n instantFeedback: boolean;\n requireSignIn: boolean;\n message?: string;\n recipients: string[];\n scopeId: string | number;\n}\n\ninterface CreateOpenSessionOptions {\n objectId: string;\n preventSkipping: boolean;\n instantFeedback: boolean;\n requireSignIn: boolean;\n respectRatingsAndRestrictions: boolean;\n}\n\nexport function useCreateShare(objectId: string) {\n const accessPermissions = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequestsV1.getPrivacy(objectId));\n const fetchAsync = Flight.useGetFetchAsync();\n const canManageAccess = accessPermissions.data?.canManageAccess;\n\n async function createShareLink(options: CreateShareLinkOptions) {\n if (!accessPermissions.data) return;\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Link,\n privacy: options.privacy,\n optionRequest: {\n preventSkipping: options.preventSkipping,\n instantFeedback: options.instantFeedback\n }\n }));\n\n return shareLink;\n }\n\n async function createDirectShare(options: CreateDirectShareOptions) {\n if (!accessPermissions.data) return;\n\n const privacy = options.requireSignIn ? SharePrivacy.Direct : SharePrivacy.PinCode;\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Classroom,\n privacy,\n optionRequest: {\n preventSkipping: options.preventShipping,\n instantFeedback: options.instantFeedback\n },\n recipientRequest: options\n .recipients\n .map(recipientId => ({ recipientId, message: options.message, scopeId: options.scopeId }))\n }));\n\n if (privacy === SharePrivacy.PinCode)\n await fetchAsync(ShareRequestsV2.createPincode(shareLink.shareId));\n\n return shareLink;\n }\n\n async function createOpenSession(options: CreateOpenSessionOptions) {\n if (!accessPermissions.data) return;\n\n let privacy = SharePrivacy.PinCode;\n\n if (options.requireSignIn) {\n if (options.respectRatingsAndRestrictions) {\n privacy = canManageAccess ? SharePrivacy.JustMySchool : SharePrivacy.Protected;\n } else {\n privacy = canManageAccess\n ? SharePrivacy.JustMySchoolOverrideRestriction\n : SharePrivacy.ProtectedOverrideRestriction;\n }\n }\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Open,\n privacy,\n optionRequest: {\n preventSkipping: options.preventSkipping,\n instantFeedback: options.instantFeedback\n }\n }));\n\n if (privacy === SharePrivacy.PinCode)\n await fetchAsync(ShareRequestsV2.createPincode(shareLink.shareId));\n\n return shareLink;\n }\n\n return {\n createShareLink,\n createDirectShare,\n createOpenSession,\n canManageAccess,\n hasCompleted: accessPermissions.hasCompleted\n };\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom } from 'libs/shared/interfaces';\n\nimport { ShareLink, ShareRecipient } from '../interfaces/ShareLink';\n\nexport const ShareHelper = {\n getFlattenedRecipients(shares: ShareLink[]): ShareRecipient[] {\n return ArrayHelper.flatten(shares.map(s => s.recipients ?? []));\n },\n\n getClassoomIds(shares: ShareLink[]): string[] {\n const recipients = ShareHelper.getFlattenedRecipients(shares);\n\n const classroomIds = recipients.map(r => {\n if (r.scopeId)\n return r.scopeId.toString();\n\n if (r.recipientId && r.recipientTypeId === MasterType.Classroom)\n return r.recipientId.toString();\n });\n\n return ArrayHelper.uniq(classroomIds.filter(x => !!x));\n },\n\n getClassroomIdFromShare(share: ShareLink): string | undefined {\n const firstRecipient = share.recipients?.[0];\n \n if (!firstRecipient) return;\n \n if (firstRecipient.scopeId)\n return firstRecipient.scopeId.toString();\n \n if (firstRecipient.recipientId && firstRecipient.recipientTypeId === MasterType.Classroom)\n return firstRecipient.recipientId.toString();\n },\n \n getClassroomForShare(share: ShareLink, classrooms: Classroom[]): Classroom | undefined {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n \n if (!classroomId) return;\n \n return classrooms.find(classroom => classroom.id.toString() === classroomId.toString());\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"optionImage\":\"_uLZl\"};","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport styles from './flow-selector-options.scss';\n\nexport interface FlowSelectorOption {\n id: string;\n image: string;\n title: string;\n description: string;\n}\n\ninterface FlowSelectorOptionsProps {\n options: [FlowSelectorOption, FlowSelectorOption];\n onClick: (option: FlowSelectorOption) => void;\n}\n\nexport function FlowSelectorOptions(props: FlowSelectorOptionsProps): JSX.Element {\n return (\n <div className='bg-white rounded-bottom-3 p-3'>\n <div className='d-flex justify-content-center align-items-center gap-3'>\n {props.options.map(option => (\n <DivButton onClick={() => props.onClick(option)} className='text-center cursor-pointer p-3 border rounded-3 user-select-none w-50' key={option.id}>\n <img src={option.image} className={`img-fluid my-3 w-75 ${styles.optionImage}`} draggable={false} />\n <h2 className='h3'>{option.title}</h2>\n <p className='mb-0'>{option.description}</p>\n </DivButton>\n ))}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"previousSharesList\":\"LZvYG\",\"previousSharesListItem\":\"LEwrl\"};","import React from 'react';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\nimport { ShareHelper } from 'apps/share-v2/utils/ShareHelper';\n\nimport styles from './previous-shares.scss';\n\ninterface PreviousSharesProps {\n data: {\n shares: ShareLink[]\n classrooms: Classroom[];\n entity: SharableEntity;\n };\n onClick: (item: ShareLink) => void;\n}\n\nexport function PreviousShares(props: PreviousSharesProps) {\n return (\n <div className={`d-flex flex-column mt-3 border rounded overflow-hidden ${styles.previousSharesList}`}>\n {props.data.shares.reverse().map(share => {\n return (\n <DivButton\n key={share.shareId}\n onClick={props.onClick}\n className={`p-3 ${styles.previousSharesListItem}`}\n >\n <div className='row'>\n <div className='col-1'>\n <SharedObjectImage\n locationContext={LocationContext.PlayPage}\n object={props.data.entity}\n imageOptions={{ size: ImageSize.Small }}\n />\n </div>\n <div className='col-3 d-flex align-items-center'>\n <span className='clamp-2 align-self-center'>\n {props.data.entity.name}\n </span>\n </div>\n <div className='col-3 d-flex align-items-center'>\n <div className='d-flex flex-row gap-1 align-items-center'>\n <div>\n <IconCircle\n variant='teal'\n textVariant='white'\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Standard}\n />\n </div>\n <span>\n {ShareHelper.getClassroomForShare(share, props.data.classrooms)?.name ?? 'Unknown'}\n </span>\n </div>\n </div>\n <p className='mb-0 col-2 d-flex align-items-center'>{share.viewCount || 0} views</p>\n <p className='mb-0 col-2 d-flex align-items-center'>{formatDate(share.dateCreated)}</p>\n <div className='col-1 d-flex align-items-center'>\n <a onClick={() => props.onClick(share)} className='cursor-pointer text-info'>View</a>\n </div>\n </div>\n </DivButton>\n );\n })}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"searchInput\":\"udDMG\"};","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport styles from './classroom-selector.scss';\n\ninterface ClassroomSelectorProps {\n classrooms: Classroom[];\n selectedClassroom?: Classroom;\n className?: string;\n onClassroomSelected: (classroom: Classroom | undefined) => void;\n onSelectGroupsOrStudents: () => void;\n onClickCreateOpenClassroom: () => void;\n}\n\ninterface ClassroomSelectorListProps {\n searchQuery: string;\n classrooms: Classroom[];\n selectedClassroom?: Classroom;\n onSelectGroupsOrStudents: () => void;\n onClassroomSelected: (classroom: Classroom) => void;\n onClickCreateOpenClassroom: () => void;\n}\n\nfunction ClassroomSelectorList(props: ClassroomSelectorListProps): JSX.Element {\n if (!props.classrooms.length) {\n return (\n <div className='d-flex flex-column gap-2 justify-content-center align-items-center'>\n <img src={ImageUrls.EmptyStates.Search.RESULTS} width='30%' alt='No results found' />\n <h4 className='h6 m-0'>No results found for \"{props.searchQuery}\"</h4>\n <p className='mb-0'>\n Contact your school administrator to assign you to a classroom or <a className='p-0 text-info cursor-pointer' onClick={props.onClickCreateOpenClassroom} >create an Open classroom.</a>\n </p>\n </div>\n );\n }\n \n return (\n <div className='d-flex flex-column gap-2'>\n <h3 className='h6 m-0'>My Classrooms</h3>\n <div>\n {props.classrooms.map(classroom => (\n <div className='d-flex align-items-center' key={classroom.id} onClick={() => props.onClassroomSelected(classroom)}>\n <div className={`d-flex align-items-center bg-light-hover px-2 py-1 w-100 rounded gap-2 cursor-pointer justify-content-between`}>\n <div className='w-100 d-flex align-items-center gap-2'>\n <Form.Check\n type='radio'\n name='classroom-radio'\n id='classroom-radio'\n value={classroom.id}\n onChange={() => props.onClassroomSelected(classroom)}\n checked={classroom.id === props.selectedClassroom?.id}\n />\n <div className='d-flex align-items-center gap-2'>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Standard}\n variant='teal'\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <div className='w-100'>\n <label className='m-0'>{classroom?.name}</label>\n <p className='m-0 text-muted font-size-sm'>30 students</p>\n </div>\n </div>\n </div>\n {props.selectedClassroom?.id === classroom.id && (\n <div className='d-flex align-items-center justify-content-end w-100'>\n <a\n className='cursor-pointer text-info'\n onClick={props.onSelectGroupsOrStudents}\n >\n Select specific groups or students\n </a>\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nexport function ClassroomSelector(props: ClassroomSelectorProps): JSX.Element {\n const [ search, setSearch ] = React.useState('');\n const filteredClassrooms = search\n ? props.classrooms.filter(x => x.name.toLowerCase().includes(search.toLowerCase()))\n : props.classrooms;\n\n return (\n <div className={`d-flex flex-column gap-3 ${props.className} mb-3`}>\n <div className='position-relative'>\n <div className={`position-absolute top-50 start-0 translate-middle-y p-1`}>\n <SvgContainer svgName={cvSvgLibrary.Search} size={SvgContainerSize.Standard} />\n </div>\n <input\n type='text'\n placeholder='Search for a classroom you teach'\n value={search}\n onChange={e => setSearch(e.target.value)}\n className={`form-control pe-1 py-2 border-dark ${styles.searchInput}`}\n />\n </div>\n\n <ClassroomSelectorList\n searchQuery={search}\n classrooms={filteredClassrooms}\n selectedClassroom={props.selectedClassroom}\n onSelectGroupsOrStudents={props.onSelectGroupsOrStudents}\n onClassroomSelected={props.onClassroomSelected}\n onClickCreateOpenClassroom={props.onClickCreateOpenClassroom}\n />\n \n </div>\n );\n}","import React from 'react';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SectionSettingToggleItem } from './section-setting-toggle-item/SectionSettingToggleItem';\n\ninterface ClassroomSettingsSectionedProps {\n requireSignIn: boolean;\n preventSkippingAhead: boolean;\n enableInstantFeedback: boolean;\n className?: string;\n selectedClassroom: Classroom;\n message?: string;\n onToggleRequireSignIn: () => void;\n onTogglePreventSkippingAhead: () => void;\n onToggleEnableInstantFeedback: () => void;\n onChangeClassroom: () => void;\n onChangeMessage: (message: string) => void;\n}\n\nexport function ClassroomSettingsSectioned({\n requireSignIn,\n preventSkippingAhead,\n enableInstantFeedback,\n className,\n selectedClassroom,\n message,\n onToggleRequireSignIn,\n onTogglePreventSkippingAhead,\n onToggleEnableInstantFeedback,\n onChangeClassroom,\n onChangeMessage\n}: ClassroomSettingsSectionedProps): JSX.Element {\n return (\n <div className={`d-flex flex-column gap-4 ${className}`}>\n <div className={`d-flex align-items-center w-100 rounded gap-2 justify-content-between`}>\n <div className='d-flex align-items-center gap-2 w-100'>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Standard}\n variant='teal'\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <div className='w-100'>\n <label className='m-0'>{selectedClassroom.name}</label>\n <p className='m-0 text-muted font-size-sm'>30 students</p>\n </div>\n </div>\n <div className='d-flex align-items-center justify-content-end w-100'>\n <a\n className='cursor-pointer text-info'\n onClick={onChangeClassroom}\n >\n Change classroom\n </a>\n </div>\n </div>\n\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Access</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Classroom students select their name when accessing video'\n description='Collect student data without the fuss of signing in.'\n toggled={!requireSignIn}\n onClick={onToggleRequireSignIn}\n />\n </div>\n </div>\n\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Settings</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Prevent skipping ahead'\n description='Students cannot skip ahead to parts of the video they have not watched'\n toggled={preventSkippingAhead}\n onClick={onTogglePreventSkippingAhead}\n />\n </div>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Enable instant feedback'\n description='Allow students to see feedback on their answers before continuing'\n toggled={enableInstantFeedback}\n onClick={onToggleEnableInstantFeedback}\n />\n </div>\n </div>\n\n <div>\n <label>Add a message (optional)</label>\n <br />\n <textarea className='form-control' placeholder='Type a message...' value={message} onChange={e => onChangeMessage(e.target.value)} />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classroom, CurrentUser } from 'libs/shared/interfaces';\nimport { PopupViewProps } from 'libs/shared/interfaces';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { ClassroomSelector } from 'apps/share-v2/components/classroom-selector/ClassroomSelector';\nimport { ClassroomSettingsSectioned } from 'apps/share-v2/components/ClassroomSettingsSectioned';\nimport { useCreateShare } from 'apps/share-v2/hooks/useCreateShare';\n\ninterface ClassroomFlowViewProps extends PopupViewProps {\n objectId: string;\n entityType: 'video' | 'clip' | 'interactive' | 'series' | 'playlist';\n}\n\nexport function ClassroomFlowView(props: ClassroomFlowViewProps): JSX.Element {\n const [ step, setStep ] = React.useState<'select-classroom' | 'narrow-selection' | 'settings'>('select-classroom');\n \n const { createDirectShare } = useCreateShare(props.objectId);\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const classrooms = Flight.useBasicFetch<BasePaginatedCollection<Classroom>>(\n currentUser.data && ClassroomRequests.getPublished(currentUser.data.id)\n );\n\n const [ selectedClassroom, setSelectedClassroom ] = React.useState<Classroom>();\n const [ preventSkippingAhead, setPreventSkippingAhead ] = React.useState(false);\n const [ enableInstantFeedback, setEnableInstantFeedback ] = React.useState(false);\n const [ requireSignIn, setRequireSignIn ] = React.useState(true);\n const [ message, setMessage ] = React.useState('');\n const [ working, setWorking ] = React.useState(false);\n\n function onSelectGroupsOrStudents() {\n console.log('Selecting groups or students..');\n setStep('narrow-selection');\n }\n\n function onCreateNewClassroom() {\n console.log('Creating a new classroom..');\n }\n\n function onBack() {\n if (step === 'select-classroom') {\n props.closePopup();\n return;\n }\n\n if ([ 'narrow-selection', 'settings' ].includes(step)) {\n setStep('select-classroom');\n return;\n }\n }\n\n function onClickNext() {\n if (!selectedClassroom)\n return;\n\n if ([ 'select-classroom', 'narrow-selection' ].includes(step)) {\n setStep('settings');\n return;\n }\n\n if (step === 'settings') {\n onShare();\n return;\n }\n }\n\n function onClickCreateOpenClassroom() {\n AppLinkHelper.trigger({\n application: AppChannels.SHARE_V2,\n action: Actions.ShareV2.OPEN_CLASSROOM,\n args: [props.objectId],\n params: {\n objectId: props.objectId,\n entityType: props.entityType\n }\n });\n }\n\n async function onShare() {\n if (!selectedClassroom) return;\n\n setWorking(true);\n\n const shareLink = await createDirectShare({\n objectId: props.objectId,\n preventShipping: preventSkippingAhead,\n instantFeedback: enableInstantFeedback,\n requireSignIn,\n message,\n recipients: [selectedClassroom?.id],\n scopeId: selectedClassroom?.id\n });\n\n const actions = {\n video: Actions.Insights.VIDEO_SHARE_OPTIONS,\n clip: Actions.Insights.CLIP_SHARE_OPTIONS,\n interactive: Actions.Insights.INTERACTIVE_SHARE_OPTIONS,\n series: Actions.Insights.SERIES_SHARE_OPTIONS,\n playlist: Actions.Insights.PLAYLIST_SHARE_OPTIONS\n };\n\n AppLinkHelper.trigger({\n application: AppChannels.INSIGHTS,\n action: actions[props.entityType],\n args: [props.objectId],\n params: {\n shareId: shareLink.shareId\n }\n });\n\n setWorking(false);\n }\n\n const dataLoaded = (\n !! currentUser.data &&\n !! classrooms.data\n );\n\n return (\n <Popup\n title={'Assign to ClickView classroom'}\n showLoadingSpinner={!dataLoaded}\n size='lg'\n bodyClassName='d-flex flex-column gap-3'\n {...props}\n >\n {(() => {\n if (!dataLoaded) return null;\n \n switch (step) {\n case 'select-classroom':\n return (\n <ClassroomSelector\n classrooms={classrooms.data?.data ?? []}\n selectedClassroom={selectedClassroom}\n onClassroomSelected={setSelectedClassroom}\n onSelectGroupsOrStudents={onSelectGroupsOrStudents}\n onClickCreateOpenClassroom={onClickCreateOpenClassroom}\n />\n );\n case 'narrow-selection':\n return <>Narrow selection</>;\n case 'settings':\n return (\n <ClassroomSettingsSectioned\n selectedClassroom={selectedClassroom}\n requireSignIn={requireSignIn}\n enableInstantFeedback={enableInstantFeedback}\n preventSkippingAhead={preventSkippingAhead}\n message={message}\n onToggleRequireSignIn={() => setRequireSignIn(!requireSignIn)}\n onTogglePreventSkippingAhead={() => setPreventSkippingAhead(!preventSkippingAhead)}\n onToggleEnableInstantFeedback={() => setEnableInstantFeedback(!enableInstantFeedback)}\n onChangeClassroom={() => setStep('select-classroom')}\n onChangeMessage={setMessage}\n />\n );\n }\n })()}\n \n <PopupButtons className={step === 'settings' ? 'justify-content-end' : 'justify-content-between'}>\n {step !== 'settings' &&\n <PopupButtons.Submit variant='link' onClick={onCreateNewClassroom} text='Create a new classroom' className='text-info p-0' />\n }\n <div>\n <PopupButtons.Cancel variant='link' onClick={onBack} text='Back' />\n <PopupButtons.Submit variant='dark' onClick={onClickNext} text={step === 'settings' ? 'Assign' : 'Next'} disabled={!selectedClassroom} showSpinner={working} />\n </div>\n </PopupButtons>\n </Popup>\n );\n}\n","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Classroom, CurrentUser, PopupViewProps } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\n\nimport { ShareType } from '../enums/ShareType';\nimport { ShareRequests } from '../flight-requests/ShareRequests';\nimport { ShareLink } from '../interfaces/ShareLink';\nimport { ShareHelper } from '../utils/ShareHelper';\n\nimport { FlowSelectorOption, FlowSelectorOptions } from './components/flow-selector-options/FlowSelectorOptions';\nimport { PreviousShares } from './components/flow-selector-options/previous-shares/PreviousShares';\nimport { ClassroomFlowView } from './ClassroomFlowView';\nimport { SessionFlowView } from './SessionFlowView';\n\ninterface FlowSelectorViewProps extends PopupViewProps {\n objectId: string;\n entityType: 'video' | 'clip' | 'interactive' | 'series' | 'playlist';\n}\n\nexport function FlowSelectorView(props: FlowSelectorViewProps): JSX.Element {\n const [ selectedFlow, setSelectedFlow ] = React.useState('');\n const [ showPreviousAssignments, setShowPreviousAssignments ] = React.useState(true);\n\n const previousShares = Flight.useBasicFetch<ShareLink[]>(ShareRequests.getSharesByObjectId(props.objectId));\n const previousClassroomShares = previousShares.data?.filter(share => share.type === ShareType.Classroom) || [];\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.objectId, currentUser.data?.id);\n\n const classroomIds = ArrayHelper.uniq(\n previousClassroomShares\n .map(ShareHelper.getClassroomIdFromShare)\n .filter(x => !!x)\n );\n const classrooms = Flight.useBasicFetch<Classroom[]>(\n previousShares.hasCompleted && ClassroomRequests.getClassroomsByIds(classroomIds)\n );\n\n if (selectedFlow === 'classroom') {\n return <ClassroomFlowView {...props} closePopup={() => setSelectedFlow('')} />;\n }\n\n if (selectedFlow === 'session') {\n return <SessionFlowView {...props} closePopup={() => setSelectedFlow('')} />;\n }\n\n function onViewReport(share: ShareLink) {\n const actions = {\n video: Actions.Insights.VIDEO_SHARE_OPTIONS,\n clip: Actions.Insights.CLIP_SHARE_OPTIONS,\n interactive: Actions.Insights.INTERACTIVE_SHARE_OPTIONS,\n series: Actions.Insights.SERIES_SHARE_OPTIONS,\n playlist: Actions.Insights.PLAYLIST_SHARE_OPTIONS\n };\n\n AppLinkHelper.trigger({\n application: AppChannels.INSIGHTS,\n action: actions[props.entityType],\n args: [props.objectId],\n params: {\n shareId: share.shareId\n }\n });\n }\n\n const choices: [FlowSelectorOption, FlowSelectorOption] = [{\n id: 'classroom',\n title: 'ClickView classroom',\n description: 'Only students from your chosen classroom can view the video.',\n image: ImageUrls.Share.CLASSROOM_SHARE\n }, {\n id: 'session',\n title: 'Open classroom',\n description: 'Allow any students who have the PIN, QR code or link to access the video for 30 days.',\n image: ImageUrls.Share.OPEN_CLASSROOM\n }];\n\n const dataLoaded = (\n !! currentUser.data &&\n !! entity.data &&\n !! previousShares.data &&\n !! classrooms.data\n );\n\n return (\n <Popup\n size='lg'\n title='Assign'\n showLoadingSpinner={!dataLoaded}\n closePopup={props.closePopup}\n contentClassName={dataLoaded ? 'bg-transparent border-0' : ''}\n bodyClassName='p-0 d-flex flex-column gap-3'\n\n >\n {(() => {\n if (!dataLoaded)\n return null;\n\n return (\n <>\n <FlowSelectorOptions\n options={choices}\n onClick={option => setSelectedFlow(option.id)}\n />\n \n {previousClassroomShares.length ? (\n <div className='bg-white rounded-3 p-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h3 className='h6 m-0 p-0'>Previous assignments ({previousClassroomShares.length})</h3>\n <IconButton\n svgName={showPreviousAssignments ? cvSvgLibrary.ChevronUp : cvSvgLibrary.ChevronDown}\n onClick={() => setShowPreviousAssignments(!showPreviousAssignments)}\n />\n </div>\n {showPreviousAssignments && (\n <PreviousShares\n data={{\n shares: previousClassroomShares,\n classrooms: classrooms.data,\n entity: entity.data\n }}\n onClick={onViewReport}\n />\n )}\n </div>\n ) : null}\n </>\n );\n })()}\n </Popup>\n );\n}","import React from 'react';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SectionSettingToggleItem } from './section-setting-toggle-item/SectionSettingToggleItem';\n\ninterface SessionSettingsSectionedProps {\n requireSignIn: boolean;\n respectRatingsAndRestrictions: boolean;\n preventSkippingAhead: boolean;\n enableInstantFeedback: boolean;\n className?: string;\n message?: string;\n onToggleRequireSignIn: () => void;\n onToggleRespectRatingsAndRestrictions: () => void;\n onTogglePreventSkippingAhead: () => void;\n onToggleEnableInstantFeedback: () => void;\n onChangeMessage: (message: string) => void;\n}\n\nexport function SessionSettingsSectioned({\n requireSignIn,\n respectRatingsAndRestrictions,\n preventSkippingAhead,\n enableInstantFeedback,\n className,\n message,\n onToggleRequireSignIn,\n onToggleRespectRatingsAndRestrictions,\n onTogglePreventSkippingAhead,\n onToggleEnableInstantFeedback,\n onChangeMessage\n}: SessionSettingsSectionedProps): JSX.Element {\n return (\n <div className={`d-flex flex-column gap-4 ${className}`}>\n <div className='d-flex align-items-center'>\n <div className='d-flex align-items-center justify-content-center'>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.VisibleOn}\n variant='blue'\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <div className='d-flex flex-column ms-2'>\n <label className='m-0'>Open Session</label>\n <span className='text-secondary'>Anyone can view for 30 days</span>\n </div>\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Access</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Require students to sign in'\n description='Best way to gather student data linked to their ClickView accounts'\n toggled={requireSignIn}\n onClick={onToggleRequireSignIn}\n />\n <SectionSettingToggleItem\n title='Respect ratings and restrictions of video'\n description='Only students from Year 4 and above can view this video. Will require students to sign in.'\n toggled={respectRatingsAndRestrictions}\n onClick={onToggleRespectRatingsAndRestrictions}\n />\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Settings</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Prevent skipping ahead'\n description='Students cannot skip ahead to parts of the video they have not watched'\n toggled={preventSkippingAhead}\n onClick={onTogglePreventSkippingAhead}\n />\n <SectionSettingToggleItem\n title='Enable instant feedback'\n description='Allow students to see feedback on their answers before continuing'\n toggled={enableInstantFeedback}\n onClick={onToggleEnableInstantFeedback}\n />\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <label className='m-0'>Add a message (optional)</label>\n <textarea\n value={message}\n className='form-control rounded w-100 h-100'\n placeholder='Type a message...'\n onChange={e => onChangeMessage(e.target.value)}\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SessionSettingsSectioned } from 'apps/share-v2/components/SessionSettingsSectioned';\nimport { useCreateShare } from 'apps/share-v2/hooks/useCreateShare';\n\ninterface SessionFlowViewProps extends PopupViewProps {\n objectId: string;\n entityType: 'video' | 'clip' | 'interactive' | 'series' | 'playlist';\n}\n\nexport function SessionFlowView(props: SessionFlowViewProps): JSX.Element {\n const { createOpenSession } = useCreateShare(props.objectId);\n const [ preventSkippingAhead, setPreventSkippingAhead ] = React.useState(false);\n const [ enableInstantFeedback, setEnableInstantFeedback ] = React.useState(false);\n const [ requireSignIn, setRequireSignIn ] = React.useState(false);\n const [ respectRatingsAndRestrictions, setRespectRatingsAndRestrictions ] = React.useState(false);\n const [ message, setMessage ] = React.useState('');\n const [ working, setWorking ] = React.useState(false);\n\n function onBack() {\n props.closePopup();\n }\n\n async function onCreate() {\n setWorking(true);\n\n const shareLink = await createOpenSession({\n instantFeedback: enableInstantFeedback,\n preventSkipping: preventSkippingAhead,\n requireSignIn,\n respectRatingsAndRestrictions,\n objectId: props.objectId\n });\n\n const actions = {\n video: Actions.Insights.VIDEO_SHARE_OPTIONS,\n clip: Actions.Insights.CLIP_SHARE_OPTIONS,\n interactive: Actions.Insights.INTERACTIVE_SHARE_OPTIONS,\n series: Actions.Insights.SERIES_SHARE_OPTIONS,\n playlist: Actions.Insights.PLAYLIST_SHARE_OPTIONS\n };\n\n AppLinkHelper.trigger({\n application: AppChannels.INSIGHTS,\n action: actions[props.entityType],\n args: [props.objectId],\n params: {\n shareId: shareLink.shareId\n }\n });\n }\n\n return (\n <Popup\n title={'Assign to an Open classroom'}\n showLoadingSpinner={false}\n size='lg'\n bodyClassName='d-flex flex-column gap-3'\n {...props}\n >\n <SessionSettingsSectioned\n requireSignIn={requireSignIn}\n respectRatingsAndRestrictions={respectRatingsAndRestrictions}\n enableInstantFeedback={enableInstantFeedback}\n preventSkippingAhead={preventSkippingAhead}\n message={message}\n onToggleRequireSignIn={() => setRequireSignIn(!requireSignIn)}\n onToggleRespectRatingsAndRestrictions={() => setRespectRatingsAndRestrictions(!respectRatingsAndRestrictions)}\n onTogglePreventSkippingAhead={() => setPreventSkippingAhead(!preventSkippingAhead)}\n onToggleEnableInstantFeedback={() => setEnableInstantFeedback(!enableInstantFeedback)}\n onChangeMessage={setMessage}\n />\n <PopupButtons>\n <PopupButtons.Cancel variant='link' onClick={onBack} />\n <PopupButtons.Submit variant='dark' onClick={onCreate} showSpinner={working} text='Assign' />\n </PopupButtons>\n </Popup>\n );\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"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","BASE_IMAGE_CLASS_NAME","InsightsMask","className","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","useVideoThumbnail","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","svgContainerClassName","getBgColorClass","extraClasses","getImageProps","showInsightsMask","AppLink","appLink","VideoThumbnail","video","imageOptions","textPosition","ThumbnailTextPosition","hideDuration","hideMask","requireMarking","Text","phrase","smartCount","CollectionThumbnail","collection","analyticsData","analyticsOptions","locationContext","showMask","showCollectionMask","showVideoCount","BaseImage","defaultProps","size","BaseCollectionThumbnailTitle","title","CollectionThumbnailTitle","firstVideo","collectionVideos","videos","playlist","clips","interactives","ArrayHelper","getFirstVideo","videoCount","totalCount","getVideoCount","showTexts","subText","toString","MasterTypeHelper","preventFocus","SvgContainer","svgName","hoverText","hideRating","hideVideoTypeBadge","TitleSubText","subTextAppLink","titleAppLink","IntegrationId","getShareIntegrations","settingName","SectionSettingToggleItem","htmlFor","description","onClick","on","toggled","SharePrivacy","ShareType","createShareLink","getShareLink","getSharesByObjectId","adaptedParams","scopeId","limit","offset","parseInt","createPincode","getPincode","code","getPincodeByShareId","useCreateShare","accessPermissions","fetchAsync","canManageAccess","privacy","optionRequest","shareLink","createDirectShare","requireSignIn","preventShipping","recipientRequest","recipients","recipientId","message","createOpenSession","respectRatingsAndRestrictions","hasCompleted","ShareHelper","getFlattenedRecipients","shares","s","getClassoomIds","classroomIds","r","recipientTypeId","x","getClassroomIdFromShare","firstRecipient","getClassroomForShare","classrooms","classroomId","find","classroom","FlowSelectorOptions","DivButton","src","draggable","PreviousShares","reverse","IconCircle","variant","textVariant","svgSize","S","viewCount","dateCreated","ClassroomSelectorList","onClassroomSelected","Form","onChange","checked","selectedClassroom","svgWrapperClassName","onSelectGroupsOrStudents","ImageUrls","alt","searchQuery","onClickCreateOpenClassroom","ClassroomSelector","search","setSearch","filteredClassrooms","toLowerCase","placeholder","e","target","ClassroomSettingsSectioned","preventSkippingAhead","enableInstantFeedback","onToggleRequireSignIn","onTogglePreventSkippingAhead","onToggleEnableInstantFeedback","onChangeClassroom","onChangeMessage","ClassroomFlowView","step","setStep","currentUser","UserRequests","ClassroomRequests","setSelectedClassroom","setPreventSkippingAhead","setEnableInstantFeedback","setRequireSignIn","setMessage","working","setWorking","console","log","application","action","args","dataLoaded","Popup","showLoadingSpinner","bodyClassName","PopupButtons","text","closePopup","actions","clip","series","onShare","disabled","showSpinner","FlowSelectorView","selectedFlow","setSelectedFlow","showPreviousAssignments","setShowPreviousAssignments","previousShares","previousClassroomShares","SessionFlowView","choices","contentClassName","IconButton","SessionSettingsSectioned","onToggleRespectRatingsAndRestrictions","setRespectRatingsAndRestrictions","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","unit"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1386],{71553:(e,t,a)=>{a.d(t,{I:()=>s});var n=a(99940),r=a(62875);function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:{start:t.start,end:t.end},userIds:t.userId,classroomsAndGroups:t.groupId}}var s={interactiveResultSet:function(e,t,a,s,o,l,c,u){return{url:o?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:(0,r.H)("interactive:result:set:".concat(e,":").concat(t),s),data:i(a,s),type:n.k.POST,normalize:!1,success:l,error:c,always:u}},mark:function(e,t,a,r,i,s,o){return{url:"/api/domain/v1/analytics/answers/".concat(a),key:"mark:answer:".concat(a,":").concat(r.resultId),type:n.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:s,always:o}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},49863:(e,t,a)=>{a.d(t,{m9:()=>b,Ad:()=>x,Kh:()=>E});var n=a(32735),r=a(23481),i=a(75896),s=a(97408),o=a(18995),l=a(12528),c=a(83914),u=a(36532),d=a(4594),m=a(36511),p=a(35223),v=a(64818);const g={avatarContainer:"ByxQa",sm:"EgJ0v",sharedAvatar:"cW0NT"};var f=r.T.encloseNamespace("reportsShare.sharedToAvatarList");function h(e){var t=i.m.countBy(e,"typeId"),a=t[d.E.User],n=t[d.E.Classroom],r=t[d.E.ClassroomGroup];return a&&n&&r?f("classroomsGroupsAndUsers",{userCount:a,classroomCount:n,groupCount:r}):a&&n?f("classroomsAndUsers",{userCount:a,classroomCount:n}):a&&r?f("groupsAndUsers",{userCount:a,groupCount:r}):n&&r?f("classroomsAndGroups",{classroomCount:n,groupCount:r}):a?f("users",{userCount:a}):n?f("classrooms",{classroomCount:n}):r?f("groups",{groupCount:r}):void 0}function y(e){var t,a,r,i,o,f=(null===(t=e.item)||void 0===t?void 0:t.typeId)===d.E.User&&e.item,h=(null===(a=e.item)||void 0===a?void 0:a.typeId)===d.E.Classroom&&e.item,y=(null===(r=e.item)||void 0===r?void 0:r.typeId)===d.E.ClassroomGroup&&e.item,b="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return n.createElement(n.Fragment,null,!!f&&n.createElement(u.u,{title:"".concat(f.name," ").concat(f.surname),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement(s.q,{imageUrl:null===(i=f.avatar)||void 0===i?void 0:i.url,imageCdnUrl:e.imageCdnUrl,initials:v.l.getInitials(f.name,f.surname),extraClasses:g.sharedAvatar})),!!h&&n.createElement(u.u,{title:h.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:b},n.createElement(l.f,{svgName:p.vn.Classrooms,svgSize:c.S.Large,variant:"teal"}))),!!y&&n.createElement(u.u,{title:y.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:b},n.createElement(l.f,{svgName:p.vn.Group,variant:(0,m.I)(null===(o=y.metadata)||void 0===o?void 0:o.colour)}))))}function b(e){return n.createElement("div",{className:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:"")},n.createElement(u.u,{title:f("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},n.createElement(c.x,{svgName:p.vn.Anonymous,size:"sm"===e.avatarSize?c.S.Small:null})))}function x(e){return n.createElement("div",{className:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:"")},n.createElement(u.u,{title:e.text||f("sharedLink"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ".concat(e.className||"")},n.createElement(c.x,{svgName:p.vn.Link,size:"sm"===e.avatarSize?c.S.Small:null})))}function E(e){return n.createElement(o.e,Object.assign({},e,{items:e.recipients,avatarItem:y,avatarContainerClassname:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:""),getHiddenTooltip:h,hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}E.defaultProps={maxAvatars:5}},18995:(e,t,a)=>{a.d(t,{e:()=>l});var n=a(32735),r=a(23481),i=a(49863),s=a(36532),o=r.T.encloseNamespace("shared.avatarList");function l(e){var t=e.items.length>e.maxAvatars?e.items.slice(0,e.maxAvatars-1):e.items,a=e.items.length>t.length?e.items.slice(e.maxAvatars-1):[],r=e.avatarItem,l=a.length,c="sm"===e.avatarSize?4:8;function u(t){return{transform:"translateX(".concat((e.hasShareLink?t+1:t)*-c,"px)"),zIndex:e.maxAvatars-t}}return 0===t.length&&0===a.length?n.createElement(n.Fragment,null):n.createElement("div",{className:"d-flex",style:{marginRight:"-".concat((t.length-1+(a.length?1:0)+(e.hasShareLink?1:0))*c,"px")}},e.hasShareLink&&n.createElement("div",{style:{zIndex:e.maxAvatars+1}},n.createElement(i.Ad,{text:e.shareLinkText,avatarSize:e.avatarSize,className:"bg-dark text-white"})),t.map((function(t,a){return n.createElement("div",{className:"".concat(e.avatarContainerClassname||""),key:t.id,style:u(a)},n.createElement(r,{item:t,imageCdnUrl:e.imageCdnUrl,index:a,maxAvatars:e.maxAvatars}))})),!!a.length&&n.createElement("div",{className:"".concat(e.avatarContainerClassname||""," bg-white rounded-circle"),style:{transform:"translateX(".concat(t.length*-c,"px)"),zIndex:e.maxAvatars-t.length}},n.createElement(s.u,{title:e.getHiddenTooltip?e.getHiddenTooltip(a):e.roleToDisplay?o("staff"===e.roleToDisplay?"staff":"student",{count:l,smartCount:l}):o("users",{count:l,smartCount:l}),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:"d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ".concat(e.numberClassname||"")},"+".concat(a.length)))))}l.defaultProps={maxAvatars:5}},39902:(e,t,a)=>{a.d(t,{F:()=>p,f:()=>m});var n=a(32735),r=a(20354),i=a(75896);function s(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(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 o(e,t){if(e){if("string"==typeof e)return l(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)?l(e,t):void 0}}function l(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}function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e,t,a){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var d=50;function m(e,t){var a=i.m.chunk(e,d).map((function(e){return t(i.m.uniq(e))})),n=r.a.useBasicFetchAll(a),s=i.m.flatten(n.data),o=n.data.length?s.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:s,items:o,isFetching:n.isFetching}}function p(e,t,a){var l,m,p,v,g=a||function(e){return"object"===c(e)?e.id:e},f=n.useRef(new Set),h=(p=n.useState([]),v=2,function(e){if(Array.isArray(e))return e}(p)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(p,v)||o(p,v)||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.")}()),y=h[0],b=h[1];n.useEffect((function(){if(null==e?void 0:e.length){var a=[];e.forEach((function(e){var t=g(e);f.current.has(t)||(a.push(e),f.current.add(t))})),a.length&&b((function(e){return[].concat(s(e),s(i.m.chunk(a,d).map(t)))}))}}),[null==e?void 0:e.length]);var x=r.a.useBasicFetchAll(y),E=i.m.flatten(x.data),S=x.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},g(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(m=null===(l=x.responses)||void 0===l?void 0:l[0])||void 0===m?void 0:m.hasCompleted),itemsArr:E,items:S,isFetching:x.isFetching}}},62875:(e,t,a)=>{function n(e,t,a){var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return r&&(n+=":".concat(r)),i&&(n+=":".concat(i)),a&&(n+=":".concat(a)),n}a.d(t,{H:()=>n})},51922:(e,t,a)=>{a.d(t,{g:()=>A,F:()=>O});var n=a(32735),r=a(82602),i=a(39202),s=a(65858),o=a(9806),l=a(83345),c=a(62335),u=a(26339),d=a(54610),m=a(4594),p=a(49080),v=a(31908),g=a(24758),f=a(42272),h=a(93975),y=a(23481),b=a(110),x=a(26361),E=a(35223);function S(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 k=y.T.encloseNamespace("share.shareLinkInfo"),I={getPrivateIconAndText:function(e){var t=e.entityTypeId,a=e.privacy,n=e.hasStudentExp,r=e.entity,i=e.yearGroups;if(t===m.E.Topic||t===m.E.Series)return{icon:E.vn.VisibleOn,text:k(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(a))switch(a){case f.e.Public:return{icon:E.vn.VisibleOn,text:k("publicDescription")};case f.e.ProtectedOverrideRestriction:return{icon:E.vn.VisibleOn,text:k("clickViewOnly")};case f.e.Protected:return{icon:E.vn.Lock,text:I.getRespectRatingText(r,i,n)};case f.e.JustMySchoolOverrideRestriction:return{icon:E.vn.Lock,text:k(n?"justMySchoolTeachers":"justMySchoolDescription")};case f.e.JustMySchool:return{icon:E.vn.Lock,text:I.getRespectRatingText(r,i,n)};case f.e.PinCode:case f.e.PasswordProtected:return{icon:E.vn.Lock,text:k("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,a=e.isPasswordProtected,n=e.status;if(!t&&!a)return I.getPrivateIconAndText(e);if(!t)return{icon:E.vn.Lock,text:k("password")};var r=b.O.isToday(t),i=b.O.diffBetween(t,new Date,"day");if(!a){var s=r?k("expiryToday"):k("expiry",{days:i});return n===p.F.Expired&&(s=k("expired")),{icon:E.vn.Timer,text:s}}var o=r?k("passwordExpiryToday"):k("passwordExpiry",{days:i});return n===p.F.Expired&&(o=k("passwordExpired")),{icon:E.vn.Lock,text:o}},getRespectRatingText:function(e,t,a){var n;if(!e||!t)return null;if(a)return k("justMySchoolTeachers");if(!v.M.isVideoType(e))return k("collectionRating");var r=x.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(r&&!r.yearGroup)return k("onlyAdmins");var i,s,o,l=v.M.getRating(e),c=function(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return S(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)?S(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==a.return||a.return()}finally{if(o)throw i}}}}(t);try{for(c.s();!(o=c.n()).done;){var u=o.value;(!i||u.value>i.value)&&(i=u),r&&u.value<=r.yearGroup||l&&u.rating.value<l.value||(!s||u.value<s.value)&&(s=u)}}catch(e){c.e(e)}finally{c.f()}return s?1===t.length?k("clickViewOnly"):s.value===i.value?k("maxYearGroup",{yearGroup:i.name}):k("yearGroupRange",{yearGroup:s.name}):k("onlyStaff")}};const w={mySharesTable:"hyaYe",mySharesHeader:"WjfsD",tableBorder:"tHBWr"};function C(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 N="myShares.tableRow";function A(e){return n.createElement("div",{className:"".concat(w.mySharesHeader," d-block d-lg-grid gap-3 px-3")},n.createElement("p",{className:"fw-semibold mb-2 ms-n3"},e.heading),e.isFirst&&n.createElement(n.Fragment,null,n.createElement("div",{className:"d-none d-xl-inline"}),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(l.x,{namespace:N,phrase:"sharedToHeading"})),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(l.x,{namespace:N,phrase:"dateSharedHeading"})),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(l.x,{namespace:N,phrase:"viewsHeading"}))))}function j(e){var t,a=e.sharedObject;if(!a.name)return n.createElement(l.x,{namespace:N,phrase:"videoUnavailable"});if(v.M.isVideoType(a)&&!(null===(t=v.M.getCanBeConsumed(a))||void 0===t?void 0:t.canNavigate))return n.createElement("span",{className:"clamp-2"},a.name);var r=function(){switch(a.typeId){case m.E.Series:return"series";case m.E.Playlist:return"playlist"}}();return n.createElement("div",null,v.M.isVideoType(a)&&n.createElement(u.$,{type:"series",video:a,analyticsOptions:{location:s.LZ.Insights},className:"d-inline clamp-1"}),r&&n.createElement(c.m,null,n.createElement(l.x,{namespace:N,phrase:r})),a.name,!!e.requireMarking&&n.createElement("div",{className:"font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2"},n.createElement(l.x,{namespace:N,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))}function O(e){var t=e.shareData,a=t.sharedObject,c=t.share.type===h.y.Link&&I.getIconAndText({entity:a,entityTypeId:a.typeId,hasStudentExp:!1,isPasswordProtected:t.privacy===f.e.PasswordProtected,linkExpireDate:"",privacy:t.privacy,status:p.F.Active,yearGroups:e.yearGroups}),u=e.breakpoints.xs||e.breakpoints.sm,v=e.breakpoints.xl||e.breakpoints.xxl,y=a.typeId===m.E.Playlist||a.typeId===m.E.Series;function b(){var n,r,s=(n=e.getObjectActions(a,t.share.shareId),r=1,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(n,r)||function(e,t){if(e){if("string"==typeof e)return C(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)?C(e,t):void 0}}(n,r)||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.")}())[0];i.C$.trigger(s.appLink)}return n.createElement("div",{key:t.share.shareId,onClick:b,className:"".concat(w.mySharesTable," ").concat(w.tableBorder," position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3")},n.createElement("div",{className:"col-12 col-md-3 col-xl-auto"},n.createElement(o.k,{object:a,showVideoMetadata:!0,locationContext:s.LZ.MyShares,imageOptions:{size:d.h2.Medium},requireMarking:u&&t.pendingReview,showCollectionMask:!0,showVideoCount:!0})),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"col-xl-4"},n.createElement(j,{sharedObject:t.sharedObject,requireMarking:v&&t.pendingReview}),e.children),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement(g.A,{shareLinkText:null==c?void 0:c.text,shareRecipients:t.shareRecipients,imageCdnUrl:e.imageCdnUrl})),n.createElement("span",{className:"d-inline d-xl-none"},"·"),n.createElement("p",{className:"mb-0 col-xl-4"},(0,r.WU)(t.dateShared)),y?n.createElement("p",{className:"mb-0 d-none d-xl-block"},"-"):n.createElement(n.Fragment,null,n.createElement("span",{className:"d-inline d-xl-none"},"·"),n.createElement("p",{className:"mb-0 col-xl-3"},n.createElement(l.x,{namespace:N,phrase:"views",options:{smartCount:t.viewCount}})))),!v&&!u&&!!t.pendingReview&&n.createElement("div",{className:"font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2"},n.createElement(l.x,{namespace:N,phrase:"requireMarking",options:{smartCount:t.pendingReview}}))),n.createElement("p",{onClick:b,className:"cursor-pointer p-0 m-0 text-info"},"View report"))}},5056:(e,t,a)=>{a.d(t,{R:()=>g});var n=a(32735),r=a(23481),i=a(75896),s=a(110),o=a(31754),l=a(4594),c=a(93975);function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function d(e,t,a){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=u(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var m=r.T.encloseNamespace("myShares.mySharesTable");function p(e){var t;if(e.type===c.y.Link||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateCreated}));return a.sort((function(e,t){return s.O.isSame(e,t)?0:s.O.isAfter(e,t)?1:-2})),a.length?i.m.last(a):""}var v=a(51922);function g(e){var t,a,r,i,s,u,g,f=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,s=e.interactivesPendingReview,u=[],g=null==s?void 0:s.reduce((function(e,t){return Object.assign(d({},t.interactiveId,t),e)}),{}),t.forEach((function(e){var t,n,i=null==a?void 0:a[e.objectId],s=null;if(e.type===c.y.Classroom&&(s=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=null==r?void 0:r[e.recipientId];t&&s.push(t)}))),i){var o=i.typeId===l.E.Interactive&&(null==g?void 0:g[i.interactiveId]);u.push({share:e,sharedObject:i,shareRecipients:s,dateShared:p(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0,pendingReview:null==o?void 0:o.pendingReviewCount,privacy:e.privacy})}})),i?o.x.groupByDateShared(u):d({},m("title"),u));return n.createElement(n.Fragment,null,Object.keys(f).map((function(t,a){return n.createElement("div",{key:t},n.createElement(v.g,{heading:t,isFirst:!e.hasDemoInsights&&0===a}),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md"},f[t].map((function(t){return n.createElement(v.F,{key:t.share.shareId,shareData:t,getObjectActions:e.getObjectActions,getObjectAppLink:e.getObjectAppLink,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})}))))})))}},67467:(e,t,a)=>{a.d(t,{o:()=>u});var n=a(32735),r=a(23481),i=a(97958),s=a(99742),o=a(14070),l=a(97291),c=r.T.encloseNamespace("myShares.mySharesTableEmptyState");function u(){return n.createElement(i.u,null,n.createElement(i.u.Image,{src:s.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),n.createElement(i.u.Heading,null,c("heading")),n.createElement(i.u.Info,null,c("info")),n.createElement(i.u.Cta,{appLink:{application:l.O.DASHBOARD,action:o.e.Dashboard.HOME},text:c("cta")}))}},28001:(e,t,a)=>{a.d(t,{L:()=>s});var n=a(32735);const r={table:"elIjR",tableHeader:"xJKgP",heading:"iWHol",image:"TMQxq",avatar:"_3GY1C",date:"nz3va",views:"FpDfX",actions:"pOtyK"};function i(){return n.createElement("div",{className:"".concat(r.table," position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3")},n.createElement("div",{className:"col-12 col-md-3 col-xl-auto"},n.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9 "})),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"partial-loading-background col-8 col-xl-4"}," "),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement("div",{className:"".concat(r.avatar," partial-loading-background rounded-pill col-xl-8")})),n.createElement("div",{className:"col-xl-4"},n.createElement("div",{className:"".concat(r.date," partial-loading-background")}," ")),n.createElement("div",{className:"col-xl-3"},n.createElement("div",{className:"".concat(r.views," partial-loading-background")}," ")))),n.createElement("div",{className:"position-absolute bottom-0 end-0 position-md-static d-flex justify-content-end gap-2 ms-auto col col-xl-12"},n.createElement("div",{className:"".concat(r.actions," partial-loading-background rounded d-none d-md-block px-3 p-lg-0 col-lg-6")}),n.createElement("div",{className:"".concat(r.actions," partial-loading-background rounded px-3 p-lg-0 col-lg-4")})))}function s(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"no-full-width"},n.createElement("div",{className:"".concat(r.table," d-block d-xl-grid gap-3 px-3")},n.createElement("div",{className:"partial-loading-background mb-2 ms-n3 ".concat(r.date)}," "),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"col-xl-4"}),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(r.date)}," ")),n.createElement("div",{className:"col-xl-4"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(r.date)}," ")),n.createElement("div",{className:"col-xl-3"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(r.date)}," "))))),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(i,null),n.createElement(i,null),n.createElement(i,null)))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.date)}," "),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.date)}," "),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null),n.createElement(i,null))))}},24758:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(32735),r=a(49863),i=a(83345),s="myShares.sharedToPill";function o(e){var t=e.shareRecipients;return n.createElement("div",{className:"d-flex align-items-center bg-gray-100 rounded-pill w-fit gap-2 p-2"},n.createElement("span",{className:"text-nowrap"},n.createElement(i.x,{namespace:s,phrase:t?"sharedTo":"sharedVia"})),!t&&n.createElement(r.Ad,{text:e.shareLinkText,avatarSize:"sm",className:"bg-dark text-white"}),t&&!(null==t?void 0:t.length)&&n.createElement(r.m9,{avatarSize:"sm"}),t&&n.createElement(r.Kh,{recipients:t,imageCdnUrl:e.imageCdnUrl,maxAvatars:e.maxAvatars,avatarSize:"sm",hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}o.defaultProps={maxAvatars:3}},45231:(e,t,a)=>{a.d(t,{a:()=>f});var n=a(20354),r=a(1048),i=a(71553),s=a(30439),o=a(39151),l=a(1666),c=a(31949),u=a(39902),d=a(60115),m=a(31908),p=a(88630),v=a(91574),g=a(72951);function f(e,t){var a,f,h=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],y=n.a.useGetFetch(),b=n.a.useBasicFetch(c.N.currentUser()),x=n.a.useBasicFetch(o.L.config()),E=n.a.useBasicFetch((null===(a=b.data)||void 0===a?void 0:a.isAuthenticated)&&l.h.yearGroups(b.data.customerId)),S=function(t){return h&&v.o.getSentShares(Object.assign({cursor:t},e))},k=function(e){return y(S(e))},I=(0,d.K)(S,k),w=I.items,C=I.hasMore,N=I.isFetching,A=I.nextCursor,j=I.hasFirstPageCompleted,O=(0,u.F)(null==w?void 0:w.map((function(e){return e.objectId.toString()})),s.o.sharedObjectsById),T=(0,u.F)(g.x.getFlattenedRecipients(null!=w?w:[]).map((function(e){return e.recipientId.toString()})),(function(e){return s.o.getRecipientsById(e,b.data.customerId)})),P=(0,u.F)(t?r.t.values(O.items||[]):[],(function(e){return i.I.pendingReviews({interactives:e.filter(m.M.isInteractive).map((function(e){return{interactiveId:e.interactiveId,metadataId:e.id}})),filters:{currentCustomerId:b.data.customerId,currentUserId:b.data.id}})}),(function(e){return"".concat(e.id,":").concat(e.interactiveId)})),L=(0,u.F)(g.x.getClassoomIds(null!=w?w:[]),(function(e){return p.F.getClassroomsByIds(e)})),R=N||O.isFetching||T.isFetching||P.isFetching||E.isFetching,F=!j||!O.hasFirstRequestCompleted;return{sentShares:w,sharedObjects:O,shareRecipients:T,shareClassrooms:L,yearGroups:E.data,interactivesPendingReview:P,isFetching:R,showPartialLoading:F,nextCursor:A,hasMore:C,fetchNext:k,imageCdnUrl:null===(f=x.data)||void 0===f?void 0:f.imageCdnUrl}}},69003:(e,t,a)=>{a.d(t,{cl:()=>g,sD:()=>v});var n=a(23481),r=a(65858),i=a(26025),s=a(35223),o=a(31908),l=a(14070),c=a(97291),u=a(86099);function d(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(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 m(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 p=n.T.encloseNamespace("myShares.myShares");function v(e,t,a,n,i,d){var m=[],v={button:!(d.xs||d.sm),className:"btn btn-outline-dark"};if(o.M.isVideoType(e)){if(!o.M.getCanBeConsumed(e).canConsume)return[];if(i)return[Object.assign(Object.assign({label:p("embedVideo"),appLink:{application:c.O.DEFAULT,action:l.e.Default.PLUGIN_SHARE,args:[e.id],params:{entityType:e.type}}},v),{analyticsOptions:{actionType:r.Vw.Share,descriptor:r.YM.PluginEmbed,workflowPhase:r.eu.Start,eventVersion:r.eq.V5}})]}return n&&m.push(Object.assign({svgName:s.vn.Analytics,label:!d.md&&p("viewInsights"),tooltip:d.md&&p("viewInsights"),appLink:Object.assign(Object.assign({},(0,u.Dw)(e)),{params:Object.assign(Object.assign({},a),{shareId:t})}),group:"insights"},v)),m.push(Object.assign({label:!d.md&&p("share"),tooltip:d.md&&p("share"),svgName:s.vn.Share,appLink:(0,u.YK)(e),group:"share"},v)),m}function g(e){var t=function(e){return e?"string"==typeof e?[+e]:e.map((function(e){return+e}))||[]:[]}(e),a=i.B.getAudienceAppLinkParams();return{typeIdAppLinkParams:t,audienceAppLinkParams:a,currentAppLink:{application:c.O.MY_SHARES,action:l.e.MyShares.HOME,params:Object.assign(Object.assign({},a),{typeId:t})},sentSharesParams:{recipientUserId:null==a?void 0:a.users,recipientGroupId:[].concat(d((null==a?void 0:a.classroomGroups)||[]),d((null==a?void 0:a.classrooms)||[])),objectTypeId:t.length?t:void 0}}}},42272:(e,t,a)=>{var n;a.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},93975:(e,t,a)=>{var n;a.d(t,{y:()=>n}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(n||(n={}))},91574:(e,t,a)=>{a.d(t,{o:()=>s});var n=a(99940),r=a(97395),i={namespace:"share-v2"},s={createShareLink:function(e,t,a,r){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:n.k.POST,data:e,normalizeOptions:i,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:a,always:r}},getShareLink:function(e,t,a,r){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:n.k.GET,normalizeOptions:i,success:t,error:a,always:r}},getSharesByObjectId:function(e,t,a,r){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:i,success:t,error:a,always:r}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,a=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,s={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},o=Object.values(s).join(":");return{url:r._.urlBuilder("/api/share/v2/shares/sent",s),key:"sent:shares-v2:".concat(o),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:s.offset+e.length}}}},type:n.k.GET,normalize:!1,success:t,error:a,always:i}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:n.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},72951:(e,t,a)=>{a.d(t,{x:()=>i});var n=a(75896),r=a(4594),i={getFlattenedRecipients:function(e){return n.m.flatten(e.map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))},getClassoomIds:function(e){var t=i.getFlattenedRecipients(e).map((function(e){return e.scopeId?e.scopeId.toString():e.recipientId&&e.recipientTypeId===r.E.Classroom?e.recipientId.toString():void 0}));return n.m.uniq(t.filter((function(e){return!!e})))},getClassroomIdFromShare:function(e){var t,a=null===(t=e.recipients)||void 0===t?void 0:t[0];if(a)return a.scopeId?a.scopeId.toString():a.recipientId&&a.recipientTypeId===r.E.Classroom?a.recipientId.toString():void 0},getClassroomForShare:function(e,t){var a=i.getClassroomIdFromShare(e);if(a)return t.find((function(e){return e.id.toString()===a.toString()}))}}}}]);
2
- //# sourceMappingURL=1386-d93ee75e0c-lite.chunk.js.map