@clickview/exchange 0.60.0-rc.1 → 0.60.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/en.json +1 -1
- package/dist/scripts/{BKi3hrx8.chunk.js → 04pgOdRO.chunk.js} +2 -2
- package/dist/scripts/{BKi3hrx8.chunk.js.map → 04pgOdRO.chunk.js.map} +1 -1
- package/dist/scripts/{Cun6Bm0P.chunk.js → 3TcDzXoX.chunk.js} +2 -2
- package/dist/scripts/{Cun6Bm0P.chunk.js.map → 3TcDzXoX.chunk.js.map} +1 -1
- package/dist/scripts/{BtawqZ6G.chunk.js → 4J0Xi0Li.chunk.js} +2 -2
- package/dist/scripts/{BtawqZ6G.chunk.js.map → 4J0Xi0Li.chunk.js.map} +1 -1
- package/dist/scripts/{CVs6MQ2N.chunk.js → 6IXg6l1D.chunk.js} +2 -2
- package/dist/scripts/{CVs6MQ2N.chunk.js.map → 6IXg6l1D.chunk.js.map} +1 -1
- package/dist/scripts/{DL2-cCw6.chunk.js → B-owbLzH.chunk.js} +2 -2
- package/dist/scripts/{DL2-cCw6.chunk.js.map → B-owbLzH.chunk.js.map} +1 -1
- package/dist/scripts/{DRrC3MD7.chunk.js → B0F-zuCm.chunk.js} +2 -2
- package/dist/scripts/{DRrC3MD7.chunk.js.map → B0F-zuCm.chunk.js.map} +1 -1
- package/dist/scripts/{CA_kgZyj.chunk.js → B70FMVao.chunk.js} +2 -2
- package/dist/scripts/{CA_kgZyj.chunk.js.map → B70FMVao.chunk.js.map} +1 -1
- package/dist/scripts/{4fxPWB-y.chunk.js → BBHWPp1j.chunk.js} +2 -2
- package/dist/scripts/{4fxPWB-y.chunk.js.map → BBHWPp1j.chunk.js.map} +1 -1
- package/dist/scripts/{BtdA62QV.chunk.js → BDyAv0Lu.chunk.js} +2 -2
- package/dist/scripts/{BtdA62QV.chunk.js.map → BDyAv0Lu.chunk.js.map} +1 -1
- package/dist/scripts/{BifrjGRd.chunk.js → BE4-eyTT.chunk.js} +2 -2
- package/dist/scripts/{BifrjGRd.chunk.js.map → BE4-eyTT.chunk.js.map} +1 -1
- package/dist/scripts/BLzBP6Wz.chunk.js +2 -0
- package/dist/scripts/{S3AKKGaX.chunk.js.map → BLzBP6Wz.chunk.js.map} +1 -1
- package/dist/scripts/{B-uJ9QxS.chunk.js → BVLYrDIr.chunk.js} +2 -2
- package/dist/scripts/{B-uJ9QxS.chunk.js.map → BVLYrDIr.chunk.js.map} +1 -1
- package/dist/scripts/{BF-Dxna8.chunk.js → BYcoChXb.chunk.js} +2 -2
- package/dist/scripts/{BF-Dxna8.chunk.js.map → BYcoChXb.chunk.js.map} +1 -1
- package/dist/scripts/{Z9Jn5Q8R.chunk.js → Ba34yA9D.chunk.js} +2 -2
- package/dist/scripts/{Z9Jn5Q8R.chunk.js.map → Ba34yA9D.chunk.js.map} +1 -1
- package/dist/scripts/{BR315om5.chunk.js → BcMlwk5Q.chunk.js} +2 -2
- package/dist/scripts/{BR315om5.chunk.js.map → BcMlwk5Q.chunk.js.map} +1 -1
- package/dist/scripts/{CSOZNOFJ.chunk.js → Bf6VCMqm.chunk.js} +2 -2
- package/dist/scripts/{CSOZNOFJ.chunk.js.map → Bf6VCMqm.chunk.js.map} +1 -1
- package/dist/scripts/{BP4XTpZ5.chunk.js → BgJkDMpd.chunk.js} +2 -2
- package/dist/scripts/{BP4XTpZ5.chunk.js.map → BgJkDMpd.chunk.js.map} +1 -1
- package/dist/scripts/{DL6RqYme.chunk.js → Bh24QUEJ.chunk.js} +2 -2
- package/dist/scripts/{DL6RqYme.chunk.js.map → Bh24QUEJ.chunk.js.map} +1 -1
- package/dist/scripts/{CwSSqnpd.chunk.js → BlIARVZO.chunk.js} +2 -2
- package/dist/scripts/{CwSSqnpd.chunk.js.map → BlIARVZO.chunk.js.map} +1 -1
- package/dist/scripts/{ChMcPIOp.chunk.js → BljWHlhm.chunk.js} +2 -2
- package/dist/scripts/{ChMcPIOp.chunk.js.map → BljWHlhm.chunk.js.map} +1 -1
- package/dist/scripts/{cQwhiWVd.chunk.js → BmyPQ5jE.chunk.js} +2 -2
- package/dist/scripts/{cQwhiWVd.chunk.js.map → BmyPQ5jE.chunk.js.map} +1 -1
- package/dist/scripts/{D4iJdObW.chunk.js → Bnz0fDvK.chunk.js} +2 -2
- package/dist/scripts/{D4iJdObW.chunk.js.map → Bnz0fDvK.chunk.js.map} +1 -1
- package/dist/scripts/BsADH-lw.chunk.js +2 -0
- package/dist/scripts/{8FKVdaoV.chunk.js.map → BsADH-lw.chunk.js.map} +1 -1
- package/dist/scripts/{DGXKrtD9.chunk.js → BsOHikPe.chunk.js} +2 -2
- package/dist/scripts/{DGXKrtD9.chunk.js.map → BsOHikPe.chunk.js.map} +1 -1
- package/dist/scripts/{wf3__oqz.chunk.js → BtjfZQnL.chunk.js} +2 -2
- package/dist/scripts/{wf3__oqz.chunk.js.map → BtjfZQnL.chunk.js.map} +1 -1
- package/dist/scripts/{BwOCU8N2.chunk.js → BuAs5ec9.chunk.js} +2 -2
- package/dist/scripts/{BwOCU8N2.chunk.js.map → BuAs5ec9.chunk.js.map} +1 -1
- package/dist/scripts/BukJ7aUR.chunk.js +2 -0
- package/dist/scripts/{n2Lzk-vZ.chunk.js.map → BukJ7aUR.chunk.js.map} +1 -1
- package/dist/scripts/ByhKhOKU.chunk.js +2 -0
- package/dist/scripts/{C7hbvwax.chunk.js.map → ByhKhOKU.chunk.js.map} +1 -1
- package/dist/scripts/{BF5o8dSk.chunk.js → C1ZMk5wM.chunk.js} +2 -2
- package/dist/scripts/{BF5o8dSk.chunk.js.map → C1ZMk5wM.chunk.js.map} +1 -1
- package/dist/scripts/{CkssErVA.chunk.js → C3y5p8CZ.chunk.js} +2 -2
- package/dist/scripts/{CkssErVA.chunk.js.map → C3y5p8CZ.chunk.js.map} +1 -1
- package/dist/scripts/C7EM5k6B.chunk.js +2 -0
- package/dist/scripts/{BzroV7uY.chunk.js.map → C7EM5k6B.chunk.js.map} +1 -1
- package/dist/scripts/{q9Uu2NWp.chunk.js → CFk0WB2c.chunk.js} +2 -2
- package/dist/scripts/{q9Uu2NWp.chunk.js.map → CFk0WB2c.chunk.js.map} +1 -1
- package/dist/scripts/{B8OodjhB.chunk.js → CJIFCVgE.chunk.js} +2 -2
- package/dist/scripts/{B8OodjhB.chunk.js.map → CJIFCVgE.chunk.js.map} +1 -1
- package/dist/scripts/{BlSWUMP3.chunk.js → CKvSiIEq.chunk.js} +2 -2
- package/dist/scripts/{BlSWUMP3.chunk.js.map → CKvSiIEq.chunk.js.map} +1 -1
- package/dist/scripts/CMCojMYr.chunk.js +2 -0
- package/dist/scripts/{_IXItgx2.chunk.js.map → CMCojMYr.chunk.js.map} +1 -1
- package/dist/scripts/{TstEXSQN.chunk.js → CPlxz4qV.chunk.js} +2 -2
- package/dist/scripts/{TstEXSQN.chunk.js.map → CPlxz4qV.chunk.js.map} +1 -1
- package/dist/scripts/{I59Hs9Lx.chunk.js → CTVtP7l8.chunk.js} +2 -2
- package/dist/scripts/{I59Hs9Lx.chunk.js.map → CTVtP7l8.chunk.js.map} +1 -1
- package/dist/scripts/{DVWWhAdQ.chunk.js → C_4wt9AF.chunk.js} +2 -2
- package/dist/scripts/{DVWWhAdQ.chunk.js.map → C_4wt9AF.chunk.js.map} +1 -1
- package/dist/scripts/{CCRn1ABX.chunk.js → CbaYOIsv.chunk.js} +2 -2
- package/dist/scripts/{CCRn1ABX.chunk.js.map → CbaYOIsv.chunk.js.map} +1 -1
- package/dist/scripts/{Ctt5fJ1m.chunk.js → CcpXNvK8.chunk.js} +2 -2
- package/dist/scripts/{Ctt5fJ1m.chunk.js.map → CcpXNvK8.chunk.js.map} +1 -1
- package/dist/scripts/{Bn0x3bVV.chunk.js → Cd9rSWFI.chunk.js} +2 -2
- package/dist/scripts/{Bn0x3bVV.chunk.js.map → Cd9rSWFI.chunk.js.map} +1 -1
- package/dist/scripts/{D8DlnPuu.chunk.js → Cfz-NLA8.chunk.js} +2 -2
- package/dist/scripts/{D8DlnPuu.chunk.js.map → Cfz-NLA8.chunk.js.map} +1 -1
- package/dist/scripts/{DcycuoCp.chunk.js → CoH7ITiF.chunk.js} +2 -2
- package/dist/scripts/{DcycuoCp.chunk.js.map → CoH7ITiF.chunk.js.map} +1 -1
- package/dist/scripts/{6azg5FPO.chunk.js → Cp5iJov7.chunk.js} +2 -2
- package/dist/scripts/{6azg5FPO.chunk.js.map → Cp5iJov7.chunk.js.map} +1 -1
- package/dist/scripts/{CwIkFpAK.chunk.js → CqC__fxH.chunk.js} +2 -2
- package/dist/scripts/{CwIkFpAK.chunk.js.map → CqC__fxH.chunk.js.map} +1 -1
- package/dist/scripts/{BxTf0tGn.chunk.js → CtxDEXnF.chunk.js} +2 -2
- package/dist/scripts/{BxTf0tGn.chunk.js.map → CtxDEXnF.chunk.js.map} +1 -1
- package/dist/scripts/{BOA4xw3e.chunk.js → CvWjVTu3.chunk.js} +2 -2
- package/dist/scripts/{BOA4xw3e.chunk.js.map → CvWjVTu3.chunk.js.map} +1 -1
- package/dist/scripts/{rTx16rRP.chunk.js → D434QRYT.chunk.js} +2 -2
- package/dist/scripts/{rTx16rRP.chunk.js.map → D434QRYT.chunk.js.map} +1 -1
- package/dist/scripts/{CLc8za1x.chunk.js → D4Zjf8Y5.chunk.js} +2 -2
- package/dist/scripts/{CLc8za1x.chunk.js.map → D4Zjf8Y5.chunk.js.map} +1 -1
- package/dist/scripts/{BRNWJUo1.chunk.js → D6ZrWp-l.chunk.js} +2 -2
- package/dist/scripts/{BRNWJUo1.chunk.js.map → D6ZrWp-l.chunk.js.map} +1 -1
- package/dist/scripts/{CMMBNKu7.chunk.js → D8Heuhhv.chunk.js} +2 -2
- package/dist/scripts/{CMMBNKu7.chunk.js.map → D8Heuhhv.chunk.js.map} +1 -1
- package/dist/scripts/{DewN2Vb_.chunk.js → DB2D8K7H.chunk.js} +2 -2
- package/dist/scripts/{DewN2Vb_.chunk.js.map → DB2D8K7H.chunk.js.map} +1 -1
- package/dist/scripts/{D8_lXBys.chunk.js → DBVjri4c.chunk.js} +2 -2
- package/dist/scripts/{D8_lXBys.chunk.js.map → DBVjri4c.chunk.js.map} +1 -1
- package/dist/scripts/{BNuBfH8m.chunk.js → DE1BrYZL.chunk.js} +2 -2
- package/dist/scripts/{BNuBfH8m.chunk.js.map → DE1BrYZL.chunk.js.map} +1 -1
- package/dist/scripts/{wSwn3D46.chunk.js → DFEzVltS.chunk.js} +2 -2
- package/dist/scripts/{wSwn3D46.chunk.js.map → DFEzVltS.chunk.js.map} +1 -1
- package/dist/scripts/{BR_T92IH.chunk.js → DJIcjqQb.chunk.js} +2 -2
- package/dist/scripts/{BR_T92IH.chunk.js.map → DJIcjqQb.chunk.js.map} +1 -1
- package/dist/scripts/{DovRcfVM.chunk.js → DO5O1Cbr.chunk.js} +2 -2
- package/dist/scripts/{DovRcfVM.chunk.js.map → DO5O1Cbr.chunk.js.map} +1 -1
- package/dist/scripts/{DsjV9PPn.chunk.js → DRm_bkxA.chunk.js} +2 -2
- package/dist/scripts/{DsjV9PPn.chunk.js.map → DRm_bkxA.chunk.js.map} +1 -1
- package/dist/scripts/{9Rt0MZjT.chunk.js → DT4IRGxK.chunk.js} +2 -2
- package/dist/scripts/{9Rt0MZjT.chunk.js.map → DT4IRGxK.chunk.js.map} +1 -1
- package/dist/scripts/{DR4ix3Le.chunk.js → DUhtYhkt.chunk.js} +2 -2
- package/dist/scripts/{DR4ix3Le.chunk.js.map → DUhtYhkt.chunk.js.map} +1 -1
- package/dist/scripts/{C1OCfDUr.chunk.js → DWEY8djx.chunk.js} +2 -2
- package/dist/scripts/{C1OCfDUr.chunk.js.map → DWEY8djx.chunk.js.map} +1 -1
- package/dist/scripts/{DSvyU13L.chunk.js → DWvjreQC.chunk.js} +2 -2
- package/dist/scripts/{DSvyU13L.chunk.js.map → DWvjreQC.chunk.js.map} +1 -1
- package/dist/scripts/{fECuBMLR.chunk.js → D_1yBiR4.chunk.js} +2 -2
- package/dist/scripts/{fECuBMLR.chunk.js.map → D_1yBiR4.chunk.js.map} +1 -1
- package/dist/scripts/{3OkTFdK2.chunk.js → Da25i9yA.chunk.js} +2 -2
- package/dist/scripts/{3OkTFdK2.chunk.js.map → Da25i9yA.chunk.js.map} +1 -1
- package/dist/scripts/DajpMvCp.chunk.js +2 -0
- package/dist/scripts/{DkDHWI8R.chunk.js.map → DajpMvCp.chunk.js.map} +1 -1
- package/dist/scripts/{D24CCnbD.chunk.js → DazbnkYw.chunk.js} +2 -2
- package/dist/scripts/{D24CCnbD.chunk.js.map → DazbnkYw.chunk.js.map} +1 -1
- package/dist/scripts/{CT6hE7w6.chunk.js → DcxTi_y6.chunk.js} +2 -2
- package/dist/scripts/{CT6hE7w6.chunk.js.map → DcxTi_y6.chunk.js.map} +1 -1
- package/dist/scripts/{DRRhiZBL.chunk.js → Dfj7IDd2.chunk.js} +2 -2
- package/dist/scripts/{DRRhiZBL.chunk.js.map → Dfj7IDd2.chunk.js.map} +1 -1
- package/dist/scripts/{PrSoxgla.chunk.js → Dfz11JwF.chunk.js} +2 -2
- package/dist/scripts/{PrSoxgla.chunk.js.map → Dfz11JwF.chunk.js.map} +1 -1
- package/dist/scripts/{WI7FPt1a.chunk.js → DhQH7eoo.chunk.js} +2 -2
- package/dist/scripts/{WI7FPt1a.chunk.js.map → DhQH7eoo.chunk.js.map} +1 -1
- package/dist/scripts/{CNP8DTSw.chunk.js → Dk7j_X12.chunk.js} +2 -2
- package/dist/scripts/{CNP8DTSw.chunk.js.map → Dk7j_X12.chunk.js.map} +1 -1
- package/dist/scripts/{BAdNjc7A.chunk.js → Dn33djw5.chunk.js} +2 -2
- package/dist/scripts/{BAdNjc7A.chunk.js.map → Dn33djw5.chunk.js.map} +1 -1
- package/dist/scripts/{BberNguh.chunk.js → DoDHNhqQ.chunk.js} +2 -2
- package/dist/scripts/{BberNguh.chunk.js.map → DoDHNhqQ.chunk.js.map} +1 -1
- package/dist/scripts/{BUDMpJX2.chunk.js → DoKxE03f.chunk.js} +2 -2
- package/dist/scripts/{BUDMpJX2.chunk.js.map → DoKxE03f.chunk.js.map} +1 -1
- package/dist/scripts/{S5nHSRfa.chunk.js → DtHc20G9.chunk.js} +2 -2
- package/dist/scripts/{S5nHSRfa.chunk.js.map → DtHc20G9.chunk.js.map} +1 -1
- package/dist/scripts/{BLByhXZW.chunk.js → ERJS4wRT.chunk.js} +2 -2
- package/dist/scripts/{BLByhXZW.chunk.js.map → ERJS4wRT.chunk.js.map} +1 -1
- package/dist/scripts/{BQ-BKyM1.chunk.js → EvPAqFMl.chunk.js} +2 -2
- package/dist/scripts/{BQ-BKyM1.chunk.js.map → EvPAqFMl.chunk.js.map} +1 -1
- package/dist/scripts/{B1uz-Qnj.chunk.js → LW0dQJSk.chunk.js} +2 -2
- package/dist/scripts/{B1uz-Qnj.chunk.js.map → LW0dQJSk.chunk.js.map} +1 -1
- package/dist/scripts/{LDI1zHGl.chunk.js → LZIgIAoQ.chunk.js} +2 -2
- package/dist/scripts/{LDI1zHGl.chunk.js.map → LZIgIAoQ.chunk.js.map} +1 -1
- package/dist/scripts/{CUdFCpCV.chunk.js → M6sIzXk3.chunk.js} +2 -2
- package/dist/scripts/{CUdFCpCV.chunk.js.map → M6sIzXk3.chunk.js.map} +1 -1
- package/dist/scripts/{DSzyGUtv.chunk.js → NgXKdsdO.chunk.js} +2 -2
- package/dist/scripts/{DSzyGUtv.chunk.js.map → NgXKdsdO.chunk.js.map} +1 -1
- package/dist/scripts/{CnvPx00U.chunk.js → NuQ4YL4o.chunk.js} +2 -2
- package/dist/scripts/{CnvPx00U.chunk.js.map → NuQ4YL4o.chunk.js.map} +1 -1
- package/dist/scripts/{app-F40DpJf0.js → app-DIXL6Xww.js} +3 -3
- package/dist/scripts/{app-F40DpJf0.js.map → app-DIXL6Xww.js.map} +1 -1
- package/dist/scripts/{BjXCJlUR.chunk.js → h2FRNRf6.chunk.js} +2 -2
- package/dist/scripts/{BjXCJlUR.chunk.js.map → h2FRNRf6.chunk.js.map} +1 -1
- package/dist/scripts/{3wFLNakR.chunk.js → nX8j1O82.chunk.js} +2 -2
- package/dist/scripts/{3wFLNakR.chunk.js.map → nX8j1O82.chunk.js.map} +1 -1
- package/dist/scripts/{D4tR-WZQ.chunk.js → o4QgtA_X.chunk.js} +2 -2
- package/dist/scripts/{D4tR-WZQ.chunk.js.map → o4QgtA_X.chunk.js.map} +1 -1
- package/dist/scripts/{XcHkZOyF.chunk.js → qxfO3cEF.chunk.js} +2 -2
- package/dist/scripts/{XcHkZOyF.chunk.js.map → qxfO3cEF.chunk.js.map} +1 -1
- package/dist/scripts/{qlF3nlLO.chunk.js → r1PHK19X.chunk.js} +2 -2
- package/dist/scripts/{qlF3nlLO.chunk.js.map → r1PHK19X.chunk.js.map} +1 -1
- package/dist/scripts/{Bf7PNHQi.chunk.js → rOIj7KLN.chunk.js} +2 -2
- package/dist/scripts/{Bf7PNHQi.chunk.js.map → rOIj7KLN.chunk.js.map} +1 -1
- package/dist/scripts/{SIOFUPM8.chunk.js → roCgVX3B.chunk.js} +3 -3
- package/dist/scripts/{SIOFUPM8.chunk.js.map → roCgVX3B.chunk.js.map} +1 -1
- package/dist/scripts/{CMsNmlo3.chunk.js → yublbxR_.chunk.js} +2 -2
- package/dist/scripts/{CMsNmlo3.chunk.js.map → yublbxR_.chunk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/8FKVdaoV.chunk.js +0 -2
- package/dist/scripts/BzroV7uY.chunk.js +0 -2
- package/dist/scripts/C7hbvwax.chunk.js +0 -2
- package/dist/scripts/DkDHWI8R.chunk.js +0 -2
- package/dist/scripts/S3AKKGaX.chunk.js +0 -2
- package/dist/scripts/_IXItgx2.chunk.js +0 -2
- package/dist/scripts/n2Lzk-vZ.chunk.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a3 as o,j as e,P as m,L as d,B as a,aq as x,a as h,b as j,x as c}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{a3 as o,j as e,P as m,L as d,B as a,aq as x,a as h,b as j,x as c}from"./app-DIXL6Xww.js";import{T as l,a as g}from"./C1ZMk5wM.chunk.js";import{t as r}from"./DoKxE03f.chunk.js";const u="_infoAlert_r916y_1",N={infoAlert:u},s="tv.broadcastContent",p=d.encloseNamespace(s);function A(t){const i=o(l.region(t.region)),n=o(l.dateRange(t.region));return e.jsxs(m,{title:p("title"),closePopup:t.closePopup,children:[e.jsx("div",{className:`${N.infoAlert} rounded w-100 p-2 mb-4`,children:e.jsxs("p",{className:"d-inline fw-semibold mb-0 me-2",children:[e.jsx(a,{namespace:s,phrase:"programsAvailable"}),n.data&&g.getFormattedDateRange(r(n.data.startDate,i.data.timeZone),r(n.data.endDate,i.data.timeZone))]})}),e.jsx("h2",{className:"h5",children:e.jsx(a,{namespace:s,phrase:"subTitle"})}),e.jsx("p",{className:"mb-2",children:e.jsx(a,{namespace:s,phrase:"description"})}),e.jsxs("div",{className:"mb-2",children:[e.jsx("p",{className:"d-inline",children:e.jsx(a,{namespace:s,phrase:"missedProgram"})}),e.jsx(x,{appLink:{application:j.EXCHANGE,action:h.Exchange.INDEX},className:"text-info",onClick:t.closePopup,children:e.jsx("span",{children:e.jsx(a,{namespace:s,phrase:"exchangeArchive"})})}),"."]}),e.jsx("p",{className:"mb-3",children:e.jsx(a,{namespace:s,phrase:"emailContent"})}),e.jsx(c,{children:e.jsx(c.Cancel,{text:p("close"),onClick:t.closePopup,variant:"link"})})]})}export{A as TvBroadcastContentView};
|
|
2
|
+
//# sourceMappingURL=M6sIzXk3.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"M6sIzXk3.chunk.js","sources":["../../src/apps/tv/views/tv-broadcast-content/TvBroadcastContentView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\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 { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/ExchangeActions';\nimport { AppChannels } from 'shared/constants/ExchangeRadioChannels';\n\nimport { TvRequests } from 'apps/tv/flight-requests/TvRequests';\nimport { TvDateRange, TvRegion } from 'apps/tv/interfaces/models/TvRegion';\nimport { toLocalTime } from 'apps/tv/utils/toLocalTime';\nimport { TvUtils } from 'apps/tv/utils/TvUtils';\n\nimport styles from './tv-broadcast-content.module.scss';\n\nconst namespace = 'tv.broadcastContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TvBroadcastContentViewProps extends PopupViewProps {\n region: string;\n}\n\nexport function TvBroadcastContentView(props: TvBroadcastContentViewProps) {\n const region = Flight.useBasicFetch<TvRegion>(TvRequests.region(props.region));\n const dateRange = Flight.useBasicFetch<TvDateRange>(TvRequests.dateRange(props.region));\n \n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <div className={`${styles.infoAlert} rounded w-100 p-2 mb-4`}>\n <p className='d-inline fw-semibold mb-0 me-2'>\n <Text namespace={namespace} phrase='programsAvailable' />\n {dateRange.data &&\n TvUtils.getFormattedDateRange(\n toLocalTime(dateRange.data.startDate, region.data.timeZone),\n toLocalTime(dateRange.data.endDate, region.data.timeZone)\n )\n }\n </p>\n </div>\n\n <h2 className='h5'><Text namespace={namespace} phrase='subTitle' /></h2>\n <p className='mb-2'><Text namespace={namespace} phrase='description' /></p>\n\n <div className='mb-2'>\n <p className='d-inline'><Text namespace={namespace} phrase='missedProgram' /></p>\n <AppLink\n appLink={{ application: AppChannels.EXCHANGE, action: Actions.Exchange.INDEX }}\n className='text-info'\n onClick={props.closePopup}\n >\n <span><Text namespace={namespace} phrase='exchangeArchive' /></span>\n </AppLink>.\n </div>\n <p className='mb-3'><Text namespace={namespace} phrase='emailContent' /></p>\n\n <PopupButtons>\n <PopupButtons.Cancel\n text={getPhrase('close')}\n onClick={props.closePopup}\n variant='link'\n />\n </PopupButtons>\n </Popup>\n );\n}\n"],"names":["namespace","getPhrase","LanguageService","TvBroadcastContentView","props","region","Flight.useBasicFetch","TvRequests","dateRange","jsxs","Popup","jsx","styles","Text","TvUtils","toLocalTime","AppLink","AppChannels","Actions","PopupButtons"],"mappings":"oOAqBMA,EAAY,sBACZC,EAAYC,EAAgB,iBAAiBF,CAAS,EAMrD,SAASG,EAAuBC,EAAoC,CACzE,MAAMC,EAASC,EAA+BC,EAAW,OAAOH,EAAM,MAAM,CAAC,EACvEI,EAAYF,EAAkCC,EAAW,UAAUH,EAAM,MAAM,CAAC,EAEtF,OACEK,EAAAA,KAACC,EAAA,CACC,MAAOT,EAAU,OAAO,EACxB,WAAYG,EAAM,WAElB,SAAA,CAAAO,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGC,EAAO,SAAS,0BACjC,SAAAH,EAAAA,KAAC,IAAA,CAAE,UAAU,iCACX,SAAA,CAAAE,EAAAA,IAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,mBAAA,CAAoB,EACtDQ,EAAU,MACTM,EAAQ,sBACNC,EAAYP,EAAU,KAAK,UAAWH,EAAO,KAAK,QAAQ,EAC1DU,EAAYP,EAAU,KAAK,QAASH,EAAO,KAAK,QAAQ,CAAA,CAC1D,CAAA,CAEJ,CAAA,CACF,EAEAM,EAAAA,IAAC,MAAG,UAAU,KAAK,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,UAAA,CAAW,CAAA,CAAE,EACnEW,EAAAA,IAAC,KAAE,UAAU,OAAO,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,aAAA,CAAc,CAAA,CAAE,EAEvES,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAE,EAAAA,IAAC,IAAA,CAAE,UAAU,WAAW,SAAAA,EAAAA,IAACE,GAAK,UAAAb,EAAsB,OAAO,gBAAgB,CAAA,CAAE,EAC7EW,EAAAA,IAACK,EAAA,CACC,QAAS,CAAE,YAAaC,EAAY,SAAU,OAAQC,EAAQ,SAAS,KAAA,EACvE,UAAU,YACV,QAASd,EAAM,WAEf,eAAC,OAAA,CAAK,SAAAO,EAAAA,IAACE,GAAK,UAAAb,EAAsB,OAAO,kBAAkB,CAAA,CAAE,CAAA,CAAA,EACrD,GAAA,EACZ,EACAW,EAAAA,IAAC,KAAE,UAAU,OAAO,eAACE,EAAA,CAAK,UAAAb,EAAsB,OAAO,cAAA,CAAe,CAAA,CAAE,QAEvEmB,EAAA,CACC,SAAAR,EAAAA,IAACQ,EAAa,OAAb,CACC,KAAMlB,EAAU,OAAO,EACvB,QAASG,EAAM,WACf,QAAQ,MAAA,CAAA,CACV,CACF,CAAA,CAAA,CAAA,CAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{bL as g,L as t,q as o,aT as a,bM as c,bN as f}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{bL as g,L as t,q as o,aT as a,bM as c,bN as f}from"./app-DIXL6Xww.js";const i="shared.privateResourceError";class u extends g{constructor(){super(t.getPhrase(i,"title"))}get name(){return"PrivateResourceError"}get heading(){return t.getPhrase(i,"heading")}get description(){return t.getPhrase(i,"description")}}const d="shared.regionLockedResourceError";class p extends g{constructor(){super(t.getPhrase(d,"title"))}get name(){return"RegionLockedResourceError"}get heading(){return t.getPhrase(d,"heading")}get description(){return t.getPhrase(d,"description")}}const E={notFound:f,forbidden:{rating:u,yearLevel:u,region:p,privacy:u},badRequest:c,internalServerError:c};function b(e,h={},n={}){if(!e)return;let r;typeof e=="number"?r=e:r=e.status;const s={...E,...h};if(r&&o.isStatusCodeError(r)){if(r===a.InternalServer){n.internalServerError||o.throw(new c);return}if(r===a.NotFound){n.notFound||o.throw(new s.notFound);return}if(r===a.Forbidden){n.forbidden||o.throw(new s.forbidden.privacy);return}n.badRequest||o.throw(new s.badRequest)}}export{b as h};
|
|
2
|
+
//# sourceMappingURL=NgXKdsdO.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"NgXKdsdO.chunk.js","sources":["../../../../libs/shared/src/errors/general/private-resource/PrivateResourceError.ts","../../../../libs/shared/src/errors/general/region-locked-resource/RegionLockedResourceError.ts","../../../../libs/shared/src/errors/handlers/HttpErrorHandlers.ts"],"sourcesContent":["import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.privateResourceError';\n\nexport class PrivateResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'PrivateResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.regionLockedResourceError';\n\nexport class RegionLockedResourceError extends ErrorPageError {\n constructor() {\n super(LanguageService.getPhrase(namespace, 'title'));\n }\n\n // @ts-ignore\n public get name(): string {\n return 'RegionLockedResourceError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}"],"names":["namespace","PrivateResourceError","ErrorPageError","LanguageService","RegionLockedResourceError","defaultErrors","NotFoundError","UnspecifiedError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","errorMap","Core.ErrorHelper","HttpStatus"],"mappings":"6EAIA,MAAMA,EAAY,8BAEX,MAAMC,UAA6BC,CAAe,CACvD,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,sBACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCrBA,MAAMA,EAAY,mCAEX,MAAMI,UAAkCF,CAAe,CAC5D,aAAc,CACZ,MAAMC,EAAgB,UAAUH,EAAW,OAAO,CAAC,CACrD,CAGA,IAAW,MAAe,CACxB,MAAO,2BACT,CAGA,IAAW,SAAkB,CAC3B,OAAOG,EAAgB,UAAUH,EAAW,SAAS,CACvD,CAGA,IAAW,aAAsB,CAC/B,OAAOG,EAAgB,UAAUH,EAAW,aAAa,CAC3D,CACF,CCEA,MAAMK,EAA8B,CAClC,SAAUC,EACV,UAAW,CACT,OAAQL,EACR,UAAWA,EACX,OAAQG,EACR,QAASH,CAAA,EAEX,WAAYM,EACZ,oBAAqBA,CACvB,EAEO,SAASC,EACdC,EACAC,EAA+B,CAAA,EAK/BC,EAAgC,CAAA,EAC1B,CACN,GAAI,CAACF,EACH,OAEF,IAAIG,EAEA,OAAOH,GAAU,SACnBG,EAAaH,EAEbG,EAAaH,EAAK,OAGpB,MAAMI,EAAW,CACf,GAAGR,EACH,GAAGK,CAAA,EAGL,GAAKE,GAGAE,EAAiB,kBAAkBF,CAAU,EAGlD,IAAIA,IAAeG,EAAW,eAAgB,CACvCJ,EAAU,qBACbG,EAAiB,MAAM,IAAIP,CAAkB,EAC/C,MACF,CAEA,GAAIK,IAAeG,EAAW,SAAU,CACjCJ,EAAU,UACbG,EAAiB,MAAM,IAAID,EAAS,QAAU,EAChD,MACF,CAEA,GAAID,IAAeG,EAAW,UAAW,CAKlCJ,EAAU,WACbG,EAAiB,MAAM,IAAID,EAAS,UAAU,OAAS,EACzD,MACF,CAEKF,EAAU,YACbG,EAAiB,MAAM,IAAID,EAAS,UAAY,EACpD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as u,d as w,a$ as $,b0 as E,j as n,f as M,F as _,b1 as k,N as D,G as H,Q as y,at as P,ax as N,a0 as h}from"./app-
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{r as u,d as w,a$ as $,b0 as E,j as n,f as M,F as _,b1 as k,N as D,G as H,Q as y,at as P,ax as N,a0 as h}from"./app-DIXL6Xww.js";import{u as X}from"./Da25i9yA.chunk.js";import{a as T}from"./DcxTi_y6.chunk.js";import{C as z}from"./rOIj7KLN.chunk.js";import{M as l}from"./_sYSSSUN.chunk.js";const j=u.forwardRef(({bsPrefix:e,className:s,as:a="div",...i},o)=>{const m=w(e,"row"),c=$(),g=E(),x=`${m}-cols`,C=[];return c.forEach(t=>{const f=i[t];delete i[t];let r;f!=null&&typeof f=="object"?{cols:r}=f:r=f;const d=t!==g?`-${t}`:"";r!=null&&C.push(`${x}${d}-${r}`)}),n.jsx(a,{ref:o,...i,className:M(s,m,...C)})});j.displayName="Row";const L=400;function B(e){const s=()=>{if(!e.isFetching){if(e.scrollContainer){const{scrollContainer:a}=e,i=a.getBoundingClientRect().height+a.scrollTop,o=a.scrollHeight-L;if(i<o)return}else{const a=window.innerHeight+document.documentElement.scrollTop,i=document.documentElement.scrollHeight-L;if(a<i)return}e.fetchNextPage()}};u.useEffect(()=>{const a=_.throttle(s,200),i=e.scrollContainer||window;return e.hasMore&&i.addEventListener("scroll",a),()=>i.removeEventListener("scroll",a)},[e.hasMore,e.fetchNextPage,e.scrollContainer])}function ee(e,s,a,i,o,m){const[c,g]=u.useState(0),x=s;function C(r){if(!e)return null;const d=e(r);return d?d.key:null}const t=X(C,i,o);function f(){if(!(!s||!e||!t))return g(r=>r+1),x(t.nextCursor)}return B({fetchNextPage:f,hasMore:!!(t!=null&&t.nextCursor),isFetching:t==null?void 0:t.isFetching,scrollContainer:m}),u.useEffect(()=>{t&&t.shouldInitialFetch&&s&&(x(),g(r=>r+1))},[t==null?void 0:t.shouldInitialFetch,s]),u.useEffect(()=>{var d,v;if(!(t!=null&&t.statusCode)||!_.isFunction(a))return;const r=+((v=(d=t.statusCode)==null?void 0:d.toString())==null?void 0:v.substr(0,1));r!==k.ClientError&&r!==k.ServerError||a(c,t.statusCode)},[t==null?void 0:t.statusCode]),{items:t==null?void 0:t.items,hasMore:!!(t!=null&&t.nextCursor),nextCursor:t==null?void 0:t.nextCursor,isFetching:t==null?void 0:t.isFetching,totalItems:t==null?void 0:t.totalItems,hasFirstPageCompleted:t==null?void 0:t.hasFirstPageCompleted}}const I="_container_1kfhe_1",V="_spinner_1kfhe_4",F={container:I,spinner:V};G.defaultProps={fetchOnScroll:!1};function G(e){const[s,a]=T();return u.useEffect(()=>{var i;e.fetchOnScroll&&(!a||e.isFetching||(i=e.fetchNext)==null||i.call(e,e.nextCursor))},[a,e.isFetching]),n.jsx("div",{className:`p-3 text-center ${F.container}`,children:e.isFetching?n.jsx(D,{as:"span",animation:"border",role:"status",className:F.spinner}):n.jsx("div",{ref:s,children:n.jsx(H,{svg:z,className:"svg-container cursor-pointer",size:y.Large,onClick:()=>{var i;return(i=e.fetchNext)==null?void 0:i.call(e,e.nextCursor)}})})})}const S={getThumbnailColumns(){return{xs:12,sm:5,lg:3}},getDetailsColumns(){return{xs:12,sm:7,lg:9}},getSize(e,s){return e.sm?"sm":s||"md"},getThumbnailColSize(e){return e?10:12}},R="_partialName_157xw_4",A="_partialDescription_157xw_8",O="_partialThumbnail_157xw_12",Q="_partialDragHandle_157xw_15",b={partialName:R,partialDescription:A,partialThumbnail:O,partialDragHandle:Q};K.defaultProps={numVideos:15};function K(e){return n.jsx(n.Fragment,{children:Array(e.numVideos).fill(null).map((s,a)=>n.jsxs("div",{className:"d-flex",children:[e.allowBulkActions&&n.jsx("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.jsx(J,{...e})]},a))})}function J(e){const s=P(),i=S.getSize(s,"md")==="sm",o=e.withReordering&&!s.xs;return n.jsxs(j,{className:`${i?"":"py-2"} flex-grow-1`,children:[n.jsx(N,{...S.getThumbnailColumns(),className:`flex-column align-items-flex-start ${i?"pb-2 pe-1":"mb-1 pe-3 pe-md-2"}`,children:n.jsxs(j,{children:[!!o&&n.jsx("div",{className:"d-flex align-items-center justify-content-center col-2",children:n.jsx("div",{className:`partial-loading-background ${b.partialDragHandle}`})}),n.jsx(N,{xs:S.getThumbnailColSize(o),children:n.jsx("div",{className:`partial-loading-background ${i?"rounded":"rounded-3"} ${b.partialThumbnail}`})})]})}),n.jsxs(N,{...S.getDetailsColumns(),className:i?"pb-2":"px-2",children:[n.jsx("div",{className:`partial-loading-background mb-1 ${b.partialName}`}),n.jsx("div",{className:`partial-loading-background ${b.partialDescription}`})]})]})}U.defaultProps={checked:!1,label:"",className:""};function U(e){const{isLabelEllipsis:s}=e,a=u.useRef(null);return u.useEffect(()=>{if(a.current){if(e.checked){a.current.indeterminate&&(a.current.indeterminate=!1);return}if(e.indeterminate&&!a.current.indeterminate){a.current.indeterminate=!0;return}!e.indeterminate&&a.current.indeterminate&&(a.current.indeterminate=!1)}},[a.current,e.indeterminate,e.checked]),n.jsxs("div",{className:`form-check pe-2 ${e.className}`,children:[n.jsx("input",{ref:a,type:"checkbox",className:`${e.inputClassName} form-check-input`,id:e.id,name:e.name,checked:e.checked,onChange:e.onChange,disabled:e.disabled,"aria-checked":e.checked,"aria-label":e.ariaLabel}),e.label&&n.jsx("label",{className:"form-check-label cursor-pointer align-top",htmlFor:e.id,children:n.jsx("span",{className:`${s?"clamp-1":""}`,children:e.label})})]})}function te(e){return n.jsx("svg",{...e,children:n.jsx("path",{fill:"currentColor",d:"M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024"})})}function ae(){const e=h(l.XS),s=h(l.SM),a=h(l.MD),i=h(l.LG),o=h(l.XL),m=h(l.XXL);let c=l.LG;return e&&(c=l.XS),s&&(c=l.SM),a&&(c=l.MD),i&&(c=l.LG),o&&(c=l.XL),m&&(c=l.XXL),c}export{U as C,te as G,G as I,K as P,j as R,S as V,ae as a,ee as u};
|
|
2
|
+
//# sourceMappingURL=NuQ4YL4o.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CnvPx00U.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts","../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/components/video-list/VideoListHelper.tsx","../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx","../../../../libs/shared/src/images/svg/objects/GraduationCapSvg.tsx","../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import * as React from 'react';\n\ninterface CheckboxProps {\n id: string;\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n label?: string;\n ariaLabel?: string;\n name?: string;\n className?: string;\n inputClassName?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n isLabelEllipsis?: boolean;\n}\n\nCheckbox.defaultProps = {\n checked: false,\n label: '',\n className: ''\n};\n\n/**\n * Use this checkbox outside of Formik contexts\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n const { isLabelEllipsis } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n if (props.checked) {\n if (ref.current.indeterminate)\n ref.current.indeterminate = false;\n\n return;\n }\n\n if (props.indeterminate && !ref.current.indeterminate) {\n ref.current.indeterminate = true;\n return;\n }\n\n if (!props.indeterminate && ref.current.indeterminate)\n ref.current.indeterminate = false;\n }, [ ref.current, props.indeterminate, props.checked ]);\n\n return (\n <div className={`form-check pe-2 ${props.className}`}>\n <input\n ref={ref}\n type='checkbox'\n className={`${props.inputClassName} form-check-input`}\n id={props.id}\n name={props.name}\n checked={props.checked}\n onChange={props.onChange}\n disabled={props.disabled}\n aria-checked={props.checked}\n aria-label={props.ariaLabel}\n />\n {props.label && (\n <label className='form-check-label cursor-pointer align-top' htmlFor={props.id}>\n <span className={`${isLabelEllipsis ? 'clamp-1' : ''}`}>{props.label}</span>\n </label>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function GraduationCapSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024'\n />\n </svg>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}"],"names":["Row","React.forwardRef","bsPrefix","className","Component","props","ref","decoratedBsPrefix","useBootstrapPrefix","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","_jsx","classNames","SCROLL_TOLERANCE","useInfiniteScroll","options","handleScroll","scrollContainer","currentScrollHeight","totalHeight","useEffect","onScroll","FunctionHelper","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","pagesFetched","setPagesFetched","useState","fetchNextFn","getKey","cursor","request","response","useSelectAllPages","fetchNextPage","currentVal","httpStatusClass","_b","_a","HttpStatusClass","InfiniteScrollFooter","inView","useInView","React.useEffect","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize","VideoListHelper","size","hasDragHandle","PartialVideoList","Fragment","_","i","jsxs","PartialVideoItem","useBreakpoints","isSmall","withDragHandle","Col","Checkbox","isLabelEllipsis","React.useRef","GraduationCapSvg","useGetMediaQueryString","isXS","useMediaQuery","MediaQueryStrings","isSM","isMD","isLG","isXL","isXXL","currentString"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"NuQ4YL4o.chunk.js","sources":["../../../../../node_modules/react-bootstrap/esm/Row.js","../../../../libs/shared/src/hooks/UseInfiniteScroll.ts","../../../../libs/shared/src/hooks/UseInfiniteList.ts","../../../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","../../../../libs/shared/src/components/video-list/VideoListHelper.tsx","../../../../libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","../../../../libs/shared/src/components/forms/form-checkbox/Checkbox.tsx","../../../../libs/shared/src/images/svg/objects/GraduationCapSvg.tsx","../../../../libs/shared/src/hooks/UseGetMediaQueryString.ts"],"sourcesContent":["\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import { useEffect } from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst SCROLL_TOLERANCE = 400; // value in px\n\ninterface UseInfiniteScrollOptions {\n fetchNextPage: () => void;\n hasMore: boolean;\n isFetching: boolean;\n scrollContainer?: HTMLElement;\n}\n\nexport function useInfiniteScroll(options: UseInfiniteScrollOptions): void {\n const handleScroll = (): void => {\n if (options.isFetching)\n return;\n\n if (!options.scrollContainer) {\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\n \n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n } else {\n const { scrollContainer } = options;\n const currentScrollHeight = scrollContainer.getBoundingClientRect().height + scrollContainer.scrollTop;\n \n const totalHeight = scrollContainer.scrollHeight - SCROLL_TOLERANCE;\n \n if (currentScrollHeight < totalHeight)\n return;\n }\n\n options.fetchNextPage();\n };\n\n useEffect(() => {\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\n\n const scrollContainer = options.scrollContainer || window;\n\n if (options.hasMore)\n scrollContainer.addEventListener('scroll', onScroll);\n\n return () => scrollContainer.removeEventListener('scroll', onScroll);\n }, [ options.hasMore, options.fetchNextPage, options.scrollContainer ]);\n}","import { useEffect, useState } from 'react';\n\nimport { HttpStatus, HttpStatusClass } from 'libs/common/backbone/enums/HttpStatus';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { BaseObject, BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { useInfiniteScroll } from './UseInfiniteScroll';\nimport { useSelectAllPages } from './UseSelectAllPages';\n\nexport interface UseInfiniteListResult<T extends BaseObject> {\n items: T[];\n hasMore: boolean;\n isFetching: boolean;\n nextCursor: string;\n totalItems?: number;\n hasFirstPageCompleted: boolean;\n}\n\n/**\n * Hook to extract an infinite list from the application state,\n * save it locally in state and only update when new data\n * is fetched.\n * \n * @param getRequest - callback function to get the request for each page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n * \n * @param fetchNext - callback function to fetch a page.\n * Can be false if the request requires data that hasn't yet been fetched - e.g. user id.\n */\nexport function useInfiniteList<TObject = BaseObject, TResponse = BasePaginatedCollection<TObject>>(\n getRequest: ((cursor?: string) => Flight.Request) | false,\n fetchNext: ((cursor?: string) => void) | false,\n onError?: (pageNumber: number, statusCode: HttpStatus) => void,\n getItems?: (responseData: TResponse) => TObject[],\n getCursor?: (responseData: TResponse) => string,\n scrollContainer?: HTMLElement\n): UseInfiniteListResult<TObject> {\n const [ pagesFetched, setPagesFetched ] = useState(0);\n\n const fetchNextFn = fetchNext as (cursor?: string) => void;\n\n function getKey(cursor?: string): string {\n if (!getRequest)\n return null;\n\n const request = getRequest(cursor);\n\n if (!request)\n return null;\n\n return request.key;\n }\n\n const response = useSelectAllPages<TObject, TResponse>(\n getKey,\n getItems,\n getCursor\n );\n\n function fetchNextPage(): void {\n if (!fetchNext || !getRequest || !response)\n return;\n\n setPagesFetched(currentVal => currentVal + 1);\n return fetchNextFn(response.nextCursor);\n }\n\n useInfiniteScroll({\n fetchNextPage,\n hasMore: !!response?.nextCursor,\n isFetching: response?.isFetching,\n scrollContainer\n });\n\n useEffect(() => {\n if (!response)\n return;\n\n if (response.shouldInitialFetch && fetchNext) {\n fetchNextFn();\n setPagesFetched(currentVal => currentVal + 1);\n }\n }, [ response?.shouldInitialFetch, fetchNext ]);\n\n useEffect(() => {\n if (!response?.statusCode || !FunctionHelper.isFunction(onError))\n return;\n\n const httpStatusClass: HttpStatusClass = +(response.statusCode?.toString()?.substr(0, 1));\n\n if (httpStatusClass !== HttpStatusClass.ClientError && httpStatusClass !== HttpStatusClass.ServerError)\n return;\n\n onError(pagesFetched, response.statusCode);\n }, [response?.statusCode]);\n\n return {\n items: response?.items,\n hasMore: !!response?.nextCursor,\n nextCursor: response?.nextCursor,\n isFetching: response?.isFetching,\n totalItems: response?.totalItems,\n hasFirstPageCompleted: response?.hasFirstPageCompleted\n };\n}","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\nimport { useInView } from 'react-intersection-observer';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ChevronDownSvg } from 'libs/shared/images/svg/arrows/ChevronDownSvg';\n\nimport styles from './infinite-scroll-footer.module.scss';\n\ninterface InfiniteScrollFooterProps {\n isFetching: boolean;\n fetchNext?: (nextCursor: string) => void;\n nextCursor?: string;\n fetchOnScroll?: boolean;\n}\n\nInfiniteScrollFooter.defaultProps = {\n fetchOnScroll: false\n};\n\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\n const [ ref, inView ] = useInView();\n\n React.useEffect(() => {\n if (!props.fetchOnScroll)\n return;\n\n if (!inView || props.isFetching)\n return;\n\n props.fetchNext?.(props.nextCursor);\n }, [ inView, props.isFetching ]);\n\n return (\n <div className={`p-3 text-center ${styles.container}`}>\n {props.isFetching\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\n : (\n <div ref={ref}>\n <SvgContainer\n svg={ChevronDownSvg}\n className='svg-container cursor-pointer'\n size={SvgContainerSize.Large}\n onClick={() => props.fetchNext?.(props.nextCursor)}\n />\n </div>\n )\n }\n </div>\n );\n}","import { ColProps } from 'react-bootstrap';\n\nimport { VideoItemSize } from 'libs/shared/components/video-list/BaseVideoItemProps';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nexport const VideoListHelper = {\n getThumbnailColumns(): ColProps {\n return {\n xs: 12,\n sm: 5,\n lg: 3\n };\n },\n\n getDetailsColumns(): ColProps {\n return {\n xs: 12,\n sm: 7,\n lg: 9\n };\n },\n\n getSize(breakpoints: Breakpoints, size: VideoItemSize): VideoItemSize {\n if (breakpoints.sm)\n return 'sm';\n \n return size || 'md';\n },\n\n getThumbnailColSize(hasDragHandle: boolean): number {\n return hasDragHandle ? 10 : 12;\n }\n};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.module.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","import * as React from 'react';\n\ninterface CheckboxProps {\n id: string;\n checked: boolean;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n label?: string;\n ariaLabel?: string;\n name?: string;\n className?: string;\n inputClassName?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n isLabelEllipsis?: boolean;\n}\n\nCheckbox.defaultProps = {\n checked: false,\n label: '',\n className: ''\n};\n\n/**\n * Use this checkbox outside of Formik contexts\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n const { isLabelEllipsis } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (!ref.current)\n return;\n\n if (props.checked) {\n if (ref.current.indeterminate)\n ref.current.indeterminate = false;\n\n return;\n }\n\n if (props.indeterminate && !ref.current.indeterminate) {\n ref.current.indeterminate = true;\n return;\n }\n\n if (!props.indeterminate && ref.current.indeterminate)\n ref.current.indeterminate = false;\n }, [ ref.current, props.indeterminate, props.checked ]);\n\n return (\n <div className={`form-check pe-2 ${props.className}`}>\n <input\n ref={ref}\n type='checkbox'\n className={`${props.inputClassName} form-check-input`}\n id={props.id}\n name={props.name}\n checked={props.checked}\n onChange={props.onChange}\n disabled={props.disabled}\n aria-checked={props.checked}\n aria-label={props.ariaLabel}\n />\n {props.label && (\n <label className='form-check-label cursor-pointer align-top' htmlFor={props.id}>\n <span className={`${isLabelEllipsis ? 'clamp-1' : ''}`}>{props.label}</span>\n </label>\n )}\n </div>\n );\n}\n","import React from 'react';\n\nexport function GraduationCapSvg(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg {...props}>\n <path\n fill='currentColor'\n d='M16.863 20c-.662 0-1.21-.567-1.21-1.252s.548-1.252 1.21-1.252c.663 0 1.21.567 1.21 1.252S17.527 20 16.864 20m0-1.441a.183.183 0 0 0-.182.189c0 .118.068.189.182.189.115 0 .183-.071.183-.19a.183.183 0 0 0-.183-.188m0-.118a.516.516 0 0 1-.502-.52v-6.19L11.75 9.158a.53.53 0 0 1-.205-.71c.137-.26.456-.354.685-.212l4.886 2.717a.57.57 0 0 1 .274.473v6.496a.52.52 0 0 1-.526.52m-4.908-4.205a.8.8 0 0 1-.229-.048L2.296 9.51A.55.55 0 0 1 2 9.014c0-.212.114-.401.297-.472l9.52-4.489a.47.47 0 0 1 .434 0l9.452 4.489a.55.55 0 0 1 .297.472.49.49 0 0 1-.297.473l-9.52 4.701a.8.8 0 0 1-.228.048m-8.22-5.198 8.22 4.087 8.288-4.087-8.22-3.898zm8.151 8.41c-4.749 0-6.644-2.905-6.712-3.047a.7.7 0 0 1-.092-.284V10.81c0-.283.229-.52.503-.52s.502.237.502.52v3.142c.388.496 2.077 2.434 5.776 2.434 3.653 0 5.548-1.938 6.005-2.457v-2.93c0-.284.228-.52.502-.52s.502.236.502.52v3.118a.6.6 0 0 1-.091.307c-.046.142-2.192 3.024-6.895 3.024'\n />\n </svg>\n );\n}\n","import { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\n\nimport { useMediaQuery } from './UseMediaQuery';\n\n/**\n * @deprecated Please use useBreakpoints() instead\n */\nexport function useGetMediaQueryString(): MediaQueryStrings {\n const isXS = useMediaQuery(MediaQueryStrings.XS);\n const isSM = useMediaQuery(MediaQueryStrings.SM);\n const isMD = useMediaQuery(MediaQueryStrings.MD);\n const isLG = useMediaQuery(MediaQueryStrings.LG);\n const isXL = useMediaQuery(MediaQueryStrings.XL);\n const isXXL = useMediaQuery(MediaQueryStrings.XXL);\n\n let currentString = MediaQueryStrings.LG; // default\n if (isXS) currentString = MediaQueryStrings.XS;\n if (isSM) currentString = MediaQueryStrings.SM;\n if (isMD) currentString = MediaQueryStrings.MD;\n if (isLG) currentString = MediaQueryStrings.LG;\n if (isXL) currentString = MediaQueryStrings.XL;\n if (isXXL) currentString = MediaQueryStrings.XXL;\n\n return currentString;\n}"],"names":["Row","React.forwardRef","bsPrefix","className","Component","props","ref","decoratedBsPrefix","useBootstrapPrefix","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","_jsx","classNames","SCROLL_TOLERANCE","useInfiniteScroll","options","handleScroll","scrollContainer","currentScrollHeight","totalHeight","useEffect","onScroll","FunctionHelper","useInfiniteList","getRequest","fetchNext","onError","getItems","getCursor","pagesFetched","setPagesFetched","useState","fetchNextFn","getKey","cursor","request","response","useSelectAllPages","fetchNextPage","currentVal","httpStatusClass","_b","_a","HttpStatusClass","InfiniteScrollFooter","inView","useInView","React.useEffect","jsx","styles","Spinner","SvgContainer","ChevronDownSvg","SvgContainerSize","VideoListHelper","size","hasDragHandle","PartialVideoList","Fragment","_","i","jsxs","PartialVideoItem","useBreakpoints","isSmall","withDragHandle","Col","Checkbox","isLabelEllipsis","React.useRef","GraduationCapSvg","useGetMediaQueryString","isXS","useMediaQuery","MediaQueryStrings","isSM","isMD","isLG","isXL","isXXL","currentString"],"mappings":"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","x_google_ignoreList":[0]}
|