@clickview/exchange 0.60.0 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{DQWSGmPO.chunk.js → 2GC-PPDy.chunk.js} +2 -2
- package/dist/scripts/{DQWSGmPO.chunk.js.map → 2GC-PPDy.chunk.js.map} +1 -1
- package/dist/scripts/{C_vLRfti.chunk.js → 5yUbuX8U.chunk.js} +2 -2
- package/dist/scripts/{C_vLRfti.chunk.js.map → 5yUbuX8U.chunk.js.map} +1 -1
- package/dist/scripts/{DfR8N6KN.chunk.js → B1cVJr0t.chunk.js} +2 -2
- package/dist/scripts/{DfR8N6KN.chunk.js.map → B1cVJr0t.chunk.js.map} +1 -1
- package/dist/scripts/B4AGq_K6.chunk.js +2 -0
- package/dist/scripts/{u96pPes-.chunk.js.map → B4AGq_K6.chunk.js.map} +1 -1
- package/dist/scripts/{Ej7a07_u.chunk.js → B57luw20.chunk.js} +2 -2
- package/dist/scripts/{Ej7a07_u.chunk.js.map → B57luw20.chunk.js.map} +1 -1
- package/dist/scripts/{Csq5lSfL.chunk.js → B5VX0-05.chunk.js} +2 -2
- package/dist/scripts/{Csq5lSfL.chunk.js.map → B5VX0-05.chunk.js.map} +1 -1
- package/dist/scripts/{B1FXQpYQ.chunk.js → B5yQ-o2c.chunk.js} +2 -2
- package/dist/scripts/{B1FXQpYQ.chunk.js.map → B5yQ-o2c.chunk.js.map} +1 -1
- package/dist/scripts/{CfHe4kqG.chunk.js → BAaMmtA5.chunk.js} +2 -2
- package/dist/scripts/{CfHe4kqG.chunk.js.map → BAaMmtA5.chunk.js.map} +1 -1
- package/dist/scripts/{Ien9POMb.chunk.js → BJB2pvo-.chunk.js} +2 -2
- package/dist/scripts/{Ien9POMb.chunk.js.map → BJB2pvo-.chunk.js.map} +1 -1
- package/dist/scripts/{CXQ4Otim.chunk.js → BJmQsLgH.chunk.js} +2 -2
- package/dist/scripts/{CXQ4Otim.chunk.js.map → BJmQsLgH.chunk.js.map} +1 -1
- package/dist/scripts/{zD1LoHGd.chunk.js → BKtt7r9I.chunk.js} +2 -2
- package/dist/scripts/{zD1LoHGd.chunk.js.map → BKtt7r9I.chunk.js.map} +1 -1
- package/dist/scripts/{CLS2QNAc.chunk.js → BQ7D2X0o.chunk.js} +2 -2
- package/dist/scripts/{CLS2QNAc.chunk.js.map → BQ7D2X0o.chunk.js.map} +1 -1
- package/dist/scripts/{Bv-rZ1ws.chunk.js → BQTdalXA.chunk.js} +2 -2
- package/dist/scripts/{Bv-rZ1ws.chunk.js.map → BQTdalXA.chunk.js.map} +1 -1
- package/dist/scripts/{C52tRwVm.chunk.js → BR_C7b5M.chunk.js} +2 -2
- package/dist/scripts/{C52tRwVm.chunk.js.map → BR_C7b5M.chunk.js.map} +1 -1
- package/dist/scripts/{DxRcVeDA.chunk.js → BVViiWF8.chunk.js} +2 -2
- package/dist/scripts/{DxRcVeDA.chunk.js.map → BVViiWF8.chunk.js.map} +1 -1
- package/dist/scripts/{BwA4-wPQ.chunk.js → BWoESSLv.chunk.js} +2 -2
- package/dist/scripts/{BwA4-wPQ.chunk.js.map → BWoESSLv.chunk.js.map} +1 -1
- package/dist/scripts/{DhSjZ3FD.chunk.js → BZXmaOzt.chunk.js} +2 -2
- package/dist/scripts/{DhSjZ3FD.chunk.js.map → BZXmaOzt.chunk.js.map} +1 -1
- package/dist/scripts/{CkxEvxLE.chunk.js → Bcaq2QKq.chunk.js} +2 -2
- package/dist/scripts/{CkxEvxLE.chunk.js.map → Bcaq2QKq.chunk.js.map} +1 -1
- package/dist/scripts/{BuwaCenI.chunk.js → BdMXRcT3.chunk.js} +2 -2
- package/dist/scripts/{BuwaCenI.chunk.js.map → BdMXRcT3.chunk.js.map} +1 -1
- package/dist/scripts/{C0I1ovgn.chunk.js → BlabCH8N.chunk.js} +2 -2
- package/dist/scripts/{C0I1ovgn.chunk.js.map → BlabCH8N.chunk.js.map} +1 -1
- package/dist/scripts/{2NsO29qP.chunk.js → Bo-iDjSh.chunk.js} +2 -2
- package/dist/scripts/{2NsO29qP.chunk.js.map → Bo-iDjSh.chunk.js.map} +1 -1
- package/dist/scripts/{Cjy2K1zH.chunk.js → BqRzwJ-J.chunk.js} +2 -2
- package/dist/scripts/{Cjy2K1zH.chunk.js.map → BqRzwJ-J.chunk.js.map} +1 -1
- package/dist/scripts/BrdU6Hc2.chunk.js +2 -0
- package/dist/scripts/{WarFtyTw.chunk.js.map → BrdU6Hc2.chunk.js.map} +1 -1
- package/dist/scripts/{Cca7nDsG.chunk.js → Bt07VepM.chunk.js} +2 -2
- package/dist/scripts/{Cca7nDsG.chunk.js.map → Bt07VepM.chunk.js.map} +1 -1
- package/dist/scripts/{3hd9Wq4c.chunk.js → BtbirQej.chunk.js} +2 -2
- package/dist/scripts/{3hd9Wq4c.chunk.js.map → BtbirQej.chunk.js.map} +1 -1
- package/dist/scripts/{DCLePavE.chunk.js → Byh4RoGO.chunk.js} +2 -2
- package/dist/scripts/{DCLePavE.chunk.js.map → Byh4RoGO.chunk.js.map} +1 -1
- package/dist/scripts/{DTHb9InD.chunk.js → Bz3eAWKb.chunk.js} +2 -2
- package/dist/scripts/{DTHb9InD.chunk.js.map → Bz3eAWKb.chunk.js.map} +1 -1
- package/dist/scripts/{Cu0qnVi5.chunk.js → BzzIpmJj.chunk.js} +2 -2
- package/dist/scripts/{Cu0qnVi5.chunk.js.map → BzzIpmJj.chunk.js.map} +1 -1
- package/dist/scripts/{C7un82WP.chunk.js → C3LmB7vs.chunk.js} +2 -2
- package/dist/scripts/{C7un82WP.chunk.js.map → C3LmB7vs.chunk.js.map} +1 -1
- package/dist/scripts/C42aTLRq.chunk.js +2 -0
- package/dist/scripts/{C2TRBWPd.chunk.js.map → C42aTLRq.chunk.js.map} +1 -1
- package/dist/scripts/C4BzCmwg.chunk.js +2 -0
- package/dist/scripts/{BwdSbre5.chunk.js.map → C4BzCmwg.chunk.js.map} +1 -1
- package/dist/scripts/{B5mlcFJg.chunk.js → CFRAo5Sd.chunk.js} +2 -2
- package/dist/scripts/{B5mlcFJg.chunk.js.map → CFRAo5Sd.chunk.js.map} +1 -1
- package/dist/scripts/{C-Dd1wEr.chunk.js → CKGW3m2X.chunk.js} +3 -3
- package/dist/scripts/{C-Dd1wEr.chunk.js.map → CKGW3m2X.chunk.js.map} +1 -1
- package/dist/scripts/{D0Tp9Z65.chunk.js → CL6ZWANl.chunk.js} +2 -2
- package/dist/scripts/{D0Tp9Z65.chunk.js.map → CL6ZWANl.chunk.js.map} +1 -1
- package/dist/scripts/CLgSNdF3.chunk.js +2 -0
- package/dist/scripts/{BxcHYWuR.chunk.js.map → CLgSNdF3.chunk.js.map} +1 -1
- package/dist/scripts/{XOHWRN-E.chunk.js → CMfzHyZ-.chunk.js} +2 -2
- package/dist/scripts/{XOHWRN-E.chunk.js.map → CMfzHyZ-.chunk.js.map} +1 -1
- package/dist/scripts/{Vk3DDGeP.chunk.js → CPvN_Soe.chunk.js} +2 -2
- package/dist/scripts/{Vk3DDGeP.chunk.js.map → CPvN_Soe.chunk.js.map} +1 -1
- package/dist/scripts/{LLCJ2-mR.chunk.js → CYISpSfn.chunk.js} +2 -2
- package/dist/scripts/{LLCJ2-mR.chunk.js.map → CYISpSfn.chunk.js.map} +1 -1
- package/dist/scripts/{DfcdtoXp.chunk.js → CZQS_NPT.chunk.js} +2 -2
- package/dist/scripts/{DfcdtoXp.chunk.js.map → CZQS_NPT.chunk.js.map} +1 -1
- package/dist/scripts/{DeW1mjFb.chunk.js → CcHhPXQX.chunk.js} +2 -2
- package/dist/scripts/{DeW1mjFb.chunk.js.map → CcHhPXQX.chunk.js.map} +1 -1
- package/dist/scripts/{DLsA7vPe.chunk.js → CjgcuP3Q.chunk.js} +2 -2
- package/dist/scripts/{DLsA7vPe.chunk.js.map → CjgcuP3Q.chunk.js.map} +1 -1
- package/dist/scripts/{itWDNVl_.chunk.js → CmVJO7VI.chunk.js} +2 -2
- package/dist/scripts/{itWDNVl_.chunk.js.map → CmVJO7VI.chunk.js.map} +1 -1
- package/dist/scripts/{DBtiEa66.chunk.js → CpMkRd2a.chunk.js} +2 -2
- package/dist/scripts/{DBtiEa66.chunk.js.map → CpMkRd2a.chunk.js.map} +1 -1
- package/dist/scripts/{Y2rXSgTV.chunk.js → CqWvHKP5.chunk.js} +2 -2
- package/dist/scripts/{Y2rXSgTV.chunk.js.map → CqWvHKP5.chunk.js.map} +1 -1
- package/dist/scripts/{zO2QdKtt.chunk.js → CvgQRmjv.chunk.js} +2 -2
- package/dist/scripts/{zO2QdKtt.chunk.js.map → CvgQRmjv.chunk.js.map} +1 -1
- package/dist/scripts/{B9W1QLWn.chunk.js → CwexEXsi.chunk.js} +2 -2
- package/dist/scripts/{B9W1QLWn.chunk.js.map → CwexEXsi.chunk.js.map} +1 -1
- package/dist/scripts/{BpwHr0J0.chunk.js → CyQDGNI3.chunk.js} +2 -2
- package/dist/scripts/{BpwHr0J0.chunk.js.map → CyQDGNI3.chunk.js.map} +1 -1
- package/dist/scripts/{CHAwVVRw.chunk.js → D21QHirZ.chunk.js} +2 -2
- package/dist/scripts/{CHAwVVRw.chunk.js.map → D21QHirZ.chunk.js.map} +1 -1
- package/dist/scripts/{DxJfmOeq.chunk.js → D30qaGvM.chunk.js} +2 -2
- package/dist/scripts/{DxJfmOeq.chunk.js.map → D30qaGvM.chunk.js.map} +1 -1
- package/dist/scripts/{CJIYSOTb.chunk.js → D3juPk5Y.chunk.js} +2 -2
- package/dist/scripts/{CJIYSOTb.chunk.js.map → D3juPk5Y.chunk.js.map} +1 -1
- package/dist/scripts/{B-IgnxzS.chunk.js → D5FAzio3.chunk.js} +2 -2
- package/dist/scripts/{B-IgnxzS.chunk.js.map → D5FAzio3.chunk.js.map} +1 -1
- package/dist/scripts/{DIBfWWih.chunk.js → D7NOMVC8.chunk.js} +2 -2
- package/dist/scripts/{DIBfWWih.chunk.js.map → D7NOMVC8.chunk.js.map} +1 -1
- package/dist/scripts/{bogFjz2G.chunk.js → D7QRJrh2.chunk.js} +2 -2
- package/dist/scripts/{bogFjz2G.chunk.js.map → D7QRJrh2.chunk.js.map} +1 -1
- package/dist/scripts/{BZb44_Lh.chunk.js → D9df4Id7.chunk.js} +2 -2
- package/dist/scripts/{BZb44_Lh.chunk.js.map → D9df4Id7.chunk.js.map} +1 -1
- package/dist/scripts/{BYLKD39d.chunk.js → DFEBv1_O.chunk.js} +2 -2
- package/dist/scripts/{BYLKD39d.chunk.js.map → DFEBv1_O.chunk.js.map} +1 -1
- package/dist/scripts/{ChXJhYla.chunk.js → DGvEmnsP.chunk.js} +2 -2
- package/dist/scripts/{ChXJhYla.chunk.js.map → DGvEmnsP.chunk.js.map} +1 -1
- package/dist/scripts/DIkrkJAo.chunk.js +2 -0
- package/dist/scripts/{CD1TqwcB.chunk.js.map → DIkrkJAo.chunk.js.map} +1 -1
- package/dist/scripts/{BrjepIq5.chunk.js → DMAci3S_.chunk.js} +2 -2
- package/dist/scripts/{BrjepIq5.chunk.js.map → DMAci3S_.chunk.js.map} +1 -1
- package/dist/scripts/{COBKg5HM.chunk.js → DOsWx99L.chunk.js} +2 -2
- package/dist/scripts/{COBKg5HM.chunk.js.map → DOsWx99L.chunk.js.map} +1 -1
- package/dist/scripts/{Bh_0dfl8.chunk.js → DYRoLttd.chunk.js} +2 -2
- package/dist/scripts/{Bh_0dfl8.chunk.js.map → DYRoLttd.chunk.js.map} +1 -1
- package/dist/scripts/{DiR8Ds2K.chunk.js → DbNPwlCF.chunk.js} +2 -2
- package/dist/scripts/{DiR8Ds2K.chunk.js.map → DbNPwlCF.chunk.js.map} +1 -1
- package/dist/scripts/{BCd9ozXx.chunk.js → DeSk2YFH.chunk.js} +2 -2
- package/dist/scripts/{BCd9ozXx.chunk.js.map → DeSk2YFH.chunk.js.map} +1 -1
- package/dist/scripts/{CgplGqf6.chunk.js → DgYE66Vs.chunk.js} +2 -2
- package/dist/scripts/{CgplGqf6.chunk.js.map → DgYE66Vs.chunk.js.map} +1 -1
- package/dist/scripts/{DsPW-ne8.chunk.js → DigjAeMR.chunk.js} +2 -2
- package/dist/scripts/{DsPW-ne8.chunk.js.map → DigjAeMR.chunk.js.map} +1 -1
- package/dist/scripts/{Bu06fyx_.chunk.js → Dj7sCTJQ.chunk.js} +2 -2
- package/dist/scripts/{Bu06fyx_.chunk.js.map → Dj7sCTJQ.chunk.js.map} +1 -1
- package/dist/scripts/{B2OzXphM.chunk.js → Dk7tKls8.chunk.js} +2 -2
- package/dist/scripts/{B2OzXphM.chunk.js.map → Dk7tKls8.chunk.js.map} +1 -1
- package/dist/scripts/{CJ1ig2Kx.chunk.js → DmTetbor.chunk.js} +2 -2
- package/dist/scripts/{CJ1ig2Kx.chunk.js.map → DmTetbor.chunk.js.map} +1 -1
- package/dist/scripts/{USTuMLcb.chunk.js → Ds3SQeo1.chunk.js} +2 -2
- package/dist/scripts/{USTuMLcb.chunk.js.map → Ds3SQeo1.chunk.js.map} +1 -1
- package/dist/scripts/{B696AbD2.chunk.js → Dw-3sJ6z.chunk.js} +2 -2
- package/dist/scripts/{B696AbD2.chunk.js.map → Dw-3sJ6z.chunk.js.map} +1 -1
- package/dist/scripts/{DjT7A1F0.chunk.js → DzUywVIn.chunk.js} +2 -2
- package/dist/scripts/{DjT7A1F0.chunk.js.map → DzUywVIn.chunk.js.map} +1 -1
- package/dist/scripts/{BX_8MApq.chunk.js → FqMxoz-g.chunk.js} +2 -2
- package/dist/scripts/{BX_8MApq.chunk.js.map → FqMxoz-g.chunk.js.map} +1 -1
- package/dist/scripts/{CtovEsFz.chunk.js → M8-7wL03.chunk.js} +2 -2
- package/dist/scripts/{CtovEsFz.chunk.js.map → M8-7wL03.chunk.js.map} +1 -1
- package/dist/scripts/{BF2PCV8G.chunk.js → O3KYJlt8.chunk.js} +2 -2
- package/dist/scripts/{BF2PCV8G.chunk.js.map → O3KYJlt8.chunk.js.map} +1 -1
- package/dist/scripts/{-wh0Q1Mk.chunk.js → P1w98jqc.chunk.js} +2 -2
- package/dist/scripts/{-wh0Q1Mk.chunk.js.map → P1w98jqc.chunk.js.map} +1 -1
- package/dist/scripts/{Q3oue8AK.chunk.js → PLxejfSI.chunk.js} +2 -2
- package/dist/scripts/{Q3oue8AK.chunk.js.map → PLxejfSI.chunk.js.map} +1 -1
- package/dist/scripts/{D_O3OU5_.chunk.js → Q9FeiQkl.chunk.js} +2 -2
- package/dist/scripts/{D_O3OU5_.chunk.js.map → Q9FeiQkl.chunk.js.map} +1 -1
- package/dist/scripts/{dn7SonjL.chunk.js → TYfK47yR.chunk.js} +2 -2
- package/dist/scripts/{dn7SonjL.chunk.js.map → TYfK47yR.chunk.js.map} +1 -1
- package/dist/scripts/{CuGgxXq6.chunk.js → X5emuMm3.chunk.js} +2 -2
- package/dist/scripts/{CuGgxXq6.chunk.js.map → X5emuMm3.chunk.js.map} +1 -1
- package/dist/scripts/{CQoqpuSN.chunk.js → YuqHkk0a.chunk.js} +2 -2
- package/dist/scripts/{CQoqpuSN.chunk.js.map → YuqHkk0a.chunk.js.map} +1 -1
- package/dist/scripts/{BM3jzDzF.chunk.js → ZFLNGNny.chunk.js} +2 -2
- package/dist/scripts/{BM3jzDzF.chunk.js.map → ZFLNGNny.chunk.js.map} +1 -1
- package/dist/scripts/{DcWRg8v3.chunk.js → aou-5sJI.chunk.js} +2 -2
- package/dist/scripts/{DcWRg8v3.chunk.js.map → aou-5sJI.chunk.js.map} +1 -1
- package/dist/scripts/{app-7svuou3-.js → app-CShb1Dgt.js} +3 -3
- package/dist/scripts/{app-7svuou3-.js.map → app-CShb1Dgt.js.map} +1 -1
- package/dist/scripts/baur_fn0.chunk.js +2 -0
- package/dist/scripts/{zDrAtVBw.chunk.js.map → baur_fn0.chunk.js.map} +1 -1
- package/dist/scripts/{BrdxuhDZ.chunk.js → cDgsKsmM.chunk.js} +2 -2
- package/dist/scripts/{BrdxuhDZ.chunk.js.map → cDgsKsmM.chunk.js.map} +1 -1
- package/dist/scripts/{Di0ieRgB.chunk.js → d6bZeQ7u.chunk.js} +2 -2
- package/dist/scripts/{Di0ieRgB.chunk.js.map → d6bZeQ7u.chunk.js.map} +1 -1
- package/dist/scripts/{BqAavbCw.chunk.js → dP41rDFl.chunk.js} +2 -2
- package/dist/scripts/{BqAavbCw.chunk.js.map → dP41rDFl.chunk.js.map} +1 -1
- package/dist/scripts/{BcDguH17.chunk.js → jH3hqwI2.chunk.js} +2 -2
- package/dist/scripts/{BcDguH17.chunk.js.map → jH3hqwI2.chunk.js.map} +1 -1
- package/dist/scripts/{DL-oEZtF.chunk.js → kUTnu8Iq.chunk.js} +2 -2
- package/dist/scripts/{DL-oEZtF.chunk.js.map → kUTnu8Iq.chunk.js.map} +1 -1
- package/dist/scripts/{cyDp1kQU.chunk.js → nbVa2u9N.chunk.js} +2 -2
- package/dist/scripts/{cyDp1kQU.chunk.js.map → nbVa2u9N.chunk.js.map} +1 -1
- package/dist/scripts/{CtTd6EE8.chunk.js → vbpGTzKU.chunk.js} +2 -2
- package/dist/scripts/{CtTd6EE8.chunk.js.map → vbpGTzKU.chunk.js.map} +1 -1
- package/dist/scripts/{Co_YIZXn.chunk.js → zr54fY9l.chunk.js} +2 -2
- package/dist/scripts/{Co_YIZXn.chunk.js.map → zr54fY9l.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/BwdSbre5.chunk.js +0 -2
- package/dist/scripts/BxcHYWuR.chunk.js +0 -2
- package/dist/scripts/C2TRBWPd.chunk.js +0 -2
- package/dist/scripts/CD1TqwcB.chunk.js +0 -2
- package/dist/scripts/WarFtyTw.chunk.js +0 -2
- package/dist/scripts/u96pPes-.chunk.js +0 -2
- package/dist/scripts/zDrAtVBw.chunk.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"B-IgnxzS.chunk.js","sources":["../../../../libs/shared/src/enums/ContentLicenceType.ts","../../../../libs/shared/src/flight-requests/ClipRequests.ts","../../../../libs/shared/src/flight-requests/InteractiveRequests.ts","../../../../libs/shared/src/utils/VideoHelper.ts"],"sourcesContent":["export enum ContentLicenseType {\n Screenrights = 'screenrights',\n Era = 'era',\n ClickView = 'clickview'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { Clip, CreateOrUpdateClipRequest } from 'libs/shared/interfaces';\n\nexport const ClipRequests = {\n clip(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.CLIP,\n permissionFilterOption\n })\n };\n },\n\n videoClips(parentId: string, permissionFilterOption?: PermissionFilterOption, cursor?: string) {\n return {\n key: `video:${parentId}:clips:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/clips`, {\n query: SharedWithStatements.CLIP_COLLECTION,\n permissionFilterOption,\n cursor\n })\n };\n },\n\n clipWithAllInteractives(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}:interactives`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: `${SharedWithStatements.CLIP},interactives{status:[0,1]}`,\n permissionFilterOption\n }),\n normalize: false\n };\n },\n\n publicClip(\n id: string,\n shareId?: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `clip:${id}:public:${shareId}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo,_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedClip(\n id: string,\n shareId: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `shared:clip:${id}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.CLIP\n }),\n success,\n error\n };\n },\n\n createClip(\n videoId: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'create:clip',\n url: `{gateway}/v1/objects/${videoId}/clips`,\n data,\n type: HttpVerbs.POST,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos' ],\n success,\n error,\n always\n };\n },\n\n updateClip(\n id: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'update:clip',\n url: `{gateway}/v1/objects/${id}`,\n data,\n type: HttpVerbs.PUT,\n invalidationKeys: [`clip:${id}`],\n success,\n error,\n always\n };\n },\n\n deleteClip(\n id: string,\n videoId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `delete:clip`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos', 'videos' ],\n success,\n error,\n always\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { CreateInteractiveMetadataRequest, CreateInteractiveRequest, EditInteractiveMetadataOriginRequest, EditInteractiveMetadataRequest, EditInteractiveRequest, Interaction, InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport const InteractiveRequests = {\n interactiveMetadata(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.INTERACTIVE,\n permissionFilterOption\n }),\n key: `interactive:metadata:${id}:${permissionFilterOption}`\n };\n },\n\n videoInteractives(\n parentId: string,\n permissionFilterOption?: PermissionFilterOption,\n cursor?: string\n ): Flight.PublicRequest {\n return {\n key: `video:${parentId}:interactives:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n })\n };\n },\n\n sharedInteractiveMetadata(\n id: string,\n shareId: string,\n success?: (interactiveMetadata: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.INTERACTIVE\n }),\n key: `shared:interactive:metadata:${id}`,\n success,\n error\n };\n },\n publicInteractiveMetadata(\n id: string,\n shareId?: string,\n success?: (interactive: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo[_rating],_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n key: `interactive:metadata:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n interactive(id: string): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: `interactive:${id}`,\n normalize: false\n };\n },\n createInteractive(\n data: CreateInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: '/api/domain/v1/interactives',\n key: 'create:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: ['my:videos'],\n data,\n success,\n error\n };\n },\n createInteractiveMetadata(\n videoId: string,\n data: CreateInteractiveMetadataRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/interactives`,\n key: 'create:interactive:metadata',\n type: HttpVerbs.POST,\n data,\n success,\n error\n };\n },\n updateInteractive(\n id: string,\n data: EditInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: 'update:interactive',\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n /* Update state because domain doesn't return the updated object */\n formatData: () => data,\n invalidationKeys: [`interactive:${id}`]\n };\n },\n updateInteractiveMetadata(\n id: string,\n data: EditInteractiveMetadataRequest | EditInteractiveMetadataOriginRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'update:interactive:metadata',\n type: HttpVerbs.PUT,\n data,\n success,\n error\n };\n },\n interactiveResultSet(interactiveId: string, interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`\n };\n },\n copyInteractive(\n interactiveId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${interactiveId}/copy`,\n key: 'copy:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: [ `interactive:${interactiveId}`, 'my:videos' ],\n success,\n error\n };\n },\n deleteInteractiveMetadata(\n interactiveMetadataId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${interactiveMetadataId}`,\n key: 'delete:interactive',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ],\n success,\n error\n };\n },\n removeInteractiveMetadata({\n libraryId,\n categoryId,\n interactiveMetadataId\n }: {\n libraryId: string;\n categoryId: string;\n interactiveMetadataId: string;\n }): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/domain/v1/libraries/${libraryId}/videos`, { categoryId, videoIds: interactiveMetadataId }),\n key: `remove:interactive:metadata:${interactiveMetadataId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ]\n };\n },\n contributeToCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.POST\n };\n },\n revokefromCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.DELETE\n };\n },\n isContributed(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contributed`,\n key: `iscontributed:${interactiveMetadataId}`,\n normalize: false\n };\n },\n updateInteraction(interaction: Interaction) {\n return {\n url: `/api/domain/v1/interactions/bulk/${interaction.id}`,\n key: 'contribute:interactive',\n data: interaction,\n type: HttpVerbs.PUT,\n invalidationKeys: [`interactive:${interaction.interactiveId}`]\n };\n }\n};\n","import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { ContentLicenseType } from 'libs/shared/enums/ContentLicenceType';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { BaseObject, CanBeConsumedReason, Clip, InteractiveMetadata, Rating, Thumbnail, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { PermissionName } from '../enums/PermissionName';\nimport { HasPermissionsFunc } from '../hooks/usePermissions';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const VideoHelper = {\n isVideo(obj: BaseObject): obj is Video {\n return obj?.typeId === MasterType.Video;\n },\n\n isClip(obj: BaseObject): obj is Clip {\n return obj?.typeId === MasterType.Clip;\n },\n\n isInteractive(obj: BaseObject): obj is InteractiveMetadata {\n return obj?.typeId === MasterType.Interactive;\n },\n\n isVideoTypeArchived(obj: VideoTypes): boolean {\n return obj?.status === CurationStatus.Archived;\n },\n\n /**\n * Returns true of the object is a video, clip or interactive\n */\n isVideoType(object: BaseObject): object is Video | Clip | InteractiveMetadata {\n return VideoHelper.isVideo(object) || VideoHelper.isInteractive(object) || VideoHelper.isClip(object);\n },\n\n hasSeries(video: Video): boolean {\n return !!video?.series?.id;\n },\n\n showVideoGuidance(hasPermissions: HasPermissionsFunc): boolean {\n return !hasPermissions(PermissionName.StudentExperience);\n },\n\n showInteractivesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const interactiveCount = video.interactives?.data?.length || 0;\n\n return !!interactiveCount;\n },\n\n showResourcesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const resourceCount = (\n (video.resources?.data?.length || 0) +\n (video.links?.data?.length || 0)\n );\n\n return !!resourceCount;\n },\n\n canViewCurriculumLinks(hasPermissions: HasPermissionsFunc, video: VideoTypes): boolean {\n const canView = (\n hasPermissions(PermissionName.ViewCurriculums) &&\n hasPermissions(PermissionName.ManagePresentations)\n );\n\n if (!canView)\n return false;\n \n if (!video || !VideoHelper.isVideo(video))\n return false;\n\n return !!video._hasCurriculumLinks?.value;\n },\n\n getVideoProgress(video: Video): number {\n if (video?.lastProgressPoint)\n return video?.lastProgressPoint;\n\n // Use virtual assoc\n if (video?._videoProgress?.progress)\n return video?._videoProgress?.progress;\n\n return 0;\n },\n\n getThumbnail(video: VideoTypes): Thumbnail {\n if (!video)\n return null;\n\n if (VideoHelper.isVideo(video))\n return video.thumbnail;\n\n if (video?._thumbnail)\n return video._thumbnail;\n\n // Fallbacks for virtual assoc if needed\n if (VideoHelper.isClip(video))\n return video.thumbnail || video._parentVideo?.thumbnail;\n\n if (VideoHelper.isInteractive(video))\n return video._parentVideo?.thumbnail || video._parentClip?.thumbnail;\n },\n\n getDuration(video: VideoTypes): number {\n if (!video)\n return;\n\n if (VideoHelper.isVideo(video))\n return video.duration;\n\n if (VideoHelper.isInteractive(video)) {\n if (video._parentClip?.id)\n return (video._parentClip.endTime - video._parentClip.startTime) * 1000;\n\n if (video._parentVideo?.duration)\n return video._parentVideo.duration;\n }\n\n if (VideoHelper.isClip(video))\n return (video.endTime - video.startTime) * 1000;\n },\n\n getAnalyticsEntity(video: VideoTypes): EntityType {\n if (VideoHelper.isVideo(video))\n return EntityType.Video;\n\n if (VideoHelper.isInteractive(video))\n return EntityType.Interactive;\n\n if (VideoHelper.isClip(video))\n return EntityType.Clip;\n },\n\n getAnalyticsData(\n video: VideoTypes,\n extraAnalyticsData: HashObject = {}\n ): HashObject {\n if (VideoHelper.isVideo(video)) {\n return {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n }\n\n if (VideoHelper.isClip(video)) {\n const data: HashObject = {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n\n if (video._parentVideo?.id)\n data.video = { id: video._parentVideo?.id, name: video._parentVideo.name };\n\n return data;\n }\n\n const data: HashObject = {\n ...extraAnalyticsData,\n id: video.id,\n interactiveId: video.interactiveId,\n name: video.name,\n status: video.status,\n originType: video.originType\n };\n\n if (video?._parentClip?.id)\n data.clip = { id: video?._parentClip?.id, name: video?._parentClip.name };\n\n if (video?._parentVideo?.id)\n data.video = { id: video?._parentVideo?.id, name: video?._parentVideo.name };\n \n return data;\n },\n\n getCanBeConsumed(video: BaseObject): {\n canNavigate: boolean,\n canConsume: boolean,\n reason?: CanBeConsumedReason\n } {\n if (!video || !VideoHelper.isVideoType(video)) {\n return {\n canNavigate: false,\n canConsume: false\n };\n }\n\n if (video._canBeConsumed) {\n return {\n /**\n * Product navigation is enabled for \"login-required\" reason to support public access. \n * The video itself cannot be consumed, however, clients can allow users to browse the platform.\n * \n * Note: canNavigate is initially available for just videos. Interactives and Clips will be supported in Y2.\n */\n canNavigate: (video._canBeConsumed?.reason === 'login-required' && VideoHelper.isVideo(video)) || video._canBeConsumed.value === true,\n canConsume: video._canBeConsumed.value,\n reason: video._canBeConsumed?.reason\n };\n }\n\n /**\n * Many of the components shared between online and lite read this value.\n * Online doesn't fetch or care about this value, which means by this point it should\n * still be null. In this case, we just set it to true so that the components can render\n * as normal.\n */\n return {\n canNavigate: true,\n canConsume: true\n };\n },\n\n getPrivacyReasoning(video: VideoTypes, showSignIn: boolean = false): string {\n const { canConsume, canNavigate, reason } = VideoHelper.getCanBeConsumed(video);\n\n const getNoLongerAvailableText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipParentDeleted');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveParentDeleted');\n\n return getPhrase('videoDeleted');\n };\n\n const getLoginRequiredText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipLoginRequired');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveLoginRequired');\n\n return getPhrase('videoLoginRequired');\n };\n\n if (!canConsume && !canNavigate) {\n if (showSignIn)\n return getLoginRequiredText();\n\n switch (reason) {\n case 'rating-not-allowed': {\n return getPhrase('ratingNotAllowed');\n }\n\n case 'video-deleted': {\n return getNoLongerAvailableText();\n }\n\n case 'clickview-private': {\n return getPhrase('clickViewPrivate');\n }\n\n case 'private': {\n return getPhrase('genericCannotAccess');\n }\n\n case 'login-required': {\n return getLoginRequiredText();\n }\n\n case 'restricted-access': {\n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n\n if (restriction?.type === RestrictionType.Custom)\n return getPhrase('awaitingApproval');\n\n return getPhrase('restrictedAccess');\n }\n\n default: {\n return getPhrase('genericCannotAccess');\n }\n }\n }\n\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft)\n return getPhrase('draftInteractive');\n\n return '';\n },\n\n getTitle(video: VideoTypes): string {\n if (video.name) {\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft) {\n return getPhrase('draftInteractiveTitle', { name: video.name });\n }\n\n return video.name;\n }\n\n const { canConsume, reason } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume && reason === 'private')\n return getPhrase('privateVideo');\n\n if (!canConsume && reason === 'video-deleted')\n return getPhrase('videoUnavailable');\n\n return getPhrase('privateVideo');\n },\n\n getParentVideo(video: VideoTypes): Video | null {\n if (VideoHelper.isVideo(video))\n return video;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo;\n },\n\n getRating(video: VideoTypes): Rating | null {\n if (VideoHelper.isVideo(video))\n return video._rating?.value || video.rating;\n\n return video?._parentVideo?._rating?.value;\n },\n\n getVideoRequest(\n objectId: string,\n objectTypeId: MasterType,\n shareId?: string\n ): Flight.Request {\n if (shareId) {\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.sharedVideo(objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.sharedClip(objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.sharedInteractiveMetadata(objectId, shareId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n }\n\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.video(objectId);\n case MasterType.Clip:\n return ClipRequests.clip(objectId);\n case MasterType.Interactive:\n return InteractiveRequests.interactiveMetadata(objectId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n },\n\n isBroadcast(video: Video): boolean {\n return !!video?.contentLicences?.data?.some(l =>\n l.systemName === ContentLicenseType.Era ||\n l.systemName === ContentLicenseType.Screenrights);\n },\n\n isUgc(video: Video): boolean {\n // if video isn't broadcast and isn't curated by the ClickView team, chances are it's UGC\n return !VideoHelper.isBroadcast(video) && !video?._isClickViewCurated?.value;\n },\n\n getReleaseDate(video: Video): string {\n if (!video)\n return '';\n\n if (video.dateReleased && VideoHelper.isBroadcast(video))\n return DateHelper.format(video.dateReleased, 'DD/MM/YYYY');\n\n return '';\n },\n\n canViewOriginalVideo(video: Clip | InteractiveMetadata): boolean {\n return !!video?._parentVideo?._canBeConsumed?.value;\n },\n\n getTrackingCode(video: VideoTypes): string | undefined {\n if (VideoHelper.isVideo(video))\n return video.trackingCode;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo.trackingCode;\n },\n\n isInExchange(video: Video): boolean {\n return !!video?.libraries?.data?.some(l => l.typeId === MasterType.ExchangeCollection);\n },\n\n canViewUploadDate(video: Video): boolean {\n if (!video || !video.dateCreated)\n return false;\n\n if (!video._isClickViewCurated || video._isClickViewCurated.value)\n return false;\n\n return true;\n }\n};\n"],"names":["ContentLicenseType","ClipRequests","id","permissionFilterOption","UrlHelper","SharedWithStatements","parentId","cursor","shareId","success","error","PermissionFilterOption","videoId","data","always","HttpVerbs","InteractiveRequests","interactiveId","interactiveMetadataId","libraryId","categoryId","interaction","namespace","getPhrase","LanguageService","VideoHelper","obj","MasterType","CurationStatus","object","video","_a","hasPermissions","PermissionName","_b","_d","_c","EntityType","extraAnalyticsData","_e","_f","showSignIn","canConsume","canNavigate","reason","getNoLongerAvailableText","getLoginRequiredText","restriction","RestrictionHelper","RestrictionType","objectId","objectTypeId","VideoRequests","Core.ErrorHelper","DevError","l","DateHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D5FAzio3.chunk.js","sources":["../../../../libs/shared/src/enums/ContentLicenceType.ts","../../../../libs/shared/src/flight-requests/ClipRequests.ts","../../../../libs/shared/src/flight-requests/InteractiveRequests.ts","../../../../libs/shared/src/utils/VideoHelper.ts"],"sourcesContent":["export enum ContentLicenseType {\n Screenrights = 'screenrights',\n Era = 'era',\n ClickView = 'clickview'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { Clip, CreateOrUpdateClipRequest } from 'libs/shared/interfaces';\n\nexport const ClipRequests = {\n clip(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.CLIP,\n permissionFilterOption\n })\n };\n },\n\n videoClips(parentId: string, permissionFilterOption?: PermissionFilterOption, cursor?: string) {\n return {\n key: `video:${parentId}:clips:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/clips`, {\n query: SharedWithStatements.CLIP_COLLECTION,\n permissionFilterOption,\n cursor\n })\n };\n },\n\n clipWithAllInteractives(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n key: `clip:${id}:${permissionFilterOption}:interactives`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: `${SharedWithStatements.CLIP},interactives{status:[0,1]}`,\n permissionFilterOption\n }),\n normalize: false\n };\n },\n\n publicClip(\n id: string,\n shareId?: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `clip:${id}:public:${shareId}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo,_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n\n sharedClip(\n id: string,\n shareId: string,\n success?: (clip: Clip) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n key: `shared:clip:${id}`,\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.CLIP\n }),\n success,\n error\n };\n },\n\n createClip(\n videoId: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'create:clip',\n url: `{gateway}/v1/objects/${videoId}/clips`,\n data,\n type: HttpVerbs.POST,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos' ],\n success,\n error,\n always\n };\n },\n\n updateClip(\n id: string,\n data: CreateOrUpdateClipRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: 'update:clip',\n url: `{gateway}/v1/objects/${id}`,\n data,\n type: HttpVerbs.PUT,\n invalidationKeys: [`clip:${id}`],\n success,\n error,\n always\n };\n },\n\n deleteClip(\n id: string,\n videoId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n key: `delete:clip`,\n url: `{gateway}/v1/objects/${id}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `videos:${videoId}`, 'my:videos', 'videos' ],\n success,\n error,\n always\n };\n }\n};","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { SharedWithStatements } from 'libs/shared/constants/WithStatements';\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { CreateInteractiveMetadataRequest, CreateInteractiveRequest, EditInteractiveMetadataOriginRequest, EditInteractiveMetadataRequest, EditInteractiveRequest, Interaction, InteractiveMetadata } from 'libs/shared/interfaces';\n\nexport const InteractiveRequests = {\n interactiveMetadata(id: string, permissionFilterOption?: PermissionFilterOption): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, {\n query: SharedWithStatements.INTERACTIVE,\n permissionFilterOption\n }),\n key: `interactive:metadata:${id}:${permissionFilterOption}`\n };\n },\n\n videoInteractives(\n parentId: string,\n permissionFilterOption?: PermissionFilterOption,\n cursor?: string\n ): Flight.PublicRequest {\n return {\n key: `video:${parentId}:interactives:${permissionFilterOption}:${cursor}`,\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${parentId}/interactives`, {\n query: SharedWithStatements.INTERACTIVE_COLLECTION,\n cursor\n })\n };\n },\n\n sharedInteractiveMetadata(\n id: string,\n shareId: string,\n success?: (interactiveMetadata: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n shareId,\n query: SharedWithStatements.INTERACTIVE\n }),\n key: `shared:interactive:metadata:${id}`,\n success,\n error\n };\n },\n publicInteractiveMetadata(\n id: string,\n shareId?: string,\n success?: (interactive: InteractiveMetadata) => void,\n error?: (xhr: Xhr) => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/objects/${id}`, {\n // Query statement here is coupled with ClickView.Lite.Common\\Services\\OpenGraph\\OpenGraphService.cs\n // in lite. If you update this, please update both.\n query: '_parentVideo[_rating],_canBeConsumed,_thumbnail',\n permissionFilterOption: PermissionFilterOption.StripMetadata,\n shareId\n }),\n key: `interactive:metadata:${id}:public:${shareId}`,\n bootstrapName: `shared:object:${id}`,\n success,\n error\n };\n },\n interactive(id: string): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: `interactive:${id}`,\n normalize: false\n };\n },\n createInteractive(\n data: CreateInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: '/api/domain/v1/interactives',\n key: 'create:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: ['my:videos'],\n data,\n success,\n error\n };\n },\n createInteractiveMetadata(\n videoId: string,\n data: CreateInteractiveMetadataRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${videoId}/interactives`,\n key: 'create:interactive:metadata',\n type: HttpVerbs.POST,\n data,\n success,\n error\n };\n },\n updateInteractive(\n id: string,\n data: EditInteractiveRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${id}`,\n key: 'update:interactive',\n type: HttpVerbs.PUT,\n data,\n success,\n error,\n /* Update state because domain doesn't return the updated object */\n formatData: () => data,\n invalidationKeys: [`interactive:${id}`]\n };\n },\n updateInteractiveMetadata(\n id: string,\n data: EditInteractiveMetadataRequest | EditInteractiveMetadataOriginRequest,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: 'update:interactive:metadata',\n type: HttpVerbs.PUT,\n data,\n success,\n error\n };\n },\n interactiveResultSet(interactiveId: string, interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`\n };\n },\n copyInteractive(\n interactiveId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/interactives/${interactiveId}/copy`,\n key: 'copy:interactive',\n type: HttpVerbs.POST,\n invalidationKeys: [ `interactive:${interactiveId}`, 'my:videos' ],\n success,\n error\n };\n },\n deleteInteractiveMetadata(\n interactiveMetadataId: string,\n success?: (data: any) => void,\n error?: (data: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${interactiveMetadataId}`,\n key: 'delete:interactive',\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ],\n success,\n error\n };\n },\n removeInteractiveMetadata({\n libraryId,\n categoryId,\n interactiveMetadataId\n }: {\n libraryId: string;\n categoryId: string;\n interactiveMetadataId: string;\n }): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/domain/v1/libraries/${libraryId}/videos`, { categoryId, videoIds: interactiveMetadataId }),\n key: `remove:interactive:metadata:${interactiveMetadataId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [ `interactive:${interactiveMetadataId}`, 'my:videos', 'videos' ]\n };\n },\n contributeToCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.POST\n };\n },\n revokefromCommunity(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contribute`,\n key: 'contribute:interactive',\n type: HttpVerbs.DELETE\n };\n },\n isContributed(interactiveMetadataId: string): Flight.Request {\n return {\n url: `/api/domain/v2/interactives/${interactiveMetadataId}/contributed`,\n key: `iscontributed:${interactiveMetadataId}`,\n normalize: false\n };\n },\n updateInteraction(interaction: Interaction) {\n return {\n url: `/api/domain/v1/interactions/bulk/${interaction.id}`,\n key: 'contribute:interactive',\n data: interaction,\n type: HttpVerbs.PUT,\n invalidationKeys: [`interactive:${interaction.interactiveId}`]\n };\n }\n};\n","import { DevError } from 'libs/common/backbone/errors/DevError';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { EntityType } from 'libs/analytics/interfaces';\n\nimport { ContentLicenseType } from 'libs/shared/enums/ContentLicenceType';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { BaseObject, CanBeConsumedReason, Clip, InteractiveMetadata, Rating, Thumbnail, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\n\nimport { PermissionName } from '../enums/PermissionName';\nimport { HasPermissionsFunc } from '../hooks/usePermissions';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const VideoHelper = {\n isVideo(obj: BaseObject): obj is Video {\n return obj?.typeId === MasterType.Video;\n },\n\n isClip(obj: BaseObject): obj is Clip {\n return obj?.typeId === MasterType.Clip;\n },\n\n isInteractive(obj: BaseObject): obj is InteractiveMetadata {\n return obj?.typeId === MasterType.Interactive;\n },\n\n isVideoTypeArchived(obj: VideoTypes): boolean {\n return obj?.status === CurationStatus.Archived;\n },\n\n /**\n * Returns true of the object is a video, clip or interactive\n */\n isVideoType(object: BaseObject): object is Video | Clip | InteractiveMetadata {\n return VideoHelper.isVideo(object) || VideoHelper.isInteractive(object) || VideoHelper.isClip(object);\n },\n\n hasSeries(video: Video): boolean {\n return !!video?.series?.id;\n },\n\n showVideoGuidance(hasPermissions: HasPermissionsFunc): boolean {\n return !hasPermissions(PermissionName.StudentExperience);\n },\n\n showInteractivesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const interactiveCount = video.interactives?.data?.length || 0;\n\n return !!interactiveCount;\n },\n\n showResourcesGuidance(video: VideoTypes): boolean {\n if (!video || VideoHelper.isInteractive(video))\n return false;\n\n const resourceCount = (\n (video.resources?.data?.length || 0) +\n (video.links?.data?.length || 0)\n );\n\n return !!resourceCount;\n },\n\n canViewCurriculumLinks(hasPermissions: HasPermissionsFunc, video: VideoTypes): boolean {\n const canView = (\n hasPermissions(PermissionName.ViewCurriculums) &&\n hasPermissions(PermissionName.ManagePresentations)\n );\n\n if (!canView)\n return false;\n \n if (!video || !VideoHelper.isVideo(video))\n return false;\n\n return !!video._hasCurriculumLinks?.value;\n },\n\n getVideoProgress(video: Video): number {\n if (video?.lastProgressPoint)\n return video?.lastProgressPoint;\n\n // Use virtual assoc\n if (video?._videoProgress?.progress)\n return video?._videoProgress?.progress;\n\n return 0;\n },\n\n getThumbnail(video: VideoTypes): Thumbnail {\n if (!video)\n return null;\n\n if (VideoHelper.isVideo(video))\n return video.thumbnail;\n\n if (video?._thumbnail)\n return video._thumbnail;\n\n // Fallbacks for virtual assoc if needed\n if (VideoHelper.isClip(video))\n return video.thumbnail || video._parentVideo?.thumbnail;\n\n if (VideoHelper.isInteractive(video))\n return video._parentVideo?.thumbnail || video._parentClip?.thumbnail;\n },\n\n getDuration(video: VideoTypes): number {\n if (!video)\n return;\n\n if (VideoHelper.isVideo(video))\n return video.duration;\n\n if (VideoHelper.isInteractive(video)) {\n if (video._parentClip?.id)\n return (video._parentClip.endTime - video._parentClip.startTime) * 1000;\n\n if (video._parentVideo?.duration)\n return video._parentVideo.duration;\n }\n\n if (VideoHelper.isClip(video))\n return (video.endTime - video.startTime) * 1000;\n },\n\n getAnalyticsEntity(video: VideoTypes): EntityType {\n if (VideoHelper.isVideo(video))\n return EntityType.Video;\n\n if (VideoHelper.isInteractive(video))\n return EntityType.Interactive;\n\n if (VideoHelper.isClip(video))\n return EntityType.Clip;\n },\n\n getAnalyticsData(\n video: VideoTypes,\n extraAnalyticsData: HashObject = {}\n ): HashObject {\n if (VideoHelper.isVideo(video)) {\n return {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n }\n\n if (VideoHelper.isClip(video)) {\n const data: HashObject = {\n ...(extraAnalyticsData || {}),\n id: video.id,\n name: video.name\n };\n\n if (video._parentVideo?.id)\n data.video = { id: video._parentVideo?.id, name: video._parentVideo.name };\n\n return data;\n }\n\n const data: HashObject = {\n ...extraAnalyticsData,\n id: video.id,\n interactiveId: video.interactiveId,\n name: video.name,\n status: video.status,\n originType: video.originType\n };\n\n if (video?._parentClip?.id)\n data.clip = { id: video?._parentClip?.id, name: video?._parentClip.name };\n\n if (video?._parentVideo?.id)\n data.video = { id: video?._parentVideo?.id, name: video?._parentVideo.name };\n \n return data;\n },\n\n getCanBeConsumed(video: BaseObject): {\n canNavigate: boolean,\n canConsume: boolean,\n reason?: CanBeConsumedReason\n } {\n if (!video || !VideoHelper.isVideoType(video)) {\n return {\n canNavigate: false,\n canConsume: false\n };\n }\n\n if (video._canBeConsumed) {\n return {\n /**\n * Product navigation is enabled for \"login-required\" reason to support public access. \n * The video itself cannot be consumed, however, clients can allow users to browse the platform.\n * \n * Note: canNavigate is initially available for just videos. Interactives and Clips will be supported in Y2.\n */\n canNavigate: (video._canBeConsumed?.reason === 'login-required' && VideoHelper.isVideo(video)) || video._canBeConsumed.value === true,\n canConsume: video._canBeConsumed.value,\n reason: video._canBeConsumed?.reason\n };\n }\n\n /**\n * Many of the components shared between online and lite read this value.\n * Online doesn't fetch or care about this value, which means by this point it should\n * still be null. In this case, we just set it to true so that the components can render\n * as normal.\n */\n return {\n canNavigate: true,\n canConsume: true\n };\n },\n\n getPrivacyReasoning(video: VideoTypes, showSignIn: boolean = false): string {\n const { canConsume, canNavigate, reason } = VideoHelper.getCanBeConsumed(video);\n\n const getNoLongerAvailableText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipParentDeleted');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveParentDeleted');\n\n return getPhrase('videoDeleted');\n };\n\n const getLoginRequiredText = () => {\n if (VideoHelper.isClip(video))\n return getPhrase('clipLoginRequired');\n\n if (VideoHelper.isInteractive(video))\n return getPhrase('interactiveLoginRequired');\n\n return getPhrase('videoLoginRequired');\n };\n\n if (!canConsume && !canNavigate) {\n if (showSignIn)\n return getLoginRequiredText();\n\n switch (reason) {\n case 'rating-not-allowed': {\n return getPhrase('ratingNotAllowed');\n }\n\n case 'video-deleted': {\n return getNoLongerAvailableText();\n }\n\n case 'clickview-private': {\n return getPhrase('clickViewPrivate');\n }\n\n case 'private': {\n return getPhrase('genericCannotAccess');\n }\n\n case 'login-required': {\n return getLoginRequiredText();\n }\n\n case 'restricted-access': {\n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n\n if (restriction?.type === RestrictionType.Custom)\n return getPhrase('awaitingApproval');\n\n return getPhrase('restrictedAccess');\n }\n\n default: {\n return getPhrase('genericCannotAccess');\n }\n }\n }\n\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft)\n return getPhrase('draftInteractive');\n\n return '';\n },\n\n getTitle(video: VideoTypes): string {\n if (video.name) {\n if (VideoHelper.isInteractive(video) && video.status === CurationStatus.Draft) {\n return getPhrase('draftInteractiveTitle', { name: video.name });\n }\n\n return video.name;\n }\n\n const { canConsume, reason } = VideoHelper.getCanBeConsumed(video);\n\n if (!canConsume && reason === 'private')\n return getPhrase('privateVideo');\n\n if (!canConsume && reason === 'video-deleted')\n return getPhrase('videoUnavailable');\n\n return getPhrase('privateVideo');\n },\n\n getParentVideo(video: VideoTypes): Video | null {\n if (VideoHelper.isVideo(video))\n return video;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo;\n },\n\n getRating(video: VideoTypes): Rating | null {\n if (VideoHelper.isVideo(video))\n return video._rating?.value || video.rating;\n\n return video?._parentVideo?._rating?.value;\n },\n\n getVideoRequest(\n objectId: string,\n objectTypeId: MasterType,\n shareId?: string\n ): Flight.Request {\n if (shareId) {\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.sharedVideo(objectId, shareId);\n case MasterType.Clip:\n return ClipRequests.sharedClip(objectId, shareId);\n case MasterType.Interactive:\n return InteractiveRequests.sharedInteractiveMetadata(objectId, shareId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n }\n\n switch (objectTypeId) {\n case MasterType.Video:\n return VideoRequests.video(objectId);\n case MasterType.Clip:\n return ClipRequests.clip(objectId);\n case MasterType.Interactive:\n return InteractiveRequests.interactiveMetadata(objectId);\n }\n\n Core.ErrorHelper.throw(new DevError('Unsupported master type'));\n },\n\n isBroadcast(video: Video): boolean {\n return !!video?.contentLicences?.data?.some(l =>\n l.systemName === ContentLicenseType.Era ||\n l.systemName === ContentLicenseType.Screenrights);\n },\n\n isUgc(video: Video): boolean {\n // if video isn't broadcast and isn't curated by the ClickView team, chances are it's UGC\n return !VideoHelper.isBroadcast(video) && !video?._isClickViewCurated?.value;\n },\n\n getReleaseDate(video: Video): string {\n if (!video)\n return '';\n\n if (video.dateReleased && VideoHelper.isBroadcast(video))\n return DateHelper.format(video.dateReleased, 'DD/MM/YYYY');\n\n return '';\n },\n\n canViewOriginalVideo(video: Clip | InteractiveMetadata): boolean {\n return !!video?._parentVideo?._canBeConsumed?.value;\n },\n\n getTrackingCode(video: VideoTypes): string | undefined {\n if (VideoHelper.isVideo(video))\n return video.trackingCode;\n\n if (VideoHelper.isClip(video) || VideoHelper.isInteractive(video))\n return video._parentVideo.trackingCode;\n },\n\n isInExchange(video: Video): boolean {\n return !!video?.libraries?.data?.some(l => l.typeId === MasterType.ExchangeCollection);\n },\n\n canViewUploadDate(video: Video): boolean {\n if (!video || !video.dateCreated)\n return false;\n\n if (!video._isClickViewCurated || video._isClickViewCurated.value)\n return false;\n\n return true;\n }\n};\n"],"names":["ContentLicenseType","ClipRequests","id","permissionFilterOption","UrlHelper","SharedWithStatements","parentId","cursor","shareId","success","error","PermissionFilterOption","videoId","data","always","HttpVerbs","InteractiveRequests","interactiveId","interactiveMetadataId","libraryId","categoryId","interaction","namespace","getPhrase","LanguageService","VideoHelper","obj","MasterType","CurationStatus","object","video","_a","hasPermissions","PermissionName","_b","_d","_c","EntityType","extraAnalyticsData","_e","_f","showSignIn","canConsume","canNavigate","reason","getNoLongerAvailableText","getLoginRequiredText","restriction","RestrictionHelper","RestrictionType","objectId","objectTypeId","VideoRequests","Core.ErrorHelper","DevError","l","DateHelper"],"mappings":"0QAAO,IAAKA,GAAAA,IACVA,EAAA,aAAe,eACfA,EAAA,IAAM,MACNA,EAAA,UAAY,YAHFA,IAAAA,GAAA,CAAA,CAAA,ECSL,MAAMC,EAAe,CAC1B,KAAKC,EAAYC,EAAiE,CAChF,MAAO,CACL,IAAK,QAAQD,CAAE,IAAIC,CAAsB,GACzC,IAAKC,EAAU,WAAW,wBAAwBF,CAAE,GAAI,CACtD,MAAOG,EAAqB,KAC5B,uBAAAF,CAAA,CACD,CAAA,CAEL,EAEA,WAAWG,EAAkBH,EAAiDI,EAAiB,CAC7F,MAAO,CACL,IAAK,SAASD,CAAQ,UAAUH,CAAsB,IAAII,CAAM,GAChE,IAAKH,EAAU,WAAW,wBAAwBE,CAAQ,SAAU,CAClE,MAAOD,EAAqB,gBAC5B,uBAAAF,EACA,OAAAI,CAAA,CACD,CAAA,CAEL,EAEA,wBAAwBL,EAAYC,EAAiE,CACnG,MAAO,CACL,IAAK,QAAQD,CAAE,IAAIC,CAAsB,gBACzC,IAAKC,EAAU,WAAW,wBAAwBF,CAAE,GAAI,CACtD,MAAO,GAAGG,EAAqB,IAAI,8BACnC,uBAAAF,CAAA,CACD,EACD,UAAW,EAAA,CAEf,EAEA,WACED,EACAM,EACAC,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,QAAQR,CAAE,WAAWM,CAAO,GACjC,IAAKJ,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CAG9C,MAAO,yCACP,uBAAwBS,EAAuB,cAC/C,QAAAH,CAAA,CACD,EACD,cAAe,iBAAiBN,CAAE,GAClC,QAAAO,EACA,MAAAC,CAAA,CAEJ,EAEA,WACER,EACAM,EACAC,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,eAAeR,CAAE,GACtB,IAAKE,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CAC9C,QAAAM,EACA,MAAOH,EAAqB,IAAA,CAC7B,EACD,QAAAI,EACA,MAAAC,CAAA,CAEJ,EAEA,WACEE,EACAC,EACAJ,EACAC,EACAI,EACgB,CAChB,MAAO,CACL,IAAK,cACL,IAAK,wBAAwBF,CAAO,SACpC,KAAAC,EACA,KAAME,EAAU,KAChB,iBAAkB,CAAE,UAAUH,CAAO,GAAI,WAAY,EACrD,QAAAH,EACA,MAAAC,EACA,OAAAI,CAAA,CAEJ,EAEA,WACEZ,EACAW,EACAJ,EACAC,EACAI,EACgB,CAChB,MAAO,CACL,IAAK,cACL,IAAK,wBAAwBZ,CAAE,GAC/B,KAAAW,EACA,KAAME,EAAU,IAChB,iBAAkB,CAAC,QAAQb,CAAE,EAAE,EAC/B,QAAAO,EACA,MAAAC,EACA,OAAAI,CAAA,CAEJ,EAEA,WACEZ,EACAU,EACAH,EACAC,EACAI,EACgB,CAChB,MAAO,CACL,IAAK,cACL,IAAK,wBAAwBZ,CAAE,GAC/B,KAAMa,EAAU,OAChB,iBAAkB,CAAE,UAAUH,CAAO,GAAI,YAAa,QAAS,EAC/D,QAAAH,EACA,MAAAC,EACA,OAAAI,CAAA,CAEJ,CACF,EC9HaE,EAAsB,CACjC,oBAAoBd,EAAYC,EAAiE,CAC/F,MAAO,CACL,IAAKC,EAAU,WAAW,wBAAwBF,CAAE,GAAI,CACtD,MAAOG,EAAqB,YAC5B,uBAAAF,CAAA,CACD,EACD,IAAK,wBAAwBD,CAAE,IAAIC,CAAsB,EAAA,CAE7D,EAEA,kBACEG,EACAH,EACAI,EACsB,CACtB,MAAO,CACL,IAAK,SAASD,CAAQ,iBAAiBH,CAAsB,IAAII,CAAM,GACvE,IAAKH,EAAU,WAAW,wBAAwBE,CAAQ,gBAAiB,CACzE,MAAOD,EAAqB,uBAC5B,OAAAE,CAAA,CACD,EACD,UAAWH,EAAU,WAAW,gBAAgBE,CAAQ,gBAAiB,CACvE,MAAOD,EAAqB,uBAC5B,OAAAE,CAAA,CACD,CAAA,CAEL,EAEA,0BACEL,EACAM,EACAC,EACAC,EACgB,CAChB,MAAO,CACL,IAAKN,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CAC9C,QAAAM,EACA,MAAOH,EAAqB,WAAA,CAC7B,EACD,IAAK,+BAA+BH,CAAE,GACtC,QAAAO,EACA,MAAAC,CAAA,CAEJ,EACA,0BACER,EACAM,EACAC,EACAC,EACgB,CAChB,MAAO,CACL,IAAKN,EAAU,WAAW,gBAAgBF,CAAE,GAAI,CAG9C,MAAO,kDACP,uBAAwBS,EAAuB,cAC/C,QAAAH,CAAA,CACD,EACD,IAAK,wBAAwBN,CAAE,WAAWM,CAAO,GACjD,cAAe,iBAAiBN,CAAE,GAClC,QAAAO,EACA,MAAAC,CAAA,CAEJ,EACA,YAAYR,EAA4B,CACtC,MAAO,CACL,IAAK,+BAA+BA,CAAE,GACtC,IAAK,eAAeA,CAAE,GACtB,UAAW,EAAA,CAEf,EACA,kBACEW,EACAJ,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,8BACL,IAAK,qBACL,KAAMK,EAAU,KAChB,iBAAkB,CAAC,WAAW,EAC9B,KAAAF,EACA,QAAAJ,EACA,MAAAC,CAAA,CAEJ,EACA,0BACEE,EACAC,EACAJ,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,wBAAwBE,CAAO,gBACpC,IAAK,8BACL,KAAMG,EAAU,KAChB,KAAAF,EACA,QAAAJ,EACA,MAAAC,CAAA,CAEJ,EACA,kBACER,EACAW,EACAJ,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,+BAA+BR,CAAE,GACtC,IAAK,qBACL,KAAMa,EAAU,IAChB,KAAAF,EACA,QAAAJ,EACA,MAAAC,EAEA,WAAY,IAAMG,EAClB,iBAAkB,CAAC,eAAeX,CAAE,EAAE,CAAA,CAE1C,EACA,0BACEA,EACAW,EACAJ,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,wBAAwBR,CAAE,GAC/B,IAAK,8BACL,KAAMa,EAAU,IAChB,KAAAF,EACA,QAAAJ,EACA,MAAAC,CAAA,CAEJ,EACA,qBAAqBO,EAAuBC,EAA+C,CACzF,MAAO,CACL,IAAK,yCAAyCD,CAAa,aAAaC,CAAqB,GAC7F,IAAK,0BAA0BD,CAAa,IAAIC,CAAqB,EAAA,CAEzE,EACA,gBACED,EACAR,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,+BAA+BO,CAAa,QACjD,IAAK,mBACL,KAAMF,EAAU,KAChB,iBAAkB,CAAE,eAAeE,CAAa,GAAI,WAAY,EAChE,QAAAR,EACA,MAAAC,CAAA,CAEJ,EACA,0BACEQ,EACAT,EACAC,EACgB,CAChB,MAAO,CACL,IAAK,wBAAwBQ,CAAqB,GAClD,IAAK,qBACL,KAAMH,EAAU,OAChB,iBAAkB,CAAE,eAAeG,CAAqB,GAAI,YAAa,QAAS,EAClF,QAAAT,EACA,MAAAC,CAAA,CAEJ,EACA,0BAA0B,CACxB,UAAAS,EACA,WAAAC,EACA,sBAAAF,CAAA,EAKiB,CACjB,MAAO,CACL,IAAKd,EAAU,WAAW,4BAA4Be,CAAS,UAAW,CAAE,WAAAC,EAAY,SAAUF,CAAA,CAAuB,EACzH,IAAK,+BAA+BA,CAAqB,GACzD,KAAMH,EAAU,OAChB,iBAAkB,CAAE,eAAeG,CAAqB,GAAI,YAAa,QAAS,CAAA,CAEtF,EACA,sBAAsBA,EAA+C,CACnE,MAAO,CACL,IAAK,+BAA+BA,CAAqB,cACzD,IAAK,yBACL,KAAMH,EAAU,IAAA,CAEpB,EACA,oBAAoBG,EAA+C,CACjE,MAAO,CACL,IAAK,+BAA+BA,CAAqB,cACzD,IAAK,yBACL,KAAMH,EAAU,MAAA,CAEpB,EACA,cAAcG,EAA+C,CAC3D,MAAO,CACL,IAAK,+BAA+BA,CAAqB,eACzD,IAAK,iBAAiBA,CAAqB,GAC3C,UAAW,EAAA,CAEf,EACA,kBAAkBG,EAA0B,CAC1C,MAAO,CACL,IAAK,oCAAoCA,EAAY,EAAE,GACvD,IAAK,yBACL,KAAMA,EACN,KAAMN,EAAU,IAChB,iBAAkB,CAAC,eAAeM,EAAY,aAAa,EAAE,CAAA,CAEjE,CACF,EC1MMC,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAE/CG,EAAc,CACzB,QAAQC,EAA+B,CACrC,OAAOA,GAAA,YAAAA,EAAK,UAAWC,EAAW,KACpC,EAEA,OAAOD,EAA8B,CACnC,OAAOA,GAAA,YAAAA,EAAK,UAAWC,EAAW,IACpC,EAEA,cAAcD,EAA6C,CACzD,OAAOA,GAAA,YAAAA,EAAK,UAAWC,EAAW,WACpC,EAEA,oBAAoBD,EAA0B,CAC5C,OAAOA,GAAA,YAAAA,EAAK,UAAWE,EAAe,QACxC,EAKA,YAAYC,EAAkE,CAC5E,OAAOJ,EAAY,QAAQI,CAAM,GAAKJ,EAAY,cAAcI,CAAM,GAAKJ,EAAY,OAAOI,CAAM,CACtG,EAEA,UAAUC,EAAuB,OAC/B,MAAO,CAAC,GAACC,EAAAD,GAAA,YAAAA,EAAO,SAAP,MAAAC,EAAe,GAC1B,EAEA,kBAAkBC,EAA6C,CAC7D,MAAO,CAACA,EAAeC,EAAe,iBAAiB,CACzD,EAEA,yBAAyBH,EAA4B,SACnD,MAAI,CAACA,GAASL,EAAY,cAAcK,CAAK,EACpC,GAIF,CAAC,IAFiBI,GAAAH,EAAAD,EAAM,eAAN,YAAAC,EAAoB,OAApB,YAAAG,EAA0B,SAAU,EAG/D,EAEA,sBAAsBJ,EAA4B,aAChD,MAAI,CAACA,GAASL,EAAY,cAAcK,CAAK,EACpC,GAOF,CAAC,KAJLI,GAAAH,EAAAD,EAAM,YAAN,YAAAC,EAAiB,OAAjB,YAAAG,EAAuB,SAAU,MACjCC,GAAAC,EAAAN,EAAM,QAAN,YAAAM,EAAa,OAAb,YAAAD,EAAmB,SAAU,GAIlC,EAEA,uBAAuBH,EAAoCF,EAA4B,OASrF,MAHI,EAJFE,EAAeC,EAAe,eAAe,GAC7CD,EAAeC,EAAe,mBAAmB,IAM/C,CAACH,GAAS,CAACL,EAAY,QAAQK,CAAK,EAC/B,GAEF,CAAC,GAACC,EAAAD,EAAM,sBAAN,MAAAC,EAA2B,MACtC,EAEA,iBAAiBD,EAAsB,SACrC,OAAIA,GAAA,MAAAA,EAAO,kBACFA,GAAA,YAAAA,EAAO,mBAGZC,EAAAD,GAAA,YAAAA,EAAO,iBAAP,MAAAC,EAAuB,UAClBG,EAAAJ,GAAA,YAAAA,EAAO,iBAAP,YAAAI,EAAuB,SAEzB,CACT,EAEA,aAAaJ,EAA8B,WACzC,GAAI,CAACA,EACH,OAAO,KAET,GAAIL,EAAY,QAAQK,CAAK,EAC3B,OAAOA,EAAM,UAEf,GAAIA,GAAA,MAAAA,EAAO,WACT,OAAOA,EAAM,WAGf,GAAIL,EAAY,OAAOK,CAAK,EAC1B,OAAOA,EAAM,aAAaC,EAAAD,EAAM,eAAN,YAAAC,EAAoB,WAEhD,GAAIN,EAAY,cAAcK,CAAK,EACjC,QAAOI,EAAAJ,EAAM,eAAN,YAAAI,EAAoB,cAAaE,EAAAN,EAAM,cAAN,YAAAM,EAAmB,UAC/D,EAEA,YAAYN,EAA2B,SACrC,GAAKA,EAGL,IAAIL,EAAY,QAAQK,CAAK,EAC3B,OAAOA,EAAM,SAEf,GAAIL,EAAY,cAAcK,CAAK,EAAG,CACpC,IAAIC,EAAAD,EAAM,cAAN,MAAAC,EAAmB,GACrB,OAAQD,EAAM,YAAY,QAAUA,EAAM,YAAY,WAAa,IAErE,IAAII,EAAAJ,EAAM,eAAN,MAAAI,EAAoB,SACtB,OAAOJ,EAAM,aAAa,QAC9B,CAEA,GAAIL,EAAY,OAAOK,CAAK,EAC1B,OAAQA,EAAM,QAAUA,EAAM,WAAa,IAC/C,EAEA,mBAAmBA,EAA+B,CAChD,GAAIL,EAAY,QAAQK,CAAK,EAC3B,OAAOO,EAAW,MAEpB,GAAIZ,EAAY,cAAcK,CAAK,EACjC,OAAOO,EAAW,YAEpB,GAAIZ,EAAY,OAAOK,CAAK,EAC1B,OAAOO,EAAW,IACtB,EAEA,iBACEP,EACAQ,EAAiC,GACrB,iBACZ,GAAIb,EAAY,QAAQK,CAAK,EAC3B,MAAO,CACL,GAAIQ,GAAsB,CAAA,EAC1B,GAAIR,EAAM,GACV,KAAMA,EAAM,IAAA,EAIhB,GAAIL,EAAY,OAAOK,CAAK,EAAG,CAC7B,MAAMjB,EAAmB,CACvB,GAAIyB,GAAsB,CAAA,EAC1B,GAAIR,EAAM,GACV,KAAMA,EAAM,IAAA,EAGd,OAAIC,EAAAD,EAAM,eAAN,MAAAC,EAAoB,KACtBlB,EAAK,MAAQ,CAAE,IAAIqB,EAAAJ,EAAM,eAAN,YAAAI,EAAoB,GAAI,KAAMJ,EAAM,aAAa,IAAA,GAE/DjB,CACT,CAEA,MAAMA,EAAmB,CACvB,GAAGyB,EACH,GAAIR,EAAM,GACV,cAAeA,EAAM,cACrB,KAAMA,EAAM,KACZ,OAAQA,EAAM,OACd,WAAYA,EAAM,UAAA,EAGpB,OAAIM,EAAAN,GAAA,YAAAA,EAAO,cAAP,MAAAM,EAAoB,KACtBvB,EAAK,KAAO,CAAE,IAAIsB,EAAAL,GAAA,YAAAA,EAAO,cAAP,YAAAK,EAAoB,GAAI,KAAML,GAAA,YAAAA,EAAO,YAAY,IAAA,IAEjES,EAAAT,GAAA,YAAAA,EAAO,eAAP,MAAAS,EAAqB,KACvB1B,EAAK,MAAQ,CAAE,IAAI2B,EAAAV,GAAA,YAAAA,EAAO,eAAP,YAAAU,EAAqB,GAAI,KAAMV,GAAA,YAAAA,EAAO,aAAa,IAAA,GAEjEjB,CACT,EAEA,iBAAiBiB,EAIf,SACA,MAAI,CAACA,GAAS,CAACL,EAAY,YAAYK,CAAK,EACnC,CACL,YAAa,GACb,WAAY,EAAA,EAIZA,EAAM,eACD,CAOL,cAAcC,EAAAD,EAAM,iBAAN,YAAAC,EAAsB,UAAW,kBAAoBN,EAAY,QAAQK,CAAK,GAAMA,EAAM,eAAe,QAAU,GACjI,WAAYA,EAAM,eAAe,MACjC,QAAQI,EAAAJ,EAAM,iBAAN,YAAAI,EAAsB,MAAA,EAU3B,CACL,YAAa,GACb,WAAY,EAAA,CAEhB,EAEA,oBAAoBJ,EAAmBW,EAAsB,GAAe,OAC1E,KAAM,CAAE,WAAAC,EAAY,YAAAC,EAAa,OAAAC,GAAWnB,EAAY,iBAAiBK,CAAK,EAExEe,EAA2B,IAC3BpB,EAAY,OAAOK,CAAK,EACnBP,EAAU,mBAAmB,EAElCE,EAAY,cAAcK,CAAK,EAC1BP,EAAU,0BAA0B,EAEtCA,EAAU,cAAc,EAG3BuB,EAAuB,IACvBrB,EAAY,OAAOK,CAAK,EACnBP,EAAU,mBAAmB,EAElCE,EAAY,cAAcK,CAAK,EAC1BP,EAAU,0BAA0B,EAEtCA,EAAU,oBAAoB,EAGvC,GAAI,CAACmB,GAAc,CAACC,EAAa,CAC/B,GAAIF,EACF,OAAOK,EAAA,EAET,OAAQF,EAAA,CACN,IAAK,qBACH,OAAOrB,EAAU,kBAAkB,EAGrC,IAAK,gBACH,OAAOsB,EAAA,EAGT,IAAK,oBACH,OAAOtB,EAAU,kBAAkB,EAGrC,IAAK,UACH,OAAOA,EAAU,qBAAqB,EAGxC,IAAK,iBACH,OAAOuB,EAAA,EAGT,IAAK,oBAAqB,CACxB,MAAMC,EAAcC,EAAkB,wBAAuBjB,EAAAD,EAAM,gBAAN,YAAAC,EAAqB,KAAK,EAEvF,OAAIgB,GAAA,YAAAA,EAAa,QAASE,EAAgB,OACjC1B,EAAU,kBAAkB,EAE9BA,EAAU,kBAAkB,CACrC,CAEA,QACE,OAAOA,EAAU,qBAAqB,CACxC,CAEJ,CAEA,OAAIE,EAAY,cAAcK,CAAK,GAAKA,EAAM,SAAWF,EAAe,MAC/DL,EAAU,kBAAkB,EAE9B,EACT,EAEA,SAASO,EAA2B,CAClC,GAAIA,EAAM,KACR,OAAIL,EAAY,cAAcK,CAAK,GAAKA,EAAM,SAAWF,EAAe,MAC/DL,EAAU,wBAAyB,CAAE,KAAMO,EAAM,KAAM,EAGzDA,EAAM,KAGf,KAAM,CAAE,WAAAY,EAAY,OAAAE,CAAA,EAAWnB,EAAY,iBAAiBK,CAAK,EAEjE,OACSP,EADL,CAACmB,GAAcE,IAAW,UACX,eAEf,CAACF,GAAcE,IAAW,gBACX,mBAEF,cALgB,CAMnC,EAEA,eAAed,EAAiC,CAC9C,GAAIL,EAAY,QAAQK,CAAK,EAC3B,OAAOA,EAET,GAAIL,EAAY,OAAOK,CAAK,GAAKL,EAAY,cAAcK,CAAK,EAC9D,OAAOA,EAAM,YACjB,EAEA,UAAUA,EAAkC,WAC1C,OAAIL,EAAY,QAAQK,CAAK,IACpBC,EAAAD,EAAM,UAAN,YAAAC,EAAe,QAASD,EAAM,QAEhCM,GAAAF,EAAAJ,GAAA,YAAAA,EAAO,eAAP,YAAAI,EAAqB,UAArB,YAAAE,EAA8B,KACvC,EAEA,gBACEc,EACAC,EACA3C,EACgB,CAChB,GAAIA,EAAS,CACX,OAAQ2C,EAAA,CACN,KAAKxB,EAAW,MACd,OAAOyB,EAAc,YAAYF,EAAU1C,CAAO,EACpD,KAAKmB,EAAW,KACd,OAAO1B,EAAa,WAAWiD,EAAU1C,CAAO,EAClD,KAAKmB,EAAW,YACd,OAAOX,EAAoB,0BAA0BkC,EAAU1C,CAAO,CAAA,CAG1E6C,EAAiB,MAAM,IAAIC,EAAS,yBAAyB,CAAC,CAChE,CAEA,OAAQH,EAAA,CACN,KAAKxB,EAAW,MACd,OAAOyB,EAAc,MAAMF,CAAQ,EACrC,KAAKvB,EAAW,KACd,OAAO1B,EAAa,KAAKiD,CAAQ,EACnC,KAAKvB,EAAW,YACd,OAAOX,EAAoB,oBAAoBkC,CAAQ,CAAA,CAG3DG,EAAiB,MAAM,IAAIC,EAAS,yBAAyB,CAAC,CAChE,EAEA,YAAYxB,EAAuB,SACjC,MAAO,CAAC,GAACI,GAAAH,EAAAD,GAAA,YAAAA,EAAO,kBAAP,YAAAC,EAAwB,OAAxB,MAAAG,EAA8B,KAAKqB,GAC1CA,EAAE,aAAevD,EAAmB,KACpCuD,EAAE,aAAevD,EAAmB,cACxC,EAEA,MAAM8B,EAAuB,OAE3B,MAAO,CAACL,EAAY,YAAYK,CAAK,GAAK,GAACC,EAAAD,GAAA,YAAAA,EAAO,sBAAP,MAAAC,EAA4B,MACzE,EAEA,eAAeD,EAAsB,CACnC,OAAKA,GAGDA,EAAM,cAAgBL,EAAY,YAAYK,CAAK,EAC9C0B,EAAW,OAAO1B,EAAM,aAAc,YAAY,EAHlD,EAMX,EAEA,qBAAqBA,EAA4C,SAC/D,MAAO,CAAC,GAACI,GAAAH,EAAAD,GAAA,YAAAA,EAAO,eAAP,YAAAC,EAAqB,iBAArB,MAAAG,EAAqC,MAChD,EAEA,gBAAgBJ,EAAuC,CACrD,GAAIL,EAAY,QAAQK,CAAK,EAC3B,OAAOA,EAAM,aAEf,GAAIL,EAAY,OAAOK,CAAK,GAAKL,EAAY,cAAcK,CAAK,EAC9D,OAAOA,EAAM,aAAa,YAC9B,EAEA,aAAaA,EAAuB,SAClC,MAAO,CAAC,GAACI,GAAAH,EAAAD,GAAA,YAAAA,EAAO,YAAP,YAAAC,EAAkB,OAAlB,MAAAG,EAAwB,KAAKqB,GAAKA,EAAE,SAAW5B,EAAW,oBACrE,EAEA,kBAAkBG,EAAuB,CAIvC,MAHI,GAACA,GAAS,CAACA,EAAM,aAGjB,CAACA,EAAM,qBAAuBA,EAAM,oBAAoB,MAI9D,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as t,W as I,ad as O,ae as H,af as B,A as $,c as W,R as N,aB as L,aq as V,a as T,b as x,a3 as p,u as G,aT as Y,l as F,L as q,aD as K}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as t,W as I,ad as O,ae as H,af as B,A as $,c as W,R as N,aB as L,aq as V,a as T,b as x,a3 as p,u as G,aT as Y,l as F,L as q,aD as K}from"./app-CShb1Dgt.js";import{P as Z}from"./2GC-PPDy.chunk.js";import{h as z}from"./CcHhPXQX.chunk.js";import{u as X}from"./baur_fn0.chunk.js";import{P as _,A as R,a as J}from"./D7QRJrh2.chunk.js";import{T as Q,a as ee}from"./CL6ZWANl.chunk.js";import{T as te,a as ae}from"./CFRAo5Sd.chunk.js";import{T as f}from"./Bt07VepM.chunk.js";import{u as ne}from"./DIkrkJAo.chunk.js";import{u as se}from"./zr54fY9l.chunk.js";import{t as oe}from"./DYRoLttd.chunk.js";import{L as re}from"./B5VX0-05.chunk.js";import{T as ie}from"./TYfK47yR.chunk.js";import"./C3LmB7vs.chunk.js";import"./BlDVEZsX.chunk.js";import"./D9df4Id7.chunk.js";import"./DbNPwlCF.chunk.js";import"./ZFLNGNny.chunk.js";import"./DigjAeMR.chunk.js";import"./M8-7wL03.chunk.js";const ce="_pillTabSelector_1d8n6_1",le={pillTabSelector:ce},C="Custom",P=[C,"#","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],de={"#":"0"},me={actionType:B.Click,entity:H.Url,location:O.MagicTabs};function ue(e,s){if(!e)return;if(e==="0")return"#";const o=P.find(a=>a.toUpperCase()===e.toUpperCase());if(!(o===C&&!s))return o}function ge(e){return P.map(s=>{if(s===C&&!e.showCustom)return;const o=e.getItemAppLink(de[s]??s);return{name:s,appLink:o,active:e.selected===s,analyticsData:{name:s,url:$.getHref(o)},analyticsOptions:me}}).filter(Boolean)}function pe(e){const s=ue(e.selected,e.showCustom),o=ge({selected:s,showCustom:e.showCustom,getItemAppLink:e.getItemAppLink});return t.jsx("div",{className:I(e.noMarginBottom?"mb-0":"mb-3",e.className),children:t.jsx(Z,{tabs:o,className:le.pillTabSelector,enableSmallScreenSupport:e.enableSmallScreenSupport,formatDisplayText:e.formatDisplayText,forceSmallScreenDropdown:e.forceSmallScreenDropdown})})}const he="_dateContainer_b9acj_1",fe="_hover_b9acj_4",Te="_channelLogo_b9acj_7",xe="_channelLogoContainer_b9acj_10",je="_programsContainer_b9acj_13",ve="_date_b9acj_1",be="_thumbnail_b9acj_27",u={dateContainer:he,hover:fe,channelLogo:Te,channelLogoContainer:xe,programsContainer:je,date:ve,thumbnail:be};function Le(e){function s(o){const a=W.findWhere(e.channels,{name:o});return a==null?void 0:a.logoUrl}return t.jsx("div",{className:"mb-2",children:e.groupedPrograms.map(([o,a])=>t.jsxs("div",{className:"border-top d-flex pt-3 pb-2",children:[t.jsx("div",{className:`${u.channelLogoContainer} flex-shrink-0 mb-3`,children:t.jsx("img",{src:s(o),alt:o,className:`${u.channelLogo} ms-4`})}),t.jsx("div",{className:"w-100",children:a.map(([i,n])=>t.jsx(Ce,{date:i,programs:n,tvPreviewUrls:e.tvPreviewUrls},i))})]},o))})}function Ce(e){const[s,o]=N.useState();function a(n){switch(n.programType){case _.Video:return{application:x.TV,action:T.Tv.PREVIEW,args:[n.regionCode,n.id]};case _.Audio:return{application:x.TV,action:T.Tv.RADIO_DOWNLOAD,args:[n.id]}}}function i(n){const j=e.tvPreviewUrls[n.regionCode],m=n.globalId.split("-").join("");return`${j}/thumbnail/${m}.jpg`}return t.jsx("div",{className:`${u.dateContainer} ${s?u.hover:""} py-2 px-3 rounded`,children:t.jsxs("div",{className:"d-flex align-items-center",children:[t.jsx("div",{className:`${u.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`,children:t.jsx(re,{src:i(s||e.programs[0]),alt:L.format(e.date,"D MMM"),extraClasses:"w-100 rounded"})}),t.jsxs("p",{className:`${u.date} fw-semibold flex-shrink-0 mb-0`,children:[L.format(e.date,"D MMM"),":"]}),t.jsx("div",{className:`${u.programsContainer} d-flex flex-wrap`,children:e.programs.map(n=>t.jsx("div",{onMouseEnter:()=>o(n),onMouseLeave:()=>o(null),children:t.jsx(V,{appLink:a(n),className:"text-decoration-none",children:t.jsx(ie,{program:n,showEndTime:!0})},n.id)},n.id))})]},e.date)})}const Pe="tv.programs",Se=q.encloseNamespace(Pe),Ae=/^[a-zA-Z]/;function Ke(e){const s=e.startsWith||"A",o=p(K.config()),a=p(f.region(e.region)),i=p(f.regions()),n=p(f.dateRange(e.region)),j=p(a.data&&f.channels(a.data.code)),m=p(a.data&&n.data&&f.programsByLetter(a.data.code,s,n.data.startDate,n.data.endDate)),{setRegion:w}=se(),{liteUpgradeTypeCustomer:E}=G(null),y=N.useMemo(()=>{var A;if(!((A=m.data)!=null&&A.length))return[];const c={};m.data.forEach(r=>{e.startsWith==="0"&&Ae.test(r.title)||(c[r.title]||(c[r.title]=[]),c[r.title].push(r))});let l=Object.entries(c);return l=l.sort(([r],[v])=>r<v?-1:1),l.map(([r,v])=>{const D=v.reduce((d,g)=>{const h=g.channelName;d[h]||(d[h]={});const U=oe(g.startTime,g.timeZone),b=L.format(U,"YYYY-MM-DD");return d[h][b]||(d[h][b]=[]),d[h][b].push(g),d},{}),k=Object.entries(D).map((([d,g])=>[d,Object.entries(g)]));return[r,k]})},[m.data]);[...P,"0"].includes(s)||z(Y.BadRequest),ne(a),X([i,m]),F({title:Se("title")});const M=a.hasCompleted&&i.hasCompleted&&n.hasCompleted&&m.hasCompleted&&o.hasCompleted;return t.jsxs(t.Fragment,{children:[t.jsx(te,{region:a.data}),t.jsxs("div",{className:"d-flex justify-content-between",children:[t.jsx(Q,{active:"programs",currentRegion:a.data,showTvGuide:!!E,config:o.data}),t.jsx(ae,{currentRegion:a.data,regions:i.data,appLink:{application:x.TV,action:T.Tv.PROGRAMS,params:{startsWith:s}},onClick:w})]}),t.jsx(ee,{dateRange:n.data,region:a.data}),t.jsx(pe,{selected:s,getItemAppLink:c=>{var l;return{application:x.TV,action:T.Tv.PROGRAMS,args:[(l=a.data)==null?void 0:l.code],params:{startsWith:c}}}}),M?t.jsx(t.Fragment,{children:t.jsx(R,{children:y.map(([c,l],S)=>t.jsx(R.Header,{title:c,children:t.jsx(Le,{groupedPrograms:l,channels:j.data,tvPreviewUrls:o.data.tvPreviewUrls})},S))})}):t.jsx(J,{})]})}export{Ke as TvProgramsView};
|
|
2
|
+
//# sourceMappingURL=D7NOMVC8.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DIBfWWih.chunk.js","sources":["../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/tv/views/tv-programs/components/program-selector/ProgramSelector.tsx","../../src/apps/tv/views/tv-programs/TvProgramsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string} = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './program-selector.module.scss';\n\ninterface ProgramSelectorProps {\n groupedPrograms: [string, [string, TvProgram[]][]][];\n channels: TvChannel[];\n tvPreviewUrls: { [region: string]: string };\n}\n\nexport function ProgramSelector(props: ProgramSelectorProps) {\n function getChannelLogo(channel: string) {\n const matchingChannel = ArrayHelper.findWhere(props.channels, { name: channel });\n return matchingChannel?.logoUrl;\n }\n\n return (\n <div className='mb-2'>\n {props.groupedPrograms.map(([ channel, dates ]) => (\n <div className={`border-top d-flex pt-3 pb-2`} key={channel}>\n <div className={`${styles.channelLogoContainer} flex-shrink-0 mb-3`}>\n <img src={getChannelLogo(channel)} alt={channel} className={`${styles.channelLogo} ms-4`} />\n </div>\n\n <div className='w-100'>\n {dates.map(([ date, programs ]) => (\n <GroupedPrograms key={date} date={date} programs={programs} tvPreviewUrls={props.tvPreviewUrls} />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupedProgramsProps {\n date: string;\n programs: TvProgram[];\n tvPreviewUrls: { [region: string]: string };\n}\n\nexport function GroupedPrograms(props: GroupedProgramsProps) {\n const [ hoveredProgram, setHoveredProgram ] = React.useState<TvProgram>();\n\n function getProgramAppLink(program: TvProgram) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ program.regionCode, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [program.id]\n };\n }\n }\n\n function getThumbnailUrl(program: TvProgram) {\n const previewUrl = props.tvPreviewUrls[program.regionCode];\n const globalId = program.globalId.split('-').join('');\n return `${previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div\n className={`${styles.dateContainer} ${hoveredProgram ? styles.hover : ''} py-2 px-3 rounded`}\n >\n <div key={props.date} className={`d-flex align-items-center`}>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(hoveredProgram || props.programs[0])}\n alt={DateHelper.format(props.date, 'D MMM')}\n extraClasses='w-100 rounded'\n />\n </div>\n <p className={`${styles.date} fw-semibold flex-shrink-0 mb-0`}>{DateHelper.format(props.date, 'D MMM')}:</p>\n <div className={`${styles.programsContainer} d-flex flex-wrap`}>\n {props.programs.map((program: TvProgram) => (\n <div\n key={program.id}\n onMouseEnter={() => setHoveredProgram(program)}\n onMouseLeave={() => setHoveredProgram(null)}\n >\n <AppLink appLink={getProgramAppLink(program)} key={program.id} className='text-decoration-none'>\n <TvProgramTimeBadge program={program} showEndTime />\n </AppLink>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ALPHABET, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { ProgramSelector } from 'apps/tv/views/tv-programs/components/program-selector/ProgramSelector';\n\nconst namespace = 'tv.programs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst FIRST_LETTER_REGEX = /^[a-zA-Z]/;\n\ninterface TvProgramsViewProps {\n region: string;\n startsWith: string;\n}\n\nexport function TvProgramsView(props: TvProgramsViewProps): JSX.Element {\n const startsWith = props.startsWith || 'A';\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n dateRange.data &&\n TvRequests.programsByLetter(\n region.data.code,\n startsWith,\n dateRange.data.startDate,\n dateRange.data.endDate\n )\n );\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [] as any[];\n\n const groups: HashObject<TvProgram[]> = {};\n\n programs.data.forEach(program => {\n if (props.startsWith === '0' && FIRST_LETTER_REGEX.test(program.title))\n return;\n\n if (!groups[program.title])\n groups[program.title] = [];\n\n groups[program.title].push(program);\n });\n\n let sorted = Object.entries(groups);\n\n sorted = sorted.sort(([keyA], [keyB]) => (keyA < keyB ? -1 : 1));\n\n const groupedPrograms = sorted.map(([ title, data ]) => {\n const groupedProgram = data.reduce((acc: { [channel: string]: { [date: string]: TvProgram[]} }, program) => {\n const channelKey = program.channelName;\n if (!acc[channelKey]) {\n acc[channelKey] = {};\n }\n \n const startTime = toLocalTime(program.startTime, program.timeZone);\n const dateKey = DateHelper.format(startTime, 'YYYY-MM-DD');\n if (!acc[channelKey][dateKey]) {\n acc[channelKey][dateKey] = [];\n }\n\n acc[channelKey][dateKey].push(program);\n return acc;\n }, {});\n\n const groupedProgramEntries =\n Object\n .entries(groupedProgram)\n .map((([ channel, programs ]) => [ channel, Object.entries(programs) ]));\n \n return [ title, groupedProgramEntries ];\n });\n\n return groupedPrograms as [string, [string, TvProgram[]]];\n }, [programs.data]);\n\n const matchesLetters = [ ...ALPHABET, '0' ].includes(startsWith);\n if (!matchesLetters) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, programs ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n programs.hasCompleted &&\n config.hasCompleted\n );\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='programs'\n currentRegion={region.data}\n showTvGuide={!!liteUpgradeTypeCustomer}\n config={config.data}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n params: { startsWith }\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n <LettersBar\n selected={startsWith}\n getItemAppLink={letter => ({\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n args: [region.data?.code],\n params: { startsWith: letter }\n })}\n />\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ title, programs ], index) => (\n <AccordionList.Header key={index} title={title}>\n <ProgramSelector\n groupedPrograms={programs}\n channels={channels.data}\n tvPreviewUrls={config.data.tvPreviewUrls}\n />\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}"],"names":["CUSTOM_LETTER_TEMPLATE","ALPHABET","LetterParamMap","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","getSelectedAlphabet","selected","showCustom","alphabet","letter","generateTabs","options","appLink","Core.AppLinkHelper","LettersBar","props","localSelected","tabs","jsx","classNames","PillTabSelector","styles","ProgramSelector","getChannelLogo","channel","matchingChannel","ArrayHelper","dates","jsxs","date","programs","GroupedPrograms","hoveredProgram","setHoveredProgram","React","getProgramAppLink","program","ProgramType","AppChannels","Actions","getThumbnailUrl","previewUrl","globalId","LazyImage","DateHelper","AppLink","TvProgramTimeBadge","namespace","getPhrase","LanguageService","FIRST_LETTER_REGEX","TvProgramsView","startsWith","config","Flight.useBasicFetch","ConfigRequests","region","TvRequests","regions","dateRange","channels","setRegion","useSelectedRegion","liteUpgradeTypeCustomer","useSettings","grouped","_a","groups","sorted","keyA","keyB","title","data","groupedProgram","acc","channelKey","startTime","toLocalTime","dateKey","groupedProgramEntries","handleHttpError","HttpStatus","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","Fragment","TvSearchBar","TvTabs","TvRegionSelect","TvInfoAlert","AccordionList","index","PartialAccordionList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D7NOMVC8.chunk.js","sources":["../../../../libs/shared/src/components/letters-bar/LettersBar.tsx","../../src/apps/tv/views/tv-programs/components/program-selector/ProgramSelector.tsx","../../src/apps/tv/views/tv-programs/TvProgramsView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport styles from './letters-bar.module.scss';\n\nexport const CUSTOM_LETTER_TEMPLATE = 'Custom';\n\nexport const ALPHABET = [\n CUSTOM_LETTER_TEMPLATE,\n '#',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n] as const;\n\ntype LetterBarOptions = typeof ALPHABET[number];\n\nconst LetterParamMap: {[key in LetterBarOptions]?: string} = {\n '#': '0'\n};\n\nconst ANALYTICS_OPTIONS = {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n};\n\nfunction getSelectedAlphabet(selected: string, showCustom: boolean): LetterBarOptions | undefined {\n if (!selected)\n return;\n \n if (selected === '0')\n return '#';\n\n const alphabet = ALPHABET.find(letter => letter.toUpperCase() === selected.toUpperCase());\n\n if (alphabet === CUSTOM_LETTER_TEMPLATE && !showCustom)\n return;\n\n return alphabet;\n}\n\ninterface GenerateTabsOptions {\n selected: string;\n showCustom: boolean;\n getItemAppLink: (letter: string) => Core.AppLink;\n}\n\nfunction generateTabs(options: GenerateTabsOptions): PillTab[] {\n return ALPHABET.map(letter => {\n if (letter === CUSTOM_LETTER_TEMPLATE && !options.showCustom)\n return;\n\n const appLink = options.getItemAppLink(LetterParamMap[letter] ?? letter);\n\n return {\n name: letter,\n appLink,\n active: options.selected === letter,\n analyticsData: {\n name: letter,\n url: Core.AppLinkHelper.getHref(appLink)\n },\n analyticsOptions: ANALYTICS_OPTIONS\n };\n }).filter(Boolean);\n}\n\ninterface LettersBarProps {\n selected: string;\n getItemAppLink: (letter: string) => Core.AppLink;\n showCustom?: boolean;\n enableSmallScreenSupport?: boolean;\n formatDisplayText?: (name: string) => string;\n className?: string;\n noMarginBottom?: boolean;\n forceSmallScreenDropdown?: boolean;\n}\n\nexport function LettersBar(props: LettersBarProps): JSX.Element {\n const localSelected = getSelectedAlphabet(props.selected, props.showCustom);\n\n const tabs = generateTabs({\n selected: localSelected,\n showCustom: props.showCustom,\n getItemAppLink: props.getItemAppLink\n });\n \n return (\n <div className={classNames(props.noMarginBottom ? 'mb-0' : 'mb-3', props.className)}>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTabSelector}\n enableSmallScreenSupport={props.enableSmallScreenSupport}\n formatDisplayText={props.formatDisplayText}\n forceSmallScreenDropdown={props.forceSmallScreenDropdown}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvProgramTimeBadge } from 'apps/tv/components/tv-program-time-badge/TvProgramTimeBadge';\nimport { ProgramType } from 'apps/tv/interfaces/enums/ProgramType';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\n\nimport styles from './program-selector.module.scss';\n\ninterface ProgramSelectorProps {\n groupedPrograms: [string, [string, TvProgram[]][]][];\n channels: TvChannel[];\n tvPreviewUrls: { [region: string]: string };\n}\n\nexport function ProgramSelector(props: ProgramSelectorProps) {\n function getChannelLogo(channel: string) {\n const matchingChannel = ArrayHelper.findWhere(props.channels, { name: channel });\n return matchingChannel?.logoUrl;\n }\n\n return (\n <div className='mb-2'>\n {props.groupedPrograms.map(([ channel, dates ]) => (\n <div className={`border-top d-flex pt-3 pb-2`} key={channel}>\n <div className={`${styles.channelLogoContainer} flex-shrink-0 mb-3`}>\n <img src={getChannelLogo(channel)} alt={channel} className={`${styles.channelLogo} ms-4`} />\n </div>\n\n <div className='w-100'>\n {dates.map(([ date, programs ]) => (\n <GroupedPrograms key={date} date={date} programs={programs} tvPreviewUrls={props.tvPreviewUrls} />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\ninterface GroupedProgramsProps {\n date: string;\n programs: TvProgram[];\n tvPreviewUrls: { [region: string]: string };\n}\n\nexport function GroupedPrograms(props: GroupedProgramsProps) {\n const [ hoveredProgram, setHoveredProgram ] = React.useState<TvProgram>();\n\n function getProgramAppLink(program: TvProgram) {\n switch (program.programType) {\n case ProgramType.Video:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.PREVIEW,\n args: [ program.regionCode, program.id ]\n };\n case ProgramType.Audio:\n return {\n application: AppChannels.TV,\n action: Actions.Tv.RADIO_DOWNLOAD,\n args: [program.id]\n };\n }\n }\n\n function getThumbnailUrl(program: TvProgram) {\n const previewUrl = props.tvPreviewUrls[program.regionCode];\n const globalId = program.globalId.split('-').join('');\n return `${previewUrl}/thumbnail/${globalId}.jpg`;\n }\n\n return (\n <div\n className={`${styles.dateContainer} ${hoveredProgram ? styles.hover : ''} py-2 px-3 rounded`}\n >\n <div key={props.date} className={`d-flex align-items-center`}>\n <div className={`${styles.thumbnail} flex-shrink-0 me-3 partial-loading-background rounded`}>\n <LazyImage\n src={getThumbnailUrl(hoveredProgram || props.programs[0])}\n alt={DateHelper.format(props.date, 'D MMM')}\n extraClasses='w-100 rounded'\n />\n </div>\n <p className={`${styles.date} fw-semibold flex-shrink-0 mb-0`}>{DateHelper.format(props.date, 'D MMM')}:</p>\n <div className={`${styles.programsContainer} d-flex flex-wrap`}>\n {props.programs.map((program: TvProgram) => (\n <div\n key={program.id}\n onMouseEnter={() => setHoveredProgram(program)}\n onMouseLeave={() => setHoveredProgram(null)}\n >\n <AppLink appLink={getProgramAppLink(program)} key={program.id} className='text-decoration-none'>\n <TvProgramTimeBadge program={program} showEndTime />\n </AppLink>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ALPHABET, LettersBar } from 'libs/shared/components/letters-bar/LettersBar';\nimport { handleHttpError } from 'libs/shared/errors/handlers/HttpErrorHandlers';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config } from 'libs/shared/interfaces';\n\nimport { AccordionList } from 'shared/components/accordion-list/AccordionList';\nimport { PartialAccordionList } from 'shared/components/accordion-list/partial-loading/PartialAccordionList';\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvInfoAlert } from 'apps/tv/components/tv-info-alert/TvInfoAlert';\nimport { TvRegionSelect } from 'apps/tv/components/tv-region-select/TvRegionSelect';\nimport { TvSearchBar } from 'apps/tv/components/tv-search-bar/TvSearchBar';\nimport { TvTabs } from 'apps/tv/components/tv-tabs/TvTabs';\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { useHandleRegionError } from 'apps/tv/hooks/useHandleRegionError';\nimport { useSelectedRegion } from 'apps/tv/hooks/useSelectedRegion';\nimport { TvChannel } from 'apps/tv/interfaces/models/TvChannel';\nimport { TvProgram } from 'apps/tv/interfaces/models/TvProgram';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { ProgramSelector } from 'apps/tv/views/tv-programs/components/program-selector/ProgramSelector';\n\nconst namespace = 'tv.programs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst FIRST_LETTER_REGEX = /^[a-zA-Z]/;\n\ninterface TvProgramsViewProps {\n region: string;\n startsWith: string;\n}\n\nexport function TvProgramsView(props: TvProgramsViewProps): JSX.Element {\n const startsWith = props.startsWith || 'A';\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const regions = Flight.useBasicFetch<TvRegion[]>(TvRequests.regions());\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n const channels = Flight.useBasicFetch<TvChannel[]>(\n region.data && TvRequests.channels(region.data.code)\n );\n\n const programs = Flight.useBasicFetch<TvProgram[]>(\n region.data &&\n dateRange.data &&\n TvRequests.programsByLetter(\n region.data.code,\n startsWith,\n dateRange.data.startDate,\n dateRange.data.endDate\n )\n );\n\n const { setRegion } = useSelectedRegion();\n const { liteUpgradeTypeCustomer } = useSettings(null);\n\n const grouped = React.useMemo(() => {\n if (!programs.data?.length)\n return [] as any[];\n\n const groups: HashObject<TvProgram[]> = {};\n\n programs.data.forEach(program => {\n if (props.startsWith === '0' && FIRST_LETTER_REGEX.test(program.title))\n return;\n\n if (!groups[program.title])\n groups[program.title] = [];\n\n groups[program.title].push(program);\n });\n\n let sorted = Object.entries(groups);\n\n sorted = sorted.sort(([keyA], [keyB]) => (keyA < keyB ? -1 : 1));\n\n const groupedPrograms = sorted.map(([ title, data ]) => {\n const groupedProgram = data.reduce((acc: { [channel: string]: { [date: string]: TvProgram[]} }, program) => {\n const channelKey = program.channelName;\n if (!acc[channelKey]) {\n acc[channelKey] = {};\n }\n \n const startTime = toLocalTime(program.startTime, program.timeZone);\n const dateKey = DateHelper.format(startTime, 'YYYY-MM-DD');\n if (!acc[channelKey][dateKey]) {\n acc[channelKey][dateKey] = [];\n }\n\n acc[channelKey][dateKey].push(program);\n return acc;\n }, {});\n\n const groupedProgramEntries =\n Object\n .entries(groupedProgram)\n .map((([ channel, programs ]) => [ channel, Object.entries(programs) ]));\n \n return [ title, groupedProgramEntries ];\n });\n\n return groupedPrograms as [string, [string, TvProgram[]]];\n }, [programs.data]);\n\n const matchesLetters = [ ...ALPHABET, '0' ].includes(startsWith);\n if (!matchesLetters) {\n handleHttpError(HttpStatus.BadRequest);\n }\n\n useHandleRegionError(region);\n useHandleObjectError([ regions, programs ]);\n\n useSetPageMetadata({ title: getPhrase('title') });\n\n const dataLoaded = (\n region.hasCompleted &&\n regions.hasCompleted &&\n dateRange.hasCompleted &&\n programs.hasCompleted &&\n config.hasCompleted\n );\n\n return (\n <>\n <TvSearchBar region={region.data} />\n\n <div className='d-flex justify-content-between'>\n <TvTabs\n active='programs'\n currentRegion={region.data}\n showTvGuide={!!liteUpgradeTypeCustomer}\n config={config.data}\n />\n\n <TvRegionSelect\n currentRegion={region.data}\n regions={regions.data}\n appLink={{\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n params: { startsWith }\n }}\n onClick={setRegion}\n />\n </div>\n\n <TvInfoAlert dateRange={dateRange.data} region={region.data} />\n\n <LettersBar\n selected={startsWith}\n getItemAppLink={letter => ({\n application: AppChannels.TV,\n action: Actions.Tv.PROGRAMS,\n args: [region.data?.code],\n params: { startsWith: letter }\n })}\n />\n\n {dataLoaded ? (\n <>\n <AccordionList>\n {grouped.map(([ title, programs ], index) => (\n <AccordionList.Header key={index} title={title}>\n <ProgramSelector\n groupedPrograms={programs}\n channels={channels.data}\n tvPreviewUrls={config.data.tvPreviewUrls}\n />\n </AccordionList.Header>\n ))}\n </AccordionList>\n </>\n ) : (\n <PartialAccordionList />\n )}\n </>\n );\n}"],"names":["CUSTOM_LETTER_TEMPLATE","ALPHABET","LetterParamMap","ANALYTICS_OPTIONS","UserAction","EntityType","LocationContext","getSelectedAlphabet","selected","showCustom","alphabet","letter","generateTabs","options","appLink","Core.AppLinkHelper","LettersBar","props","localSelected","tabs","jsx","classNames","PillTabSelector","styles","ProgramSelector","getChannelLogo","channel","matchingChannel","ArrayHelper","dates","jsxs","date","programs","GroupedPrograms","hoveredProgram","setHoveredProgram","React","getProgramAppLink","program","ProgramType","AppChannels","Actions","getThumbnailUrl","previewUrl","globalId","LazyImage","DateHelper","AppLink","TvProgramTimeBadge","namespace","getPhrase","LanguageService","FIRST_LETTER_REGEX","TvProgramsView","startsWith","config","Flight.useBasicFetch","ConfigRequests","region","TvRequests","regions","dateRange","channels","setRegion","useSelectedRegion","liteUpgradeTypeCustomer","useSettings","grouped","_a","groups","sorted","keyA","keyB","title","data","groupedProgram","acc","channelKey","startTime","toLocalTime","dateKey","groupedProgramEntries","handleHttpError","HttpStatus","useHandleRegionError","useHandleObjectError","useSetPageMetadata","dataLoaded","Fragment","TvSearchBar","TvTabs","TvRegionSelect","TvInfoAlert","AccordionList","index","PartialAccordionList"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,R as s}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as e,R as s}from"./app-CShb1Dgt.js";import{C as g}from"./ZFLNGNny.chunk.js";const p="_accordionHeader_1eoao_1",j={accordionHeader:p};function H(i){return e.jsx("ul",{className:"striped-list list-unstyled no-full-width",children:i.children})}function y(i){const[t,r]=s.useState(!1),[a,n]=s.useState({}),[o,c]=s.useState(0),l=s.useRef(null),d=s.useRef(null),u=s.useRef(null),m=s.useRef(null);function x(){t?(n({maxHeight:0,opacity:1}),c(0),d.current=window.setTimeout(()=>r(!1),400)):(r(!0),u.current=window.setTimeout(()=>{n({maxHeight:"max-content",opacity:0,position:"absolute"})}))}return s.useEffect(()=>{var f;if(!t)return;const w=Math.ceil((f=l.current)==null?void 0:f.getBoundingClientRect().height),h=a.opacity===0;h&&c(w),h&&o&&(n({position:"relative"}),m.current=window.requestAnimationFrame(()=>n({maxHeight:o,opacity:1})))},[t,o,a.maxHeight]),s.useEffect(()=>()=>{window.clearTimeout(d.current),window.clearTimeout(u.current),window.cancelAnimationFrame(m.current)},[]),e.jsxs("li",{className:"position-relative",children:[e.jsxs("div",{className:"cursor-pointer d-flex align-items-center py-2 px-3",onClick:x,children:[e.jsx("div",{className:"ms-1",children:e.jsx(g,{direction:t?"down":"right"})}),e.jsx("span",{className:`${t?"fw-semibold":""} user-select-none ms-2`,children:i.title})]}),t&&e.jsx("div",{className:"bg-white",children:e.jsx("div",{ref:l,className:`${j.accordionHeader}`,style:a,children:i.children})})]})}H.Header=y;function A(){return e.jsx(e.Fragment,{children:e.jsx("ul",{className:"list-unstyled",children:[...Array(20)].map((i,t)=>e.jsxs("li",{className:`${t%2===0?"partial-loading-background":""} d-flex w-100 p-2`,children:[e.jsx("div",{className:"svg-container"}),e.jsx("span",{children:" "})]},t))})})}var R=(i=>(i[i.Video=0]="Video",i[i.Audio=1]="Audio",i))(R||{});export{H as A,R as P,A as a};
|
|
2
|
+
//# sourceMappingURL=D7QRJrh2.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"D7QRJrh2.chunk.js","sources":["../../src/shared/components/accordion-list/AccordionList.tsx","../../src/shared/components/accordion-list/partial-loading/PartialAccordionList.tsx","../../src/apps/tv/interfaces/enums/ProgramType.ts"],"sourcesContent":["import React from 'react';\n\nimport { Caret } from 'libs/shared/components/caret/Caret';\n\nimport styles from './accordion-list.module.scss';\n\nexport function AccordionList(props: React.PropsWithChildren) {\n return (\n <ul className='striped-list list-unstyled no-full-width'>\n {props.children}\n </ul>\n );\n}\n\ninterface AccordionListProps {\n title?: string;\n}\n\nfunction AccordionListHeader(props: React.PropsWithChildren<AccordionListProps>) {\n const [ show, setShow ] = React.useState(false);\n const [ programsStyle, setProgramsStyle ] = React.useState<React.CSSProperties>({});\n const [ dynamicHeight, setDynamicHeight ] = React.useState(0);\n\n const accordionBodyRef = React.useRef<HTMLDivElement>(null);\n const hideProgramsTimeRef = React.useRef<number>(null);\n const showProgramsTimeRef = React.useRef<number>(null);\n const animationFrameRef = React.useRef<number>(null);\n\n function handleSetShow() {\n if (show) {\n setProgramsStyle({ maxHeight: 0, opacity: 1 });\n setDynamicHeight(0);\n hideProgramsTimeRef.current = window.setTimeout(() => setShow(false), 400);\n } else {\n setShow(true);\n showProgramsTimeRef.current = window.setTimeout(() => {\n setProgramsStyle({ maxHeight: 'max-content', opacity: 0, position: 'absolute' });\n });\n }\n }\n\n React.useEffect(() => {\n if (!show) return;\n\n const accordionContentHeight = Math.ceil(accordionBodyRef.current?.getBoundingClientRect().height);\n const isHidden = programsStyle.opacity === 0;\n\n if (isHidden) {\n setDynamicHeight(accordionContentHeight);\n }\n\n if (isHidden && dynamicHeight) {\n setProgramsStyle({ position: 'relative' });\n animationFrameRef.current = window.requestAnimationFrame(\n () => setProgramsStyle({ maxHeight: dynamicHeight, opacity: 1 })\n );\n }\n }, [ show, dynamicHeight, programsStyle.maxHeight ]);\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(hideProgramsTimeRef.current);\n window.clearTimeout(showProgramsTimeRef.current);\n window.cancelAnimationFrame(animationFrameRef.current);\n };\n }, []);\n \n return (\n <li className='position-relative'>\n <div\n className={'cursor-pointer d-flex align-items-center py-2 px-3'}\n onClick={handleSetShow}\n >\n <div className='ms-1'>\n <Caret direction={show ? 'down' : 'right'} />\n </div>\n <span className={`${show ? 'fw-semibold' : ''} user-select-none ms-2`}>{props.title}</span>\n </div>\n {show && (\n <div className='bg-white'>\n <div\n ref={accordionBodyRef}\n className={`${styles.accordionHeader}`}\n style={programsStyle}\n >\n {props.children}\n </div>\n </div>\n )}\n </li>\n );\n}\n\nAccordionList.Header = AccordionListHeader;","import React from 'react';\n\nexport function PartialAccordionList() {\n return (\n <>\n <ul className='list-unstyled'>\n {[...Array(20)].map((_, index) => (\n <li key={index} className={`${index % 2 === 0 ? 'partial-loading-background' : ''} d-flex w-100 p-2`}>\n <div className='svg-container'></div>\n <span> </span>\n </li>\n ))}\n </ul>\n </>\n );\n}\n","export enum ProgramType {\n Video = 0,\n Audio = 1\n}"],"names":["AccordionList","props","jsx","AccordionListHeader","show","setShow","React","programsStyle","setProgramsStyle","dynamicHeight","setDynamicHeight","accordionBodyRef","hideProgramsTimeRef","showProgramsTimeRef","animationFrameRef","handleSetShow","accordionContentHeight","_a","isHidden","jsxs","Caret","styles","PartialAccordionList","Fragment","_","index","ProgramType"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s,aB as h,L as d}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as s,aB as h,L as d}from"./app-CShb1Dgt.js";const p="_minHeight_kz0hs_1",v="_restrictionBadgeCustom_kz0hs_4",C="_restrictionBadgeUser_kz0hs_8",R="_streamable_kz0hs_12",g={minHeight:p,restrictionBadgeCustom:v,restrictionBadgeUser:C,streamable:R};var r=(e=>(e.Custom="custom",e.User="year_group",e))(r||{});function m(e){return s.jsx("svg",{...e,children:s.jsx("path",{d:"M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98",fill:"currentColor"})})}function x(e){return s.jsxs("svg",{...e,children:[s.jsx("defs",{children:s.jsx("path",{id:"a",d:"M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457",fill:"currentColor"})}),s.jsxs("g",{fill:"none",fillRule:"evenodd",children:[s.jsx("mask",{id:"b",fill:"#fff",children:s.jsx("use",{href:"#a"})}),s.jsx("use",{fill:"#000",fillRule:"nonzero",href:"#a"}),s.jsx("g",{fill:"#383838",mask:"url(#b)",children:s.jsx("path",{d:"M0 0h24v24H0z",fill:"currentColor"})})]})]})}const y="shared.shared-utils",c=d.encloseNamespace(y),j={[r.Custom]:g.restrictionBadgeCustom,[r.User]:g.restrictionBadgeUser},_={[r.Custom]:x,[r.User]:m},B={[r.Custom]:"restrictionCustom",[r.User]:"restrictionYearGroup"},f={[r.Custom]:200,[r.User]:100},o={mapRestrictionToClass(e){var n;if(!((n=e==null?void 0:e.value)!=null&&n.length))return"";const t=o.getWeightedRestriction(e.value);return j[t.type]},mapRestrictionToSvg(e){var n;if(!((n=e==null?void 0:e.value)!=null&&n.length))return m;const t=o.getWeightedRestriction(e.value);return _[t.type]},mapRestrictionToText(e,t){var l;if(!((l=e==null?void 0:e.value)!=null&&l.length)||!(t!=null&&t.length))return"";const n=o.getWeightedRestriction(e.value),a=t.find(i=>i.value===n.yearGroup),u=B[n.type];if(n.type===r.User)return n.yearGroup===null?c("restrictionStaff"):a?t.length===1?c("restrictionStudents"):c(u,{yearGroup:a.name}):"";if(n.type===r.Custom){const i=o.getRestrictionDuration(n);return i?c(u,{duration:i,smartCount:i}):c("restrictionCustomLessThanDay",{duration:i,smartCount:1})}return""},getWeightedRestriction(e,t="highest"){if(e!=null&&e.length)return e.length===1?e[0]:e.reduce((n,a)=>{const u=f[n.type],l=f[a.type];return t==="highest"&&u>l||t==="lowest"&&u<l?n:a})},getRestrictionByType(e,t){if(!o.hasRestrictions(e))return null;const n=Array.isArray(t)?t:[t],a=e.value.filter(u=>n.includes(u.type));return o.getWeightedRestriction(a)},getRestrictionDuration(e){if(e.type!==r.Custom||!e.expiresOn)return;const t=h.convertUTCToLocal(e.expiresOn);if(t)return h.diffBetween(t,new Date,"day")},hasCustomRestriction(e){return!!o.getRestrictionByType(e,[r.Custom])},hasRestrictions(e){var t;return!!((t=e==null?void 0:e.value)!=null&&t.length)}};export{m as L,o as R,r as a,g as s};
|
|
2
|
+
//# sourceMappingURL=D9df4Id7.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BZb44_Lh.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n restrictions: Restrictions,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(restrictions))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const filteredRestrictions = restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(filteredRestrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n restrictions: Restrictions\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(restrictions, [RestrictionType.Custom]);\n },\n\n hasRestrictions(restrictions: Restrictions): boolean {\n return !!restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","type","types","filteredRestrictions","r","expiresOn","DateHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D9df4Id7.chunk.js","sources":["../../../../libs/shared/src/enums/RestrictionType.ts","../../../../libs/shared/src/images/svg/status/LockSvg.tsx","../../../../libs/shared/src/images/svg/status/TimerSvg.tsx","../../../../libs/shared/src/utils/RestrictionHelper.ts"],"sourcesContent":["/**\n * Restriction Types for an object\n */\nexport enum RestrictionType {\n /** Generated for customers who have turned content review on */\n Custom = 'custom',\n\n /** Restriction created by the user */\n User = 'year_group'\n}","import React from 'react';\n\nexport function LockSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n d='M9.006 10h6.028c.006-.32.01-.641.002-.974-.016-.663-.077-1.28-.243-1.808-.164-.52-.424-.934-.83-1.223-.407-.292-1.015-.495-1.943-.495s-1.536.203-1.944.495c-.405.29-.665.703-.83 1.223-.166.528-.227 1.145-.242 1.808-.008.333-.004.655.002.974m7.028 0H17a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h1.006c-.006-.33-.01-.67-.002-.997.016-.696.08-1.424.289-2.085.21-.67.576-1.29 1.202-1.737.623-.445 1.453-.681 2.525-.681s1.902.236 2.525.681c.626.447.99 1.068 1.202 1.737.208.661.272 1.389.288 2.085.008.326.005.667 0 .997m-1.014 1H7v8h10v-8h-1.98'\n fill='currentColor'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function TimerSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <defs>\n <path\n id='a'\n d='M12 19.059A7.059 7.059 0 1 0 12 4.94a7.059 7.059 0 0 0 0 14.118M12 4a8 8 0 1 1 0 16 8 8 0 0 1 0-16m-.229 2.743a.457.457 0 0 0-.457.457v5.486c0 .147.071.286.191.372l3.174 2.27a.457.457 0 1 0 .532-.744l-2.982-2.133V7.2a.457.457 0 0 0-.458-.457'\n fill='currentColor'\n />\n </defs>\n <g fill='none' fillRule='evenodd'>\n <mask id='b' fill='#fff'>\n <use href='#a' />\n </mask>\n <use fill='#000' fillRule='nonzero' href='#a' />\n <g fill='#383838' mask='url(#b)'>\n <path d='M0 0h24v24H0z' fill='currentColor' />\n </g>\n </g>\n </svg>\n );\n}\n","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport styles from 'libs/shared/components/badges/badge.module.scss';\nimport { RestrictionType } from 'libs/shared/enums/RestrictionType';\nimport { ObjectsRestriction, Restrictions, YearGroup } from 'libs/shared/interfaces';\n\nimport { LockSvg } from '../images/svg/status/LockSvg';\nimport { TimerSvg } from '../images/svg/status/TimerSvg';\n\nimport { SvgIcon } from './SvgHelper';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst ClassNameMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: styles.restrictionBadgeCustom,\n [RestrictionType.User]: styles.restrictionBadgeUser\n};\n\nconst IconMap: {[key in RestrictionType]: SvgIcon} = {\n [RestrictionType.Custom]: TimerSvg,\n [RestrictionType.User]: LockSvg\n};\n\nconst PhraseMap: {[key in RestrictionType]: string} = {\n [RestrictionType.Custom]: 'restrictionCustom',\n [RestrictionType.User]: 'restrictionYearGroup'\n};\n\nconst WeightMap: {[Key in RestrictionType]: number} = {\n [RestrictionType.Custom]: 200,\n [RestrictionType.User]: 100\n};\n\nexport const RestrictionHelper = {\n mapRestrictionToClass(restrictions: Restrictions): string {\n if (!restrictions?.value?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return ClassNameMap[restriction.type];\n },\n\n mapRestrictionToSvg(restrictions: Restrictions): SvgIcon {\n if (!restrictions?.value?.length)\n return LockSvg;\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n return IconMap[restriction.type];\n },\n\n mapRestrictionToText(\n restrictions: Restrictions,\n yearGroups: YearGroup[]\n ): string {\n if (!restrictions?.value?.length || !yearGroups?.length)\n return '';\n\n const restriction = RestrictionHelper.getWeightedRestriction(restrictions.value);\n const yearGroup = yearGroups.find(y => y.value === restriction.yearGroup);\n\n const phrase = PhraseMap[restriction.type];\n if (restriction.type === RestrictionType.User) {\n if (restriction.yearGroup === null)\n return getPhrase('restrictionStaff');\n\n if (!yearGroup)\n return '';\n\n if (yearGroups.length === 1)\n return getPhrase('restrictionStudents');\n\n return getPhrase(phrase, { yearGroup: yearGroup.name });\n }\n\n if (restriction.type === RestrictionType.Custom) {\n const duration = RestrictionHelper.getRestrictionDuration(restriction);\n return duration ?\n getPhrase(phrase, { duration, smartCount: duration }) :\n getPhrase('restrictionCustomLessThanDay', { duration, smartCount: 1 });\n }\n\n return '';\n },\n\n /**\n * A video can have multiple restrictions, in that case we need to display\n * only one restriction. By default we display the restriction with highest\n * weight bias.\n */\n getWeightedRestriction(\n restrictions: ObjectsRestriction[],\n bias: 'highest' | 'lowest' = 'highest'\n ): ObjectsRestriction {\n if (!restrictions?.length) return;\n \n if (restrictions.length === 1) return restrictions[0];\n\n return restrictions.reduce((previous, current) => {\n const previousWeight = WeightMap[previous.type];\n const currentWeight = WeightMap[current.type];\n\n if (bias === 'highest' && previousWeight > currentWeight) return previous;\n if (bias === 'lowest' && previousWeight < currentWeight) return previous;\n\n return current;\n });\n },\n\n getRestrictionByType(\n restrictions: Restrictions,\n type: RestrictionType | RestrictionType[]\n ): ObjectsRestriction {\n if (!RestrictionHelper.hasRestrictions(restrictions))\n return null;\n\n const types = Array.isArray(type) ? type : [type];\n\n const filteredRestrictions = restrictions.value.filter(r => types.includes(r.type));\n return RestrictionHelper.getWeightedRestriction(filteredRestrictions);\n },\n\n getRestrictionDuration(\n restriction: ObjectsRestriction\n ): number {\n if (restriction.type !== RestrictionType.Custom || !restriction.expiresOn) return;\n\n const expiresOn = DateHelper.convertUTCToLocal(restriction.expiresOn);\n if (!expiresOn) return;\n\n return DateHelper.diffBetween(expiresOn, new Date(), 'day');\n },\n\n hasCustomRestriction(\n restrictions: Restrictions\n ): boolean {\n return !!RestrictionHelper.getRestrictionByType(restrictions, [RestrictionType.Custom]);\n },\n\n hasRestrictions(restrictions: Restrictions): boolean {\n return !!restrictions?.value?.length;\n }\n};"],"names":["RestrictionType","LockSvg","props","jsx","TimerSvg","jsxs","namespace","getPhrase","LanguageService","ClassNameMap","styles","IconMap","PhraseMap","WeightMap","RestrictionHelper","restrictions","_a","restriction","yearGroups","yearGroup","y","phrase","duration","bias","previous","current","previousWeight","currentWeight","type","types","filteredRestrictions","r","expiresOn","DateHelper"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Z as d,au as h,j as n,aq as u,ar as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{Z as d,au as h,j as n,aq as u,ar as l}from"./app-CShb1Dgt.js";import{L as y}from"./B5VX0-05.chunk.js";const k="_image_1himm_1",N="_thumbnail_1himm_13",T="_tallPoster_1himm_16",L="_cover_1himm_19",I="_banner_1himm_22",C="_poster_1himm_25",v="_pdf_1himm_28",P="_link_1himm_31",m={image:k,thumbnail:N,tallPoster:T,cover:L,banner:I,poster:C,pdf:v,link:P};function j(e){let i=m.image,a="";return e.imageType===l.Thumbnails&&(a=`thumbnail ${m.thumbnail}`),e.imageType===l.TallPosters&&(a=m.tallPoster),e.imageType===l.Covers&&(a=m.cover),e.imageType===l.Banners&&(a=m.banner),e.imageType===l.Posters&&(a=m.poster),e.imageType===l.Pdf&&(a=m.pdf),e.imageType===l.Link&&(a=m.link),a&&(i+=` ${a}`),e.className&&(i+=` ${e.className}`),i}function O(e){const{data:i,imageOptions:a,appLink:r,preload:c,preventLoad:o,analyticsOptions:g,analyticsData:f,imageClassName:_,alt:b}=e;let t="";typeof i=="string"?t=i:d.isObject(i)&&(t=i.url);const s=t&&a?h.createUrl(t,a):t;return n.jsx("div",{className:j(e),style:e.imageStyle,children:n.jsxs(u,{appLink:r,analyticsData:f,analyticsOptions:g,onClick:e.onClick,preventFocus:e.preventFocus,className:e.appLinkClassName,openInNewTab:e.openInNewTab,forcePageLoad:e.forcePageLoad,children:[e.children,s&&n.jsx(y,{src:s,alt:b,forceLoad:c,preventLoad:o,extraClasses:_,errorFallbackImageSrc:e.errorFallbackImageSrc,errorFallbackImageClassName:e.errorFallbackImageClassName,onLoad:e.onLoad})]})})}export{O as B};
|
|
2
|
+
//# sourceMappingURL=DFEBv1_O.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DFEBv1_O.chunk.js","sources":["../../../../libs/shared/src/components/image/BaseImage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { Image } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './image.module.scss';\n\nfunction getImageClassName(props: BaseImageProps): string {\n let className = styles.image;\n\n let imageTypeClassName = '';\n\n if (props.imageType === ImageType.Thumbnails)\n imageTypeClassName = `thumbnail ${styles.thumbnail}`;\n\n if (props.imageType === ImageType.TallPosters)\n imageTypeClassName = styles.tallPoster;\n\n if (props.imageType === ImageType.Covers)\n imageTypeClassName = styles.cover;\n\n if (props.imageType === ImageType.Banners)\n imageTypeClassName = styles.banner;\n\n if (props.imageType === ImageType.Posters)\n imageTypeClassName = styles.poster;\n\n if (props.imageType === ImageType.Pdf)\n imageTypeClassName = styles.pdf;\n\n if (props.imageType === ImageType.Link)\n imageTypeClassName = styles.link;\n\n if (imageTypeClassName)\n className += ` ${imageTypeClassName}`;\n\n if (props.className)\n className += ` ${props.className}`;\n\n return className;\n}\n\ninterface BaseImageProps {\n data: Image | string;\n imageOptions?: ImageOptions;\n appLink?: Core.AppLink;\n imageType?: ImageType;\n className?: string;\n imageClassName?: string;\n imageStyle?: HashObject;\n preload?: boolean;\n preventLoad?: boolean;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n alt?: string;\n preventFocus?: boolean;\n appLinkClassName?: string;\n onClick?: () => void;\n onLoad?: () => void;\n openInNewTab?: boolean;\n forcePageLoad?: boolean;\n}\n\nexport function BaseImage(props: React.PropsWithChildren<BaseImageProps>): React.ReactElement {\n const {\n data,\n imageOptions,\n appLink,\n preload,\n preventLoad,\n analyticsOptions,\n analyticsData,\n imageClassName,\n alt\n } = props;\n\n let url = '';\n\n if (typeof data === 'string') {\n url = data;\n } else if (ObjectHelper.isObject(data)) {\n url = data.url;\n }\n\n const imageUrl = (url && imageOptions) ? ImageHelper.createUrl(url, imageOptions) : url;\n\n return (\n <div className={getImageClassName(props)} style={props.imageStyle}>\n <AppLink\n appLink={appLink}\n analyticsData={analyticsData}\n analyticsOptions={analyticsOptions}\n onClick={props.onClick}\n preventFocus={props.preventFocus}\n className={props.appLinkClassName}\n openInNewTab={props.openInNewTab}\n forcePageLoad={props.forcePageLoad}\n >\n {props.children}\n {imageUrl && (\n <LazyImage\n src={imageUrl}\n alt={alt}\n forceLoad={preload}\n preventLoad={preventLoad}\n extraClasses={imageClassName}\n errorFallbackImageSrc={props.errorFallbackImageSrc}\n errorFallbackImageClassName={props.errorFallbackImageClassName}\n onLoad={props.onLoad}\n />\n )}\n </AppLink>\n </div>\n );\n}\n\n"],"names":["getImageClassName","props","className","styles","imageTypeClassName","ImageType","BaseImage","data","imageOptions","appLink","preload","preventLoad","analyticsOptions","analyticsData","imageClassName","alt","url","ObjectHelper","imageUrl","ImageHelper","jsx","jsxs","AppLink","LazyImage"],"mappings":"sWAeA,SAASA,EAAkBC,EAA+B,CACxD,IAAIC,EAAYC,EAAO,MAEnBC,EAAqB,GAEzB,OAAIH,EAAM,YAAcI,EAAU,aAChCD,EAAqB,aAAaD,EAAO,SAAS,IAEhDF,EAAM,YAAcI,EAAU,cAChCD,EAAqBD,EAAO,YAE1BF,EAAM,YAAcI,EAAU,SAChCD,EAAqBD,EAAO,OAE1BF,EAAM,YAAcI,EAAU,UAChCD,EAAqBD,EAAO,QAE1BF,EAAM,YAAcI,EAAU,UAChCD,EAAqBD,EAAO,QAE1BF,EAAM,YAAcI,EAAU,MAChCD,EAAqBD,EAAO,KAE1BF,EAAM,YAAcI,EAAU,OAChCD,EAAqBD,EAAO,MAE1BC,IACFF,GAAa,IAAIE,CAAkB,IAEjCH,EAAM,YACRC,GAAa,IAAID,EAAM,SAAS,IAE3BC,CACT,CAyBO,SAASI,EAAUL,EAAoE,CAC5F,KAAM,CACJ,KAAAM,EACA,aAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,eAAAC,EACA,IAAAC,CAAA,EACEd,EAEJ,IAAIe,EAAM,GAEN,OAAOT,GAAS,SAClBS,EAAMT,EACGU,EAAa,SAASV,CAAI,IACnCS,EAAMT,EAAK,KAGb,MAAMW,EAAYF,GAAOR,EAAgBW,EAAY,UAAUH,EAAKR,CAAY,EAAIQ,EAEpF,OACEI,MAAC,OAAI,UAAWpB,EAAkBC,CAAK,EAAG,MAAOA,EAAM,WACrD,SAAAoB,EAAAA,KAACC,EAAA,CACC,QAAAb,EACA,cAAAI,EACA,iBAAAD,EACA,QAASX,EAAM,QACf,aAAcA,EAAM,aACpB,UAAWA,EAAM,iBACjB,aAAcA,EAAM,aACpB,cAAeA,EAAM,cAEpB,SAAA,CAAAA,EAAM,SACNiB,GACCE,EAAAA,IAACG,EAAA,CACC,IAAKL,EACL,IAAAH,EACA,UAAWL,EACX,YAAAC,EACA,aAAcG,EACd,sBAAuBb,EAAM,sBAC7B,4BAA6BA,EAAM,4BACnC,OAAQA,EAAM,MAAA,CAAA,CAChB,CAAA,CAAA,EAGN,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,av as x,G as d,K as b,F as g,aq as j,ab as v,ag as N,Q as f,r as h,bH as y,bA as k}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{j as e,av as x,G as d,K as b,F as g,aq as j,ab as v,ag as N,Q as f,r as h,bH as y,bA as k}from"./app-CShb1Dgt.js";function T(n){return e.jsx("svg",{...n,children:e.jsx("path",{d:"M12 13.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0 5.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3m0-11a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3",fill:"currentColor"})})}const C="_dropdownToggle_1jkd1_1",S={dropdownToggle:C};function p(){return e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})}),e.jsx("div",{style:{padding:"0.53125rem 1rem"},children:e.jsx("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})})]})}function r(n){let o="dropdown-item";return n&&(o+=` ${n}`),o}function u(n){const o=g.isFunction(n.action.label)?n.action.label():e.jsx(e.Fragment,{children:n.action.label});if(n.action.appLink)return e.jsxs(j,{appLink:n.action.appLink,onClick:n.action.onClick,className:r(n.action.className),analyticsData:n.action.analyticsData,analyticsOptions:n.action.analyticsOptions,openInNewTab:n.action.openInNewTab,disabled:n.action.disabled,children:[n.action.svg&&e.jsx(d,{svg:n.action.svg,className:"d-inline-block svg-container me-2 align-middle"}),e.jsx("span",{className:"align-middle",children:o})]});function l(i){i.preventDefault(),n.action.analyticsData&&n.action.analyticsOptions&&v.logUserAction(n.action.analyticsData,n.action.analyticsOptions),g.isFunction(n.action.onClick)&&n.action.onClick(),n.action.href&&N.PageLoad(n.action.href,n.action.openInNewTab)}return n.action.href?e.jsxs("a",{className:r(n.action.className),onClick:l,href:n.action.href,children:[n.action.svg&&e.jsx(d,{svg:n.action.svg,className:"d-inline-block svg-container me-2 align-middle"}),e.jsx("span",{className:"align-middle",children:o})]}):e.jsxs("span",{className:`cursor-pointer ${r(n.action.className)}`,onClick:l,role:"button",tabIndex:0,onKeyDown:i=>i.key==="Enter"&&l(i),children:[n.action.svg&&e.jsx(d,{svg:n.action.svg,className:"d-inline-block svg-container me-2"}),o]})}w.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:f.Small};function w(n){if(!n.actions||!n.actions.length)return e.jsx(e.Fragment,{});const o=n.actions.some(t=>t.lazyPlaceholder);let l="dropdown";n.className&&(l+=` ${n.className}`);const i=`actions-dropdown-${x.getRandomInt()}`;let s=`dropdown-toggle px-0 ${S.dropdownToggle}`;n.dropdownToggleClassName&&(s+=` ${n.dropdownToggleClassName}`);let a;return e.jsxs("div",{className:l,children:[e.jsx("button",{className:s,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:o?n.fetchMore:null,children:e.jsx(d,{svg:T,size:n.dropdownToggleSvgSize})}),e.jsx("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":i,children:o?e.jsx(p,{}):n.actions.map((t,c)=>{const m=a!==void 0&&a!==t.group;return a=t.group,t.tooltip?e.jsxs("li",{children:[m&&e.jsx("hr",{className:"dropdown-divider",role:"separator"}),e.jsx(b,{title:t.tooltip,spanHack:!0,children:e.jsx(u,{action:t})})]},c):e.jsxs("li",{children:[m&&e.jsx("hr",{className:"dropdown-divider",role:"separator"}),e.jsx(u,{action:t})]},c)})})]})}function z(n){const o=h.useMemo(()=>n.actions.sort((a,t)=>a.order-t.order),[n.actions]),l=[],i=[];o.forEach(a=>{a.button?l.push(a):i.push(a)});let s="d-flex";return n.className&&(s+=` ${n.className}`),!l.length&&!i.length?e.jsx(e.Fragment,{}):e.jsxs("div",{className:s,children:[l.length?l.map((a,t)=>e.jsx(h.Fragment,{children:(()=>{if(a.label){const c=g.isFunction(a.label)?a.label():e.jsx(e.Fragment,{children:a.label});return e.jsx(y,{appLink:a.appLink,href:a.href,onClick:a.onClick,svg:a.svg,svgSize:n.dropdownToggleSvgSize,className:a.className,tooltip:a.tooltip,showSpinner:a.showSpinner,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,openInNewTab:a.openInNewTab,disabled:a.disabled,children:c})}return e.jsx(k,{appLink:a.appLink,href:a.href,onClick:a.onClick,svg:a.svg,className:a.className,analyticsData:a.analyticsData,analyticsOptions:a.analyticsOptions,openInNewTab:a.openInNewTab,disabled:a.disabled,showBorder:a.showBorder,customSize:n.customSize,ariaLabel:a.tooltip,tooltip:a.tooltip})})()},t)):e.jsx(e.Fragment,{}),n.sortComponent&&n.sortComponent,i.length?e.jsx(w,{actions:i,dropdownToggleClassName:n.actionsDropdownClassName,dropdownToggleSvgSize:n.dropdownToggleSvgSize,fetchMore:n.fetchMore}):e.jsx(e.Fragment,{})]})}export{z as A};
|
|
2
|
+
//# sourceMappingURL=DGvEmnsP.chunk.js.map
|