@clickview/exchange 0.55.1-dev.0 → 0.55.1-dev.1
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/{DYiI4iFo.chunk.js → 6ugYgeSq.chunk.js} +2 -2
- package/dist/scripts/{DYiI4iFo.chunk.js.map → 6ugYgeSq.chunk.js.map} +1 -1
- package/dist/scripts/{DJxQd3OQ.chunk.js → B2k61FX9.chunk.js} +2 -2
- package/dist/scripts/{DJxQd3OQ.chunk.js.map → B2k61FX9.chunk.js.map} +1 -1
- package/dist/scripts/{DAq5gDjR.chunk.js → B3PoX1Ca.chunk.js} +2 -2
- package/dist/scripts/{DAq5gDjR.chunk.js.map → B3PoX1Ca.chunk.js.map} +1 -1
- package/dist/scripts/{CdoPQq72.chunk.js → B5Tnikwj.chunk.js} +2 -2
- package/dist/scripts/{CdoPQq72.chunk.js.map → B5Tnikwj.chunk.js.map} +1 -1
- package/dist/scripts/{NOEoySBM.chunk.js → B5f0Cn6K.chunk.js} +2 -2
- package/dist/scripts/{NOEoySBM.chunk.js.map → B5f0Cn6K.chunk.js.map} +1 -1
- package/dist/scripts/{wwrNvwhU.chunk.js → B695Io16.chunk.js} +2 -2
- package/dist/scripts/{wwrNvwhU.chunk.js.map → B695Io16.chunk.js.map} +1 -1
- package/dist/scripts/{89IgQU35.chunk.js → B6CHLwQE.chunk.js} +2 -2
- package/dist/scripts/{89IgQU35.chunk.js.map → B6CHLwQE.chunk.js.map} +1 -1
- package/dist/scripts/{Cn8IJFAD.chunk.js → B6gXaLCu.chunk.js} +2 -2
- package/dist/scripts/{Cn8IJFAD.chunk.js.map → B6gXaLCu.chunk.js.map} +1 -1
- package/dist/scripts/{DwL60tTx.chunk.js → B7b3dHqh.chunk.js} +2 -2
- package/dist/scripts/{DwL60tTx.chunk.js.map → B7b3dHqh.chunk.js.map} +1 -1
- package/dist/scripts/{D5cTJzMl.chunk.js → B8BWa8rG.chunk.js} +2 -2
- package/dist/scripts/{D5cTJzMl.chunk.js.map → B8BWa8rG.chunk.js.map} +1 -1
- package/dist/scripts/{DdVfOuan.chunk.js → BA6dAji1.chunk.js} +2 -2
- package/dist/scripts/{DdVfOuan.chunk.js.map → BA6dAji1.chunk.js.map} +1 -1
- package/dist/scripts/{BKYS86yt.chunk.js → BDJvxAZr.chunk.js} +2 -2
- package/dist/scripts/{BKYS86yt.chunk.js.map → BDJvxAZr.chunk.js.map} +1 -1
- package/dist/scripts/{L4Ub9t1Q.chunk.js → BDTrB61Q.chunk.js} +2 -2
- package/dist/scripts/{L4Ub9t1Q.chunk.js.map → BDTrB61Q.chunk.js.map} +1 -1
- package/dist/scripts/{D95N1pjr.chunk.js → BENCAb_Y.chunk.js} +2 -2
- package/dist/scripts/{D95N1pjr.chunk.js.map → BENCAb_Y.chunk.js.map} +1 -1
- package/dist/scripts/{rR9pgyKh.chunk.js → BGTivNih.chunk.js} +3 -3
- package/dist/scripts/{rR9pgyKh.chunk.js.map → BGTivNih.chunk.js.map} +1 -1
- package/dist/scripts/{CBhcpqvz.chunk.js → BHjOfQBL.chunk.js} +2 -2
- package/dist/scripts/{CBhcpqvz.chunk.js.map → BHjOfQBL.chunk.js.map} +1 -1
- package/dist/scripts/{v6fMGz1b.chunk.js → BIsRcDFM.chunk.js} +2 -2
- package/dist/scripts/{v6fMGz1b.chunk.js.map → BIsRcDFM.chunk.js.map} +1 -1
- package/dist/scripts/{DVZ1kgun.chunk.js → BKhpM0zm.chunk.js} +2 -2
- package/dist/scripts/{DVZ1kgun.chunk.js.map → BKhpM0zm.chunk.js.map} +1 -1
- package/dist/scripts/BNMMjoWK.chunk.js +2 -0
- package/dist/scripts/{C8et0pLb.chunk.js.map → BNMMjoWK.chunk.js.map} +1 -1
- package/dist/scripts/BSp3iUl8.chunk.js +2 -0
- package/dist/scripts/{DtyB02Sn.chunk.js.map → BSp3iUl8.chunk.js.map} +1 -1
- package/dist/scripts/{DKjn3duF.chunk.js → BcHrOYjt.chunk.js} +2 -2
- package/dist/scripts/{DKjn3duF.chunk.js.map → BcHrOYjt.chunk.js.map} +1 -1
- package/dist/scripts/{DbqmKtbC.chunk.js → BfCrcP0R.chunk.js} +2 -2
- package/dist/scripts/{DbqmKtbC.chunk.js.map → BfCrcP0R.chunk.js.map} +1 -1
- package/dist/scripts/{CHoqd22R.chunk.js → BgN7i6MB.chunk.js} +2 -2
- package/dist/scripts/{CHoqd22R.chunk.js.map → BgN7i6MB.chunk.js.map} +1 -1
- package/dist/scripts/{C-aLs4Ef.chunk.js → BkHLoZ-N.chunk.js} +2 -2
- package/dist/scripts/{C-aLs4Ef.chunk.js.map → BkHLoZ-N.chunk.js.map} +1 -1
- package/dist/scripts/{lrq4lIJa.chunk.js → BniF6LVx.chunk.js} +2 -2
- package/dist/scripts/{lrq4lIJa.chunk.js.map → BniF6LVx.chunk.js.map} +1 -1
- package/dist/scripts/{DZu6jtCJ.chunk.js → C-Mo_AjO.chunk.js} +2 -2
- package/dist/scripts/{DZu6jtCJ.chunk.js.map → C-Mo_AjO.chunk.js.map} +1 -1
- package/dist/scripts/{DG5bX1lj.chunk.js → C00nDP-p.chunk.js} +2 -2
- package/dist/scripts/{DG5bX1lj.chunk.js.map → C00nDP-p.chunk.js.map} +1 -1
- package/dist/scripts/C09X2KJd.chunk.js +2 -0
- package/dist/scripts/{C94eK3Q6.chunk.js.map → C09X2KJd.chunk.js.map} +1 -1
- package/dist/scripts/{j7vmscoo.chunk.js → C0AfgE1f.chunk.js} +2 -2
- package/dist/scripts/{j7vmscoo.chunk.js.map → C0AfgE1f.chunk.js.map} +1 -1
- package/dist/scripts/{Dv1cKAft.chunk.js → C68sCpX6.chunk.js} +2 -2
- package/dist/scripts/{Dv1cKAft.chunk.js.map → C68sCpX6.chunk.js.map} +1 -1
- package/dist/scripts/{BqdID4mk.chunk.js → CAeyI7a_.chunk.js} +2 -2
- package/dist/scripts/{BqdID4mk.chunk.js.map → CAeyI7a_.chunk.js.map} +1 -1
- package/dist/scripts/{BMTODxV2.chunk.js → CC8ClfIm.chunk.js} +2 -2
- package/dist/scripts/{BMTODxV2.chunk.js.map → CC8ClfIm.chunk.js.map} +1 -1
- package/dist/scripts/{CoyUpQya.chunk.js → CE9VNRtH.chunk.js} +2 -2
- package/dist/scripts/{CoyUpQya.chunk.js.map → CE9VNRtH.chunk.js.map} +1 -1
- package/dist/scripts/{DH5pFFkH.chunk.js → CEOJnCgX.chunk.js} +2 -2
- package/dist/scripts/{DH5pFFkH.chunk.js.map → CEOJnCgX.chunk.js.map} +1 -1
- package/dist/scripts/{CSW_ftvw.chunk.js → CF4l8gqP.chunk.js} +2 -2
- package/dist/scripts/{CSW_ftvw.chunk.js.map → CF4l8gqP.chunk.js.map} +1 -1
- package/dist/scripts/{DnoYIjnk.chunk.js → CGs_wDRQ.chunk.js} +2 -2
- package/dist/scripts/{DnoYIjnk.chunk.js.map → CGs_wDRQ.chunk.js.map} +1 -1
- package/dist/scripts/{CloBBmov.chunk.js → CILpxfVo.chunk.js} +2 -2
- package/dist/scripts/{CloBBmov.chunk.js.map → CILpxfVo.chunk.js.map} +1 -1
- package/dist/scripts/{DmpDv9Tr.chunk.js → CK70Pu2i.chunk.js} +2 -2
- package/dist/scripts/{DmpDv9Tr.chunk.js.map → CK70Pu2i.chunk.js.map} +1 -1
- package/dist/scripts/{CcLLbQj9.chunk.js → CPD8tGlR.chunk.js} +2 -2
- package/dist/scripts/{CcLLbQj9.chunk.js.map → CPD8tGlR.chunk.js.map} +1 -1
- package/dist/scripts/{B2pUpkzt.chunk.js → CVZpiAmE.chunk.js} +2 -2
- package/dist/scripts/{B2pUpkzt.chunk.js.map → CVZpiAmE.chunk.js.map} +1 -1
- package/dist/scripts/{DbeS50YB.chunk.js → CWP9OQsX.chunk.js} +2 -2
- package/dist/scripts/{DbeS50YB.chunk.js.map → CWP9OQsX.chunk.js.map} +1 -1
- package/dist/scripts/{VtD9jrXA.chunk.js → CYXKgmT6.chunk.js} +2 -2
- package/dist/scripts/{VtD9jrXA.chunk.js.map → CYXKgmT6.chunk.js.map} +1 -1
- package/dist/scripts/{BFTe3PCJ.chunk.js → CZLa2gZJ.chunk.js} +2 -2
- package/dist/scripts/{BFTe3PCJ.chunk.js.map → CZLa2gZJ.chunk.js.map} +1 -1
- package/dist/scripts/{-oGcs2o7.chunk.js → CaLLQoeO.chunk.js} +2 -2
- package/dist/scripts/{-oGcs2o7.chunk.js.map → CaLLQoeO.chunk.js.map} +1 -1
- package/dist/scripts/{DZQFyYKA.chunk.js → Cb27KTif.chunk.js} +2 -2
- package/dist/scripts/{DZQFyYKA.chunk.js.map → Cb27KTif.chunk.js.map} +1 -1
- package/dist/scripts/{BaSBcMD4.chunk.js → CbeiCIGS.chunk.js} +2 -2
- package/dist/scripts/{BaSBcMD4.chunk.js.map → CbeiCIGS.chunk.js.map} +1 -1
- package/dist/scripts/{CgPcAJSh.chunk.js → CdP3gnNV.chunk.js} +2 -2
- package/dist/scripts/{CgPcAJSh.chunk.js.map → CdP3gnNV.chunk.js.map} +1 -1
- package/dist/scripts/{CmfVxd9w.chunk.js → Cem_15ru.chunk.js} +2 -2
- package/dist/scripts/{CmfVxd9w.chunk.js.map → Cem_15ru.chunk.js.map} +1 -1
- package/dist/scripts/{OBuowdMc.chunk.js → CfS44DXK.chunk.js} +2 -2
- package/dist/scripts/{OBuowdMc.chunk.js.map → CfS44DXK.chunk.js.map} +1 -1
- package/dist/scripts/{gAox6n5o.chunk.js → Cih4Ddbu.chunk.js} +2 -2
- package/dist/scripts/{gAox6n5o.chunk.js.map → Cih4Ddbu.chunk.js.map} +1 -1
- package/dist/scripts/CkF0PdvD.chunk.js +2 -0
- package/dist/scripts/{rzKXH0iU.chunk.js.map → CkF0PdvD.chunk.js.map} +1 -1
- package/dist/scripts/{D6kC-dfM.chunk.js → ClAajgIC.chunk.js} +2 -2
- package/dist/scripts/{D6kC-dfM.chunk.js.map → ClAajgIC.chunk.js.map} +1 -1
- package/dist/scripts/CuaAi3hl.chunk.js +2 -0
- package/dist/scripts/{dncf4usG.chunk.js.map → CuaAi3hl.chunk.js.map} +1 -1
- package/dist/scripts/CxUHqnOh.chunk.js +2 -0
- package/dist/scripts/{D94dUObP.chunk.js.map → CxUHqnOh.chunk.js.map} +1 -1
- package/dist/scripts/{Ca5g2g0M.chunk.js → Cz-DEpIl.chunk.js} +2 -2
- package/dist/scripts/{Ca5g2g0M.chunk.js.map → Cz-DEpIl.chunk.js.map} +1 -1
- package/dist/scripts/{B7vV0_3l.chunk.js → D4xYDc88.chunk.js} +2 -2
- package/dist/scripts/{B7vV0_3l.chunk.js.map → D4xYDc88.chunk.js.map} +1 -1
- package/dist/scripts/{-eOR7hsb.chunk.js → DAbsA9MV.chunk.js} +2 -2
- package/dist/scripts/{-eOR7hsb.chunk.js.map → DAbsA9MV.chunk.js.map} +1 -1
- package/dist/scripts/{MkZBh98f.chunk.js → DBs7i4mg.chunk.js} +2 -2
- package/dist/scripts/{MkZBh98f.chunk.js.map → DBs7i4mg.chunk.js.map} +1 -1
- package/dist/scripts/{BrmJsOUO.chunk.js → DEhxVL2r.chunk.js} +2 -2
- package/dist/scripts/{BrmJsOUO.chunk.js.map → DEhxVL2r.chunk.js.map} +1 -1
- package/dist/scripts/{DtwLBBNK.chunk.js → DFPTM2m4.chunk.js} +2 -2
- package/dist/scripts/{DtwLBBNK.chunk.js.map → DFPTM2m4.chunk.js.map} +1 -1
- package/dist/scripts/{CgqpQ9AK.chunk.js → DG4Gno_E.chunk.js} +2 -2
- package/dist/scripts/{CgqpQ9AK.chunk.js.map → DG4Gno_E.chunk.js.map} +1 -1
- package/dist/scripts/{BH7pP4J6.chunk.js → DH3Nc9P7.chunk.js} +2 -2
- package/dist/scripts/{BH7pP4J6.chunk.js.map → DH3Nc9P7.chunk.js.map} +1 -1
- package/dist/scripts/{DyTWsrqD.chunk.js → DHXvkHsb.chunk.js} +2 -2
- package/dist/scripts/{DyTWsrqD.chunk.js.map → DHXvkHsb.chunk.js.map} +1 -1
- package/dist/scripts/{D41CRehW.chunk.js → DHxv0YeB.chunk.js} +2 -2
- package/dist/scripts/{D41CRehW.chunk.js.map → DHxv0YeB.chunk.js.map} +1 -1
- package/dist/scripts/{C1I_rTQ_.chunk.js → DIJ6qEMe.chunk.js} +2 -2
- package/dist/scripts/{C1I_rTQ_.chunk.js.map → DIJ6qEMe.chunk.js.map} +1 -1
- package/dist/scripts/{SSTeR1Y-.chunk.js → DLBDiFVq.chunk.js} +2 -2
- package/dist/scripts/{SSTeR1Y-.chunk.js.map → DLBDiFVq.chunk.js.map} +1 -1
- package/dist/scripts/{CpXzdHOO.chunk.js → DP3w7A4L.chunk.js} +2 -2
- package/dist/scripts/{CpXzdHOO.chunk.js.map → DP3w7A4L.chunk.js.map} +1 -1
- package/dist/scripts/{CbnRXlsc.chunk.js → DVxew3cs.chunk.js} +2 -2
- package/dist/scripts/{CbnRXlsc.chunk.js.map → DVxew3cs.chunk.js.map} +1 -1
- package/dist/scripts/{CcAH_1Du.chunk.js → DXNAdVdo.chunk.js} +2 -2
- package/dist/scripts/{CcAH_1Du.chunk.js.map → DXNAdVdo.chunk.js.map} +1 -1
- package/dist/scripts/DYFlAuiV.chunk.js +2 -0
- package/dist/scripts/{yJSiv4Zm.chunk.js.map → DYFlAuiV.chunk.js.map} +1 -1
- package/dist/scripts/{FXsyYEqA.chunk.js → Dam_cOwt.chunk.js} +2 -2
- package/dist/scripts/{FXsyYEqA.chunk.js.map → Dam_cOwt.chunk.js.map} +1 -1
- package/dist/scripts/{CRAfTPgM.chunk.js → Dgb7t1K4.chunk.js} +2 -2
- package/dist/scripts/{CRAfTPgM.chunk.js.map → Dgb7t1K4.chunk.js.map} +1 -1
- package/dist/scripts/{cdxXDelE.chunk.js → DogGBezf.chunk.js} +2 -2
- package/dist/scripts/{cdxXDelE.chunk.js.map → DogGBezf.chunk.js.map} +1 -1
- package/dist/scripts/{D_-_6kZe.chunk.js → Dpdkt0GP.chunk.js} +2 -2
- package/dist/scripts/{D_-_6kZe.chunk.js.map → Dpdkt0GP.chunk.js.map} +1 -1
- package/dist/scripts/{TsMmz5NE.chunk.js → DpvM518u.chunk.js} +2 -2
- package/dist/scripts/{TsMmz5NE.chunk.js.map → DpvM518u.chunk.js.map} +1 -1
- package/dist/scripts/{Co0LfXeU.chunk.js → DqYRVHOk.chunk.js} +2 -2
- package/dist/scripts/{Co0LfXeU.chunk.js.map → DqYRVHOk.chunk.js.map} +1 -1
- package/dist/scripts/{DfgmLyT1.chunk.js → DqwgSiMd.chunk.js} +2 -2
- package/dist/scripts/{DfgmLyT1.chunk.js.map → DqwgSiMd.chunk.js.map} +1 -1
- package/dist/scripts/{DobAMdqT.chunk.js → DtgCW8ME.chunk.js} +2 -2
- package/dist/scripts/{DobAMdqT.chunk.js.map → DtgCW8ME.chunk.js.map} +1 -1
- package/dist/scripts/{BHUcf1fG.chunk.js → DxbUcs7w.chunk.js} +2 -2
- package/dist/scripts/{BHUcf1fG.chunk.js.map → DxbUcs7w.chunk.js.map} +1 -1
- package/dist/scripts/{BRRmOX-N.chunk.js → RZpRRsx8.chunk.js} +2 -2
- package/dist/scripts/{BRRmOX-N.chunk.js.map → RZpRRsx8.chunk.js.map} +1 -1
- package/dist/scripts/{COx43m1X.chunk.js → TEzZMW_8.chunk.js} +2 -2
- package/dist/scripts/{COx43m1X.chunk.js.map → TEzZMW_8.chunk.js.map} +1 -1
- package/dist/scripts/{BAo0l-Cr.chunk.js → VYxhnntI.chunk.js} +2 -2
- package/dist/scripts/{BAo0l-Cr.chunk.js.map → VYxhnntI.chunk.js.map} +1 -1
- package/dist/scripts/{app-D1kg55lE.js → app-CWLlxhC4.js} +3 -3
- package/dist/scripts/{app-D1kg55lE.js.map → app-CWLlxhC4.js.map} +1 -1
- package/dist/scripts/{fVRbFunO.chunk.js → ivwPXIiD.chunk.js} +2 -2
- package/dist/scripts/{fVRbFunO.chunk.js.map → ivwPXIiD.chunk.js.map} +1 -1
- package/dist/scripts/{BTLyZrVH.chunk.js → k7QDC8lR.chunk.js} +2 -2
- package/dist/scripts/{BTLyZrVH.chunk.js.map → k7QDC8lR.chunk.js.map} +1 -1
- package/dist/scripts/{B_eCP--R.chunk.js → m3alwmxn.chunk.js} +2 -2
- package/dist/scripts/{B_eCP--R.chunk.js.map → m3alwmxn.chunk.js.map} +1 -1
- package/dist/scripts/{GYrPX6ng.chunk.js → rP9OQnNa.chunk.js} +2 -2
- package/dist/scripts/{GYrPX6ng.chunk.js.map → rP9OQnNa.chunk.js.map} +1 -1
- package/dist/scripts/{4mEjD_Wx.chunk.js → tueKkjSA.chunk.js} +2 -2
- package/dist/scripts/{4mEjD_Wx.chunk.js.map → tueKkjSA.chunk.js.map} +1 -1
- package/dist/scripts/{DQdCoXQk.chunk.js → u39PSbeM.chunk.js} +2 -2
- package/dist/scripts/{DQdCoXQk.chunk.js.map → u39PSbeM.chunk.js.map} +1 -1
- package/dist/scripts/{B0SivR80.chunk.js → v6KzbWE4.chunk.js} +2 -2
- package/dist/scripts/{B0SivR80.chunk.js.map → v6KzbWE4.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/C8et0pLb.chunk.js +0 -2
- package/dist/scripts/C94eK3Q6.chunk.js +0 -2
- package/dist/scripts/D94dUObP.chunk.js +0 -2
- package/dist/scripts/DtyB02Sn.chunk.js +0 -2
- package/dist/scripts/dncf4usG.chunk.js +0 -2
- package/dist/scripts/rzKXH0iU.chunk.js +0 -2
- package/dist/scripts/yJSiv4Zm.chunk.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gAox6n5o.chunk.js","sources":["../../../../../node_modules/react-intersection-observer/index.mjs","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["observerMap","RootIds","rootId","unsupportedValue","getRootId","root","optionsToId","options","key","createObserver","id","instance","elements","thresholds","observer","entries","entry","_a","inView","threshold","callback","observe","element","fallbackInView","bounds","callbacks","useInView","delay","trackVisibility","rootMargin","triggerOnce","skip","initialInView","onChange","ref","setRef","React2.useState","React2.useRef","state","setState","React2.useEffect","unobserve","entryTarget","previousEntryTarget","result","useLazyLoad","prevent","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Cih4Ddbu.chunk.js","sources":["../../../../../node_modules/react-intersection-observer/index.mjs","../../../../libs/shared/src/hooks/UseLazyLoad.ts","../../../../libs/shared/src/components/lazy-image/LazyImage.tsx"],"sourcesContent":["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// src/InView.tsx\nimport * as React from \"react\";\n\n// src/observe.ts\nvar observerMap = /* @__PURE__ */ new Map();\nvar RootIds = /* @__PURE__ */ new WeakMap();\nvar rootId = 0;\nvar unsupportedValue = void 0;\nfunction defaultFallbackInView(inView) {\n unsupportedValue = inView;\n}\nfunction getRootId(root) {\n if (!root)\n return \"0\";\n if (RootIds.has(root))\n return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\nfunction optionsToId(options) {\n return Object.keys(options).sort().filter(\n (key) => options[key] !== void 0\n ).map((key) => {\n return `${key}_${key === \"root\" ? getRootId(options.root) : options[key]}`;\n }).toString();\n}\nfunction createObserver(options) {\n const id = optionsToId(options);\n let instance = observerMap.get(id);\n if (!instance) {\n const elements = /* @__PURE__ */ new Map();\n let thresholds;\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n var _a;\n const inView = entry.isIntersecting && thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n if (options.trackVisibility && typeof entry.isVisible === \"undefined\") {\n entry.isVisible = inView;\n }\n (_a = elements.get(entry.target)) == null ? void 0 : _a.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n thresholds = observer.thresholds || (Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);\n instance = {\n id,\n observer,\n elements\n };\n observerMap.set(id, instance);\n }\n return instance;\n}\nfunction observe(element, callback, options = {}, fallbackInView = unsupportedValue) {\n if (typeof window.IntersectionObserver === \"undefined\" && fallbackInView !== void 0) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio: typeof options.threshold === \"number\" ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds\n });\n return () => {\n };\n }\n const { id, observer, elements } = createObserver(options);\n const callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n callbacks.push(callback);\n observer.observe(element);\n return function unobserve() {\n callbacks.splice(callbacks.indexOf(callback), 1);\n if (callbacks.length === 0) {\n elements.delete(element);\n observer.unobserve(element);\n }\n if (elements.size === 0) {\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n\n// src/InView.tsx\nfunction isPlainChildren(props) {\n return typeof props.children !== \"function\";\n}\nvar InView = class extends React.Component {\n constructor(props) {\n super(props);\n __publicField(this, \"node\", null);\n __publicField(this, \"_unobserveCb\", null);\n __publicField(this, \"handleNode\", (node) => {\n if (this.node) {\n this.unobserve();\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n this.setState({ inView: !!this.props.initialInView, entry: void 0 });\n }\n }\n this.node = node ? node : null;\n this.observeNode();\n });\n __publicField(this, \"handleChange\", (inView, entry) => {\n if (inView && this.props.triggerOnce) {\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n this.props.onChange(inView, entry);\n }\n });\n this.state = {\n inView: !!props.initialInView,\n entry: void 0\n };\n }\n componentDidMount() {\n this.unobserve();\n this.observeNode();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.rootMargin !== this.props.rootMargin || prevProps.root !== this.props.root || prevProps.threshold !== this.props.threshold || prevProps.skip !== this.props.skip || prevProps.trackVisibility !== this.props.trackVisibility || prevProps.delay !== this.props.delay) {\n this.unobserve();\n this.observeNode();\n }\n }\n componentWillUnmount() {\n this.unobserve();\n }\n observeNode() {\n if (!this.node || this.props.skip)\n return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView\n } = this.props;\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n }\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n render() {\n const { children } = this.props;\n if (typeof children === \"function\") {\n const { inView, entry } = this.state;\n return children({ inView, entry, ref: this.handleNode });\n }\n const {\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n return React.createElement(\n as || \"div\",\n { ref: this.handleNode, ...props },\n children\n );\n }\n};\n\n// src/useInView.tsx\nimport * as React2 from \"react\";\nfunction useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange\n} = {}) {\n var _a;\n const [ref, setRef] = React2.useState(null);\n const callback = React2.useRef();\n const [state, setState] = React2.useState({\n inView: !!initialInView,\n entry: void 0\n });\n callback.current = onChange;\n React2.useEffect(\n () => {\n if (skip || !ref)\n return;\n let unobserve;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry\n });\n if (callback.current)\n callback.current(inView, entry);\n if (entry.isIntersecting && triggerOnce && unobserve) {\n unobserve();\n unobserve = void 0;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay\n },\n fallbackInView\n );\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay\n ]\n );\n const entryTarget = (_a = state.entry) == null ? void 0 : _a.target;\n const previousEntryTarget = React2.useRef();\n if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget.current !== entryTarget) {\n previousEntryTarget.current = entryTarget;\n setState({\n inView: !!initialInView,\n entry: void 0\n });\n }\n const result = [setRef, state.inView, state.entry];\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n return result;\n}\nexport {\n InView,\n defaultFallbackInView,\n observe,\n useInView\n};\n//# sourceMappingURL=index.mjs.map","import { useInView } from 'react-intersection-observer';\n\ninterface LazyUtils {\n ref: (node?: Element) => void | null;\n inView: boolean;\n\n /**\n * Use this if you want to hide something on start\n * and then show it as something else leaves the window\n * e.g. The student feed floating jump to button\n */\n initialized: boolean;\n}\n\ninterface UseLazyLoadOptions {\n prevent?: boolean;\n /**\n * See rootMagin here: https://www.npmjs.com/package/react-intersection-observer#api\n * Thow allows us to have items load ahead of coming into the viewport\n * for example thumbnail images as we scroll\n */\n rootMargin?: string;\n triggerOnce?: boolean;\n}\n\nexport function useLazyLoad(options: UseLazyLoadOptions = {}): LazyUtils {\n const { prevent, rootMargin, triggerOnce = true } = options;\n\n // eslint-disable-next-line\n let [ ref, inView, entry ] = useInView({ triggerOnce, rootMargin: rootMargin });\n\n if (prevent === true || typeof (window as any).IntersectionObserver === 'undefined') {\n inView = true;\n ref = null;\n }\n\n return { ref, inView, initialized: !!entry };\n}","import * as React from 'react';\n\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\n\nimport styles from './lazy-image.module.scss';\n\n/**\n * This value means we will load images 500px above\n * or below the viewport so that they are loaded\n * by the time they come into the viewport\n */\nconst PRELOAD_DISTANCE = '500px';\n/**\n * Atomically small blank GIF as placeholder for image src to prevent w3 validator error\n */\nconst PLACEHOLDER_SRC = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n\ninterface LazyImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n forceLoad?: boolean;\n preventLoad?: boolean;\n extraClasses?: string;\n errorFallbackImageSrc?: string;\n errorFallbackImageClassName?: string;\n}\n\nexport const LazyImage = React.memo(function(props: LazyImageProps): React.ReactElement {\n const { forceLoad, extraClasses = '', errorFallbackImageSrc, preventLoad = false, errorFallbackImageClassName, src, alt, ...propsWithoutSrc } = props;\n \n const { ref, inView } = useLazyLoad({ rootMargin: PRELOAD_DISTANCE });\n const [ error, setError ] = React.useState(false);\n\n React.useEffect(() => {\n if ((!forceLoad && !inView) || preventLoad)\n return;\n \n // https://stackoverflow.com/questions/2342132/waiting-for-image-to-load-in-javascript\n const img = new Image();\n\n img.onerror = () => {\n setError(true);\n \n if (errorFallbackImageSrc)\n img.src = errorFallbackImageSrc;\n };\n\n img.src = src;\n return () => img.onerror = null;\n }, [ inView, preventLoad ]);\n\n function getSrc(): string {\n if (error && errorFallbackImageSrc)\n return errorFallbackImageSrc;\n\n return props.src;\n }\n\n if (error && !errorFallbackImageSrc)\n return <></>;\n\n if (!ref) {\n return (\n <img\n className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`}\n alt={alt}\n src={getSrc()}\n {...propsWithoutSrc}\n />\n );\n }\n\n const imgProps: React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> = {\n alt,\n ...propsWithoutSrc,\n ...(((inView || forceLoad) && !preventLoad) ? { src: getSrc() } : { src: PLACEHOLDER_SRC })\n };\n\n if (!forceLoad)\n imgProps.ref = ref;\n\n return (\n <img className={`${styles.image} ${extraClasses} ${error ? errorFallbackImageClassName || '' : ''}`} {...imgProps} />\n );\n});"],"names":["observerMap","RootIds","rootId","unsupportedValue","getRootId","root","optionsToId","options","key","createObserver","id","instance","elements","thresholds","observer","entries","entry","_a","inView","threshold","callback","observe","element","fallbackInView","bounds","callbacks","useInView","delay","trackVisibility","rootMargin","triggerOnce","skip","initialInView","onChange","ref","setRef","React2.useState","React2.useRef","state","setState","React2.useEffect","unobserve","entryTarget","previousEntryTarget","result","useLazyLoad","prevent","PRELOAD_DISTANCE","PLACEHOLDER_SRC","LazyImage","React.memo","props","forceLoad","extraClasses","errorFallbackImageSrc","preventLoad","errorFallbackImageClassName","src","alt","propsWithoutSrc","error","setError","React.useState","React.useEffect","img","getSrc","jsx","Fragment","styles","imgProps"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{aj as m,a3 as c,l as n,L as p,j as e}from"./app-CWLlxhC4.js";import{u as h,P as x,F as g}from"./DP3w7A4L.chunk.js";import{L as l}from"./C0AfgE1f.chunk.js";import{u as d}from"./CuaAi3hl.chunk.js";import{E as u}from"./k7QDC8lR.chunk.js";import{E as f}from"./ivwPXIiD.chunk.js";import{E as j}from"./CaLLQoeO.chunk.js";import{g as F}from"./B3PoX1Ca.chunk.js";import"./DqYRVHOk.chunk.js";import"./CE9VNRtH.chunk.js";import"./DxbUcs7w.chunk.js";import"./B2k61FX9.chunk.js";import"./Cih4Ddbu.chunk.js";import"./CfS44DXK.chunk.js";import"./6ugYgeSq.chunk.js";import"./BIsRcDFM.chunk.js";import"./DXNAdVdo.chunk.js";import"./DHXvkHsb.chunk.js";import"./u39PSbeM.chunk.js";import"./BlDVEZsX.chunk.js";import"./B5Tnikwj.chunk.js";import"./Dam_cOwt.chunk.js";import"./pkzD5BEm.chunk.js";const E="exchange.exchange",L=p.encloseNamespace(E);function K(){const i=m(),r=c(j.exchange()),a=s=>l.childFolders(r.data.categoryTree.id,s),o=s=>i(a(s)),t=h(r.data&&a,o);return d(r),n({title:L("exchangeArchive")}),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-3",children:[e.jsx(u,{}),e.jsx(f,{active:"categories"})]}),t!=null&&t.items?t.items.length?e.jsx("div",{className:"mx-n2",children:e.jsx(g,{folders:t.items,getAppLink:s=>F(s),expandFolders:!0,showHeading:!1})}):e.jsx(e.Fragment,{}):e.jsx("div",{className:"mt-3",children:e.jsx(x,{count:22})})]})}export{K as ExchangeView};
|
|
2
|
+
//# sourceMappingURL=CkF0PdvD.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CkF0PdvD.chunk.js","sources":["../../src/apps/exchange/views/exchange/ExchangeView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { ExchangeSearchBar } from 'apps/exchange/components/exchange-search-bar/ExchangeSearchBar';\nimport { ExchangeTabs } from 'apps/exchange/components/exchange-tabs/ExchangeTabs';\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { getFolderAppLink } from 'apps/exchange/utils/ExchangeUtils';\n\nconst namespace = 'exchange.exchange';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ExchangeView(): JSX.Element {\n const fetch = Flight.useGetFetch();\n\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const getRequest = (cursor: string) => LibraryRequests.childFolders(exchange.data.categoryTree.id, cursor);\n const fetchNext = (cursor: string) => fetch(getRequest(cursor));\n const libraryFolders = useFetchAll(exchange.data && getRequest, fetchNext);\n\n useHandleObjectError(exchange);\n\n useSetPageMetadata({ title: getPhrase('exchangeArchive') });\n\n return (\n <>\n <div className='mb-3'>\n <ExchangeSearchBar />\n <ExchangeTabs active='categories' />\n </div>\n \n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3'><PartialFolderList count={22} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mx-n2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(f)}\n expandFolders\n showHeading={false}\n />\n </div>\n );\n })()}\n </>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ExchangeView","fetch","Flight.useGetFetch","exchange","Flight.useBasicFetch","ExchangeRequests","getRequest","cursor","LibraryRequests","fetchNext","libraryFolders","useFetchAll","useHandleObjectError","useSetPageMetadata","jsxs","Fragment","jsx","ExchangeSearchBar","ExchangeTabs","FolderList","f","getFolderAppLink","PartialFolderList"],"mappings":"8wBAkBA,MAAMA,EAAY,oBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAErD,SAASG,GAA4B,CAC1C,MAAMC,EAAQC,EAAO,EAEfC,EAAWC,EAA8BC,EAAiB,UAAU,EACpEC,EAAcC,GAAmBC,EAAgB,aAAaL,EAAS,KAAK,aAAa,GAAII,CAAM,EACnGE,EAAaF,GAAmBN,EAAMK,EAAWC,CAAM,CAAC,EACxDG,EAAiBC,EAAYR,EAAS,MAAQG,EAAYG,CAAS,EAEzE,OAAAG,EAAqBT,CAAQ,EAE7BU,EAAmB,CAAE,MAAOf,EAAU,iBAAiB,EAAG,EAGxDgB,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,EAAAA,IAACC,EAAA,EAAkB,EACnBD,EAAAA,IAACE,EAAA,CAAa,OAAO,YAAA,CAAa,CAAA,EACpC,EAGOR,GAAA,MAAAA,EAAgB,MAGhBA,EAAe,MAAM,OAIxBM,EAAAA,IAAC,MAAA,CAAI,UAAU,QACb,SAAAA,EAAAA,IAACG,EAAA,CACC,QAAST,EAAe,MACxB,WAAaU,GAAcC,EAAiBD,CAAC,EAC7C,cAAa,GACb,YAAa,EAAA,CAAA,EAEjB,EAVOJ,EAAAA,IAAAD,EAAAA,SAAA,EAAE,EAHFC,MAAC,OAAI,UAAU,OAAO,eAACM,EAAA,CAAkB,MAAO,GAAI,CAAA,CAAE,CAe9D,EACL,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a2 as S,a3 as n,R as i,ab as w,ae as k,ad as E,aI as L,af as T,L as C,j as e,P as R,am as I,B as p,x as m,A as F,aD as U}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a2 as S,a3 as n,R as i,ab as w,ae as k,ad as E,aI as L,af as T,L as C,j as e,P as R,am as I,B as p,x as m,A as F,aD as U}from"./app-CWLlxhC4.js";import{S as q}from"./CxUHqnOh.chunk.js";import{V as B}from"./CF4l8gqP.chunk.js";import{u as H}from"./BDJvxAZr.chunk.js";import{E as u}from"./CaLLQoeO.chunk.js";import{u as D}from"./DBs7i4mg.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./Dam_cOwt.chunk.js";const c="exchange.add",o=C.encloseNamespace(c);function X(s){var l;const x=H(),f=S(),g=n(U.config()),h=n(u.exchange()),a=n(B.video(s.id)),[r,j]=i.useState(!1),[A,P]=i.useState(!1),[V,b]=i.useState(null),{previewContext:t,clearPreviewContext:v}=D(s.id,!1);i.useEffect(()=>{!a.data||A||y()},[(l=a.data)==null?void 0:l.id]);async function y(){P(!0);try{const N=await f(u.addVideo(h.data.id,a.data.id));j(!0),b(N.id),w.logUserAction({id:a.data.id,name:a.data.name},{actionType:T.Submit,descriptor:L.AddToWorkspace,location:E.Popup,entity:k.Video})}catch{x.error(o("error")),s.closePopup()}}function d(){s.closePopup(),t!=null&&t.appLink&&(q.preventScrollTop(),F.trigger(t.appLink),v())}return e.jsx(R,{title:o("title"),closePopup:d,showLoadingSpinner:!r,children:r&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mx-auto w-75 mt-1 mb-2",children:e.jsx("img",{src:I.General.CONFETTI,className:"img-fluid",draggable:!1})}),e.jsx("div",{className:"text-center pb-3",children:e.jsx("h4",{className:"mb-2",children:e.jsx(p,{namespace:c,phrase:"added"})})}),e.jsxs(m,{children:[e.jsx(m.Cancel,{text:o("close"),onClick:d,variant:"link"}),e.jsx("a",{href:`${g.data.liteUrl}/videos/${V}`,className:"btn btn-dark",children:e.jsx("span",{className:"align-text-bottom me-1",children:e.jsx(p,{namespace:c,phrase:"open"})})})]})]})})}export{X as ExchangeAddView};
|
|
2
|
+
//# sourceMappingURL=ClAajgIC.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"ClAajgIC.chunk.js","sources":["../../src/apps/exchange/views/exchange-add/ExchangeAddView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor } from 'libs/analytics/interfaces';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, Library, PopupViewProps, Video } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\n\nconst namespace = 'exchange.add';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeAddViewProps extends PopupViewProps {\n id: string;\n}\n\nexport function ExchangeAddView(props: ExchangeAddViewProps): JSX.Element {\n const alerts = useAlerts();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const exchange = Flight.useBasicFetch<Library>(ExchangeRequests.exchange());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n\n const [ added, setAdded ] = React.useState<boolean>(false);\n const [ adding, setAdding ] = React.useState<boolean>(false);\n const [ newVideoId, setNewVideoId ] = React.useState<string>(null);\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.id, false);\n\n React.useEffect(() => {\n if (!video.data || adding)\n return;\n\n addVideo();\n }, [video.data?.id]);\n\n async function addVideo() {\n setAdding(true);\n\n try {\n const newVideo = await fetchAsync<Video>(ExchangeRequests.addVideo(\n exchange.data.id,\n video.data.id\n ));\n\n setAdded(true);\n setNewVideoId(newVideo.id);\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n descriptor: VideoActionDescriptor.AddToWorkspace,\n location: LocationContext.Popup,\n entity: EntityType.Video\n }\n );\n } catch {\n alerts.error(getPhrase('error'));\n props.closePopup();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={!added}\n >\n {added &&\n <>\n <div className='mx-auto w-75 mt-1 mb-2'>\n <img src={ImageUrls.General.CONFETTI} className='img-fluid' draggable={false} />\n </div>\n\n <div className='text-center pb-3'>\n <h4 className='mb-2'>\n <Text namespace={namespace} phrase={'added'} />\n </h4>\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={closePopup}\n variant='link'\n />\n <a href={`${config.data.liteUrl}/videos/${newVideoId}`} className={'btn btn-dark'}>\n <span className='align-text-bottom me-1'>\n <Text namespace={namespace} phrase={'open'} />\n </span>\n </a>\n </PopupButtons>\n </>\n }\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","ExchangeAddView","props","alerts","useAlerts","fetchAsync","Flight.useGetFetchAsync","config","Flight.useBasicFetch","ConfigRequests","exchange","ExchangeRequests","video","VideoRequests","added","setAdded","React","adding","setAdding","newVideoId","setNewVideoId","previewContext","clearPreviewContext","usePreviewContext","addVideo","_a","newVideo","AnalyticsHelper","UserAction","VideoActionDescriptor","LocationContext","EntityType","closePopup","ScrollHelper","Core.AppLinkHelper","jsx","Popup","jsxs","Fragment","ImageUrls","Text","PopupButtons"],"mappings":"obAuBA,MAAMA,EAAY,eACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAgBC,EAA0C,OACxE,MAAMC,EAASC,EAAA,EACTC,EAAaC,EAAO,EAEpBC,EAASC,EAA6BC,EAAe,QAAQ,EAC7DC,EAAWF,EAA8BG,EAAiB,UAAU,EACpEC,EAAQJ,EAA4BK,EAAc,MAAMX,EAAM,EAAE,CAAC,EAEjE,CAAEY,EAAOC,CAAS,EAAIC,EAAM,SAAkB,EAAK,EACnD,CAAEC,EAAQC,CAAU,EAAIF,EAAM,SAAkB,EAAK,EACrD,CAAEG,EAAYC,CAAc,EAAIJ,EAAM,SAAiB,IAAI,EAE3D,CAAE,eAAAK,EAAgB,oBAAAC,CAAA,EAAwBC,EAAkBrB,EAAM,GAAI,EAAK,EAEjFc,EAAM,UAAU,IAAM,CAChB,CAACJ,EAAM,MAAQK,GAGnBO,EAAA,CACF,EAAG,EAACC,EAAAb,EAAM,OAAN,YAAAa,EAAY,EAAE,CAAC,EAEnB,eAAeD,GAAW,CACxBN,EAAU,EAAI,EAEd,GAAI,CACF,MAAMQ,EAAW,MAAMrB,EAAkBM,EAAiB,SACxDD,EAAS,KAAK,GACdE,EAAM,KAAK,EAAA,CACZ,EAEDG,EAAS,EAAI,EACbK,EAAcM,EAAS,EAAE,EAEzBC,EAAgB,cACd,CAAE,GAAIf,EAAM,KAAK,GAAI,KAAMA,EAAM,KAAK,IAAA,EACtC,CACE,WAAYgB,EAAW,OACvB,WAAYC,EAAsB,eAClC,SAAUC,EAAgB,MAC1B,OAAQC,EAAW,KAAA,CACrB,CAEJ,MAAQ,CACN5B,EAAO,MAAMJ,EAAU,OAAO,CAAC,EAC/BG,EAAM,WAAA,CACR,CACF,CAOA,SAAS8B,GAAmB,CAC1B9B,EAAM,WAAA,EAEDmB,GAAA,MAAAA,EAAgB,UAGrBY,EAAa,iBAAA,EACbC,EAAmB,QAAQb,EAAe,OAAO,EACjDC,EAAA,EACF,CAEA,OACEa,EAAAA,IAACC,EAAA,CACC,MAAOrC,EAAU,OAAO,EACxB,WAAAiC,EACA,mBAAoB,CAAClB,EAEpB,YACCuB,EAAAA,KAAAC,EAAAA,SAAA,CACE,SAAA,CAAAH,EAAAA,IAAC,MAAA,CAAI,UAAU,yBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,IAAKI,EAAU,QAAQ,SAAU,UAAU,YAAY,UAAW,GAAO,EAChF,EAEAJ,MAAC,MAAA,CAAI,UAAU,mBACb,eAAC,KAAA,CAAG,UAAU,OACZ,SAAAA,EAAAA,IAACK,EAAA,CAAK,UAAA1C,EAAsB,OAAQ,OAAA,CAAS,EAC/C,EACF,SAEC2C,EAAA,CACC,SAAA,CAAAN,EAAAA,IAACM,EAAa,OAAb,CACC,KAAM1C,EAAU,OAAO,EACvB,QAASiC,EACT,QAAQ,MAAA,CAAA,EAEVG,EAAAA,IAAC,KAAE,KAAM,GAAG5B,EAAO,KAAK,OAAO,WAAWY,CAAU,GAAI,UAAW,eACjE,SAAAgB,EAAAA,IAAC,OAAA,CAAK,UAAU,yBACd,SAAAA,EAAAA,IAACK,GAAK,UAAA1C,EAAsB,OAAQ,MAAA,CAAQ,CAAA,CAC9C,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAIR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as n}from"./app-CWLlxhC4.js";import{h as s}from"./BIsRcDFM.chunk.js";function c(t){return t.map(e=>e.statusCode).join(":")}function p(t,e,r){const a=Array.isArray(t)?t:[t];n.useEffect(()=>{a.forEach(o=>{s(o.statusCode,e,r)})},[c(a),e,r])}export{p as u};
|
|
2
|
+
//# sourceMappingURL=CuaAi3hl.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CuaAi3hl.chunk.js","sources":["../../../../libs/shared/src/hooks/UseHandleObjectError.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}"],"names":["generateCacheKey","flightObjs","obj","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","handleHttpError"],"mappings":"8EAMA,SAASA,EAAiBC,EAAiD,CACzE,OAAOA,EAAW,IAAIC,GAAOA,EAAI,UAAU,EAAE,KAAK,GAAG,CACvD,CAGO,SAASC,EACdC,EACAC,EACAC,EACM,CACN,MAAML,EAAa,MAAM,QAAQG,CAAW,EAAIA,EAAc,CAACA,CAAW,EAE1EG,EAAAA,UAAU,IAAM,CACdN,EAAW,QAAQC,GAAO,CACxBM,EAAgBN,EAAI,WAAYG,EAAcC,CAAY,CAC5D,CAAC,CACH,EAAG,CAAEN,EAAiBC,CAAU,EAAGI,EAAcC,CAAa,CAAC,CACjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"CxUHqnOh.chunk.js","sources":["../../../../libs/common/src/backbone/utils/ScrollHelper.ts"],"sourcesContent":["import { Radio } from 'backbone';\n\nimport { CommonChannels } from '../constants/CommonChannels';\n\nexport const ScrollHelper = {\n // Will prevent scrolling to the top of the page when applinks are triggered\n preventScrollTop(): void {\n Radio.channel(CommonChannels.SHELL).trigger('prevent:scroll:top');\n }\n};"],"names":["ScrollHelper","Radio","CommonChannels"],"mappings":"+CAIO,MAAMA,EAAe,CAE1B,kBAAyB,CACvBC,EAAAA,MAAM,QAAQC,EAAe,KAAK,EAAE,QAAQ,oBAAoB,CAClE,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aL as F,j as e,B as h,aM as k,L as j,R as y,w as B,aN as T,aB as D,a1 as I,x as V,a2 as $,a3 as x,P as M,aD as U,a5 as Y,A as H,ab as O,ac as G,ad as W,aI as z,ae as Q,af as _}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{aL as F,j as e,B as h,aM as k,L as j,R as y,w as B,aN as T,aB as D,a1 as I,x as V,a2 as $,a3 as x,P as M,aD as U,a5 as Y,A as H,ab as O,ac as G,ad as W,aI as z,ae as Q,af as _}from"./app-CWLlxhC4.js";import{S as J}from"./CxUHqnOh.chunk.js";import{F as K}from"./DG4Gno_E.chunk.js";import{l as m,a as X,F as f}from"./C00nDP-p.chunk.js";import{F as Z}from"./BHjOfQBL.chunk.js";import{B as ee}from"./B7b3dHqh.chunk.js";import{R as ae}from"./QfCSKVqV.chunk.js";import{V as te}from"./CF4l8gqP.chunk.js";import{u as se}from"./BDJvxAZr.chunk.js";import{u as re}from"./CAeyI7a_.chunk.js";import{E as ne}from"./CaLLQoeO.chunk.js";import{u as oe}from"./DBs7i4mg.chunk.js";import"./CVZpiAmE.chunk.js";import"./BlDVEZsX.chunk.js";import"./pkzD5BEm.chunk.js";import"./Dam_cOwt.chunk.js";const L="shared.flagRemovalRadio",p=j.encloseNamespace(L);function ie(){const t=F();function l(o){t.setFieldValue("suggestion",o)}function a(){return[p("nonEducational"),p("poorQuality"),p("offensive"),p("copyright"),p("ageAppropriate"),p("audio"),p("other")]}return e.jsxs("div",{className:"mb-3",children:[e.jsxs("label",{className:"form-label",children:[e.jsx(h,{namespace:L,phrase:"flagRemovalReasonLabel"}),e.jsx("span",{className:"text-danger",children:"*"})]}),a().map((o,d)=>e.jsx(k.Check,{type:"radio",label:o,name:o,id:`flag-${d}`,onChange:()=>l(o),checked:t.values.suggestion===o,className:"mb-2"},d))]})}const C="shared.suggestEditForm";function le(t){const l=F(),[a,o]=y.useState(),[d,n]=y.useState(!1);function g(r){const u=(l==null?void 0:l.values.property)&&t.metadataValue===r.name;l.setFieldValue("suggestion",u?"":r.name),o(r),n(u)}return e.jsxs("div",{className:"form-group",children:[e.jsx("label",{className:"form-label",children:e.jsx(h,{namespace:C,phrase:"suggestLabel"})}),e.jsx("div",{"aria-describedby":"suggestEditRatingError",children:e.jsx(ee,{children:t.ratings.map(r=>e.jsx(B,{onClick:()=>g(r),className:`btn ${r.id===(a==null?void 0:a.id)?"btn-dark":"btn-outline-dark"}`,children:r.code},r.id))})}),d&&e.jsx(Z,{name:"suggestEditRating",children:e.jsx(h,{namespace:C,phrase:"ratingError"})})]})}const ce="shared.suggestEditValidation",S=j.encloseNamespace(ce);function de(){return m.object().shape({property:m.string().required(S("metadata")),reason:m.string().when("property",{is:t=>t==="FlagRemoval",then:m.string().notRequired(),otherwise:m.string().required(S("reason"))}),suggestion:m.string().required(S("suggestion")),currentValue:m.string()})}const b={VideoTitle:{name:"video title",property:"name"},Description:{name:"description",property:"description"},Rating:{name:"rating",property:"rating.name"},SeriesTitle:{name:"series title",property:"series.name"},Season:{name:"season number",property:"season.number"},EpisodeNumber:{name:"episode number",property:"episodeNumber"},BroadcastDate:{name:"broadcast date",property:"dateBroadcast"},Channel:{name:"channel",property:"channel.name"},ProductionYear:{name:"production year",property:"productionYear"},Distributors:{name:"distributors",property:"distributors",collection:!0},ProductionCompanies:{name:"production companies",property:"productionCompanies",collection:!0},Directors:{name:"directors",property:"directors",collection:!0},Producers:{name:"producers",property:"producers",collection:!0},FlagRemoval:{name:"flag for removal"},Other:{name:"other"}},N="shared.suggestEditForm",i=j.encloseNamespace(N),ue={property:"",suggestion:"",reason:"",currentValue:""};function me(t){var r,u;const l=(r=t.ratings)==null?void 0:r.filter(s=>s.code),a=F(),[o,d]=y.useState(),n=a==null?void 0:a.values.property;y.useEffect(()=>{const s=g();a.setValues({property:n,reason:"",suggestion:"",currentValue:s||""}),a.setTouched({}),d(s)},[n]);function g(){const s=b[n];if(!s||!s.property)return null;let c=T(t.video,s.property);if(!c||s.collection&&!c.data.length)return i("none");switch(s.collection&&(c=c.data.map(R=>R.name).join(", ")),n){case"BroadcastDate":return D.format(c,"D MMMM YYYY");default:return c}}return e.jsxs(I,{children:[e.jsxs(f,{as:"select",label:i("metadataLabel"),id:"property",name:"property",value:n,className:"text-capitalize",showRequiredStar:!0,children:[e.jsx("option",{value:"",children:i("metadataPlaceholder")}),Object.keys(b).map((s,c)=>e.jsx("option",{value:s,children:b[s].name},c))]}),n&&e.jsxs(e.Fragment,{children:[o&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"fw-semibold mb-0",children:[e.jsx(h,{namespace:N,phrase:"currentValueLabel"})," ",e.jsx("span",{children:(u=b[n])==null?void 0:u.name})]}),e.jsx("p",{children:o})]}),n==="Rating"&&e.jsx(le,{ratings:l,metadataValue:o}),n==="FlagRemoval"&&e.jsx(ie,{}),n!=="Rating"&&n!=="FlagRemoval"&&e.jsx(f,{label:i("suggestLabel"),placeholder:i("suggestPlaceholder"),type:"text",id:"suggestion",name:"suggestion",value:a==null?void 0:a.values.suggestion,showRequiredStar:!0}),n==="FlagRemoval"?e.jsx(f,{label:i("flagRemovalCommentsLabel"),placeholder:i("flagRemovalCommentsPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason}):e.jsx(f,{label:i("reasonLabel"),placeholder:i("reasonPlaceholder"),type:"text",id:"reason",name:"reason",value:a==null?void 0:a.values.reason,showRequiredStar:!0})]}),e.jsxs(V,{children:[e.jsx(V.Cancel,{text:i("cancel"),onClick:t.closePopup,variant:"link"}),e.jsx(K,{variant:"dark",submitText:i("submit")})]})]})}function pe(t){return e.jsx(X,{initialValues:ue,validationSchema:de(),onSubmit:t.onClickSubmit,children:e.jsx(me,{...t})})}const w="exchange.suggestEdit",v=j.encloseNamespace(w);function Pe(t){const l=$(),a=se(),{loading:o,handleGenerateReportError:d}=re(),n=x(U.config()),g=x(Y.currentUser()),r=x(te.video(t.videoId)),u=x(ae.ratings()),{previewContext:s,clearPreviewContext:c}=oe(t.videoId,!1);async function R(P,q){try{await l(ne.suggestEdit(r.data.id,P)),a.success(v("success")),E(),O.logUserAction({id:r.data.id,name:r.data.name},{actionType:_.Submit,entity:Q.Video,descriptor:z.SuggestEdit,location:W.Popup,workflowPhase:G.Complete})}catch(A){d(A,v("error"),v("noEmailError"))}finally{q()}}function E(){t.closePopup(),s!=null&&s.appLink&&(J.preventScrollTop(),H.trigger(s.appLink),c())}return n.hasCompleted&&g.hasCompleted&&r.hasCompleted&&u.hasCompleted?e.jsxs(M,{title:v("title"),closePopup:E,showLoadingSpinner:o,children:[e.jsx("p",{children:e.jsx(h,{namespace:w,phrase:"description"})}),e.jsx(pe,{video:r.data,ratings:u.data,closePopup:E,onClickSubmit:R})]}):e.jsx(e.Fragment,{})}export{Pe as ExchangeSuggestEditView};
|
|
2
|
+
//# sourceMappingURL=Cz-DEpIl.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ca5g2g0M.chunk.js","sources":["../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval.tsx","../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector.tsx","../../../../libs/shared/src/components/suggest-edit-form/validation/SuggestEditValidation.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditMetadataTypes.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditForm.tsx","../../src/apps/exchange/views/exchange-suggest-edit/ExchangeSuggestEditView.tsx"],"sourcesContent":["import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.flagRemovalRadio';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditFlagRemoval() {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n function onSelectOption(option: string) {\n formikProps.setFieldValue('suggestion', option);\n }\n\n function flagRemovalRadioOptions() {\n return [\n getPhrase('nonEducational'),\n getPhrase('poorQuality'),\n getPhrase('offensive'),\n getPhrase('copyright'),\n getPhrase('ageAppropriate'),\n getPhrase('audio'),\n getPhrase('other')\n ];\n }\n\n return (\n <div className='mb-3'>\n <label className='form-label'>\n <Text namespace={namespace} phrase='flagRemovalReasonLabel' />\n <span className='text-danger'>*</span>\n </label>\n {flagRemovalRadioOptions().map((option, index) => (\n <Form.Check\n type='radio'\n key={index}\n label={option}\n name={option}\n id={`flag-${index}`}\n onChange={() => onSelectOption(option)}\n checked={formikProps.values.suggestion === option}\n className='mb-2'\n />\n ))}\n </div>\n );\n}","import React from 'react';\nimport { ButtonGroup } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { Rating } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.suggestEditForm';\n\ninterface SuggestEditRatingSelectorProps {\n ratings: Rating[];\n metadataValue: string\n}\n\nexport function SuggestEditRatingSelector(props: SuggestEditRatingSelectorProps) {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ selectedRating, setSelectedRating ] = React.useState<Rating>();\n const [ isRatingInvalid, setIsRatingInvalid ] = React.useState<boolean>(false);\n \n function onRatingSelect(rating: Rating) {\n const isRatingInvalid = formikProps?.values.property && props.metadataValue === rating.name;\n formikProps.setFieldValue('suggestion', !isRatingInvalid ? rating.name : '');\n setSelectedRating(rating);\n setIsRatingInvalid(isRatingInvalid);\n }\n\n return (\n <div className='form-group'>\n <label className='form-label'><Text namespace={namespace} phrase='suggestLabel' /></label>\n <div aria-describedby='suggestEditRatingError'>\n <ButtonGroup>\n {props.ratings.map(rating => (\n <DivButton key={rating.id} onClick={() => onRatingSelect(rating)} className={`btn ${rating.id === selectedRating?.id ? 'btn-dark' : 'btn-outline-dark'}`}>\n {rating.code}\n </DivButton>\n ))}\n </ButtonGroup>\n </div>\n {isRatingInvalid && <FormFeedback name='suggestEditRating'><Text namespace={namespace} phrase='ratingError' /></FormFeedback>}\n </div>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'shared.suggestEditValidation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditValidation() {\n return object().shape({\n property: string().required((getPhrase('metadata'))),\n reason: string().when('property', {\n is: propertyValue => propertyValue === 'FlagRemoval',\n then: string().notRequired(),\n otherwise: string().required(getPhrase('reason'))\n }),\n suggestion: string().required(getPhrase('suggestion')),\n currentValue: string()\n });\n}","export enum MetadataType {\n VideoTitle = 'video title',\n Description = 'description',\n Rating = 'rating',\n SeriesTitle = 'series title',\n Season = 'season number',\n EpisodeNumber = 'episode number',\n BroadcastDate = 'broadcast date',\n Channel = 'channel',\n ProductionYear = 'production year',\n Distributors = 'distributors',\n ProductionCompanies = 'production companies',\n Directors = 'directors',\n Producers = 'producers',\n FlagRemoval = 'flag for removal',\n Other = 'other'\n}\n\nexport type MetadataTypeKey = keyof typeof MetadataType;\n\nexport type MetadataTypeMap = {\n [K in MetadataTypeKey]: {\n name: MetadataType;\n property?: string;\n collection?: boolean;\n };\n};\n\nexport const MetadataTypes: MetadataTypeMap = {\n VideoTitle: {\n name: MetadataType.VideoTitle,\n property: 'name'\n },\n Description: {\n name: MetadataType.Description,\n property: 'description'\n },\n Rating: {\n name: MetadataType.Rating,\n property: 'rating.name'\n },\n SeriesTitle: {\n name: MetadataType.SeriesTitle,\n property: 'series.name'\n },\n Season: {\n name: MetadataType.Season,\n property: 'season.number'\n },\n EpisodeNumber: {\n name: MetadataType.EpisodeNumber,\n property: 'episodeNumber'\n },\n BroadcastDate: {\n name: MetadataType.BroadcastDate,\n property: 'dateBroadcast'\n },\n Channel: {\n name: MetadataType.Channel,\n property: 'channel.name'\n },\n ProductionYear: {\n name: MetadataType.ProductionYear,\n property: 'productionYear'\n },\n Distributors: {\n name: MetadataType.Distributors,\n property: 'distributors',\n collection: true\n },\n ProductionCompanies: {\n name: MetadataType.ProductionCompanies,\n property: 'productionCompanies',\n collection: true\n },\n Directors: {\n name: MetadataType.Directors,\n property: 'directors',\n collection: true\n },\n Producers: {\n name: MetadataType.Producers,\n property: 'producers',\n collection: true\n },\n FlagRemoval: {\n name: MetadataType.FlagRemoval\n },\n Other: {\n name: MetadataType.Other\n }\n};","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport get from 'lodash/get';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SuggestEditFlagRemoval } from 'libs/shared/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval';\nimport { SuggestEditRatingSelector } from 'libs/shared/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { SuggestEditValidation } from './validation/SuggestEditValidation';\nimport { MetadataTypeKey, MetadataTypes } from './SuggestEditMetadataTypes';\n\nconst namespace = 'shared.suggestEditForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INITIAL_VALUES = {\n property: '',\n suggestion: '',\n reason: '',\n currentValue: ''\n};\n\ninterface SuggestEditFormProps {\n video: Video;\n ratings: Rating[];\n onClickSubmit: (\n data: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) => void;\n closePopup: () => void\n}\n\nfunction SuggestEditForm(props: SuggestEditFormProps) {\n const ratings = props.ratings?.filter(rating => rating.code);\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ metadataValue, setMetadataValue ] = React.useState<string>();\n\n const metadata = formikProps?.values.property as MetadataTypeKey;\n\n React.useEffect(() => {\n const metadataValue = getMetadataValue();\n formikProps.setValues({\n property: metadata,\n reason: '',\n suggestion: '',\n currentValue: metadataValue || ''\n });\n formikProps.setTouched({});\n setMetadataValue(metadataValue);\n }, [metadata]);\n\n function getMetadataValue(): string {\n const metadataType = MetadataTypes[metadata];\n\n if (!metadataType || !metadataType.property)\n return null;\n\n let currentValue = get(props.video, metadataType.property);\n\n if (!currentValue || (metadataType.collection && !currentValue.data.length))\n return getPhrase('none');\n\n if (metadataType.collection) {\n currentValue = (currentValue.data as BaseObject[]).map(obj => obj.name).join(', ');\n }\n\n switch (metadata) {\n case 'BroadcastDate':\n return DateHelper.format(currentValue, 'D MMMM YYYY');\n default:\n return currentValue;\n }\n }\n\n return (\n <Form>\n <FormField\n as='select'\n label={getPhrase('metadataLabel')}\n id='property'\n name='property'\n value={metadata}\n className='text-capitalize'\n showRequiredStar\n >\n <option value=''>{getPhrase('metadataPlaceholder')}</option>\n {Object.keys(MetadataTypes).map((metadata, index) => (\n <option key={index} value={metadata}>\n {MetadataTypes[metadata as keyof typeof MetadataTypes].name}\n </option>\n ))}\n </FormField>\n\n {metadata &&\n <>\n {metadataValue && (\n <>\n <p className='fw-semibold mb-0'>\n <Text namespace={namespace} phrase='currentValueLabel' /> <span>{MetadataTypes[metadata as MetadataTypeKey]?.name}</span>\n </p>\n <p>{metadataValue}</p>\n </>\n )}\n\n {metadata === 'Rating' && <SuggestEditRatingSelector ratings={ratings} metadataValue={metadataValue} />}\n {metadata === 'FlagRemoval' && <SuggestEditFlagRemoval />}\n {metadata !== 'Rating' && metadata !== 'FlagRemoval' &&\n <FormField\n label={getPhrase('suggestLabel')}\n placeholder={getPhrase('suggestPlaceholder')}\n type='text'\n id='suggestion'\n name='suggestion'\n value={formikProps?.values.suggestion}\n showRequiredStar\n />\n }\n\n {\n metadata === 'FlagRemoval' ? (\n <FormField\n label={getPhrase('flagRemovalCommentsLabel')}\n placeholder={getPhrase('flagRemovalCommentsPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n />\n ) : (\n <FormField\n label={getPhrase('reasonLabel')}\n placeholder={getPhrase('reasonPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n showRequiredStar\n />\n )\n }\n </>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <FormButtons variant='dark' submitText={getPhrase('submit')} />\n </PopupButtons>\n </Form>\n );\n}\n\nexport function SuggestEditFormWrapper(props: SuggestEditFormProps) {\n return (\n <FormWrapper<SuggestEditModel>\n initialValues={INITIAL_VALUES}\n validationSchema={SuggestEditValidation()}\n onSubmit={props.onClickSubmit}\n >\n <SuggestEditForm {...props} />\n </FormWrapper>\n );\n}","\nimport React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SuggestEditFormWrapper } from 'libs/shared/components/suggest-edit-form/SuggestEditForm';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RatingRequests } from 'libs/shared/flight-requests/RatingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { Config, CurrentUser, PopupViewProps, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\nconst namespace = 'exchange.suggestEdit';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeSuggestEditProps extends PopupViewProps {\n videoId: string;\n}\n\nexport function ExchangeSuggestEditView(props: ExchangeSuggestEditProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, false);\n\n async function onClickSubmit(\n values: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) {\n try {\n await fetchAsync(ExchangeRequests.suggestEdit(video.data.id, values));\n alerts.success(getPhrase('success'));\n closePopup();\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (xhr) {\n handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError'));\n } finally {\n onDone();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n const hasLoaded = (\n config.hasCompleted &&\n currentUser.hasCompleted &&\n video.hasCompleted &&\n ratings.hasCompleted\n );\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={loading}\n >\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <SuggestEditFormWrapper\n video={video.data}\n ratings={ratings.data}\n closePopup={closePopup}\n onClickSubmit={onClickSubmit}\n />\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SuggestEditFlagRemoval","formikProps","useFormikContext","onSelectOption","option","flagRemovalRadioOptions","jsxs","jsx","Text","index","Form","SuggestEditRatingSelector","props","selectedRating","setSelectedRating","React","isRatingInvalid","setIsRatingInvalid","onRatingSelect","rating","ButtonGroup","DivButton","FormFeedback","SuggestEditValidation","object","string","propertyValue","MetadataTypes","INITIAL_VALUES","SuggestEditForm","ratings","_a","metadataValue","setMetadataValue","metadata","getMetadataValue","metadataType","currentValue","get","obj","DateHelper","FormField","Fragment","_b","PopupButtons","FormButtons","SuggestEditFormWrapper","FormWrapper","ExchangeSuggestEditView","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","config","Flight.useBasicFetch","ConfigRequests","currentUser","UserRequests","video","VideoRequests","RatingRequests","previewContext","clearPreviewContext","usePreviewContext","onClickSubmit","values","onDone","ExchangeRequests","closePopup","AnalyticsHelper","UserAction","EntityType","VideoActionDescriptor","LocationContext","WorkflowPhase","xhr","ScrollHelper","Core.AppLinkHelper","Popup"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cz-DEpIl.chunk.js","sources":["../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval.tsx","../../../../libs/shared/src/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector.tsx","../../../../libs/shared/src/components/suggest-edit-form/validation/SuggestEditValidation.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditMetadataTypes.ts","../../../../libs/shared/src/components/suggest-edit-form/SuggestEditForm.tsx","../../src/apps/exchange/views/exchange-suggest-edit/ExchangeSuggestEditView.tsx"],"sourcesContent":["import React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.flagRemovalRadio';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditFlagRemoval() {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n function onSelectOption(option: string) {\n formikProps.setFieldValue('suggestion', option);\n }\n\n function flagRemovalRadioOptions() {\n return [\n getPhrase('nonEducational'),\n getPhrase('poorQuality'),\n getPhrase('offensive'),\n getPhrase('copyright'),\n getPhrase('ageAppropriate'),\n getPhrase('audio'),\n getPhrase('other')\n ];\n }\n\n return (\n <div className='mb-3'>\n <label className='form-label'>\n <Text namespace={namespace} phrase='flagRemovalReasonLabel' />\n <span className='text-danger'>*</span>\n </label>\n {flagRemovalRadioOptions().map((option, index) => (\n <Form.Check\n type='radio'\n key={index}\n label={option}\n name={option}\n id={`flag-${index}`}\n onChange={() => onSelectOption(option)}\n checked={formikProps.values.suggestion === option}\n className='mb-2'\n />\n ))}\n </div>\n );\n}","import React from 'react';\nimport { ButtonGroup } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { Rating } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { FormFeedback } from 'libs/shared/components/forms/form-feedback/FormFeedback';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nconst namespace = 'shared.suggestEditForm';\n\ninterface SuggestEditRatingSelectorProps {\n ratings: Rating[];\n metadataValue: string\n}\n\nexport function SuggestEditRatingSelector(props: SuggestEditRatingSelectorProps) {\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ selectedRating, setSelectedRating ] = React.useState<Rating>();\n const [ isRatingInvalid, setIsRatingInvalid ] = React.useState<boolean>(false);\n \n function onRatingSelect(rating: Rating) {\n const isRatingInvalid = formikProps?.values.property && props.metadataValue === rating.name;\n formikProps.setFieldValue('suggestion', !isRatingInvalid ? rating.name : '');\n setSelectedRating(rating);\n setIsRatingInvalid(isRatingInvalid);\n }\n\n return (\n <div className='form-group'>\n <label className='form-label'><Text namespace={namespace} phrase='suggestLabel' /></label>\n <div aria-describedby='suggestEditRatingError'>\n <ButtonGroup>\n {props.ratings.map(rating => (\n <DivButton key={rating.id} onClick={() => onRatingSelect(rating)} className={`btn ${rating.id === selectedRating?.id ? 'btn-dark' : 'btn-outline-dark'}`}>\n {rating.code}\n </DivButton>\n ))}\n </ButtonGroup>\n </div>\n {isRatingInvalid && <FormFeedback name='suggestEditRating'><Text namespace={namespace} phrase='ratingError' /></FormFeedback>}\n </div>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'shared.suggestEditValidation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SuggestEditValidation() {\n return object().shape({\n property: string().required((getPhrase('metadata'))),\n reason: string().when('property', {\n is: propertyValue => propertyValue === 'FlagRemoval',\n then: string().notRequired(),\n otherwise: string().required(getPhrase('reason'))\n }),\n suggestion: string().required(getPhrase('suggestion')),\n currentValue: string()\n });\n}","export enum MetadataType {\n VideoTitle = 'video title',\n Description = 'description',\n Rating = 'rating',\n SeriesTitle = 'series title',\n Season = 'season number',\n EpisodeNumber = 'episode number',\n BroadcastDate = 'broadcast date',\n Channel = 'channel',\n ProductionYear = 'production year',\n Distributors = 'distributors',\n ProductionCompanies = 'production companies',\n Directors = 'directors',\n Producers = 'producers',\n FlagRemoval = 'flag for removal',\n Other = 'other'\n}\n\nexport type MetadataTypeKey = keyof typeof MetadataType;\n\nexport type MetadataTypeMap = {\n [K in MetadataTypeKey]: {\n name: MetadataType;\n property?: string;\n collection?: boolean;\n };\n};\n\nexport const MetadataTypes: MetadataTypeMap = {\n VideoTitle: {\n name: MetadataType.VideoTitle,\n property: 'name'\n },\n Description: {\n name: MetadataType.Description,\n property: 'description'\n },\n Rating: {\n name: MetadataType.Rating,\n property: 'rating.name'\n },\n SeriesTitle: {\n name: MetadataType.SeriesTitle,\n property: 'series.name'\n },\n Season: {\n name: MetadataType.Season,\n property: 'season.number'\n },\n EpisodeNumber: {\n name: MetadataType.EpisodeNumber,\n property: 'episodeNumber'\n },\n BroadcastDate: {\n name: MetadataType.BroadcastDate,\n property: 'dateBroadcast'\n },\n Channel: {\n name: MetadataType.Channel,\n property: 'channel.name'\n },\n ProductionYear: {\n name: MetadataType.ProductionYear,\n property: 'productionYear'\n },\n Distributors: {\n name: MetadataType.Distributors,\n property: 'distributors',\n collection: true\n },\n ProductionCompanies: {\n name: MetadataType.ProductionCompanies,\n property: 'productionCompanies',\n collection: true\n },\n Directors: {\n name: MetadataType.Directors,\n property: 'directors',\n collection: true\n },\n Producers: {\n name: MetadataType.Producers,\n property: 'producers',\n collection: true\n },\n FlagRemoval: {\n name: MetadataType.FlagRemoval\n },\n Other: {\n name: MetadataType.Other\n }\n};","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\nimport get from 'lodash/get';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { SuggestEditFlagRemoval } from 'libs/shared/components/suggest-edit-form/suggest-edit-flag-removal/SuggestEditFlagRemoval';\nimport { SuggestEditRatingSelector } from 'libs/shared/components/suggest-edit-form/suggest-edit-rating-selector/suggest-edit-rating-selector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { SuggestEditValidation } from './validation/SuggestEditValidation';\nimport { MetadataTypeKey, MetadataTypes } from './SuggestEditMetadataTypes';\n\nconst namespace = 'shared.suggestEditForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INITIAL_VALUES = {\n property: '',\n suggestion: '',\n reason: '',\n currentValue: ''\n};\n\ninterface SuggestEditFormProps {\n video: Video;\n ratings: Rating[];\n onClickSubmit: (\n data: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) => void;\n closePopup: () => void\n}\n\nfunction SuggestEditForm(props: SuggestEditFormProps) {\n const ratings = props.ratings?.filter(rating => rating.code);\n const formikProps = useFormikContext<SuggestEditModel>();\n\n const [ metadataValue, setMetadataValue ] = React.useState<string>();\n\n const metadata = formikProps?.values.property as MetadataTypeKey;\n\n React.useEffect(() => {\n const metadataValue = getMetadataValue();\n formikProps.setValues({\n property: metadata,\n reason: '',\n suggestion: '',\n currentValue: metadataValue || ''\n });\n formikProps.setTouched({});\n setMetadataValue(metadataValue);\n }, [metadata]);\n\n function getMetadataValue(): string {\n const metadataType = MetadataTypes[metadata];\n\n if (!metadataType || !metadataType.property)\n return null;\n\n let currentValue = get(props.video, metadataType.property);\n\n if (!currentValue || (metadataType.collection && !currentValue.data.length))\n return getPhrase('none');\n\n if (metadataType.collection) {\n currentValue = (currentValue.data as BaseObject[]).map(obj => obj.name).join(', ');\n }\n\n switch (metadata) {\n case 'BroadcastDate':\n return DateHelper.format(currentValue, 'D MMMM YYYY');\n default:\n return currentValue;\n }\n }\n\n return (\n <Form>\n <FormField\n as='select'\n label={getPhrase('metadataLabel')}\n id='property'\n name='property'\n value={metadata}\n className='text-capitalize'\n showRequiredStar\n >\n <option value=''>{getPhrase('metadataPlaceholder')}</option>\n {Object.keys(MetadataTypes).map((metadata, index) => (\n <option key={index} value={metadata}>\n {MetadataTypes[metadata as keyof typeof MetadataTypes].name}\n </option>\n ))}\n </FormField>\n\n {metadata &&\n <>\n {metadataValue && (\n <>\n <p className='fw-semibold mb-0'>\n <Text namespace={namespace} phrase='currentValueLabel' /> <span>{MetadataTypes[metadata as MetadataTypeKey]?.name}</span>\n </p>\n <p>{metadataValue}</p>\n </>\n )}\n\n {metadata === 'Rating' && <SuggestEditRatingSelector ratings={ratings} metadataValue={metadataValue} />}\n {metadata === 'FlagRemoval' && <SuggestEditFlagRemoval />}\n {metadata !== 'Rating' && metadata !== 'FlagRemoval' &&\n <FormField\n label={getPhrase('suggestLabel')}\n placeholder={getPhrase('suggestPlaceholder')}\n type='text'\n id='suggestion'\n name='suggestion'\n value={formikProps?.values.suggestion}\n showRequiredStar\n />\n }\n\n {\n metadata === 'FlagRemoval' ? (\n <FormField\n label={getPhrase('flagRemovalCommentsLabel')}\n placeholder={getPhrase('flagRemovalCommentsPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n />\n ) : (\n <FormField\n label={getPhrase('reasonLabel')}\n placeholder={getPhrase('reasonPlaceholder')}\n type='text'\n id='reason'\n name='reason'\n value={formikProps?.values.reason}\n showRequiredStar\n />\n )\n }\n </>\n }\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('cancel')}\n onClick={props.closePopup}\n variant='link'\n />\n <FormButtons variant='dark' submitText={getPhrase('submit')} />\n </PopupButtons>\n </Form>\n );\n}\n\nexport function SuggestEditFormWrapper(props: SuggestEditFormProps) {\n return (\n <FormWrapper<SuggestEditModel>\n initialValues={INITIAL_VALUES}\n validationSchema={SuggestEditValidation()}\n onSubmit={props.onClickSubmit}\n >\n <SuggestEditForm {...props} />\n </FormWrapper>\n );\n}","\nimport React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ScrollHelper } from 'libs/common/backbone/utils/ScrollHelper';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SuggestEditFormWrapper } from 'libs/shared/components/suggest-edit-form/SuggestEditForm';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { RatingRequests } from 'libs/shared/flight-requests/RatingRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useVerifiedEmailRequiredErrorHandler } from 'libs/shared/hooks/useVerifiedEmailRequiredErrorHandler';\nimport { Config, CurrentUser, PopupViewProps, Rating, Video } from 'libs/shared/interfaces';\nimport { SuggestEditModel } from 'libs/shared/interfaces/models/SuggestEdit';\n\nimport { ExchangeRequests } from 'apps/exchange/flight-requests/ExchangeRequests';\nimport { usePreviewContext } from 'apps/exchange/hooks/usePreviewContext';\nconst namespace = 'exchange.suggestEdit';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ExchangeSuggestEditProps extends PopupViewProps {\n videoId: string;\n}\n\nexport function ExchangeSuggestEditView(props: ExchangeSuggestEditProps) {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n\n const { loading, handleGenerateReportError } = useVerifiedEmailRequiredErrorHandler();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.videoId));\n const ratings = Flight.useBasicFetch<Rating[]>(RatingRequests.ratings());\n\n const { previewContext, clearPreviewContext } = usePreviewContext(props.videoId, false);\n\n async function onClickSubmit(\n values: SuggestEditModel,\n onDone: (options?: FormSubmissionOptions<SuggestEditModel>) => void\n ) {\n try {\n await fetchAsync(ExchangeRequests.suggestEdit(video.data.id, values));\n alerts.success(getPhrase('success'));\n closePopup();\n\n AnalyticsHelper.logUserAction(\n { id: video.data.id, name: video.data.name },\n {\n actionType: UserAction.Submit,\n entity: EntityType.Video,\n descriptor: VideoActionDescriptor.SuggestEdit,\n location: LocationContext.Popup,\n workflowPhase: WorkflowPhase.Complete\n }\n );\n } catch (xhr) {\n handleGenerateReportError(xhr, getPhrase('error'), getPhrase('noEmailError'));\n } finally {\n onDone();\n }\n }\n\n /**\n * Because the add view can be navigated to from the ExchangePreviewView\n * which is an addressable popup, we need to navigate back to the \n * original route when this popup is closed - Sha\n */\n function closePopup(): void {\n props.closePopup();\n\n if (!previewContext?.appLink)\n return;\n\n ScrollHelper.preventScrollTop();\n Core.AppLinkHelper.trigger(previewContext.appLink);\n clearPreviewContext();\n }\n\n const hasLoaded = (\n config.hasCompleted &&\n currentUser.hasCompleted &&\n video.hasCompleted &&\n ratings.hasCompleted\n );\n\n if (!hasLoaded) {\n return <></>;\n }\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={closePopup}\n showLoadingSpinner={loading}\n >\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <SuggestEditFormWrapper\n video={video.data}\n ratings={ratings.data}\n closePopup={closePopup}\n onClickSubmit={onClickSubmit}\n />\n </Popup>\n );\n}"],"names":["namespace","getPhrase","LanguageService","SuggestEditFlagRemoval","formikProps","useFormikContext","onSelectOption","option","flagRemovalRadioOptions","jsxs","jsx","Text","index","Form","SuggestEditRatingSelector","props","selectedRating","setSelectedRating","React","isRatingInvalid","setIsRatingInvalid","onRatingSelect","rating","ButtonGroup","DivButton","FormFeedback","SuggestEditValidation","object","string","propertyValue","MetadataTypes","INITIAL_VALUES","SuggestEditForm","ratings","_a","metadataValue","setMetadataValue","metadata","getMetadataValue","metadataType","currentValue","get","obj","DateHelper","FormField","Fragment","_b","PopupButtons","FormButtons","SuggestEditFormWrapper","FormWrapper","ExchangeSuggestEditView","fetchAsync","Flight.useGetFetchAsync","alerts","useAlerts","loading","handleGenerateReportError","useVerifiedEmailRequiredErrorHandler","config","Flight.useBasicFetch","ConfigRequests","currentUser","UserRequests","video","VideoRequests","RatingRequests","previewContext","clearPreviewContext","usePreviewContext","onClickSubmit","values","onDone","ExchangeRequests","closePopup","AnalyticsHelper","UserAction","EntityType","VideoActionDescriptor","LocationContext","WorkflowPhase","xhr","ScrollHelper","Core.AppLinkHelper","Popup"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aB as n,as as g,Z as f,H as u,U as l}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{aB as n,as as g,Z as f,H as u,U as l}from"./app-CWLlxhC4.js";var v=(e=>(e[e.AllResults=0]="AllResults",e[e.Subtitles=1]="Subtitles",e[e.TitleAndDescription=2]="TitleAndDescription",e))(v||{});function k(){const e=g.get("cv:holiday:dates");return f.isObject(e)?e:{startMonth:12,startDay:15,endMonth:1,endDay:6}}const D={getFormattedDateRange(e,r){return`${n.format(e,"Do MMMM YYYY")} - ${n.format(r,"Do MMMM YYYY")}`},getDateBroadcastParams(e){const r=a=>n.format(a,"YYYY-MM-DD"),t=r(new Date);switch(e){case"yesterday":return{from:r(n.subtract(t,1,"day")),to:t};case"last-week":return{from:r(n.subtract(t,7,"days")),to:t};case"last-2-weeks":return{from:r(n.subtract(t,14,"days")),to:t}}},isHolidayPeriod(){const{startMonth:e,startDay:r,endMonth:t,endDay:a}=k(),s=new Date,o=s.getMonth()+1,i=s.getDate();return o===e&&i>=r||o===t&&i<=a}},z={regions(){return{url:"/api/tv/api/v2/regions",key:"tv:regions",normalize:!1}},region(e){return{url:`/api/tv/api/v2/regions/${e}`,key:`tv:region:${e}`,normalize:!1}},dateRange(e){return{url:`/api/tv/api/v2/regions/${e}/daterange`,key:`tv:region:${e}:daterange`,normalize:!1}},channels(e){return{url:l.urlBuilder("/api/tv/api/v2/channels",{region:e}),key:`tv:channels:${e}`,normalize:!1,formatData:r=>r.sort((t,a)=>t.sortOrder-a.sortOrder)}},payTvChannels(){return{url:"/api/tv/v1/pay-tv/channels/all",key:"pay:tv:channels",normalize:!1}},programsByChannel(e,r,t,a){const s=l.urlBuilder(`/api/tv/api/v3/regions/${e}/channels/programs`,{channel:r,startDate:t,endDate:a}),o=["tv:programs:by:channel",e,r,t,a].join(":");return{url:s,key:o,normalize:!1}},programsByLetter(e,r,t,a){const s=l.urlBuilder("/api/tv/api/v2/Programs",{regionCode:e,startsWith:r,startDate:t,endDate:a}),o=["tv:programs:by:letter",e,r,t,a].join(":");return{url:s,key:o,normalize:!1}},program(e){return{url:`/api/tv/api/v3/programs/${e}`,key:`tv:programs:${e}`,normalize:!1}},search(e,r,t){const{query:a,dateBroadcast:s,...o}=r,i=t||1,d=o.filter||v.AllResults,c=l.urlBuilder("/api/tv/api/v4/search",{region:e,query:a,filter:d,...D.getDateBroadcastParams(s),...o,page:i,size:25}),m=Object.values({filter:d,dateBroadcast:s,...o}).join(":"),y=["tv:search",a,e,m,i].join(":");return{url:c,key:y,normalize:!1,formatData:p=>(p.page=i,p)}},addFullVideo(e,r){return{url:"/api/tv/api/v2/workspace/video",key:"tv:add:full:video",normalize:!1,type:u.POST,data:e,invalidationKeys:`tv:workspace:video:${r}`}},addAdFreeVideo(e,r){return{url:l.urlBuilder(`/api/tv/v4/programs/${e.id}/ad-free`,{customerId:e.customerId,userId:e.userId}),key:"tv:add:ad:free:video",normalize:!1,type:u.POST,invalidationKeys:`tv:workspace:video:${r}`}},adFreeCredits(e,r,t){const a=new Date;a.setHours(0,0,0,0),a.setMinutes(a.getMinutes()+a.getTimezoneOffset());const s=n.add(a,1,"day");return{url:l.urlBuilder("/api/tv/v4/user-requests",{userId:e,customerId:r,regionCode:t,from:n.convertUTCToLocal(a).toISOString(),to:n.convertUTCToLocal(s).toISOString()}),key:"tv:add:free:credits",normalize:!1}},createAdFreeRequest(e){return{url:l.urlBuilder("/api/tv/v4/user-requests/ad-free",{userId:e.userId,customerId:e.customerId}),key:"tv:create:add:free:request",normalize:!1,type:u.POST,data:{programId:e.programId,regionCode:e.regionCode},invalidationKeys:["tv:add:free:credits"]}},workspaceVideo(e,r,t){return{url:l.urlBuilder(`/api/tv/v4/workspace/programs/${e}`,{userId:r,customerId:t}),key:`tv:workspace:video:${e}`}},requestProgram(e){return{url:"/api/tv/v1/pay-tv/user-requests",key:"tv:request:program",type:u.POST,data:e}},requestProgramUk(e){return{url:"/api/tv/api/v1/user-requests/program",key:"tv:request:program:uk",type:u.POST,data:e}}};export{z as T,D as a};
|
|
2
|
+
//# sourceMappingURL=D4xYDc88.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"B7vV0_3l.chunk.js","sources":["../../src/apps/tv/interfaces/enums/TvSearchFilter.ts","../../src/apps/tv/utils/TvUtils.ts","../../src/apps/tv/flight-requests/TvRequests.ts"],"sourcesContent":["export enum TvSearchFilter {\n AllResults = 0,\n Subtitles = 1,\n TitleAndDescription = 2\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n\nfunction getHolidayDates() {\n const cvHolidayOverride = LocalStorageHelper.get('cv:holiday:dates');\n\n if (ObjectHelper.isObject(cvHolidayOverride))\n return cvHolidayOverride;\n\n return {\n // Dec 15th\n startMonth: 12,\n startDay: 15,\n // Jan 6th\n endMonth: 1,\n endDay: 6\n };\n}\n\nexport const TvUtils = {\n getFormattedDateRange(startDate: string, endDate: string) {\n return `${DateHelper.format(startDate, 'Do MMMM YYYY')} - ${DateHelper.format(endDate, 'Do MMMM YYYY')}`;\n },\n getDateBroadcastParams(dateBroadcast: string) {\n const format = (date: Date) => DateHelper.format(date, 'YYYY-MM-DD');\n const todayDate = format(new Date());\n\n switch (dateBroadcast) {\n case 'yesterday':\n return {\n from: format(DateHelper.subtract(todayDate, 1, 'day')),\n to: todayDate\n };\n case 'last-week':\n return {\n from: format(DateHelper.subtract(todayDate, 7, 'days')),\n to: todayDate\n };\n case 'last-2-weeks':\n return {\n from: format(DateHelper.subtract(todayDate, 14, 'days')),\n to: todayDate\n };\n }\n },\n isHolidayPeriod(): boolean {\n const { startMonth, startDay, endMonth, endDay } = getHolidayDates();\n\n const today = new Date();\n const month = today.getMonth() + 1;\n const day = today.getDate();\n\n return ((month === startMonth && day >= startDay) || (month === endMonth && day <= endDay));\n }\n};\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvSearchFilter } from 'apps/tv/interfaces/enums/TvSearchFilter';\nimport { AddAdFreeVideoRequest } from 'apps/tv/interfaces/requests/AddAdFreeVideoRequest';\nimport { AddFullVideoRequest } from 'apps/tv/interfaces/requests/AddFullVideoRequest';\nimport { AdFreeRequest } from 'apps/tv/interfaces/requests/AdFreeRequest';\nimport { RequestProgramRequest, RequestProgramUkRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nexport const TvRequests = {\n regions(): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions`,\n key: `tv:regions`,\n normalize: false\n };\n },\n\n region(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}`,\n key: `tv:region:${region}`,\n normalize: false\n };\n },\n\n dateRange(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}/daterange`,\n key: `tv:region:${region}:daterange`,\n normalize: false\n };\n },\n\n channels(region: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/api/v2/channels`, { region }),\n key: `tv:channels:${region}`,\n normalize: false,\n formatData: (data: any[]) => {\n return data.sort((a: any, b: any) => (a.sortOrder - b.sortOrder));\n }\n };\n },\n\n payTvChannels(): Flight.Request {\n return {\n url: '/api/tv/v1/pay-tv/channels/all',\n key: 'pay:tv:channels',\n normalize: false\n };\n },\n\n programsByChannel(\n region: string,\n channel: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v3/regions/${region}/channels/programs`, {\n channel,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:channel', region, channel, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n programsByLetter(\n regionCode: string,\n startsWith: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v2/Programs`, {\n regionCode,\n startsWith,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:letter', regionCode, startsWith, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n program(\n id: string\n ): Flight.Request {\n return {\n url: `/api/tv/api/v3/programs/${id}`,\n key: `tv:programs:${id}`,\n normalize: false\n };\n },\n\n search(\n region: string,\n queryParams: HashObject,\n pageParam: number\n ): Flight.Request {\n const { query, dateBroadcast, ...filters } = queryParams;\n const page = pageParam || 1;\n const filter = filters.filter || TvSearchFilter.AllResults;\n\n const url = UrlHelper.urlBuilder(`/api/tv/api/v4/search`, {\n region,\n query,\n filter,\n ...TvUtils.getDateBroadcastParams(dateBroadcast),\n ...filters,\n page,\n size: 25\n });\n\n const filterKeys = Object.values({ filter, dateBroadcast, ...filters }).join(':');\n const key = [ 'tv:search', query, region, filterKeys, page ].join(':');\n\n return {\n url,\n key,\n normalize: false,\n formatData: (data: any) => {\n data.page = page;\n return data;\n }\n };\n },\n\n addFullVideo(data: AddFullVideoRequest, id: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/workspace/video`,\n key: 'tv:add:full:video',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n addAdFreeVideo(data: AddAdFreeVideoRequest, id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/programs/${data.id}/ad-free`, { customerId: data.customerId, userId: data.userId }),\n key: 'tv:add:ad:free:video',\n normalize: false,\n type: HttpVerbs.POST,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n adFreeCredits(\n userId: string,\n customerId: string,\n regionCode: string\n ): Flight.Request {\n // Start of today's date, offset by the local timezone.\n const from = new Date();\n from.setHours(0, 0, 0, 0);\n from.setMinutes(from.getMinutes() + from.getTimezoneOffset());\n\n const to = DateHelper.add(from, 1, 'day');\n\n const url = UrlHelper.urlBuilder(`/api/tv/v4/user-requests`, {\n userId,\n customerId,\n regionCode,\n from: DateHelper.convertUTCToLocal(from).toISOString(),\n to: DateHelper.convertUTCToLocal(to).toISOString()\n });\n\n return {\n url,\n key: 'tv:add:free:credits',\n normalize: false\n };\n },\n\n createAdFreeRequest(data: AdFreeRequest): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/user-requests/ad-free`, { userId: data.userId, customerId: data.customerId }),\n key: 'tv:create:add:free:request',\n normalize: false,\n type: HttpVerbs.POST,\n data: {\n programId: data.programId,\n regionCode: data.regionCode\n },\n invalidationKeys: ['tv:add:free:credits']\n };\n },\n\n workspaceVideo(videoId: string, userId: string, customerId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/workspace/programs/${videoId}`, { userId, customerId }),\n key: `tv:workspace:video:${videoId}`\n };\n },\n\n requestProgram(data: RequestProgramRequest) {\n return {\n url: `/api/tv/v1/pay-tv/user-requests`,\n key: 'tv:request:program',\n type: HttpVerbs.POST,\n data\n };\n },\n\n requestProgramUk(data: RequestProgramUkRequest) {\n return {\n url: `/api/tv/api/v1/user-requests/program`,\n key: 'tv:request:program:uk',\n type: HttpVerbs.POST,\n data\n };\n }\n};"],"names":["TvSearchFilter","getHolidayDates","cvHolidayOverride","LocalStorageHelper","ObjectHelper","TvUtils","startDate","endDate","DateHelper","dateBroadcast","format","date","todayDate","startMonth","startDay","endMonth","endDay","today","month","day","TvRequests","region","UrlHelper","data","a","b","channel","url","key","regionCode","startsWith","id","queryParams","pageParam","query","filters","page","filter","filterKeys","HttpVerbs","userId","customerId","from","to","videoId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D4xYDc88.chunk.js","sources":["../../src/apps/tv/interfaces/enums/TvSearchFilter.ts","../../src/apps/tv/utils/TvUtils.ts","../../src/apps/tv/flight-requests/TvRequests.ts"],"sourcesContent":["export enum TvSearchFilter {\n AllResults = 0,\n Subtitles = 1,\n TitleAndDescription = 2\n}","import { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n\nfunction getHolidayDates() {\n const cvHolidayOverride = LocalStorageHelper.get('cv:holiday:dates');\n\n if (ObjectHelper.isObject(cvHolidayOverride))\n return cvHolidayOverride;\n\n return {\n // Dec 15th\n startMonth: 12,\n startDay: 15,\n // Jan 6th\n endMonth: 1,\n endDay: 6\n };\n}\n\nexport const TvUtils = {\n getFormattedDateRange(startDate: string, endDate: string) {\n return `${DateHelper.format(startDate, 'Do MMMM YYYY')} - ${DateHelper.format(endDate, 'Do MMMM YYYY')}`;\n },\n getDateBroadcastParams(dateBroadcast: string) {\n const format = (date: Date) => DateHelper.format(date, 'YYYY-MM-DD');\n const todayDate = format(new Date());\n\n switch (dateBroadcast) {\n case 'yesterday':\n return {\n from: format(DateHelper.subtract(todayDate, 1, 'day')),\n to: todayDate\n };\n case 'last-week':\n return {\n from: format(DateHelper.subtract(todayDate, 7, 'days')),\n to: todayDate\n };\n case 'last-2-weeks':\n return {\n from: format(DateHelper.subtract(todayDate, 14, 'days')),\n to: todayDate\n };\n }\n },\n isHolidayPeriod(): boolean {\n const { startMonth, startDay, endMonth, endDay } = getHolidayDates();\n\n const today = new Date();\n const month = today.getMonth() + 1;\n const day = today.getDate();\n\n return ((month === startMonth && day >= startDay) || (month === endMonth && day <= endDay));\n }\n};\n","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { TvSearchFilter } from 'apps/tv/interfaces/enums/TvSearchFilter';\nimport { AddAdFreeVideoRequest } from 'apps/tv/interfaces/requests/AddAdFreeVideoRequest';\nimport { AddFullVideoRequest } from 'apps/tv/interfaces/requests/AddFullVideoRequest';\nimport { AdFreeRequest } from 'apps/tv/interfaces/requests/AdFreeRequest';\nimport { RequestProgramRequest, RequestProgramUkRequest } from 'apps/tv/interfaces/requests/RequestProgramRequest';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nexport const TvRequests = {\n regions(): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions`,\n key: `tv:regions`,\n normalize: false\n };\n },\n\n region(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}`,\n key: `tv:region:${region}`,\n normalize: false\n };\n },\n\n dateRange(region: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/regions/${region}/daterange`,\n key: `tv:region:${region}:daterange`,\n normalize: false\n };\n },\n\n channels(region: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/api/v2/channels`, { region }),\n key: `tv:channels:${region}`,\n normalize: false,\n formatData: (data: any[]) => {\n return data.sort((a: any, b: any) => (a.sortOrder - b.sortOrder));\n }\n };\n },\n\n payTvChannels(): Flight.Request {\n return {\n url: '/api/tv/v1/pay-tv/channels/all',\n key: 'pay:tv:channels',\n normalize: false\n };\n },\n\n programsByChannel(\n region: string,\n channel: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v3/regions/${region}/channels/programs`, {\n channel,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:channel', region, channel, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n programsByLetter(\n regionCode: string,\n startsWith: string,\n startDate: string,\n endDate: string\n ): Flight.Request {\n const url = UrlHelper.urlBuilder(`/api/tv/api/v2/Programs`, {\n regionCode,\n startsWith,\n startDate,\n endDate\n });\n\n const key = [ 'tv:programs:by:letter', regionCode, startsWith, startDate, endDate ].join(':');\n\n return {\n url,\n key,\n normalize: false\n };\n },\n\n program(\n id: string\n ): Flight.Request {\n return {\n url: `/api/tv/api/v3/programs/${id}`,\n key: `tv:programs:${id}`,\n normalize: false\n };\n },\n\n search(\n region: string,\n queryParams: HashObject,\n pageParam: number\n ): Flight.Request {\n const { query, dateBroadcast, ...filters } = queryParams;\n const page = pageParam || 1;\n const filter = filters.filter || TvSearchFilter.AllResults;\n\n const url = UrlHelper.urlBuilder(`/api/tv/api/v4/search`, {\n region,\n query,\n filter,\n ...TvUtils.getDateBroadcastParams(dateBroadcast),\n ...filters,\n page,\n size: 25\n });\n\n const filterKeys = Object.values({ filter, dateBroadcast, ...filters }).join(':');\n const key = [ 'tv:search', query, region, filterKeys, page ].join(':');\n\n return {\n url,\n key,\n normalize: false,\n formatData: (data: any) => {\n data.page = page;\n return data;\n }\n };\n },\n\n addFullVideo(data: AddFullVideoRequest, id: string): Flight.Request {\n return {\n url: `/api/tv/api/v2/workspace/video`,\n key: 'tv:add:full:video',\n normalize: false,\n type: HttpVerbs.POST,\n data,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n addAdFreeVideo(data: AddAdFreeVideoRequest, id: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/programs/${data.id}/ad-free`, { customerId: data.customerId, userId: data.userId }),\n key: 'tv:add:ad:free:video',\n normalize: false,\n type: HttpVerbs.POST,\n invalidationKeys: `tv:workspace:video:${id}`\n };\n },\n\n adFreeCredits(\n userId: string,\n customerId: string,\n regionCode: string\n ): Flight.Request {\n // Start of today's date, offset by the local timezone.\n const from = new Date();\n from.setHours(0, 0, 0, 0);\n from.setMinutes(from.getMinutes() + from.getTimezoneOffset());\n\n const to = DateHelper.add(from, 1, 'day');\n\n const url = UrlHelper.urlBuilder(`/api/tv/v4/user-requests`, {\n userId,\n customerId,\n regionCode,\n from: DateHelper.convertUTCToLocal(from).toISOString(),\n to: DateHelper.convertUTCToLocal(to).toISOString()\n });\n\n return {\n url,\n key: 'tv:add:free:credits',\n normalize: false\n };\n },\n\n createAdFreeRequest(data: AdFreeRequest): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/user-requests/ad-free`, { userId: data.userId, customerId: data.customerId }),\n key: 'tv:create:add:free:request',\n normalize: false,\n type: HttpVerbs.POST,\n data: {\n programId: data.programId,\n regionCode: data.regionCode\n },\n invalidationKeys: ['tv:add:free:credits']\n };\n },\n\n workspaceVideo(videoId: string, userId: string, customerId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`/api/tv/v4/workspace/programs/${videoId}`, { userId, customerId }),\n key: `tv:workspace:video:${videoId}`\n };\n },\n\n requestProgram(data: RequestProgramRequest) {\n return {\n url: `/api/tv/v1/pay-tv/user-requests`,\n key: 'tv:request:program',\n type: HttpVerbs.POST,\n data\n };\n },\n\n requestProgramUk(data: RequestProgramUkRequest) {\n return {\n url: `/api/tv/api/v1/user-requests/program`,\n key: 'tv:request:program:uk',\n type: HttpVerbs.POST,\n data\n };\n }\n};"],"names":["TvSearchFilter","getHolidayDates","cvHolidayOverride","LocalStorageHelper","ObjectHelper","TvUtils","startDate","endDate","DateHelper","dateBroadcast","format","date","todayDate","startMonth","startDay","endMonth","endDay","today","month","day","TvRequests","region","UrlHelper","data","a","b","channel","url","key","regionCode","startsWith","id","queryParams","pageParam","query","filters","page","filter","filterKeys","HttpVerbs","userId","customerId","from","to","videoId"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as a}from"./app-
|
|
2
|
-
//# sourceMappingURL
|
|
1
|
+
import{j as a}from"./app-CWLlxhC4.js";function r(l){return a.jsx("svg",{...l,children:a.jsx("path",{fill:"currentColor",d:"M4 6.462C4 6.207 4.21 6 4.47 6h15.06c.26 0 .47.207.47.462v10.892a.653.653 0 0 1-.659.646H4.66A.653.653 0 0 1 4 17.354zm1.723.461 5.967 5.12a.48.48 0 0 0 .62 0l5.967-5.12zm13.336.556-6.13 5.26a1.43 1.43 0 0 1-1.859 0l-6.129-5.26v9.598H19.06z"})})}function e(l){return a.jsx("svg",{...l,children:a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M9.5 7A1.5 1.5 0 0 1 11 5.5h2A1.5 1.5 0 0 1 14.5 7h4a.5.5 0 0 1 0 1h-1.14q0 .045-.005.09l-.909 10a1 1 0 0 1-.996.91h-6.9a1 1 0 0 1-.996-.91l-.91-10A1 1 0 0 1 6.64 8H5.5a.5.5 0 0 1 0-1h4m4 0a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5zm2.971 1H7.53l.853 9.545A.5.5 0 0 0 8.88 18h6.24a.5.5 0 0 0 .498-.456zm-7.43 2.537a.499.499 0 1 1 .994-.077l.424 5.503a.498.498 0 1 1-.994.077zM11.5 10.5a.5.5 0 0 1 1 0V16a.5.5 0 0 1-1 0zm2.962-.5c-.26 0-.477.2-.497.46l-.424 5.503a.499.499 0 1 0 .994.077l.424-5.503a.5.5 0 0 0-.497-.537",clipRule:"evenodd"})})}function n(l){return a.jsx("svg",{...l,children:a.jsx("path",{fill:"currentColor",d:"M16.367 7.964c.821-.63 1.453-1.642 1.453-2.78a.486.486 0 0 0-.477-.493h-2.482c-1.264 0-2.367.535-2.933 1.61A4.1 4.1 0 0 0 10.6 4.734a4.16 4.16 0 0 0-1.903-.732c-.263-.02-.689.284-.707.556-.02.272.375.607.637.626.106.01 2.35.231 2.814 2.92-.561-.124-.927-.449-2.3-.449-2.143 0-4.054 1.713-4.054 5.037 0 3.438 2.726 7.31 4.53 7.31 1.73 0 1.63-.506 2.384-.506.758 0 .65.505 2.384.505 1.805 0 4.53-3.868 4.53-7.309 0-2.563-1.114-4.105-2.547-4.727zm-1.506-2.187 1.86-.098c-.222 1.125-1.192 1.65-2.336 1.777l-1.761.198c.221-1.126 1.087-1.816 2.237-1.877m1.69 11.277c-.83 1.286-1.718 1.76-2.167 1.76-.842 0-1.107-.13-1.363-.257-.235-.116-.502-.248-1.02-.248-.519 0-.786.132-1.022.248-.256.127-.52.257-1.363.257-1 0-3.378-2.903-3.378-6.123 0-2.99 1.472-3.852 2.901-3.852 1.367 0 1.491.364 2.384.476.001.314.23.511.477.511.248 0 .478-.198.477-.51.9-.114 1.012-.477 2.384-.477 1.43 0 2.901.863 2.901 3.852 0 1.384-.315 2.974-1.211 4.363"})})}function o(l){return a.jsx("svg",{...l,children:a.jsx("path",{fill:"currentColor",fillRule:"evenodd",d:"M15.527 12.013a2.507 2.507 0 1 0 0-5.013 2.507 2.507 0 0 0 0 5.013m0-1.002a1.504 1.504 0 1 1 0-3.008 1.504 1.504 0 0 1 0 3.008m-7.269 1.323a2.256 2.256 0 1 0 0-4.512 2.256 2.256 0 0 0 0 4.512m0-3.51a1.253 1.253 0 1 1 0 2.508 1.253 1.253 0 0 1 0-2.507M4.18 15.35c1.552-2.633 4.699-2.595 6.592-1.46a.502.502 0 0 1-.516.86c-1.588-.952-4.035-.888-5.212 1.11a.25.25 0 0 0 .01.285c.068.098.202.18.372.18h4.587a.501.501 0 1 1 0 1.004H5.426c-.496 0-.938-.242-1.195-.612a1.25 1.25 0 0 1-.051-1.367m9.045-2.03a6 6 0 0 1 2.302-.504c2.344 0 3.865 1.4 4.398 2.859.164.448.044.884-.225 1.19-.26.293-.653.464-1.064.464h-6.217a1.46 1.46 0 0 1-1.068-.457 1.22 1.22 0 0 1-.288-1.172c.351-1.254 1.265-1.978 2.162-2.38m.41.915c-.724.325-1.361.859-1.607 1.736q-.034.119.058.22c.07.075.191.135.333.135h6.217c.142 0 .254-.06.313-.126.048-.055.06-.11.035-.18-.397-1.084-1.556-2.2-3.457-2.2-.386 0-1.16.087-1.892.415",clipRule:"evenodd"})})}export{n as C,e as D,r as E,o as G};
|
|
2
|
+
//# sourceMappingURL=DAbsA9MV.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DAbsA9MV.chunk.js","sources":["../../../../libs/shared/src/images/svg/objects/EmailSvg.tsx","../../../../libs/shared/src/images/svg/actions/DeleteSvg.tsx","../../../../libs/shared/src/images/svg/objects/ClassroomsSvg.tsx","../../../../libs/shared/src/images/svg/objects/GroupSvg.tsx"],"sourcesContent":["import React from 'react';\n\nexport function EmailSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M4 6.462C4 6.207 4.21 6 4.47 6h15.06c.26 0 .47.207.47.462v10.892a.653.653 0 0 1-.659.646H4.66A.653.653 0 0 1 4 17.354zm1.723.461 5.967 5.12a.48.48 0 0 0 .62 0l5.967-5.12zm13.336.556-6.13 5.26a1.43 1.43 0 0 1-1.859 0l-6.129-5.26v9.598H19.06z'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function DeleteSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9.5 7A1.5 1.5 0 0 1 11 5.5h2A1.5 1.5 0 0 1 14.5 7h4a.5.5 0 0 1 0 1h-1.14q0 .045-.005.09l-.909 10a1 1 0 0 1-.996.91h-6.9a1 1 0 0 1-.996-.91l-.91-10A1 1 0 0 1 6.64 8H5.5a.5.5 0 0 1 0-1h4m4 0a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5zm2.971 1H7.53l.853 9.545A.5.5 0 0 0 8.88 18h6.24a.5.5 0 0 0 .498-.456zm-7.43 2.537a.499.499 0 1 1 .994-.077l.424 5.503a.498.498 0 1 1-.994.077zM11.5 10.5a.5.5 0 0 1 1 0V16a.5.5 0 0 1-1 0zm2.962-.5c-.26 0-.477.2-.497.46l-.424 5.503a.499.499 0 1 0 .994.077l.424-5.503a.5.5 0 0 0-.497-.537'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function ClassroomsSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}\n >\n <path\n fill='currentColor'\n d='M16.367 7.964c.821-.63 1.453-1.642 1.453-2.78a.486.486 0 0 0-.477-.493h-2.482c-1.264 0-2.367.535-2.933 1.61A4.1 4.1 0 0 0 10.6 4.734a4.16 4.16 0 0 0-1.903-.732c-.263-.02-.689.284-.707.556-.02.272.375.607.637.626.106.01 2.35.231 2.814 2.92-.561-.124-.927-.449-2.3-.449-2.143 0-4.054 1.713-4.054 5.037 0 3.438 2.726 7.31 4.53 7.31 1.73 0 1.63-.506 2.384-.506.758 0 .65.505 2.384.505 1.805 0 4.53-3.868 4.53-7.309 0-2.563-1.114-4.105-2.547-4.727zm-1.506-2.187 1.86-.098c-.222 1.125-1.192 1.65-2.336 1.777l-1.761.198c.221-1.126 1.087-1.816 2.237-1.877m1.69 11.277c-.83 1.286-1.718 1.76-2.167 1.76-.842 0-1.107-.13-1.363-.257-.235-.116-.502-.248-1.02-.248-.519 0-.786.132-1.022.248-.256.127-.52.257-1.363.257-1 0-3.378-2.903-3.378-6.123 0-2.99 1.472-3.852 2.901-3.852 1.367 0 1.491.364 2.384.476.001.314.23.511.477.511.248 0 .478-.198.477-.51.9-.114 1.012-.477 2.384-.477 1.43 0 2.901.863 2.901 3.852 0 1.384-.315 2.974-1.211 4.363'\n />\n </svg>\n );\n}\n","import React from 'react';\n\nexport function GroupSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M15.527 12.013a2.507 2.507 0 1 0 0-5.013 2.507 2.507 0 0 0 0 5.013m0-1.002a1.504 1.504 0 1 1 0-3.008 1.504 1.504 0 0 1 0 3.008m-7.269 1.323a2.256 2.256 0 1 0 0-4.512 2.256 2.256 0 0 0 0 4.512m0-3.51a1.253 1.253 0 1 1 0 2.508 1.253 1.253 0 0 1 0-2.507M4.18 15.35c1.552-2.633 4.699-2.595 6.592-1.46a.502.502 0 0 1-.516.86c-1.588-.952-4.035-.888-5.212 1.11a.25.25 0 0 0 .01.285c.068.098.202.18.372.18h4.587a.501.501 0 1 1 0 1.004H5.426c-.496 0-.938-.242-1.195-.612a1.25 1.25 0 0 1-.051-1.367m9.045-2.03a6 6 0 0 1 2.302-.504c2.344 0 3.865 1.4 4.398 2.859.164.448.044.884-.225 1.19-.26.293-.653.464-1.064.464h-6.217a1.46 1.46 0 0 1-1.068-.457 1.22 1.22 0 0 1-.288-1.172c.351-1.254 1.265-1.978 2.162-2.38m.41.915c-.724.325-1.361.859-1.607 1.736q-.034.119.058.22c.07.075.191.135.333.135h6.217c.142 0 .254-.06.313-.126.048-.055.06-.11.035-.18-.397-1.084-1.556-2.2-3.457-2.2-.386 0-1.16.087-1.892.415'\n clipRule='evenodd'\n />\n </svg>\n );\n}\n"],"names":["EmailSvg","props","jsx","DeleteSvg","ClassroomsSvg","GroupSvg"],"mappings":"sCAEO,SAASA,EAASC,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,kPAAA,CAAA,EAEN,CAEJ,CCTO,SAASC,EAAUF,EAAsC,CAC9D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,mgBACF,SAAS,SAAA,CAAA,EAEb,CAEJ,CCXO,SAASE,EAAcH,EAAsC,CAClE,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EAEP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,EAAE,g6BAAA,CAAA,CACJ,CAAA,CAGN,CCVO,SAASG,EAASJ,EAAsC,CAC7D,OACEC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EACP,SAAAC,EAAAA,IAAC,OAAA,CACC,KAAK,eACL,SAAS,UACT,EAAE,83BACF,SAAS,SAAA,CAAA,EAEb,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as r,aO as n}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{_ as r,aO as n}from"./app-CWLlxhC4.js";function v(e,t){const[o,i]=r(`exchange:preview:${e}`,t?n.getPreviousRoute():void 0);return{previewContext:o,clearPreviewContext:()=>i(void 0)}}export{v as u};
|
|
2
|
+
//# sourceMappingURL=DBs7i4mg.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DBs7i4mg.chunk.js","sources":["../../src/apps/exchange/hooks/usePreviewContext.ts"],"sourcesContent":["import { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface ContentViewModel {\n appLink: Core.AppLink;\n}\n\nexport function usePreviewContext(videoId: string, init: boolean) {\n const [ previewContext, setViewModel ] = useViewModel<ContentViewModel>(\n `exchange:preview:${videoId}`,\n init ? ContextService.getPreviousRoute() : undefined\n );\n\n return {\n previewContext,\n clearPreviewContext: () => setViewModel(undefined)\n };\n}"],"names":["usePreviewContext","videoId","init","previewContext","setViewModel","useViewModel","ContextService"],"mappings":"8CASO,SAASA,EAAkBC,EAAiBC,EAAe,CAChE,KAAM,CAAEC,EAAgBC,CAAa,EAAIC,EACvC,oBAAoBJ,CAAO,GAC3BC,EAAOI,EAAe,mBAAqB,MAAA,EAG7C,MAAO,CACL,eAAAH,EACA,oBAAqB,IAAMC,EAAa,MAAS,CAAA,CAErD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{M as s}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{M as s}from"./app-CWLlxhC4.js";const p={isType(e,r){var t;return e!=null&&e.typeId?e.typeId===r:((t=e==null?void 0:e.type)==null?void 0:t.toLowerCase())===s[r].toLowerCase()},isResource(e){return p.isType(e,s.Resource)},isClassification(e){return e.type==="Subject"}};export{p as M};
|
|
2
|
+
//# sourceMappingURL=DEhxVL2r.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"DEhxVL2r.chunk.js","sources":["../../../../libs/shared/src/utils/MasterTypeHelper.ts"],"sourcesContent":["import { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classification, Resource } from 'libs/shared/interfaces';\n\nexport const MasterTypeHelper = {\n isType<T extends BaseObject>(obj: any, typeId: MasterType): obj is T {\n if (obj?.typeId)\n return obj.typeId === typeId;\n\n // Fallback to comparing actual string types\n return obj?.type?.toLowerCase() === MasterType[typeId].toLowerCase();\n },\n\n isResource(obj: any): obj is Resource {\n return MasterTypeHelper.isType<Resource>(obj, MasterType.Resource);\n },\n\n isClassification(obj: any): obj is Classification {\n return obj.type === 'Subject';\n }\n};"],"names":["MasterTypeHelper","obj","typeId","_a","MasterType"],"mappings":"sCAGO,MAAMA,EAAmB,CAC9B,OAA6BC,EAAUC,EAA8B,OACnE,OAAID,GAAA,MAAAA,EAAK,OACAA,EAAI,SAAWC,IAGjBC,EAAAF,GAAA,YAAAA,EAAK,OAAL,YAAAE,EAAW,iBAAkBC,EAAWF,CAAM,EAAE,YAAA,CACzD,EAEA,WAAWD,EAA2B,CACpC,OAAOD,EAAiB,OAAiBC,EAAKG,EAAW,QAAQ,CACnE,EAEA,iBAAiBH,EAAiC,CAChD,OAAOA,EAAI,OAAS,SACtB,CACF"}
|