@clickview/lite 0.50.1-rc.0 → 0.50.1-rc.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.
- package/dist/bundles.json +2 -2
- package/dist/css/{1313-lite-b05099b818.chunk.css → 1313-lite-6b1a20b3fe.chunk.css} +1 -1
- package/dist/css/{1402-lite-9489903efd.chunk.css → 1402-lite-8a07733b96.chunk.css} +1 -1
- package/dist/css/{3588-lite-f083d46330.chunk.css → 1407-lite-be6668ef3a.chunk.css} +1 -1
- package/dist/css/{5725-lite-789978250c.chunk.css → 1539-lite-a5772fefdb.chunk.css} +1 -1
- package/dist/css/{5769-lite-16efb24b77.chunk.css → 1567-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{1602-lite-90df7cca5c.chunk.css → 1602-lite-8fb6cea449.chunk.css} +1 -1
- package/dist/css/{1820-lite-ebb89eab7a.chunk.css → 1820-lite-8008c78ef7.chunk.css} +1 -1
- package/dist/css/{9818-lite-dca6b9e86d.chunk.css → 1850-lite-e9e8c03964.chunk.css} +1 -1
- package/dist/css/{2120-lite-dd1595051d.chunk.css → 2120-lite-b1876117b4.chunk.css} +1 -1
- package/dist/css/{2137-lite-7045732fc8.chunk.css → 2137-lite-6e9d11bd5b.chunk.css} +1 -1
- package/dist/css/{2446-lite-6b11bdfdc1.chunk.css → 2446-lite-dfc41ecbea.chunk.css} +1 -1
- package/dist/css/{9211-lite-f00eb0266e.chunk.css → 2507-lite-9516182bdb.chunk.css} +1 -1
- package/dist/css/{2724-lite-24da60896e.chunk.css → 2724-lite-669b5b8120.chunk.css} +1 -1
- package/dist/css/{2795-lite-1641e6fbf9.chunk.css → 2795-lite-34f8ca5018.chunk.css} +1 -1
- package/dist/css/{3070-lite-c0909f46f3.chunk.css → 3070-lite-6af4bd0c76.chunk.css} +1 -1
- package/dist/css/{3397-lite-dfab7385b6.chunk.css → 3397-lite-5b25e3a686.chunk.css} +1 -1
- package/dist/css/{3403-lite-4b92798a0c.chunk.css → 3403-lite-89bcc16133.chunk.css} +1 -1
- package/dist/css/{458-lite-c8a3139b8b.chunk.css → 3515-lite-10695a1950.chunk.css} +2 -2
- package/dist/css/{1407-lite-f083d46330.chunk.css → 3588-lite-be6668ef3a.chunk.css} +1 -1
- package/dist/css/{3895-lite-b05099b818.chunk.css → 3895-lite-6b1a20b3fe.chunk.css} +1 -1
- package/dist/css/{4151-lite-fcc0fc8753.chunk.css → 4151-lite-9cbe9bba57.chunk.css} +1 -1
- package/dist/css/{3515-lite-c8a3139b8b.chunk.css → 458-lite-10695a1950.chunk.css} +2 -2
- package/dist/css/{5114-lite-38330c6187.chunk.css → 5114-lite-06a1ac179b.chunk.css} +1 -1
- package/dist/css/{5242-lite-58cdcd1ec4.chunk.css → 5242-lite-30642a9642.chunk.css} +2 -2
- package/dist/css/{5364-lite-93bfe767eb.chunk.css → 5364-lite-e8c416fe79.chunk.css} +1 -1
- package/dist/css/{5446-lite-ae2395342f.chunk.css → 5446-lite-2e956685f4.chunk.css} +1 -1
- package/dist/css/{1539-lite-789978250c.chunk.css → 5725-lite-a5772fefdb.chunk.css} +1 -1
- package/dist/css/{6759-lite-16efb24b77.chunk.css → 5769-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{5803-lite-d1315afce2.chunk.css → 5803-lite-625e484692.chunk.css} +1 -1
- package/dist/css/{5810-lite-ba174cfe3d.chunk.css → 5810-lite-1224500e4d.chunk.css} +1 -1
- package/dist/css/{6181-lite-7558375a74.chunk.css → 6181-lite-ca9f6aeba1.chunk.css} +1 -1
- package/dist/css/{6189-lite-4c33c1b5c4.chunk.css → 6189-lite-20e4d47423.chunk.css} +1 -1
- package/dist/css/{6309-lite-a23dc59ecd.chunk.css → 6309-lite-bd0968a2c8.chunk.css} +1 -1
- package/dist/css/{6531-lite-9431296610.chunk.css → 6531-lite-1f6f3c392c.chunk.css} +1 -1
- package/dist/css/{1567-lite-16efb24b77.chunk.css → 6759-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{6803-lite-16efb24b77.chunk.css → 6803-lite-2ab4d6f863.chunk.css} +1 -1
- package/dist/css/{6850-lite-769c93cb9e.chunk.css → 6850-lite-0bf8514497.chunk.css} +3 -3
- package/dist/css/{7533-lite-d0ae59ec54.chunk.css → 7533-lite-206fce5dbd.chunk.css} +1 -1
- package/dist/css/{7777-lite-8067dea624.chunk.css → 7777-lite-48d916f95c.chunk.css} +1 -1
- package/dist/css/{7987-lite-94679244a2.chunk.css → 7987-lite-fd431fbaf2.chunk.css} +1 -1
- package/dist/css/{8218-lite-fe8c54917b.chunk.css → 8218-lite-f54139cf27.chunk.css} +1 -1
- package/dist/css/{8316-lite-9083a6565c.chunk.css → 8316-lite-6036f465f0.chunk.css} +1 -1
- package/dist/css/{8354-lite-bc431d9d01.chunk.css → 8354-lite-8228cb401d.chunk.css} +1 -1
- package/dist/css/{8987-lite-95b3d79328.chunk.css → 8987-lite-6cd15b48d2.chunk.css} +1 -1
- package/dist/css/{9068-lite-c0341005e4.chunk.css → 9068-lite-c3a9ace963.chunk.css} +1 -1
- package/dist/css/{2507-lite-f00eb0266e.chunk.css → 9211-lite-9516182bdb.chunk.css} +1 -1
- package/dist/css/{9329-lite-a259b19412.chunk.css → 9329-lite-5f15379e31.chunk.css} +1 -1
- package/dist/css/{9417-lite-9083a6565c.chunk.css → 9417-lite-6036f465f0.chunk.css} +1 -1
- package/dist/css/{9620-lite-d77e9ad59b.chunk.css → 9620-lite-111c825071.chunk.css} +1 -1
- package/dist/css/{1850-lite-dca6b9e86d.chunk.css → 9818-lite-e9e8c03964.chunk.css} +1 -1
- package/dist/css/{lite-app-28b7b96628.css → lite-app-212404ee3a.css} +1 -1
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js +2 -0
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +1 -0
- package/dist/scripts/{1313-455608bc46-lite.chunk.js → 1313-5a7170fb69-lite.chunk.js} +1 -1
- package/dist/scripts/{1313-455608bc46-lite.chunk.js.map → 1313-5a7170fb69-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1402-d40dc88741-lite.chunk.js → 1402-39cb29d725-lite.chunk.js} +1 -1
- package/dist/scripts/{1402-d40dc88741-lite.chunk.js.map → 1402-39cb29d725-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1407-3592ec24f2-lite.chunk.js → 1407-3bab3f00f6-lite.chunk.js} +1 -1
- package/dist/scripts/{1407-3592ec24f2-lite.chunk.js.map → 1407-3bab3f00f6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1567-edcff759b1-lite.chunk.js → 1567-b3141bc14f-lite.chunk.js} +1 -1
- package/dist/scripts/{1567-edcff759b1-lite.chunk.js.map → 1567-b3141bc14f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1602-173a4f272a-lite.chunk.js → 1602-dfe6928d65-lite.chunk.js} +1 -1
- package/dist/scripts/{1602-173a4f272a-lite.chunk.js.map → 1602-dfe6928d65-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1820-68114ca994-lite.chunk.js → 1820-9a1f618969-lite.chunk.js} +2 -2
- package/dist/scripts/1820-9a1f618969-lite.chunk.js.map +1 -0
- package/dist/scripts/{2120-88f6dd6652-lite.chunk.js → 2120-82a7b90997-lite.chunk.js} +1 -1
- package/dist/scripts/{2120-88f6dd6652-lite.chunk.js.map → 2120-82a7b90997-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2137-093f479ff9-lite.chunk.js → 2137-2e78e535ad-lite.chunk.js} +1 -1
- package/dist/scripts/{2137-093f479ff9-lite.chunk.js.map → 2137-2e78e535ad-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2446-acc94130ed-lite.chunk.js → 2446-eaa1d2ee7d-lite.chunk.js} +2 -2
- package/dist/scripts/{2446-acc94130ed-lite.chunk.js.map → 2446-eaa1d2ee7d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js → 2507-fc744cab62-lite.chunk.js} +1 -1
- package/dist/scripts/{2507-bb4e17b1b3-lite.chunk.js.map → 2507-fc744cab62-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js → 2724-060fdde41c-lite.chunk.js} +1 -1
- package/dist/scripts/{2724-ee3a51e0c9-lite.chunk.js.map → 2724-060fdde41c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2795-0616748349-lite.chunk.js → 2795-eb3a51adc2-lite.chunk.js} +1 -1
- package/dist/scripts/{2795-0616748349-lite.chunk.js.map → 2795-eb3a51adc2-lite.chunk.js.map} +1 -1
- package/dist/scripts/3070-63e0a6b63e-lite.chunk.js +2 -0
- package/dist/scripts/3070-63e0a6b63e-lite.chunk.js.map +1 -0
- package/dist/scripts/{3397-bb32e2287f-lite.chunk.js → 3397-cd6acb96c4-lite.chunk.js} +1 -1
- package/dist/scripts/{3397-bb32e2287f-lite.chunk.js.map → 3397-cd6acb96c4-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3403-12c460d3f6-lite.chunk.js → 3403-d42b7125ae-lite.chunk.js} +1 -1
- package/dist/scripts/{3403-12c460d3f6-lite.chunk.js.map → 3403-d42b7125ae-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3515-4de2fd7070-lite.chunk.js → 3515-72a31e0bbd-lite.chunk.js} +1 -1
- package/dist/scripts/{3515-4de2fd7070-lite.chunk.js.map → 3515-72a31e0bbd-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3588-62e61bc526-lite.chunk.js → 3588-1c1c264291-lite.chunk.js} +2 -2
- package/dist/scripts/{3588-62e61bc526-lite.chunk.js.map → 3588-1c1c264291-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3895-a54621a8c4-lite.chunk.js → 3895-cbeb003a0a-lite.chunk.js} +1 -1
- package/dist/scripts/{3895-a54621a8c4-lite.chunk.js.map → 3895-cbeb003a0a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js → 4151-bb1e8aafcb-lite.chunk.js} +1 -1
- package/dist/scripts/{4151-ad0c6f107f-lite.chunk.js.map → 4151-bb1e8aafcb-lite.chunk.js.map} +1 -1
- package/dist/scripts/{458-35c635a2ce-lite.chunk.js → 458-1ca8abf829-lite.chunk.js} +1 -1
- package/dist/scripts/{458-35c635a2ce-lite.chunk.js.map → 458-1ca8abf829-lite.chunk.js.map} +1 -1
- package/dist/scripts/4718-b3cfb276a7-lite.chunk.js +2 -0
- package/dist/scripts/4718-b3cfb276a7-lite.chunk.js.map +1 -0
- package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js → 5114-15c4180b16-lite.chunk.js} +1 -1
- package/dist/scripts/{5114-fcfd260e0b-lite.chunk.js.map → 5114-15c4180b16-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5242-2d752ff85e-lite.chunk.js → 5242-e5cc8311eb-lite.chunk.js} +1 -1
- package/dist/scripts/{5242-2d752ff85e-lite.chunk.js.map → 5242-e5cc8311eb-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js → 5364-fe4a00711f-lite.chunk.js} +1 -1
- package/dist/scripts/{5364-b081f5e1ca-lite.chunk.js.map → 5364-fe4a00711f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js → 5446-5a2f719a6f-lite.chunk.js} +1 -1
- package/dist/scripts/{5446-1ef1639ef6-lite.chunk.js.map → 5446-5a2f719a6f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5725-6792ca3e92-lite.chunk.js → 5725-1592727a8f-lite.chunk.js} +1 -1
- package/dist/scripts/{5725-6792ca3e92-lite.chunk.js.map → 5725-1592727a8f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5769-34ad224f5f-lite.chunk.js → 5769-e9f596e2b2-lite.chunk.js} +1 -1
- package/dist/scripts/{5769-34ad224f5f-lite.chunk.js.map → 5769-e9f596e2b2-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5803-0005a9eb66-lite.chunk.js → 5803-7db6af5411-lite.chunk.js} +1 -1
- package/dist/scripts/{5803-0005a9eb66-lite.chunk.js.map → 5803-7db6af5411-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5810-a652483b8e-lite.chunk.js → 5810-c81d69aea8-lite.chunk.js} +2 -2
- package/dist/scripts/{5810-a652483b8e-lite.chunk.js.map → 5810-c81d69aea8-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5940-511beff2ee-lite.chunk.js → 5940-5731abccf3-lite.chunk.js} +2 -2
- package/dist/scripts/5940-5731abccf3-lite.chunk.js.map +1 -0
- package/dist/scripts/{6102-f1851eca08-lite.chunk.js → 6102-38e3abf2fa-lite.chunk.js} +3 -3
- package/dist/scripts/{6102-f1851eca08-lite.chunk.js.map → 6102-38e3abf2fa-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js → 6181-55d2689d74-lite.chunk.js} +1 -1
- package/dist/scripts/{6181-7a4fc8e1e1-lite.chunk.js.map → 6181-55d2689d74-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js → 6189-b45080fab7-lite.chunk.js} +1 -1
- package/dist/scripts/{6189-ce9f0eeb31-lite.chunk.js.map → 6189-b45080fab7-lite.chunk.js.map} +1 -1
- package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js +3 -0
- package/dist/scripts/6309-f5bb1c14dc-lite.chunk.js.map +1 -0
- package/dist/scripts/{6415-9d8b88c713-lite.chunk.js → 6415-5ac1a71471-lite.chunk.js} +1 -1
- package/dist/scripts/{6415-9d8b88c713-lite.chunk.js.map → 6415-5ac1a71471-lite.chunk.js.map} +1 -1
- package/dist/scripts/6450-2745feb746-lite.chunk.js +2 -0
- package/dist/scripts/6450-2745feb746-lite.chunk.js.map +1 -0
- package/dist/scripts/{6531-597262a181-lite.chunk.js → 6531-1325be9fb1-lite.chunk.js} +1 -1
- package/dist/scripts/{6531-597262a181-lite.chunk.js.map → 6531-1325be9fb1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6759-3f36472a49-lite.chunk.js → 6759-a7e1119553-lite.chunk.js} +1 -1
- package/dist/scripts/{6759-3f36472a49-lite.chunk.js.map → 6759-a7e1119553-lite.chunk.js.map} +1 -1
- package/dist/scripts/{6803-2275c83d96-lite.chunk.js → 6803-222bfeea55-lite.chunk.js} +1 -1
- package/dist/scripts/{6803-2275c83d96-lite.chunk.js.map → 6803-222bfeea55-lite.chunk.js.map} +1 -1
- package/dist/scripts/6850-393de993b8-lite.chunk.js +3 -0
- package/dist/scripts/6850-393de993b8-lite.chunk.js.map +1 -0
- package/dist/scripts/{6948-84a5f8d76f-lite.chunk.js → 6948-23ec6a6370-lite.chunk.js} +2 -2
- package/dist/scripts/6948-23ec6a6370-lite.chunk.js.map +1 -0
- package/dist/scripts/{7533-e079b2af18-lite.chunk.js → 7533-9edee544c6-lite.chunk.js} +1 -1
- package/dist/scripts/{7533-e079b2af18-lite.chunk.js.map → 7533-9edee544c6-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js → 7777-1c3490134e-lite.chunk.js} +1 -1
- package/dist/scripts/{7777-f0937ef1f5-lite.chunk.js.map → 7777-1c3490134e-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7987-db0037709c-lite.chunk.js → 7987-ff7de6531f-lite.chunk.js} +1 -1
- package/dist/scripts/{7987-db0037709c-lite.chunk.js.map → 7987-ff7de6531f-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8218-f3b81c7287-lite.chunk.js → 8218-088530bdf7-lite.chunk.js} +1 -1
- package/dist/scripts/{8218-f3b81c7287-lite.chunk.js.map → 8218-088530bdf7-lite.chunk.js.map} +1 -1
- package/dist/scripts/8316-ba6bae1f29-lite.chunk.js +2 -0
- package/dist/scripts/8316-ba6bae1f29-lite.chunk.js.map +1 -0
- package/dist/scripts/{8354-e30261b594-lite.chunk.js → 8354-d07c3bef5a-lite.chunk.js} +1 -1
- package/dist/scripts/{8354-e30261b594-lite.chunk.js.map → 8354-d07c3bef5a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8987-32190552fa-lite.chunk.js → 8987-c0c2790aab-lite.chunk.js} +1 -1
- package/dist/scripts/{8987-32190552fa-lite.chunk.js.map → 8987-c0c2790aab-lite.chunk.js.map} +1 -1
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js +3 -0
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +1 -0
- package/dist/scripts/{9068-562c30f718-lite.chunk.js → 9068-554aa0d22b-lite.chunk.js} +1 -1
- package/dist/scripts/{9068-562c30f718-lite.chunk.js.map → 9068-554aa0d22b-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9211-d4c7016679-lite.chunk.js → 9211-0381d3e715-lite.chunk.js} +1 -1
- package/dist/scripts/{9211-d4c7016679-lite.chunk.js.map → 9211-0381d3e715-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js → 9329-798d826fc4-lite.chunk.js} +1 -1
- package/dist/scripts/{9329-5cf6baab9d-lite.chunk.js.map → 9329-798d826fc4-lite.chunk.js.map} +1 -1
- package/dist/scripts/9417-aa8d198d40-lite.chunk.js +2 -0
- package/dist/scripts/9417-aa8d198d40-lite.chunk.js.map +1 -0
- package/dist/scripts/9620-d0f04eeccd-lite.chunk.js +3 -0
- package/dist/scripts/9620-d0f04eeccd-lite.chunk.js.map +1 -0
- package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js → 9818-a2fa140139-lite.chunk.js} +1 -1
- package/dist/scripts/{9818-f63bdbbac4-lite.chunk.js.map → 9818-a2fa140139-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-815f926b0f.min.js +3 -0
- package/dist/scripts/bundle-815f926b0f.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js +0 -2
- package/dist/scripts/1169-3df974a8eb-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-68114ca994-lite.chunk.js.map +0 -1
- package/dist/scripts/3070-fb8eb47716-lite.chunk.js +0 -2
- package/dist/scripts/3070-fb8eb47716-lite.chunk.js.map +0 -1
- package/dist/scripts/4718-2b58aa560d-lite.chunk.js +0 -2
- package/dist/scripts/4718-2b58aa560d-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-511beff2ee-lite.chunk.js.map +0 -1
- package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js +0 -3
- package/dist/scripts/6309-dd3a8e7f21-lite.chunk.js.map +0 -1
- package/dist/scripts/6450-6819d42c15-lite.chunk.js +0 -2
- package/dist/scripts/6450-6819d42c15-lite.chunk.js.map +0 -1
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js +0 -3
- package/dist/scripts/6850-8770bfeefb-lite.chunk.js.map +0 -1
- package/dist/scripts/6948-84a5f8d76f-lite.chunk.js.map +0 -1
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js +0 -2
- package/dist/scripts/8316-dad1824a5f-lite.chunk.js.map +0 -1
- package/dist/scripts/9016-c359251f82-lite.chunk.js +0 -3
- package/dist/scripts/9016-c359251f82-lite.chunk.js.map +0 -1
- package/dist/scripts/9417-70c6489c67-lite.chunk.js +0 -2
- package/dist/scripts/9417-70c6489c67-lite.chunk.js.map +0 -1
- package/dist/scripts/9620-630f9e6344-lite.chunk.js +0 -3
- package/dist/scripts/9620-630f9e6344-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-d20cb66d1a.min.js +0 -3
- package/dist/scripts/bundle-d20cb66d1a.min.js.map +0 -1
- /package/dist/scripts/{2446-acc94130ed-lite.chunk.js.LICENSE.txt → 2446-eaa1d2ee7d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3588-62e61bc526-lite.chunk.js.LICENSE.txt → 3588-1c1c264291-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5810-a652483b8e-lite.chunk.js.LICENSE.txt → 5810-c81d69aea8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6102-f1851eca08-lite.chunk.js.LICENSE.txt → 6102-38e3abf2fa-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6309-dd3a8e7f21-lite.chunk.js.LICENSE.txt → 6309-f5bb1c14dc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6850-8770bfeefb-lite.chunk.js.LICENSE.txt → 6850-393de993b8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-c359251f82-lite.chunk.js.LICENSE.txt → 9016-0c078a39cb-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9620-630f9e6344-lite.chunk.js.LICENSE.txt → 9620-d0f04eeccd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-d20cb66d1a.min.js.LICENSE.txt → bundle-815f926b0f.min.js.LICENSE.txt} +0 -0
package/dist/scripts/{8218-f3b81c7287-lite.chunk.js.map → 8218-088530bdf7-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/8218-f3b81c7287-lite.chunk.js","mappings":"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","sources":["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/apps/share/constants/TableTheme.ts","file:///app/packages/libs/shared/src/apps/share/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/shared-with-me-table.scss","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/PartialSharedWithMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/SharedWithMeTableUtils.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/SharedWithMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-with-me/empty-state/SharedWithMeEmptyState.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-with-me/SharedWithMeView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","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":["// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\"};","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 { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\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 } 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 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 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\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: 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 imageOptions: ImageOptions = { size: ImageSize.Small };\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object) && !!props.showVideoMetadata;\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 <VideoThumbnail\n video={props.object}\n imageOptions={imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n appLink={props.appLink}\n analyticsOptions={{ location: props.locationContext }}\n hideDuration\n hideMask\n size='sm'\n />\n }\n {!useVideoThumbnail &&\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={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 </div>\n </div>\n );\n}","import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\n};","import { format } from 'timeago.js';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\ninterface ObjectWithDateShared {\n dateShared: string;\n}\n\ntype GroupedByDate<T extends ObjectWithDateShared> = { [date: string]: T[] };\n\nexport const ShareHelper = {\n groupByDateShared<T extends ObjectWithDateShared>(data: T[]): GroupedByDate<T> {\n const dateToObjectMapping: GroupedByDate<T> = ArrayHelper.groupBy(data, 'dateShared');\n\n const sortedDates = Object.keys(dateToObjectMapping).sort().reverse();\n\n // Create a sorted mapping between dates and the \"ObjectWithDateShared\" objects\n return sortedDates.reduce((acc: GroupedByDate<T>, date) => {\n const heading = format(date);\n\n if (!acc[heading])\n acc[heading] = [];\n\n acc[heading] = acc[heading].concat(dateToObjectMapping[date]);\n return acc;\n }, {});\n },\n\n mapActivityStatusToCheckMarkStatus(activityStatus: ShareActivityStatus): CheckMarkStatus {\n switch (activityStatus) {\n case ShareActivityStatus.Complete:\n return CheckMarkStatus.Complete;\n case ShareActivityStatus.Incomplete:\n return CheckMarkStatus.Incomplete;\n case ShareActivityStatus.None:\n return CheckMarkStatus.None;\n }\n },\n\n mapCheckMarkStatusToActivityStatus(checkMarkStatus: CheckMarkStatus): ShareActivityStatus {\n switch (checkMarkStatus) {\n case CheckMarkStatus.Complete:\n return ShareActivityStatus.Complete;\n case CheckMarkStatus.Incomplete:\n return ShareActivityStatus.Incomplete;\n case CheckMarkStatus.None:\n return ShareActivityStatus.None;\n }\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"Hs7kk\",\"nameColumn\":\"GRyds\",\"sharedByColumn\":\"fewR0\",\"dateSharedColumn\":\"G6z3W\",\"heading\":\"YxAsH\",\"image\":\"CdUtO\",\"name\":\"pdEW7\",\"avatar\":\"rQ2Dt\",\"date\":\"Lx3Ce\"};","import React from 'react';\n\nimport styles from './shared-with-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedByColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n \n </div>\n <div className={`${styles.sharedByColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n </div>\n );\n}\n\nexport function PartialSharedWithMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-with-me-table.scss';\n\nconst namespace = 'share.sharedWithMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype TableDataGroupings = { [date: string]: SharedWithMeResponse[] };\n\nexport function getColumns(\n index: number,\n dateHeading: string,\n imageCdnUrl: string,\n breakpoints: Breakpoints,\n getObjectAppLink: (data: SharedWithMeResponse) => Core.AppLink\n): Column<SharedWithMeResponse>[] {\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n const column: Column<SharedWithMeResponse>[] = [\n {\n Header: dateHeading,\n accessor: 'object',\n id: 'image',\n Cell: ({ row: { original } }) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(original.object);\n\n return (\n <SharedObjectImage\n object={original.object}\n appLink={getObjectAppLink(original)}\n locationContext={LocationContext.SharedWithMe}\n showVideoMetadata={!canConsume}\n />\n );\n },\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ row: { original } }) => {\n if (original.object?.name) {\n return (\n <AppLink\n appLink={getObjectAppLink(original)}\n className='clamp-2'\n analyticsData={{ id: original.object?.id, name: original.object?.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(original.object.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {original.object.name}\n </AppLink>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedBy') : '',\n accessor: 'owner',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatar} flex-shrink-0`}>\n <Avatar\n initials={UserHelper.getInitials(value.name, value.surname)}\n imageUrl={value.avatar?.url}\n imageCdnUrl={imageCdnUrl}\n />\n </div>\n\n {!isMobile && <p className='clamp-1 ms-2'>{`${value.name} ${value.surname}`}</p>}\n </div>\n ),\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 60\n }\n ];\n\n return column.filter(Boolean);\n}\n\nexport function useGetData(data: SharedWithMeResponse[], refreshData: boolean): TableDataGroupings {\n return React.useMemo(() => {\n return ShareHelper.groupByDateShared(data);\n }, [refreshData]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { getColumns, useGetData } from './SharedWithMeTableUtils';\n\nfunction useGetObjectAppLink(): (data: SharedWithMeResponse) => Core.AppLink {\n const { isPlugin } = usePluginHelper();\n\n return (data: SharedWithMeResponse) => {\n const appLink = {\n application: AppChannels.SHARE,\n action: Actions.Share.VIEW_SHARE_LINK,\n args: [data.id]\n };\n\n if (VideoHelper.isVideoType(data.object) && !VideoHelper.getCanBeConsumed(data.object)?.canConsume)\n return null;\n\n if (!isPlugin)\n return appLink;\n \n const shareAppLink: Core.AppLink = {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [data.id]\n };\n\n if (data.object.type === MasterObjectTypes.Video)\n return { ...shareAppLink, params: { entityType: 'video' } };\n\n if (data.object.type === MasterObjectTypes.Clip)\n return { ...shareAppLink, params: { entityType: 'clip' } };\n\n if (data.object.type === MasterObjectTypes.Interactive)\n return { ...shareAppLink, params: { entityType: 'interactive' } };\n\n return appLink;\n };\n}\n\ninterface SharedWithMeTableProps {\n data: SharedWithMeResponse[];\n imageCdnUrl: string;\n\n /**\n * As the table data is memoized, it must be prompted to recalculate.\n * Toggle `refreshTable` to do so.\n */\n refreshTable: boolean;\n breakpoints: Breakpoints;\n}\n\nexport function SharedWithMeTable(props: SharedWithMeTableProps): JSX.Element {\n const tableData = useGetData(props.data, props.refreshTable);\n const getObjectAppLink = useGetObjectAppLink();\n\n return (\n <>\n {Object.keys(tableData).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns(index, heading, props.imageCdnUrl, props.breakpoints, getObjectAppLink)}\n data={tableData[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharedWithMeEmptyState';\n\nconst cta = {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n};\n\nexport function SharedWithMeEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_WITH_ME} size='small'/>\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n <EmptyState.Cta appLink={cta} text={LanguageService.getPhrase(namespace, 'cta')} />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { PartialSharedWithMeTable } from 'apps/share/components/shared-with-me-table/PartialSharedWithMeTable';\nimport { SharedWithMeTable } from 'apps/share/components/shared-with-me-table/SharedWithMeTable';\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { SharedWithMeEmptyState } from './empty-state/SharedWithMeEmptyState';\n\nconst namespace = 'liteShare.sharedWithMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedWithMeView(): JSX.Element {\n const { hasPermissions } = usePermissions();\n const dispatch = useDispatch();\n const breakpoints = useBreakpoints();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const getRequest = (cursor?: string) => ShareRequests.getObjectsSharedWithUser(cursor);\n const fetchNext = (cursor?: string) => Flight.getFetch(dispatch)(getRequest(cursor));\n\n const {\n items: sharedWithMe,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<SharedWithMeResponse>(getRequest, fetchNext);\n\n useSetPageMetadata({ title: getPhrase('sharedWithMe') });\n\n if (hasPermissions(PermissionName.StudentExperience)) {\n Core.ErrorHelper.throw(new NotFoundError());\n return <></>;\n }\n\n return (\n <div className='px-3'>\n <SharesHeader />\n\n {(() => {\n if (!sharedWithMe || !config.data)\n return <PartialSharedWithMeTable />;\n\n if (!sharedWithMe?.length)\n return <SharedWithMeEmptyState />;\n\n return (\n <>\n <SharedWithMeTable\n data={sharedWithMe}\n imageCdnUrl={config.data.imageCdnUrl}\n refreshTable={isFetching}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","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":["BASE_IMAGE_CLASS_NAME","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","imageOptions","size","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","type","svgContainerClassName","url","getBgColorClass","name","extraClasses","getImageProps","useVideoThumbnail","showVideoMetadata","className","VideoThumbnail","video","textPosition","ThumbnailTextPosition","appLink","analyticsOptions","location","locationContext","hideDuration","hideMask","BaseImage","data","analyticsData","id","entity","ShareViewHelper","actionType","SHARES_TABLE_THEME","table","header","headerCell","row","cell","ShareHelper","groupByDateShared","dateToObjectMapping","Object","keys","sort","reverse","reduce","acc","date","heading","concat","mapActivityStatusToCheckMarkStatus","activityStatus","mapCheckMarkStatusToActivityStatus","checkMarkStatus","InfiniteScrollFooter","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","Spinner","as","animation","role","SvgContainer","svgName","S","onClick","defaultProps","TabContents","tab","count","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","key","onSelect","onSelectTab","SCROLL_TOLERANCE","useInfiniteList","getRequest","onError","getItems","getCursor","scrollContainer","options","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","hasMore","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","statusCode","httpStatusClass","toString","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","getPhrase","SHARED_BY_ME_APP_LINK","application","action","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink","PartialRow","PartialHeader","fullHeader","PartialSharedWithMeTable","namespace","LanguageService","getColumns","dateHeading","imageCdnUrl","breakpoints","getObjectAppLink","isMobile","xs","sm","Header","accessor","Cell","original","canConsume","minWidth","maxWidth","AppLink","Text","phrase","value","Avatar","initials","UserHelper","surname","imageUrl","avatar","s","dateShared","filter","Boolean","SharedWithMeTable","refreshData","isPlugin","tableData","refreshTable","usePluginHelper","args","shareAppLink","MasterObjectTypes","params","entityType","Table","columns","theme","cta","SharedWithMeEmptyState","EmptyState","src","ImageUrls","text","SharedWithMeView","hasPermissions","usePermissions","dispatch","useBreakpoints","config","ConfigRequests","ShareRequests","sharedWithMe","useSetPageMetadata","title","PermissionName","NotFoundError","length","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","unit"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/8218-088530bdf7-lite.chunk.js","mappings":"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","sources":["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/apps/share/constants/TableTheme.ts","file:///app/packages/libs/shared/src/apps/share/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss","file:///app/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file:///app/packages/libs/shared/src/hooks/UseInfiniteList.ts","file:///app/packages/projects/lite/src/apps/share/components/shares-header/SharesHeader.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/shared-with-me-table.scss","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/PartialSharedWithMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/SharedWithMeTableUtils.tsx","file:///app/packages/projects/lite/src/apps/share/components/shared-with-me-table/SharedWithMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-with-me/empty-state/SharedWithMeEmptyState.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-with-me/SharedWithMeView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss","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":["// extracted by mini-css-extract-plugin\nexport default {\"thumbnailFallbackSvg\":\"D4JFs\",\"posterFallbackSvg\":\"bjUWl\",\"coverFallbackSvg\":\"kdLpt\"};","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 { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\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 } 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 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 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\ninterface SharedObjectImageProps {\n object: BaseObject;\n locationContext: LocationContext;\n appLink?: Core.AppLink;\n showVideoMetadata?: boolean;\n fixedHeight?: 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 imageOptions: ImageOptions = { size: ImageSize.Small };\n\n const {\n image,\n imageType,\n imageClassName,\n imageFallbackComponent\n } = getImageProps(props.object);\n\n const useVideoThumbnail = VideoHelper.isVideoType(props.object) && !!props.showVideoMetadata;\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 <VideoThumbnail\n video={props.object}\n imageOptions={imageOptions}\n textPosition={ThumbnailTextPosition.Independent}\n type='cosmetic'\n appLink={props.appLink}\n analyticsOptions={{ location: props.locationContext }}\n hideDuration\n hideMask\n size='sm'\n />\n }\n {!useVideoThumbnail &&\n <BaseImage\n data={image?.url}\n imageType={imageType}\n imageOptions={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 </div>\n </div>\n );\n}","import { TableTheme } from 'libs/shared/components/table/Table';\n\nexport const SHARES_TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: `py-2 ps-2 text-nowrap`,\n row: 'striped-row rounded',\n cell: 'd-flex align-items-center p-2'\n};","import { format } from 'timeago.js';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CheckMarkStatus } from 'libs/shared/components/check-mark-button/CheckMarkButton';\nimport { ShareActivityStatus } from 'libs/shared/enums/ShareActivityStatus';\n\ninterface ObjectWithDateShared {\n dateShared: string;\n}\n\ntype GroupedByDate<T extends ObjectWithDateShared> = { [date: string]: T[] };\n\nexport const ShareHelper = {\n groupByDateShared<T extends ObjectWithDateShared>(data: T[]): GroupedByDate<T> {\n const dateToObjectMapping: GroupedByDate<T> = ArrayHelper.groupBy(data, 'dateShared');\n\n const sortedDates = Object.keys(dateToObjectMapping).sort().reverse();\n\n // Create a sorted mapping between dates and the \"ObjectWithDateShared\" objects\n return sortedDates.reduce((acc: GroupedByDate<T>, date) => {\n const heading = format(date);\n\n if (!acc[heading])\n acc[heading] = [];\n\n acc[heading] = acc[heading].concat(dateToObjectMapping[date]);\n return acc;\n }, {});\n },\n\n mapActivityStatusToCheckMarkStatus(activityStatus: ShareActivityStatus): CheckMarkStatus {\n switch (activityStatus) {\n case ShareActivityStatus.Complete:\n return CheckMarkStatus.Complete;\n case ShareActivityStatus.Incomplete:\n return CheckMarkStatus.Incomplete;\n case ShareActivityStatus.None:\n return CheckMarkStatus.None;\n }\n },\n\n mapCheckMarkStatusToActivityStatus(checkMarkStatus: CheckMarkStatus): ShareActivityStatus {\n switch (checkMarkStatus) {\n case CheckMarkStatus.Complete:\n return ShareActivityStatus.Complete;\n case CheckMarkStatus.Incomplete:\n return ShareActivityStatus.Incomplete;\n case CheckMarkStatus.None:\n return ShareActivityStatus.None;\n }\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"VwD1b\",\"spinner\":\"eJ85e\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './infinite-scroll-footer.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`} ref={ref}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <SvgContainer\n svgName={cvSvgLibrary.ChevronDown}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n )\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharesHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SHARED_BY_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_BY_ME };\nconst SHARED_WITH_ME_APP_LINK = { application: AppChannels.MY_SHARES, action: Actions.MyShares.SHARED_WITH_ME };\n\nfunction getPillTabs(): PillTab[] {\n const currentAppLink = ContextService.getCurrentRoute()?.appLink;\n\n return [\n {\n name: getPhrase('sharedByMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_BY_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_BY_ME_APP_LINK.action\n },\n {\n name: getPhrase('sharedWithMe'),\n onSelect: () => Core.AppLinkHelper.trigger(SHARED_WITH_ME_APP_LINK),\n active: currentAppLink?.action === SHARED_WITH_ME_APP_LINK.action\n }\n ];\n}\n\nexport function SharesHeader(): JSX.Element {\n return (\n <div className='pb-3'>\n <h1 className='h2 mb-3'>{getPhrase('shares')}</h1>\n <PillTabSelector tabs={getPillTabs()} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"Hs7kk\",\"nameColumn\":\"GRyds\",\"sharedByColumn\":\"fewR0\",\"dateSharedColumn\":\"G6z3W\",\"heading\":\"YxAsH\",\"image\":\"CdUtO\",\"name\":\"pdEW7\",\"avatar\":\"rQ2Dt\",\"date\":\"Lx3Ce\"};","import React from 'react';\n\nimport styles from './shared-with-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedByColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n \n </div>\n <div className={`${styles.sharedByColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\n }\n </div>\n </div>\n );\n}\n\nexport function PartialSharedWithMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport styles from './shared-with-me-table.scss';\n\nconst namespace = 'share.sharedWithMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype TableDataGroupings = { [date: string]: SharedWithMeResponse[] };\n\nexport function getColumns(\n index: number,\n dateHeading: string,\n imageCdnUrl: string,\n breakpoints: Breakpoints,\n getObjectAppLink: (data: SharedWithMeResponse) => Core.AppLink\n): Column<SharedWithMeResponse>[] {\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n const column: Column<SharedWithMeResponse>[] = [\n {\n Header: dateHeading,\n accessor: 'object',\n id: 'image',\n Cell: ({ row: { original } }) => {\n const { canConsume } = VideoHelper.getCanBeConsumed(original.object);\n\n return (\n <SharedObjectImage\n object={original.object}\n appLink={getObjectAppLink(original)}\n locationContext={LocationContext.SharedWithMe}\n showVideoMetadata={!canConsume}\n />\n );\n },\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'object',\n id: 'name',\n Cell: ({ row: { original } }) => {\n if (original.object?.name) {\n return (\n <AppLink\n appLink={getObjectAppLink(original)}\n className='clamp-2'\n analyticsData={{ id: original.object?.id, name: original.object?.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(original.object.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {original.object.name}\n </AppLink>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedBy') : '',\n accessor: 'owner',\n Cell: ({ value }) => (\n <div className='d-flex align-items-center'>\n <div className={`${styles.avatar} flex-shrink-0`}>\n <Avatar\n initials={UserHelper.getInitials(value.name, value.surname)}\n imageUrl={value.avatar?.url}\n imageCdnUrl={imageCdnUrl}\n />\n </div>\n\n {!isMobile && <p className='clamp-1 ms-2'>{`${value.name} ${value.surname}`}</p>}\n </div>\n ),\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 60\n }\n ];\n\n return column.filter(Boolean);\n}\n\nexport function useGetData(data: SharedWithMeResponse[], refreshData: boolean): TableDataGroupings {\n return React.useMemo(() => {\n return ShareHelper.groupByDateShared(data);\n }, [refreshData]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { getColumns, useGetData } from './SharedWithMeTableUtils';\n\nfunction useGetObjectAppLink(): (data: SharedWithMeResponse) => Core.AppLink {\n const { isPlugin } = usePluginHelper();\n\n return (data: SharedWithMeResponse) => {\n const appLink = {\n application: AppChannels.SHARE,\n action: Actions.Share.VIEW_SHARE_LINK,\n args: [data.id]\n };\n\n if (VideoHelper.isVideoType(data.object) && !VideoHelper.getCanBeConsumed(data.object)?.canConsume)\n return null;\n\n if (!isPlugin)\n return appLink;\n \n const shareAppLink: Core.AppLink = {\n application: AppChannels.DEFAULT,\n action: Actions.Default.SHARE,\n args: [data.id]\n };\n\n if (data.object.type === MasterObjectTypes.Video)\n return { ...shareAppLink, params: { entityType: 'video' } };\n\n if (data.object.type === MasterObjectTypes.Clip)\n return { ...shareAppLink, params: { entityType: 'clip' } };\n\n if (data.object.type === MasterObjectTypes.Interactive)\n return { ...shareAppLink, params: { entityType: 'interactive' } };\n\n return appLink;\n };\n}\n\ninterface SharedWithMeTableProps {\n data: SharedWithMeResponse[];\n imageCdnUrl: string;\n\n /**\n * As the table data is memoized, it must be prompted to recalculate.\n * Toggle `refreshTable` to do so.\n */\n refreshTable: boolean;\n breakpoints: Breakpoints;\n}\n\nexport function SharedWithMeTable(props: SharedWithMeTableProps): JSX.Element {\n const tableData = useGetData(props.data, props.refreshTable);\n const getObjectAppLink = useGetObjectAppLink();\n\n return (\n <>\n {Object.keys(tableData).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns(index, heading, props.imageCdnUrl, props.breakpoints, getObjectAppLink)}\n data={tableData[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'share.sharedWithMeEmptyState';\n\nconst cta = {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n};\n\nexport function SharedWithMeEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_WITH_ME} size='small'/>\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='info' /></EmptyState.Info>\n <EmptyState.Cta appLink={cta} text={LanguageService.getPhrase(namespace, 'cta')} />\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharedWithMeResponse } from 'libs/shared/apps/share/interfaces/responses/SharedWithMeResponse';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { PartialSharedWithMeTable } from 'apps/share/components/shared-with-me-table/PartialSharedWithMeTable';\nimport { SharedWithMeTable } from 'apps/share/components/shared-with-me-table/SharedWithMeTable';\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { SharedWithMeEmptyState } from './empty-state/SharedWithMeEmptyState';\n\nconst namespace = 'liteShare.sharedWithMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedWithMeView(): JSX.Element {\n const { hasPermissions } = usePermissions();\n const dispatch = useDispatch();\n const breakpoints = useBreakpoints();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const getRequest = (cursor?: string) => ShareRequests.getObjectsSharedWithUser(cursor);\n const fetchNext = (cursor?: string) => Flight.getFetch(dispatch)(getRequest(cursor));\n\n const {\n items: sharedWithMe,\n hasMore,\n isFetching,\n nextCursor\n } = useInfiniteList<SharedWithMeResponse>(getRequest, fetchNext);\n\n useSetPageMetadata({ title: getPhrase('sharedWithMe') });\n\n if (hasPermissions(PermissionName.StudentExperience)) {\n Core.ErrorHelper.throw(new NotFoundError());\n return <></>;\n }\n\n return (\n <div className='px-3'>\n <SharesHeader />\n\n {(() => {\n if (!sharedWithMe || !config.data)\n return <PartialSharedWithMeTable />;\n\n if (!sharedWithMe?.length)\n return <SharedWithMeEmptyState />;\n\n return (\n <>\n <SharedWithMeTable\n data={sharedWithMe}\n imageCdnUrl={config.data.imageCdnUrl}\n refreshTable={isFetching}\n breakpoints={breakpoints}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};","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":["BASE_IMAGE_CLASS_NAME","SharedObjectImage","props","ref","el","object","fixedHeight","style","width","offsetHeight","VideoHelper","typeId","MasterType","imageOptions","size","image","ImageHelper","imageType","imageClassName","imageFallbackComponent","ImageFallback","type","svgContainerClassName","url","getBgColorClass","name","extraClasses","getImageProps","useVideoThumbnail","showVideoMetadata","className","VideoThumbnail","video","textPosition","ThumbnailTextPosition","appLink","analyticsOptions","location","locationContext","hideDuration","hideMask","BaseImage","data","analyticsData","id","entity","ShareViewHelper","actionType","SHARES_TABLE_THEME","table","header","headerCell","row","cell","ShareHelper","groupByDateShared","dateToObjectMapping","Object","keys","sort","reverse","reduce","acc","date","heading","concat","mapActivityStatusToCheckMarkStatus","activityStatus","mapCheckMarkStatusToActivityStatus","checkMarkStatus","InfiniteScrollFooter","inView","fetchOnScroll","isFetching","fetchNext","nextCursor","Spinner","as","animation","role","SvgContainer","svgName","S","onClick","defaultProps","TabContents","tab","count","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","key","onSelect","onSelectTab","SCROLL_TOLERANCE","useInfiniteList","getRequest","onError","getItems","getCursor","scrollContainer","options","handleScroll","useState","pagesFetched","setPagesFetched","fetchNextFn","response","cursor","request","fetchNextPage","currentVal","hasMore","getBoundingClientRect","height","scrollTop","scrollHeight","window","innerHeight","document","documentElement","useEffect","onScroll","FunctionHelper","addEventListener","removeEventListener","shouldInitialFetch","statusCode","httpStatusClass","toString","substr","HttpStatus","items","totalItems","hasFirstPageCompleted","getPhrase","SHARED_BY_ME_APP_LINK","application","action","SHARED_WITH_ME_APP_LINK","SharesHeader","currentAppLink","PartialRow","PartialHeader","fullHeader","PartialSharedWithMeTable","namespace","LanguageService","getColumns","dateHeading","imageCdnUrl","breakpoints","getObjectAppLink","isMobile","xs","sm","Header","accessor","Cell","original","canConsume","minWidth","maxWidth","AppLink","Text","phrase","value","Avatar","initials","UserHelper","surname","imageUrl","avatar","s","dateShared","filter","Boolean","SharedWithMeTable","refreshData","isPlugin","tableData","refreshTable","usePluginHelper","args","shareAppLink","MasterObjectTypes","params","entityType","Table","columns","theme","cta","SharedWithMeEmptyState","EmptyState","src","ImageUrls","text","SharedWithMeView","hasPermissions","usePermissions","dispatch","useBreakpoints","config","ConfigRequests","ShareRequests","sharedWithMe","useSetPageMetadata","title","PermissionName","NotFoundError","length","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","unit"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8316],{70067:(e,a,i)=>{i.r(a),i.d(a,{PlaySharedClipViewV2:()=>L});var t=i(32735),n=i(20354),r=i(65858),s=i(16714),c=i(43012),o=i(39151),d=i(1666),l=i(20768),u=i(31949),p=i(1575),v=i(26304),m=i(22902),g=i(15311),I=i(79612),y=i(76753),h=i(51855),f=i(7179),P=i(49948),A=i(36873),C=i(27638),E=i(44110),V=i(35014),F=i(97816),O=i(81812),b=i(14085);function L(e){var a,i,L,G,k,x,R=(0,g.r)().hasProduct,S=(0,C.u)(r.LZ.VideoThumbnail),T=S.setFavourite,w=S.canFavourite,q=(0,m.T)().hasPermissions,N=(0,h.G)().isPlugin,U=(0,O.a)(),_=(0,V.I)(),M=n.a.useBasicFetch(u.N.currentUser()),j=n.a.useBasicFetch(o.L.config()),B=n.a.useBasicFetch(c.e.sharedClip(e.objectId,e.shareId)),D=n.a.useBasicFetch(!!(null===(a=B.data)||void 0===a?void 0:a._parentVideo)&&p.R.video(B.data._parentVideo.id)),W=n.a.useBasicFetch(!!(null===(L=null===(i=B.data)||void 0===i?void 0:i._parentVideo)||void 0===L?void 0:L.id)&&_.canViewClips&&c.e.videoClips(B.data._parentVideo.id)),H=n.a.useBasicFetch(_.canViewInteractives&&l.b.videoInteractives(e.objectId)),K=(0,A.k)({video:D.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:M.data}),Q=(0,E.i)(),Y=n.a.useBasicFetch((null===(G=M.data)||void 0===G?void 0:G.isAuthenticated)&&d.h.yearGroups(M.data.customerId)),Z=(0,P.l)(e.objectId);return(0,I.M)(y.CG.getClipMetadata({content:B.data})),(0,F.V)(null!==(k=K.videos)&&void 0!==k?k:[]),(0,v.b)(B),(0,f.P)({id:e.objectId,app:"clips",shareId:e.shareId}),B.data&&M.hasCompleted&&j.hasCompleted&&Z.hasCompleted?t.createElement(b.S,{shareId:e.shareId,clip:B.data,clips:W.data,interactives:H.data,originalVideo:D.data,currentUser:M.data,yearGroups:Y.data,relatedVideos:K,canFavourite:w,setFavourite:T,hasProduct:R,queryParams:e.queryParams,audiences:Q.data,imageCdnUrl:j.data.imageCdnUrl,canManageVideoAccess:q(s.C.ManageVideoAccess),pointsOfInterest:null==Z?void 0:Z.items,featureAccess:_,tableOfContentsId:null===(x=e.queryParams)||void 0===x?void 0:x.tocId,shouldShowSideTableOfContents:U,isPlugin:N}):t.createElement(t.Fragment,null)}},44110:(e,a,i)=>{i.d(a,{i:()=>s});var t=i(20354),n=i(89454),r=i(86698),s=function(){var e=(0,r.y)({redirectOnError:!0}),a=e.activePresentation,i=e.getFallbackPresentation,s=a||i();return t.a.useBasicFetch(!!s&&n.O.presentationAudiences(s.id))}},14085:(e,a,i)=>{i.d(a,{S:()=>W});var t=i(32735),n=i(28400),r=i(5640),s=i(12059),c=i(51184),o=i(64921),d=i(95812),l=i(53709),u=i(71063),p=i(10439),v=i(35429),m=i(4594),g=i(16714),I=i(12754),y=i(22902),h=i(65332),f=i(76196),P=i(59598),A=i(31908),C=i(26492),E=i(9465),V=i(91479),F=i(47938),O=i(81024),b=i(78166),L=i(99742),G=i(14070),k=i(97291),x=i(22490),R=i(63010),S=i(14476),T=i(53256),w=i(83345),q=i(13231),N=i(51365),U=i(10671),_=i(10741),M="shared.playClipV2";function j(e){var a=(0,y.T)().hasPermissions,i=(0,U._)({location:U.i.VideoItem});return t.createElement("section",{className:"play-page-section",id:P.K.ClippedFrom,ref:function(a){var i;a&&(null===(i=e.headingRef)||void 0===i?void 0:i.current)&&e.headingRef.current.set(P.K.ClippedFrom,a)}},t.createElement("h2",{className:"h4 mb-0"},t.createElement(w.x,{namespace:M,phrase:"clippedFrom"})),t.createElement(N.M.Provider,{value:i},t.createElement(q.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(a,i){return x.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:a,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return _.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:e.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink})))}const B={main:"iQ0Ie",expandedToc:"sIoV8"};var D=function(e,a,i){return function(t){return i?{application:k.O.VIDEOS,action:G.e.Videos.PREVIEW_PDF,args:[t.id],params:{videoId:e,shareId:a}}:{application:k.O.SIGN_UP,action:G.e.SignUp.SIGN_UP}}};function W(e){var a,i,w,q,N,U,_,M,W,H=(0,v.g)(),K=(0,y.T)().hasPermissions,Q=A.M.getCanBeConsumed(e.clip).canConsume,Y=(0,R.Q)(e.tableOfContentsId),Z=Y.tableOfContentsActiveId,J=Y.setTableOfContentsActiveId,z=Y.controlledId,X=Y.setControlledId,$=Y.tableOfContentsExpanded,ee=Y.onToggleTableOfContents,ae=(0,c.Wp)(e.clip)&&e.featureAccess.canViewGlance,ie=(0,S.i)(ae),te=ie.headingRef,ne=ie.headingElements,re=ne.map((function(a){var i;return{id:a.id,name:T.d.getSectionHeading(a.id,{clips:e.clips,interactives:e.interactives,resources:null===(i=e.clip.resources)||void 0===i?void 0:i.data,isPlayClipPage:!0})}}));(0,h.D)({setActiveId:J,headingElements:ne,controlledId:z,setControlledId:X}),(0,f.P)(ne,e.tableOfContentsId);var se=A.M.isVideoTypeArchived(e.clip),ce=K(g.C.StudentExperience),oe=t.useRef(!1);function de(){var e,a,i,t;oe.current=!(null===(a=null===(e=null==H?void 0:H.playerRef)||void 0===e?void 0:e.current)||void 0===a?void 0:a.isPaused()),null===(t=null===(i=null==H?void 0:H.playerRef)||void 0===i?void 0:i.current)||void 0===t||t.pause()}function le(){var e,a;oe.current&&(null===(a=null===(e=null==H?void 0:H.playerRef)||void 0===e?void 0:e.current)||void 0===a||a.play())}function ue(){var a,i;return!(!e.originalVideo||!(null===(a=e.clip._canBeConsumed)||void 0===a?void 0:a.value)||!(null===(i=e.currentUser)||void 0===i?void 0:i.isAuthenticated)||!e.hasProduct(I.x.Primary)||ce)}var pe="picture-in-picture"===H.mode||e.featureAccess.canViewPublicLayout,ve=null!==(i=null===(a=e.clips)||void 0===a?void 0:a.filter((function(a){return a.id.toString()!==e.clip.id.toString()})))&&void 0!==i?i:[];return t.createElement("div",{className:"px-4 play-page-sections-container"},t.createElement("main",{className:"".concat(B.main," ").concat(e.shouldShowSideTableOfContents&&$?B.expandedToc:e.shouldShowSideTableOfContents&&!$?"pe-4":void 0)},t.createElement(F.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:m.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),se&&t.createElement(C.T,{typeId:e.clip.typeId,hasStudentExperience:ce}),t.createElement("section",{id:P.K.Video,className:"mb-2 ".concat(u.M.GLOBAL_PLAYER_SELECTOR),ref:function(e){e&&(null==te?void 0:te.current)&&te.current.set(P.K.Video,e)}},Q&&t.createElement(p.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(w=e.queryParams)||void 0===w?void 0:w.context,contextId:null===(q=e.queryParams)||void 0===q?void 0:q.contextId,moviesAndTv:null===(N=e.queryParams)||void 0===N?void 0:N.mtv,playNext:null===(U=e.queryParams)||void 0===U?void 0:U.playNext,startTime:null!==(M=null===(_=e.queryParams)||void 0===_?void 0:_.t)&&void 0!==M?M:null===(W=e.queryParams)||void 0===W?void 0:W.startTime,mode:"default",location:"play-page"}),t.createElement("div",{className:pe?"":"d-none"},t.createElement(O.S,{video:e.clip,type:"pip"}))),t.createElement(V.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:ue()?{application:k.O.VIDEOS,action:G.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,n.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),ae?t.createElement(o.j,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:function(e){var a;return null===(a=H.playerRef.current)||void 0===a?void 0:a.currentTime(e)},getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:ae}):t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:de,onExitImmersiveReader:le,getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:te,suppressInteractivity:e.featureAccess.canViewPublicLayout}),t.createElement(l.M,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.imageCdnUrl,getAppLink:D(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:L.W.Fallbacks.RESOURCE_THUMBNAIL,headingRef:te}),t.createElement(d.J,{video:e.clip,interactives:e.interactives,imageCdnUrl:e.imageCdnUrl,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:te,yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,isPlugin:e.isPlugin}),t.createElement(r.O,{clips:ve||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,yearGroups:e.yearGroups,audiences:e.audiences,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite,headingRef:te,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},isPlugin:e.isPlugin}),ae&&t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:de,onExitImmersiveReader:le,getTagAppLink:function(e){return{application:k.O.SEARCH,action:G.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:te,suppressInteractivity:e.featureAccess.canViewPublicLayout}),!!ue()&&t.createElement(j,{originalVideo:e.originalVideo,setFavourite:e.setFavourite,canFavourite:e.canFavourite,yearGroups:e.yearGroups,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:te,isPlugin:e.isPlugin,getClassroomGuideAppLink:x.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:x.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:x.W.getResourceGuidanceAppLink}),t.createElement(b.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(a,i){return x.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})),t.createElement(E.h,{isExpanded:$,setIsExpanded:ee,items:re,activeId:Z,setControlledId:X,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},showInSide:e.shouldShowSideTableOfContents}))}}}]);
|
|
2
|
+
//# sourceMappingURL=8316-ba6bae1f29-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8316-ba6bae1f29-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/share/views/play-shared-clip/v2/PlaySharedClipViewV2.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/play-clip-v2.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/PlayClipV2.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\nimport { PlayClipV2 } from 'shared/views/play-clip/v2/components/play-clip/PlayClipV2';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedClipViewV2(props: ShareLinkViewProps): React.ReactElement {\n const { hasProduct } = useProducts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const featureAccess = useVideoFeatureAccess();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.sharedClip(props.objectId, props.shareId));\n const video = Flight.useBasicFetch<Video>(!!clip.data?._parentVideo &&\n VideoRequests.video(clip.data._parentVideo.id));\n const childClips = Flight.useBasicFetch<Clip[]>(\n !!clip.data?._parentVideo?.id && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n \n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(clip);\n useDeepLinks({ id: props.objectId, app: 'clips', shareId: props.shareId });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClipV2\n shareId={props.shareId}\n clip={clip.data}\n clips={childClips.data}\n interactives={interactives.data}\n originalVideo={video.data}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n relatedVideos={relatedVideos}\n canFavourite={canFavourite}\n setFavourite={setFavourite}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n imageCdnUrl={config.data.imageCdnUrl}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest?.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n isPlugin={isPlugin}\n />\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClipV2';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"iQ0Ie\",\"expandedToc\":\"sIoV8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { PlayPageClips } from 'libs/shared/components/play-page-v2/clips-widget/PlayPageClips';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page-v2/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { PlayPageInteractives } from 'libs/shared/components/play-page-v2/interactives-widget/PlayPageInteractives';\nimport { PlayPageResources } from 'libs/shared/components/play-page-v2/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { usePlayPageTableOfContent } from 'shared/views/play/v2/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/v2/hooks/useSectionHeadings';\nimport { PlayPageUtils } from 'shared/views/play/v2/PlayPageUtilV2';\nimport { ClippedFrom } from 'shared/views/play-clip/v2/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip-v2.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\n\ninterface PlayClipV2Props {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n isPlugin: boolean;\n}\n\nexport function PlayClipV2(props: PlayClipV2Props): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, props.tableOfContentsId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n function getMainClassName() {\n if (props.shouldShowSideTableOfContents && tableOfContentsExpanded) {\n return styles.expandedToc;\n }\n if (props.shouldShowSideTableOfContents && !tableOfContentsExpanded)\n return 'pe-4';\n }\n\n return (\n <div className='px-4 play-page-sections-container'>\n <main className={`${styles.main} ${getMainClassName()}`}>\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n imageCdnUrl={props.imageCdnUrl}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n isPlugin={props.isPlugin}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n imageCdnUrl={props.imageCdnUrl}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n isPlugin={props.isPlugin}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n yearGroups={props.yearGroups}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n\n </main>\n\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n />\n \n </div>\n );\n}"],"names":["PlaySharedClipViewV2","props","hasProduct","u","setFavourite","canFavourite","hasPermissions","isPlugin","shouldShowSideTableOfContents","featureAccess","currentUser","config","clip","objectId","shareId","video","data","_parentVideo","id","childClips","canViewClips","interactives","canViewInteractives","relatedVideos","context","queryParams","contextId","moviesAndTv","mtv","audiences","yearGroups","isAuthenticated","customerId","pointsOfInterest","content","videos","app","hasCompleted","clips","originalVideo","imageCdnUrl","canManageVideoAccess","items","tableOfContentsId","tocId","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","namespace","ClippedFrom","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","current","set","Text","phrase","VideoActionsContext","value","VideoList","getVideoAppLink","v","opts","VideoAppLinkHelper","playNext","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","getResourceAppLink","videoId","canViewResource","resource","application","action","args","params","PlayClipV2","playerContext","canConsume","VideoHelper","usePlayPageTableOfContent","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","canViewGlance","useSectionHeadings","headingElements","map","ele","name","resources","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","hasStudentExperience","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","ProductId","showPlayerPlaceholder","mode","canViewPublicLayout","otherClips","filter","c","toString","RestrictionBanner","restrictions","_restrictions","objectTypeId","MasterType","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","key","startTime","t","PlayerPlaceholder","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","VideoAtAGlanceV2","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","canViewResources","canViewResourceItems","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","PlayPageClips","RelatedVideos","currentVideo","TableOfContents","isExpanded","setIsExpanded","activeId","showInSide"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8354],{50690:(e,t,n)=>{n.d(t,{b:()=>r});var a=n(12788),r={renderInPortalIfExists:function(e,t){return t?(0,a.createPortal)(e,t):e}}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),r=n(23481),o=n(83914),i=n(76177),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(i.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},a.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,n)=>{n.d(t,{s:()=>i});var a=n(32735),r=n(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function i(e){var t,n,i;return a.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},a.createElement("div",{className:"position-relative ".concat(o.dateItem)},a.createElement("div",{className:"".concat(null===(i=e.theme)||void 0===i?void 0:i.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:a.createElement(a.Fragment,null," ")),a.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),a.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},44522:(e,t,n)=>{n.d(t,{p:()=>w,v:()=>S});var a=n(32735),r=n(110),o=n(50690),i=n(84963),l=n(73679),c=n(83657),s=n(23481),u=n(36848),d=n(83914),m=n(35223),v="shared.backButton";function f(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,r=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(v,"backTo",{backToName:n}):s.T.getPhrase(v,"back"),f="black"===o?"":"text-white",g=l?"text-shadow":"";return a.createElement(u.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(f," ").concat(g)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},c))}f.defaultProps={color:"black",extraClasses:""};var g=n(36518),p=n(83345),h=n(10587),b=n(94232),y=n(54610),E=n(79967),C=n(67453);const x={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var k="".concat(h.y[y.__.Banners].width,":").concat(h.y[y.__.Banners].height);function N(e){return e.length<160?"h1":x.headingLarge}var w=a.memo((function(e){var t,n,s,u,d=e.heading,m=e.banner,v=e.imageCdnUrl,h=e.actions,w=e.sortComponent,S=e.blockColourClass,A=e.specialEvent,L=a.useContext(b.n),F=(0,E.k)().xxl?1920:1200,I=a.useMemo((function(){if(!A||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return A.endDate?A.startDate<=t&&A.endDate>=t:A.startDate===t}),[A]),O=e.imageOptions||{width:F,ratio:k,resizeType:y.Nq.Cover},P=!!m&&!!v&&C.j.createBannerUrl(m,{fallbackBaseUrl:v,fallbackCategoryName:d,type:y.__.Banners},O),T={className:"banner banner-header ".concat(e.bannerClassName),style:P?{backgroundImage:"url('".concat(P,"')")}:{}};!m&&S&&(delete T.style,T.className+=" ".concat(S));var D=e.detailsComponent;return o.b.renderInPortalIfExists(a.createElement("header",Object.assign({},T),a.createElement("div",{className:"container ".concat(x.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(f,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(x.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?x.bannerContentWithLogo:""))},!!A&&a.createElement("div",{className:"position-relative ".concat(x.specialEventContainer)},a.createElement(l.s,{body:{type:A.endDate?"range":"day",text:A.endDate?"".concat(r.O.format(A.startDate,"DD"),"-").concat(r.O.format(A.endDate,"DD")):r.O.format(A.startDate,"DD")},month:r.O.format(A.startDate,"MMMM"),theme:e.calendarTheme})),a.createElement("div",null,I&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(p.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&a.createElement("div",{className:"".concat(x.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement(g.w,{src:C.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:y.h2.Medium})})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(x.heading," ").concat(N(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,D&&a.createElement(D,null)))),!!h&&a.createElement("div",{className:x.actionsContainer},a.createElement(c.e,{actions:h,sortComponent:w,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:x.logoContainer},a.createElement("img",{src:C.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==L?void 0:L.container)}),(function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)}));function S(){var e=a.useContext(b.n);return o.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(x.banner)}),null==e?void 0:e.container)}},71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),r=n(80247),o=n(34152),i=n(83914),l=n(35223);const c={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,o.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(t,n)||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.")}()),d=u[0],m=u[1];return a.useEffect((function(){var t;e.fetchOnScroll&&m&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[m,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(c.container),ref:d},e.isFetching?a.createElement(r.Z,{as:"span",animation:"border",role:"status",className:c.spinner}):a.createElement(i.x,{svgName:l.vn.ChevronDown,className:"svg-container cursor-pointer",size:i.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},74696:(e,t,n)=>{n.d(t,{S:()=>s});var a=n(32735),r=n(68050),o=n(69111),i=n(9977),l=n(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===i.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(o.Z,Object.assign({},i.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),a.createElement(r.Z,null,!!s&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),a.createElement(o.Z,{xs:i.O.getThumbnailColSize(s)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),a.createElement(o.Z,Object.assign({},i.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==a.o.NotFound?o!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new i.badRequest):n.forbidden||r.Q.Ry.throw(new i.forbidden.privacy):n.notFound||r.Q.Ry.throw(new i.notFound))}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var a=n(32735),r=n(50242),o=n(91967),i=400,l=n(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function s(e,t,n,s,u,d){var m,v,f,g,p=(m=(0,a.useState)(0),v=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(m,v)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(m,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.")}()),h=p[0],b=p[1],y=t,E=(0,l.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return f={fetchNextPage:function(){if(t&&e&&E)return b((function(e){return e+1})),y(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},g=function(){if(!f.isFetching){if(f.scrollContainer){var e=f.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-i)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-i)return;f.fetchNextPage()}},(0,a.useEffect)((function(){var e=o.q.throttle(g,200),t=f.scrollContainer||window;return f.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[f.hasMore,f.fetchNextPage,f.scrollContainer]),(0,a.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(y(),b((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var a=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==r.k.ClientError&&a!==r.k.ServerError||n(h,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var a=n(20354),r=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return a.a.useBasicFetch(!!i&&r.O.presentationAudiences(i.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),r=n(20354),o=n(21750),i=n(31949),l=n(1575),c=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(i.N.currentUser()),v=a.useRef(new Set),f=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),g=f.map((function(e){return e.id})),p=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw r}}return l}}(t,n)||s(t,n)||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.")}()),h=p[0],b=p[1];a.useEffect((function(){if((null==g?void 0:g.length)&&m.hasCompleted){var e=[];g.forEach((function(t){v.current.has(t)||(e.push(t),v.current.add(t))})),e.length&&b((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(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.")}()}(t),[l.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(o.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==g?void 0:g.length,m.hasCompleted]),r.a.useBasicFetchAll(h)}},19530:(e,t,n)=>{n.r(t),n.d(t,{FavouritesView:()=>Q});var a=n(32735),r=n(70680),o=n(23481),i=n(20354),l=n(65858),c=n(44522),s=n(71020),u=n(83345),d=n(74696),m=n(13231),v=n(51365),f=n(16714),g=n(94644),p=n(39151),h=n(1666),b=n(63419),y=n(31949),E=n(69883),C=n(60115),x=n(22902),k=n(79612),N=n(99742),w=n(51855),S=n(27638),A=n(44110),L=n(97816),F=n(10741),I=n(22490),O=n(82431),P=n(23232),T=n(83914),D=n(35223),M=n(14070),j=n(97291),B="shared.favouritesEmptyState",V=o.T.encloseNamespace(B);function R(){return a.createElement(u.D.Provider,{value:B},a.createElement(P.u,null,a.createElement(P.u.Image,{src:N.W.EmptyStates.FAVOURITED_VIDEOS,altText:V("info")}),a.createElement("div",{className:"d-flex mb-2"},a.createElement(P.u.Heading,{className:"h3 mb-0"},a.createElement(u.x,{phrase:"emptyStateHeading1"})),a.createElement("div",{className:"box-shadow rounded-circle p-1 bg-white mx-1"},a.createElement(T.x,{svgName:D.vn.HeartOutline,size:T.S.Small})),a.createElement(P.u.Heading,{className:"h3 mb-0"},a.createElement(u.x,{phrase:"emptyStateHeading2"}))),a.createElement(P.u.Info,null,a.createElement(u.x,{phrase:"info"})),a.createElement(P.u.Cta,{text:o.T.getPhrase(B,"cta"),appLink:{application:j.O.DASHBOARD,action:M.e.Dashboard.HOME}})))}function _(){return a.createElement(u.D.Provider,{value:B},a.createElement(P.u,null,a.createElement(P.u.Image,{src:N.W.EmptyStates.FAVOURITED_VIDEOS_PUBLIC,altText:V("publicInfo")}),a.createElement(P.u.Heading,null,a.createElement(u.x,{phrase:"publicHeading"})),a.createElement(P.u.Info,null,a.createElement(u.x,{phrase:"publicInfo"})),a.createElement(P.u.Cta,{text:o.T.getPhrase(B,"publicCta"),appLink:{application:j.O.SIGN_UP,action:M.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.MyFavouritesLanding,entity:l.py.AppLink,workflowPhase:l.eu.Start,descriptor:l.Yu.SignUp}})))}var U=n(26323),H=n(31908),G=n(10671),Z="shared.favourites";const q={banner:"FEWd3"};var W="shared.favourites";function Q(){var e,t,n,P=(0,r.I0)(),T=(0,E.Z)(),M=(0,S.u)(l.LZ.VideoThumbnail),j=M.setFavourite,B=M.canFavourite,V=(0,w.G)().isPlugin,Q=function(){var e=(0,G._)({location:G.i.VideoItem}),t=(0,S.u)(l.LZ.VideoThumbnail).setFavourite;return Object.assign(Object.assign({},e),{getVideoActions:function(n){return H.M.getCanBeConsumed(n).canConsume?e.getVideoActions(n):[{label:o.T.getPhrase(Z,"removeFromFavourites"),svgName:D.vn.Delete,button:!1,className:"btn btn-link text-danger",onClick:function(){return t(n,!1)}}]}})}();(0,k.M)({title:o.T.getPhrase(W,"pageTitle")});var Y=(0,x.T)(),z=Y.hasLocalPermissions,J=Y.hasPermissions,X=i.a.useBasicFetch(y.N.currentUser()),$=i.a.useBasicFetch((null===(e=X.data)||void 0===e?void 0:e.isAuthenticated)&&h.h.yearGroups(X.data.customerId)),K=i.a.useBasicFetch(p.L.config()),ee=function(e){return b.P.getFavourites(X.data.id,e)},te=function(e){return i.a.getFetch(P)(ee(e))},ne=!z(f.E.ViewMyFavouritesLanding)&&X.hasCompleted,ae=(0,C.K)(!!ne&&ee,te,(function(e,t){if(1===e)return(0,g.r)(t);T.error(o.T.getPhrase(W,"error"))})),re=ae.items,oe=ae.hasMore,ie=ae.isFetching;(0,L.V)(re);var le=(0,A.i)(),ce=(0,U.B)(null===(t=X.data)||void 0===t?void 0:t.id),se=ce.count;return ce.isLoading?a.createElement(a.Fragment,null):z(f.E.ViewMyFavouritesLanding)?a.createElement(_,null):a.createElement(v.M.Provider,{value:Q},a.createElement("div",{className:"p-3"},a.createElement(c.p,{heading:o.T.getPhrase(W,"header"),banner:{url:N.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER},bannerClassName:"".concat(q.banner," bg-pink"),imageCdnUrl:null===(n=K.data)||void 0===n?void 0:n.imageCdnUrl,detailsComponent:function(){return a.createElement("div",{className:"mb-n1 font-size-normal fw-normal mt-1"},a.createElement(u.x,{namespace:W,phrase:"videos",options:{smartCount:se}}))}}),re?re.length?a.createElement(a.Fragment,null,a.createElement(m.E4,{videos:re,yearGroups:$.data,getVideoAppLink:I.W.getAppLink,hasPermissions:J,getSubTextAppLink:function(e){return O.j.getSeriesAppLink(e.series)},setFavourite:j,canFavourite:B,presentationAudiences:le.data,getPreviewQuestionsAppLink:function(e){return F.j.getPreviewQuestionsAppLink(e)},isPlugin:V,getClassroomGuideAppLink:I.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:I.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:I.W.getResourceGuidanceAppLink}),(oe||ie)&&a.createElement(s._,{isFetching:ie,fetchNext:te})):a.createElement(R,null):a.createElement(d.S,null)))}},26323:(e,t,n)=>{n.d(t,{B:()=>l});var a=n(20354),r=n(63419);function o(e){return function(e){if(Array.isArray(e))return i(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 i(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(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 i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function l(e){var t,n,i,l,c,s,u,d,m,v=a.a.useBasicFetch(e&&r.P.getFavouritesVideosCount(e)),f=a.a.useBasicFetch(e&&r.P.getFavouritesClipsCount(e)),g=a.a.useBasicFetch(e&&r.P.getFavouritesInteractivesCount(e));return{count:(null===(t=v.data)||void 0===t?void 0:t.count)+(null===(n=g.data)||void 0===n?void 0:n.count)+(null===(i=f.data)||void 0===i?void 0:i.count),favourites:[].concat(o((null===(l=v.data)||void 0===l?void 0:l.data)||[]),o((null===(c=f.data)||void 0===c?void 0:c.data)||[]),o((null===(s=g.data)||void 0===s?void 0:s.data)||[])),isLoading:!(null===(u=v.data)||void 0===u?void 0:u.data)||!(null===(d=f.data)||void 0===d?void 0:d.data)||!(null===(m=g.data)||void 0===m?void 0:m.data)}}}}]);
|
|
2
|
-
//# sourceMappingURL=8354-
|
|
2
|
+
//# sourceMappingURL=8354-d07c3bef5a-lite.chunk.js.map
|