@clickview/lite 0.67.0-rc.5 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +2 -2
- package/dist/css/{6822-lite-c32c06fff9.chunk.css → 1319-lite-f181681870.chunk.css} +1 -0
- package/dist/css/{1265-lite-cf5a64d933.chunk.css → 2205-lite-daccc93768.chunk.css} +1 -0
- package/dist/css/3407-lite-2b6d2c3596.chunk.css +1 -0
- package/dist/css/{1928-lite-7535155363.chunk.css → 3657-lite-30c63783c6.chunk.css} +1 -0
- package/dist/css/4205-lite-2b6d2c3596.chunk.css +1 -0
- package/dist/css/{6264-lite-6c16dff355.chunk.css → 4586-lite-2b4142796a.chunk.css} +1 -0
- package/dist/css/{3192-lite-dca2cbecd4.chunk.css → 5259-lite-c43d17524f.chunk.css} +1 -0
- package/dist/css/{2613-lite-2b363e89ec.chunk.css → 897-lite-49388db199.chunk.css} +1 -0
- package/dist/css/{lite-app-d8fa7e0f98.css → lite-app-d2e53316e7.css} +5 -6
- package/dist/scripts/{6822-e059388f0e-lite.chunk.js → 1319-44debe2be5-lite.chunk.js} +2 -2
- package/dist/scripts/{6822-e059388f0e-lite.chunk.js.map → 1319-44debe2be5-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1265-1c11ef03e1-lite.chunk.js → 2205-7596edf3ff-lite.chunk.js} +3 -3
- package/dist/scripts/2205-7596edf3ff-lite.chunk.js.map +1 -0
- package/dist/scripts/{2564-b38ceabfc3-lite.chunk.js → 2564-7758fc9a23-lite.chunk.js} +2 -2
- package/dist/scripts/{2564-b38ceabfc3-lite.chunk.js.map → 2564-7758fc9a23-lite.chunk.js.map} +1 -1
- package/dist/scripts/3407-d7bb190086-lite.chunk.js +2 -0
- package/dist/scripts/3407-d7bb190086-lite.chunk.js.map +1 -0
- package/dist/scripts/{1928-2bdfd44f43-lite.chunk.js → 3657-9ab3ea0e92-lite.chunk.js} +2 -2
- package/dist/scripts/{1928-2bdfd44f43-lite.chunk.js.map → 3657-9ab3ea0e92-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3978-e86c2d54be-lite.chunk.js → 3978-ef3884cfe5-lite.chunk.js} +2 -2
- package/dist/scripts/{3978-e86c2d54be-lite.chunk.js.map → 3978-ef3884cfe5-lite.chunk.js.map} +1 -1
- package/dist/scripts/4205-b37ae8ccb9-lite.chunk.js +3 -0
- package/dist/scripts/4205-b37ae8ccb9-lite.chunk.js.map +1 -0
- package/dist/scripts/{6264-4b52686f8d-lite.chunk.js → 4586-f9ab450399-lite.chunk.js} +2 -2
- package/dist/scripts/{6264-4b52686f8d-lite.chunk.js.map → 4586-f9ab450399-lite.chunk.js.map} +1 -1
- package/dist/scripts/{3192-5fafe73839-lite.chunk.js → 5259-c1be5e460a-lite.chunk.js} +2 -2
- package/dist/scripts/{3192-5fafe73839-lite.chunk.js.map → 5259-c1be5e460a-lite.chunk.js.map} +1 -1
- package/dist/scripts/{5722-2704be9eac-lite.chunk.js → 5722-ffeb02c053-lite.chunk.js} +2 -2
- package/dist/scripts/5722-ffeb02c053-lite.chunk.js.map +1 -0
- package/dist/scripts/6450-8f22c3d427-lite.chunk.js +2 -0
- package/dist/scripts/6450-8f22c3d427-lite.chunk.js.map +1 -0
- package/dist/scripts/6919-afa7705c12-lite.chunk.js +2 -0
- package/dist/scripts/{2121-aec96064d1-lite.chunk.js.map → 6919-afa7705c12-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7318-20bc42718d-lite.chunk.js → 7318-bf6bb0e9f7-lite.chunk.js} +2 -2
- package/dist/scripts/{7318-20bc42718d-lite.chunk.js.map → 7318-bf6bb0e9f7-lite.chunk.js.map} +1 -1
- package/dist/scripts/7426-c64273c529-lite.chunk.js +3 -0
- package/dist/scripts/7426-c64273c529-lite.chunk.js.map +1 -0
- package/dist/scripts/897-10a911aed5-lite.chunk.js +2 -0
- package/dist/scripts/897-10a911aed5-lite.chunk.js.map +1 -0
- package/dist/scripts/9630-871c10832c-lite.chunk.js +3 -0
- package/dist/scripts/9630-871c10832c-lite.chunk.js.LICENSE.txt +1 -0
- package/dist/scripts/9630-871c10832c-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-60e5e2f3ee.min.js → bundle-3fed522614.min.js} +3 -3
- package/dist/scripts/{bundle-60e5e2f3ee.min.js.map → bundle-3fed522614.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1265-1c11ef03e1-lite.chunk.js.map +0 -1
- package/dist/scripts/1477-fa0f6cc194-lite.chunk.js +0 -2
- package/dist/scripts/1477-fa0f6cc194-lite.chunk.js.map +0 -1
- package/dist/scripts/2121-aec96064d1-lite.chunk.js +0 -2
- package/dist/scripts/2613-3d81a10b0b-lite.chunk.js +0 -2
- package/dist/scripts/2613-3d81a10b0b-lite.chunk.js.map +0 -1
- package/dist/scripts/4005-d961c9bbff-lite.chunk.js +0 -3
- package/dist/scripts/4005-d961c9bbff-lite.chunk.js.map +0 -1
- package/dist/scripts/5722-2704be9eac-lite.chunk.js.map +0 -1
- package/dist/scripts/7426-f704b4187d-lite.chunk.js +0 -3
- package/dist/scripts/7426-f704b4187d-lite.chunk.js.map +0 -1
- package/dist/scripts/9630-94751b1994-lite.chunk.js +0 -2
- package/dist/scripts/9630-94751b1994-lite.chunk.js.map +0 -1
- /package/dist/scripts/{1265-1c11ef03e1-lite.chunk.js.LICENSE.txt → 2205-7596edf3ff-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2564-b38ceabfc3-lite.chunk.js.LICENSE.txt → 2564-7758fc9a23-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4005-d961c9bbff-lite.chunk.js.LICENSE.txt → 4205-b37ae8ccb9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7426-f704b4187d-lite.chunk.js.LICENSE.txt → 7426-c64273c529-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-60e5e2f3ee.min.js.LICENSE.txt → bundle-3fed522614.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[897],{75097:(e,t,r)=>{r.d(t,{U:()=>o});var n=r(32735),a=r(95245);function o(e){var t=e.count,r=void 0===t?6:t;return n.createElement("div",{className:"d-flex"},n.createElement("div",{className:"d-flex ps-1"},Array(r).fill(null).map((function(e,t){return n.createElement("div",{key:t,className:"".concat(a.Z.partialButton," partial-loading-background mx-1")})}))))}},69674:(e,t,r)=>{r.d(t,{i:()=>w});var n=r(32735),a=r(42648),o=r(35509),l=r(91967),c=r(36848),i=r(17808),s=r(1287),u=r(83914),d=r(16930),m={opacity:"0.8",cursor:"grabbing"},f=r(35223);function p(e){return function(e){if(Array.isArray(e))return g(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||v(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){if(e){if("string"==typeof e)return g(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,t):void 0}}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function b(e){var t,r,n,a;return{canScrollLeft:(null===(t=e.current)||void 0===t?void 0:t.scrollLeft)>0,canScrollRight:(null===(r=e.current)||void 0===r?void 0:r.scrollLeft)+1<(null===(n=e.current)||void 0===n?void 0:n.scrollWidth)-(null===(a=e.current)||void 0===a?void 0:a.clientWidth)}}const y={sortIndicator:"gFhu0",scrollContainer:"sWUp9",scrollbarTrack:"Vn2qM"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var E=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r};function S(e){var t,r;return e.column.canSort?n.createElement("span",{className:"".concat(y.sortIndicator,"\n ").concat(e.column.isSorted?"":"text-secondary","\n ").concat(null!==(r=null===(t=e.theme)||void 0===t?void 0:t.sortIndicator)&&void 0!==r?r:"")},n.createElement(u.x,{svgName:e.column.isSortedDesc||!e.column.isSorted?f.vn.ArrowRight:f.vn.ArrowLeft,size:u.S.Small})):n.createElement(n.Fragment,null)}function k(e){var t,r,a,u,d,f,v,g,b={columns:e.columns,data:e.data,disableSortBy:!e.enableSort,manualSortBy:e.manualSort,autoResetHiddenColumns:e.autoResetHiddenColumns,autoResetSortBy:e.autoResetSortBy,initialState:{sortBy:e.initialSortBy||[]}};e.initialSelectedRowIds&&(b.initialState={selectedRowIds:(v=e.initialSelectedRowIds,g={},v.forEach((function(e){return g[e]=!0})),g)}),e.getRowId&&(b.getRowId=e.getRowId);var y,E=o.useTable.apply(void 0,[b].concat((y=function(e){var t=[o.useSortBy,o.useRowSelect,"flex"===e.layout?o.useFlexLayout:o.useBlockLayout];return e.allowFiltering&&(t=[].concat(p(t),[o.useFilters])),e.allowGlobalFiltering&&(t=[].concat(p(t),[o.useGlobalFilter])),t}(Object.assign({},e)),function(e){if(Array.isArray(e))return h(e)}(y)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(y)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(e,t):void 0}}(y)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))),k=E.getTableProps,w=E.getTableBodyProps,C=E.headerGroups,N=E.rows,j=E.prepareRow,x=E.toggleAllRowsSelected,A=E.setGlobalFilter,T=E.setHiddenColumns,R=E.state.sortBy;function L(){return N.map((function(t){j(t);var r=function(t){var r,n,a,o,c,i=l.q.isFunction(null===(r=e.theme)||void 0===r?void 0:r.row)?e.theme.row(t):null!==(a=null===(n=e.theme)||void 0===n?void 0:n.row)&&void 0!==a?a:"";return t.isSelected&&(null===(o=e.theme)||void 0===o?void 0:o.selectedRow)&&(i+=" ".concat(null===(c=e.theme)||void 0===c?void 0:c.selectedRow)),e.onSelectRow&&(i+=" cursor-pointer"),e.enableSortableRows&&(i+=" cursor-grab"),i}(t),a=!!e.getRowAppLink&&e.getRowAppLink(t);function o(){e.onSelectRow&&(e.allowSelectMultipleRows||x(!1),e.onSelectRow(t),t.toggleRowSelected(!0))}function i(e,l){var i=function(e,t){return"dragAttributes"in e&&"dragListeners"in e?Object.assign(Object.assign(Object.assign({},e.dragAttributes),e.dragListeners),{"aria-roledescription":"Sortable row",ref:t}):{}}(e,l);return a?n.createElement("div",{role:"row",key:t.id},n.createElement(c.F,Object.assign({},e,i,{className:r,appLink:a}),O(t))):n.createElement("div",Object.assign({},e,i,{key:t.id,role:"row",className:r,onClick:o}),O(t))}var u=t.getRowProps();return e.enableSortableRows?n.createElement(s.W,{id:t.original.id,key:t.id,childProps:u,childComponent:n.forwardRef((function(e,t){return i(e,t)}))}):i(u)}))}function O(t){return t.cells.map((function(r){var a=function(t,r){var n,a,o="";return"function"==typeof(null===(n=e.theme)||void 0===n?void 0:n.cell)&&(o=e.theme.cell(t,r)),"string"==typeof(null===(a=e.theme)||void 0===a?void 0:a.cell)&&(o=e.theme.cell),e.onSelectCell&&(o+=" cursor-pointer"),o}(t,r);return n.createElement("div",Object.assign({key:r.column.id},r.getCellProps(),{className:a,onClick:function(){e.onSelectCell&&e.onSelectCell(r)}}),r.render("Cell"))}))}return n.useEffect((function(){e.onSort&&e.onSort(R)}),[R]),n.useEffect((function(){e.globalFilter&&A(e.globalFilter)}),[e.globalFilter]),n.useEffect((function(){e.hiddenColumns&&T(e.hiddenColumns)}),[e.hiddenColumns&&e.hiddenColumns.length]),n.createElement("div",Object.assign({},k(),{className:null!==(r=null===(t=e.theme)||void 0===t?void 0:t.table)&&void 0!==r?r:""}),n.createElement("div",{className:null!==(u=null===(a=e.theme)||void 0===a?void 0:a.header)&&void 0!==u?u:""},C.map((function(t){var r,a;return n.createElement("div",Object.assign({},t.getHeaderGroupProps(),{className:null!==(a=null===(r=e.theme)||void 0===r?void 0:r.headerRow)&&void 0!==a?a:""}),t.headers.map((function(t){var r,a;return n.createElement("div",Object.assign({},t.getHeaderProps(t.getSortByToggleProps()),{className:null!==(a=null===(r=e.theme)||void 0===r?void 0:r.headerCell)&&void 0!==a?a:""}),t.render("Header",{renderSortIndicator:function(){return n.createElement(S,{column:t,theme:e.theme})}}),!t.hideSortIndicator&&n.createElement(S,{column:t,theme:e.theme}))})))}))),n.createElement("div",Object.assign({},w(),{className:null!==(f=null===(d=e.theme)||void 0===d?void 0:d.body)&&void 0!==f?f:""}),e.enableSortableRows?n.createElement(i.Q,{ids:N.map((function(e){return e.original.id})),getDragOverlay:function(t){var r,a,o=N.findIndex((function(e){return e.original.id===t})),l=N[o];return n.createElement("div",Object.assign({},e,{className:(r=e.theme,a="g-0 ",r&&(a+=r.row),a),style:m}),O(l))},onSortEnd:e.onSortingRowsEnd},L()):L()))}function w(e){var t=e.enableSlider,r=e.scrollIncrement,o=e.scrollable,c=E(e,["enableSlider","scrollIncrement","scrollable"]),i=function(){var e,t,r=n.useRef(),a=(e=n.useState(b(r)),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,c=[],i=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(e,t)||v(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[0],c=a[1],i=l.q.throttle((function(){c(b(r))}),200),s=n.useCallback((function(e){var t;r.current&&(null===(t=r.current)||void 0===t||t.removeEventListener("scroll",i)),e&&(c(b(r)),e.addEventListener("scroll",i)),r.current=e}),[]);return n.useEffect((function(){(null==r?void 0:r.current)&&c(b(r))}),[r]),{ref:s,scrollState:o,scroll:function(e){var t;null===(t=r.current)||void 0===t||t.scrollBy({left:e,top:0,behavior:"smooth"})}}}(),s=i.ref,u=i.scrollState,m=i.scroll;if(o)return n.createElement(a.$B,{renderTrackHorizontal:function(){return n.createElement("div",{className:y.scrollbarTrack})},autoHeightMax:1e4,autoHeight:!0},n.createElement(k,Object.assign({},c)));if(!t)return n.createElement(k,Object.assign({},c));function f(e){m(r*("right"===e?1:-1))}return n.createElement("div",{className:"mx-n4 overflow-x-hidden overflow-y-hidden"},n.createElement("div",{className:"px-4"},n.createElement("div",{className:"position-relative"},n.createElement(d.W,{direction:d.f.Left,onClick:function(){return f("left")},hide:!u.canScrollLeft}),n.createElement("div",{className:"".concat(y.scrollContainer," ").concat(e.scrollContainerClassName),ref:s},n.createElement(k,Object.assign({},c))),n.createElement(d.W,{direction:d.f.Right,onClick:function(){return f("right")},hide:!u.canScrollRight}))))}w.defaultProps={scrollIncrement:250,scrollable:!1,layout:"flex"}},91286:(e,t,r)=>{r.d(t,{v:()=>l});var n=r(32735),a=r(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,r){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,r)}))}),[o(l),t,r])}},299:(e,t,r)=>{r.d(t,{X:()=>l});var n=r(32735),a=r(69217),o=r(94631),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.idField,l=void 0===r?"id":r,c=t.persistNamespace,i=t.initialState?t.initialState:new Map,s=n.useRef(i),u=(0,a.N)(),d=(0,o.D)(e),m=(0,o.D)(c);function f(){s.current.clear(),u()}function p(e){return"number"==typeof e?e=e.toString():"string"!=typeof e&&(e=e[l].toString()),s.current.get(e)}function v(){return!!(null==e?void 0:e.length)&&e.every(p)}function g(e){e.forEach((function(e){s.current.set(e,!0)})),u()}return n.useEffect((function(){t.initialState||c&&m===c||(null==d?void 0:d.map((function(e){return e[l]})).join())!==(null==e?void 0:e.map((function(e){return e[l]})).join())&&f()}),[d,m,e,t.initialState]),n.useEffect((function(){var e;(null===(e=t.preselectedIds)||void 0===e?void 0:e.length)&&g(t.preselectedIds)}),[]),{onToggleBulk:function(){var t=!v();e.forEach((function(e){t?s.current.set(e[l].toString(),!0):s.current.delete(e[l].toString())})),u()},onToggleItem:function(e){var t=!s.current.get(e.toString());t?s.current.set(e.toString(),t):s.current.delete(e.toString()),u()},getSelected:function(){return Array.from(s.current.keys())},isChecked:p,bulkChecked:v(),deselectAll:function(){(null==e?void 0:e.length)&&(e.forEach((function(e){s.current.delete(e[l].toString())})),u())},hasSomeSelections:function(){return!!(null==e?void 0:e.length)&&!!e.find((function(e){return p(e)}))},setSelected:g,getSelectedCount:function(){return s.current.size},reset:f,getMap:function(){return s.current}}}},58418:(e,t,r)=>{r.r(t),r.d(t,{UserAuditLogView:()=>te});var n=r(32735),a=r(23481),o=r(57900),l=r(20354),c=r(75097),i=r(49935);const s={partialHeading:"rfiJl",partialJobCount:"h8k_u",partialCheckbox:"HkuOS",partialExportButton:"Iul7S",row:"mwigG",checkboxColumn:"Z5jLG",actionColumn:"rLxYh",usersColumn:"QZzab",dateColumn:"Wf_Jp",performedByColumn:"Ubtmj",seeMoreColumn:"XdP6u",heading:"kRMMH",action:"DvDvW",users:"goKpg",date:"ejYGb",performedBy:"NhjyL"};function u(){return n.createElement("div",{className:"d-flex striped-row rounded py-3 ".concat(s.row)},n.createElement("div",{className:"".concat(s.checkboxColumn," d-flex justify-content-center")},n.createElement("div",{className:"partial-loading-background ".concat(s.partialCheckbox," ms-0")})),n.createElement("div",{className:"".concat(s.actionColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.action)})),n.createElement("div",{className:"".concat(s.usersColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.users)})),n.createElement("div",{className:"".concat(s.dateColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.date)})),n.createElement("div",{className:"".concat(s.performedByColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.performedBy)})),n.createElement("div",{className:"".concat(s.seeMoreColumn)}," "))}function d(){return n.createElement("div",{className:"d-flex py-2 mb-1"},n.createElement("div",{className:"".concat(s.checkboxColumn)}," "),n.createElement("div",{className:"".concat(s.actionColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.heading)})),n.createElement("div",{className:"".concat(s.usersColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.heading)})),n.createElement("div",{className:"".concat(s.dateColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.heading)})),n.createElement("div",{className:"".concat(s.performedByColumn)},n.createElement("div",{className:"partial-loading-background ".concat(s.heading)})),n.createElement("div",{className:"".concat(s.seeMoreColumn)}," "))}function m(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3 mt-n1"},n.createElement(d,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null),n.createElement(u,null))))}function f(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"partial-loading-background mb-2 ".concat(s.partialHeading)}),n.createElement("div",{className:"pb-3"},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement(i.b2,null),n.createElement("div",{className:"partial-loading-background ".concat(s.partialJobCount)}))),n.createElement("div",{className:"d-flex align-items-center pb-2"},n.createElement("div",{className:"partial-loading-background ".concat(s.partialCheckbox)}),n.createElement("div",{className:"ms-4 ps-3"},n.createElement(c.U,{count:3})),n.createElement("div",{className:"ms-auto partial-loading-background ".concat(s.partialExportButton)})),n.createElement(m,null))}var p=r(89422),v=r(89965),g=r(37395),b=r(2102),y=r(83345),h=r(76881),E=r(69883),S=r(299),k=r(75795),w=r(65858),C=r(93659),N=r(23715),j="userManager.userAuditLogFilters";function x(e){var t=[N.x$.SortBy([{id:"newest",name:a.T.getPhrase(j,"newest"),default:!0},{id:"oldest",name:a.T.getPhrase(j,"oldest")}]),N.x$.BulkActionType(),N.x$.UserType()];return n.createElement(C.J,{queryParams:e.queryParams,mainFilters:t,appLink:e.appLinks.auditLog,analyticsOptions:{entity:w.py.BatchJob,location:w.LZ.UserAuditLog},hideHeading:!0,hideDivider:!0,constantIndices:[]})}var A=r(69674),T=r(110),R=r(149),L=r(36848),O=r(89725),I=r(83914),B=r(86794);const M={seeMore:"uymuO"};function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var F="userManager.userAuditLogTable",H=a.T.encloseNamespace(F),U={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"px-2 py-1",row:"striped-row rounded audit-log-row",cell:"d-flex align-items-center py-3 px-2"};function J(e){var t,r,a,o,l=(t=e.jobs.data,r=e.isChecked,t.map((function(e){var t=T.O.format(e.dateCreated,"DD/MM/YYYY, hh:mmA");return{id:e.id,checked:r(e.id),actionType:R.b.mapJobTypeToName(e.type),userType:R.b.mapDataTypeToUserType(e.dataType),date:t,performedBy:{name:e.submitterName,submittedByClickView:e.submittedByClickView}}})));return n.createElement(A.i,{columns:(a=e.appLinks.bulkActionSummary,o=e.onToggleCheckbox,[{Header:"",id:"checkboxes",accessor:function(e){return{id:e.id,checked:e.checked}},Cell:function(e){return n.createElement("div",{className:"text-center mx-auto"},n.createElement(v.X,{id:e.value.id,checked:e.value.checked,onChange:function(){return o(e.value.id)}}))},width:10},{Header:H("action"),accessor:"actionType",id:"actionType",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},t)},width:20},{Header:H("users"),accessor:"userType",id:"userType",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},function(){switch(t){case h.Y.Learner:return H("students");case h.Y.Staff:return H("staff");case h.Y.Unknown:default:return H("unknown")}}())},width:10},{Header:H("date"),accessor:"date",id:"date",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},t)},width:20},{Header:H("performedBy"),accessor:"performedBy",id:"performedBy",Cell:function(e){return n.createElement("div",{className:"w-100 d-flex align-items-center"},e.value.submittedByClickView&&n.createElement(B.b,{className:"me-1",size:I.S.Small},n.createElement(O.F,null)),e.value.name)},width:20},{Header:"",accessor:"id",id:"seeMore",Cell:function(e){var t,r,o=e.value;return n.createElement("div",{className:"w-100 d-flex justify-content-end"},n.createElement(L.F,{className:"info-link text-end me-3 ms-auto ".concat(M.seeMore),appLink:Object.assign(Object.assign({},a),{args:(null===(t=a.args)||void 0===t?void 0:t.length)?[].concat((r=a.args,function(e){if(Array.isArray(e))return P(e)}(r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return P(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?P(e,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[o]):[o]})},n.createElement(y.x,{namespace:F,phrase:"seeMore"})))},width:30}]),data:l,theme:U})}var G=r(23232),Y="userManager.auditLogEmptyState";function _(e){return n.createElement(G.u,null,n.createElement(G.u.Image,{src:e.imageUrl}),n.createElement(G.u.Heading,null,n.createElement(y.x,{namespace:Y,phrase:"heading"})),n.createElement(G.u.Info,null,n.createElement(y.x,{namespace:Y,phrase:"info"})))}const q={bulkCheckbox:"NMw5T"};function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var W="userManager.auditLog",$=a.T.encloseNamespace(W);function V(e){var t,r,a,l,c=o.SG.get(p.K.AUDIT_LOG_REFERRER_KEY),s=(a=n.useState(!1),l=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,l,c=[],i=!0,s=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;i=!1}else for(;!(i=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{if(!i&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(a,l)||function(e,t){if(e){if("string"==typeof e)return D(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D(e,t):void 0}}(a,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],d=s[1],m=(0,S.X)(e.jobs.data),f=(0,E.Z)();return n.createElement(n.Fragment,null,n.createElement("h1",{className:"h2"},n.createElement(y.x,{namespace:W,phrase:"heading"})),n.createElement("div",{className:"pb-3"},n.createElement("div",{className:"d-flex justify-content-between"},n.createElement(i.Oo,{breadcrumbs:[{name:$("settingsBreadcrumb"),appLink:e.appLinks.settings},{name:$(c===h.Y.Learner?"studentManager":"staffManager"),appLink:e.appLinks.userManager},{name:$("heading"),active:!0}]}),n.createElement("p",{className:"mb-0 fw-semibold"},n.createElement(y.x,{namespace:W,phrase:"totalJobs",options:{showing:e.jobs.data.length,smartCount:e.jobs.count}})))),n.createElement("div",{className:"d-flex align-items-center pb-2"},n.createElement(v.X,{className:q.bulkCheckbox,id:"bulk-audit-log-checkbox",checked:m.bulkChecked,onChange:m.onToggleBulk,indeterminate:m.hasSomeSelections()}),n.createElement("div",{className:"ms-4 ps-1"},n.createElement(x,{queryParams:e.queryParams,appLinks:e.appLinks})),n.createElement(b.m,{variant:"dark",className:"ms-auto",onClick:function(){if(!u){d(!0);var t=m.getSelected();e.onClickExport(t).then((function(){return f.success($("exportSuccess"))})).catch((function(){return f.error($("exportError"))})).finally((function(){return d(!1)}))}},disabled:!m.hasSomeSelections()||u,showSpinner:u},n.createElement(y.x,{namespace:W,phrase:"export"}))),(null===(t=e.jobs.data)||void 0===t?void 0:t.length)?n.createElement(J,{jobs:e.jobs,appLinks:e.appLinks,onToggleCheckbox:m.onToggleItem,isChecked:m.isChecked}):n.createElement(_,{imageUrl:e.emptyStateImageUrl}),!!(null===(r=e.jobs.pagination)||void 0===r?void 0:r.cursors)&&n.createElement(g.t,{className:"p-0 text-end pb-3",cursors:e.jobs.pagination.cursors,appLink:k.O.getCurrentRoute().appLink,buttonVariant:"outline-dark"}))}var K=r(91286),z=r(79612),X=r(99742),Z=r(29613),Q=r(18087),ee="userManager.userAuditLogView";function te(e){var t=o.SG.get(p.K.AUDIT_LOG_REFERRER_KEY),r=l.a.useBasicFetch(Z.q.getJobs(e.queryParams));(0,K.v)(r),(0,z.M)({title:a.T.getPhrase(ee,"pageTitle")});var c=l.a.useGetFetchAsync(),i=(0,Q.Y)(t);return r.hasCompleted?n.createElement("div",{className:"px-3"},n.createElement(V,{jobs:r.data,appLinks:i,queryParams:e.queryParams,onClickExport:function(e){return c(Z.q.sendJobReports(e))},emptyStateImageUrl:X.W.EmptyStates.Search.RESULTS})):n.createElement("div",{className:"px-3"},n.createElement(f,null))}},29613:(e,t,r)=>{r.d(t,{q:()=>l});var n=r(99940),a=r(97395),o=r(149),l={createJob:function(e,t,r){return{url:"{gateway}/v1/batch/jobs",key:"create:job",type:n.k.POST,data:e,success:t,error:r}},getJobs:function(e){var t={},r=[],n=[];return e.cursor&&(t.cursor=e.cursor),e.sort&&("oldest"===e.sort?t.order="ASC":t.order="DESC"),e.bulkActionType?(r=Array.isArray(e.bulkActionType)?e.bulkActionType:[e.bulkActionType],t.type=r):t.type=o.O,e.userType&&(n=Array.isArray(e.userType)?e.userType:[e.userType],t.dataType=n),{url:a._.urlBuilder("{gateway}/v1/batch/jobs",t),key:"batch:jobs:".concat(e.cursor,":").concat(e.sort,":").concat(r.sort().join(":"),":").concat(n.sort().join(":"))}},getJob:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e),key:"job:".concat(e)}},getJobProgress:function(e,t,r){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/progress"),key:"job:".concat(e,":progress"),invalidationKeys:"job:".concat(e,":progress"),success:t,error:r}},getJobResults:function(e,t,r,n,o){var l={status:t};return r&&(l.cursor=r),{url:a._.urlBuilder("{gateway}/v1/batch/jobs/".concat(e,"/results"),l),key:"job:".concat(e,":results:").concat(t,":").concat(r),success:n,error:o}},getYearGroupRolloverStatus:function(e){return{url:"{gateway}/v1/batch/validations/customers/".concat(e,"/year-group-roll-over"),key:"year:group:rollover:status"}},sendJobReports:function(e){return{url:"{gateway}/v1/batch/results/export",key:"send:job:reports:".concat(e.sort().join(":")),type:n.k.POST,data:{jobIds:e}}},getJobSummary:function(e){return{url:"{gateway}/v1/batch/jobs/".concat(e,"/summary"),key:"job:summary:".concat(e)}}}}}]);
|
|
2
|
+
//# sourceMappingURL=897-10a911aed5-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/897-10a911aed5-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/search/components/search-filters/PartialSearchFilters.tsx","file:///app/packages/libs/shared/src/constants/DragOverlayStyles.ts","file:///app/packages/libs/shared/src/components/table/TableUtils.ts","file:///app/packages/libs/shared/src/components/table/table.scss","file:///app/packages/libs/shared/src/components/table/Table.tsx","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBulkCheckboxManager.ts","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/partial-user-audit-log.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/PartialAuditLogTable.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/partial-loading/PartialUserAuditLog.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/user-audit-log-table.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/UserAuditLogTableUtils.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/components/audit-log-table/UserAuditLogTable.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/empty-state/UserAuditLogEmptyState.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/user-audit-log.scss","file:///app/packages/libs/shared/src/apps/user-manager/components/audit-log/UserAuditLog.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/audit-log/UserAuditLogView.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/JobRequests.ts"],"sourcesContent":["import * as React from 'react';\n\nimport styles from './search-filters.scss';\n\ninterface PartialSearchFiltersProps {\n count?: number;\n}\n\nexport function PartialSearchFilters({ count = 6 }: PartialSearchFiltersProps): JSX.Element {\n return (\n <div className='d-flex'>\n <div className='d-flex ps-1'>\n {Array(count).fill(null).map((item, index) => (\n <div key={index} className={`${styles.partialButton} partial-loading-background mx-1`} />\n ))}\n </div>\n </div>\n );\n}","export const DragOverlayStyles = { opacity: '0.8', cursor: 'grabbing' };","import React from 'react';\nimport { PluginHook, useBlockLayout, useFilters, useFlexLayout, useGlobalFilter, useRowSelect, useSortBy } from 'react-table';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface PluginOptions {\n allowFiltering?: boolean;\n allowGlobalFiltering?: boolean;\n layout?: 'flex' | 'block';\n}\n\nexport function getPlugins<T extends HashObject>(props: PluginOptions): PluginHook<T>[] {\n let plugins: PluginHook<T>[] = [\n useSortBy,\n useRowSelect,\n props.layout === 'flex' ? useFlexLayout : useBlockLayout\n ];\n\n if (props.allowFiltering)\n plugins = [\n ...plugins,\n useFilters\n ];\n\n if (props.allowGlobalFiltering)\n plugins = [\n ...plugins,\n useGlobalFilter\n ];\n\n return plugins;\n}\n\nexport function getSelectedRowIds(ids: string[]): Record<string, boolean> {\n const idHash: Record<string, boolean> = {};\n\n ids.forEach(id => idHash[id] = true);\n\n return idHash;\n}\n\ninterface TableScrollState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n\nfunction calculateScrollState(ref: React.MutableRefObject<HTMLDivElement>): TableScrollState {\n const canScrollLeft = ref.current?.scrollLeft > 0;\n const canScrollRight = (ref.current?.scrollLeft + 1) < ref.current?.scrollWidth - ref.current?.clientWidth;\n\n return { canScrollLeft, canScrollRight };\n}\n\ninterface UseTableScroll {\n ref: (el: HTMLDivElement) => void;\n scrollState: TableScrollState;\n scroll: (scrollBy: number) => void;\n}\n\nexport function useTableScroll(): UseTableScroll {\n const elRef = React.useRef<HTMLDivElement>();\n const [ scrollState, setScrollState ] = React.useState<TableScrollState>(calculateScrollState(elRef));\n\n function onScroll(): void {\n setScrollState(calculateScrollState(elRef));\n }\n\n function scroll(scrollBy: number): void {\n elRef.current?.scrollBy({ left: scrollBy, top: 0, behavior: 'smooth' });\n }\n\n const throttledOnScroll = FunctionHelper.throttle(onScroll, 200);\n\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (elRef.current) {\n elRef.current?.removeEventListener('scroll', throttledOnScroll);\n }\n\n if (el) {\n setScrollState(calculateScrollState(elRef));\n el.addEventListener('scroll', throttledOnScroll);\n }\n\n elRef.current = el;\n }, []);\n\n React.useEffect(() => {\n if (elRef?.current) {\n setScrollState(calculateScrollState(elRef));\n }\n }, [elRef]);\n\n return { ref, scrollState, scroll };\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortIndicator\":\"gFhu0\",\"scrollContainer\":\"sWUp9\",\"scrollbarTrack\":\"Vn2qM\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport {\n Cell,\n Column as BaseColumn,\n HeaderGroup,\n HeaderProps as BaseHeaderProps,\n IdType,\n Row,\n SortingRule,\n TableOptions,\n TableRowProps,\n useTable } from 'react-table';\nimport { DragEndEvent } from '@dnd-kit/core';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { PropsWithSortableItemProps, SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { DragOverlayStyles } from 'libs/shared/constants/DragOverlayStyles';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getPlugins, getSelectedRowIds, useTableScroll } from './TableUtils';\n\nimport styles from './table.scss';\n\nexport interface TableTheme {\n table?: string;\n header?: string;\n headerRow?: string;\n headerCell?: string;\n body?: string;\n row?: string | ((row: Row<any>) => string);\n selectedRow?: string;\n cell?: string | ((row?: Row<any>, cell?: Cell<any, any>) => string);\n sortIndicator?: string;\n}\n\nexport type HeaderProps<T extends HashObject> = BaseHeaderProps<T> & {\n renderSortIndicator: () => void;\n}\n\nexport type Column<T extends HashObject> = BaseColumn<T> & {\n hideSortIndicator?: boolean;\n}\n\ninterface SortIndicatorProps<T extends HashObject> {\n column: HeaderGroup<T>;\n theme?: TableTheme;\n}\n\nfunction SortIndicator<T extends HashObject>(props: SortIndicatorProps<T>): JSX.Element {\n if (!props.column.canSort)\n return <></>;\n\n return (\n <span\n className={\n `${styles.sortIndicator}\n ${!props.column.isSorted ? 'text-secondary' : ''}\n ${props.theme?.sortIndicator ?? ''}`\n }\n >\n <SvgContainer\n svgName={(props.column.isSortedDesc || !props.column.isSorted)\n ? cvSvgLibrary.ArrowRight\n : cvSvgLibrary.ArrowLeft\n }\n size={SvgContainerSize.Small}\n />\n </span>\n );\n}\n\ninterface BaseTableProps<T extends HashObject> {\n /**\n * Must be memoized.\n */\n data: T[];\n\n /**\n * Must be memoized.\n * \n * For documentation on Column Options, see https://react-table.tanstack.com/docs/api/useTable#column-options\n */\n columns: Column<T>[];\n\n theme?: TableTheme;\n\n onSelectRow?: (row: Row<T>) => void;\n\n onSelectCell?: (cell: Cell<T>) => void;\n\n onRowMouseOver?: (row: Row<T>) => void;\n\n onRowMouseLeave?: (row: Row<T>) => void;\n\n allowSelectMultipleRows?: boolean;\n\n initialSelectedRowIds?: string[];\n\n getRowId?: (row: T) => string;\n\n getRowAppLink?: (row: Row<T>) => Core.AppLink;\n\n enableSort?: boolean;\n\n manualSort?: boolean;\n\n onSort?: (sortingRule: SortingRule<T>[]) => void;\n \n // Opt-in to utilise react-table's useFilter hook.\n allowFiltering?: boolean;\n\n // Opt-in to utilise react-table's useGlobalFilter hook.\n allowGlobalFiltering?: boolean;\n\n // Use either a flex layout or a block layout. Default is flex.\n layout?: 'flex' | 'block';\n\n // Used by useGlobalFilter hook, needs to be enabled by prop above.\n globalFilter?: string;\n\n // Set initial state of hidden columns in react-table.\n hiddenColumns?: IdType<T>[];\n\n // Determine whether hidden columns should be preserved on a table update event.\n autoResetHiddenColumns?: boolean;\n\n // Determine whether sort order state should be preserved on a table update event.\n autoResetSortBy?: boolean;\n\n // Determine whether rows are sortable by drag and drop\n enableSortableRows?: boolean;\n\n onSortingRowsEnd?: (event: DragEndEvent) => void;\n\n // Set initial state of sorting in react-table\n initialSortBy?: SortingRule<T>[];\n}\n \ntype SortableRowProps = PropsWithSortableItemProps<TableRowProps>;\n\nfunction BaseTable<T extends HashObject>(props: BaseTableProps<T>): JSX.Element {\n const tableOptions: TableOptions<T> = {\n columns: props.columns,\n data: props.data,\n disableSortBy: !props.enableSort,\n manualSortBy: props.manualSort,\n autoResetHiddenColumns: props.autoResetHiddenColumns,\n autoResetSortBy: props.autoResetSortBy,\n initialState: {\n sortBy: props.initialSortBy || []\n }\n };\n\n if (props.initialSelectedRowIds)\n tableOptions.initialState = { selectedRowIds: getSelectedRowIds(props.initialSelectedRowIds) };\n\n if (props.getRowId)\n tableOptions.getRowId = props.getRowId;\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n toggleAllRowsSelected,\n setGlobalFilter,\n setHiddenColumns,\n state: { sortBy }\n } = useTable<T>(tableOptions, ...getPlugins<T>({ ...props }));\n\n function getTableRowsClass(row: Row<T>) {\n let className = FunctionHelper.isFunction(props.theme?.row)\n ? props.theme.row(row)\n : props.theme?.row ?? '';\n\n if (row.isSelected && props.theme?.selectedRow)\n className += ` ${props.theme?.selectedRow}`;\n\n if (props.onSelectRow)\n className += ' cursor-pointer';\n\n if (props.enableSortableRows)\n className += ' cursor-grab';\n\n return className;\n }\n\n function renderTableRows(): JSX.Element[] {\n return rows.map(row => {\n prepareRow(row);\n \n const className = getTableRowsClass(row);\n const rowAppLink = !!props.getRowAppLink && props.getRowAppLink(row);\n\n function onClickRow(): void {\n if (!props.onSelectRow)\n return;\n\n if (!props.allowSelectMultipleRows)\n toggleAllRowsSelected(false);\n \n props.onSelectRow(row);\n row.toggleRowSelected(true);\n }\n\n function getSortableProps(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any) {\n if ('dragAttributes' in props && 'dragListeners' in props) {\n return {\n ...props.dragAttributes,\n ...props.dragListeners,\n 'aria-roledescription': 'Sortable row',\n ref\n };\n }\n\n return {};\n }\n\n function renderRow(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any): JSX.Element {\n const sortableProps = getSortableProps(props, ref);\n\n if (rowAppLink) {\n return (\n <div\n role='row'\n key={row.id}\n >\n <AppLink\n {...props}\n {...sortableProps}\n className={className}\n appLink={rowAppLink}\n >\n {renderCells(row)}\n </AppLink>\n </div>\n );\n }\n\n return (\n <div\n {...props}\n {...sortableProps}\n key={row.id}\n role='row'\n className={className}\n onClick={onClickRow}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n const rowProps = row.getRowProps();\n\n if (props.enableSortableRows) {\n return (\n <SortableItemWrapper\n id={row.original.id}\n key={row.id}\n childProps={rowProps}\n childComponent={React.forwardRef(\n (props: SortableRowProps, ref: React.LegacyRef<HTMLDivElement>) => (renderRow(props, ref))\n )}\n />\n );\n }\n\n return renderRow(rowProps);\n });\n }\n\n function getDragOverlayClassName(theme: TableTheme): string {\n let className = 'g-0 ';\n\n if (theme)\n className += theme.row;\n\n return className;\n }\n\n function getDragOverlay(id: string) {\n const rowIndex = rows.findIndex(item => item.original.id === id);\n const row = rows[rowIndex];\n \n return (\n <div\n {...props}\n className={getDragOverlayClassName(props.theme)}\n style={DragOverlayStyles}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n function getCellClassName(row: Row<T>, cell: Cell<T>): string {\n let cellClassName = '';\n\n if (typeof props.theme?.cell === 'function')\n cellClassName = props.theme.cell(row, cell);\n\n if (typeof props.theme?.cell === 'string')\n cellClassName = props.theme.cell;\n\n if (props.onSelectCell)\n cellClassName += ' cursor-pointer';\n\n return cellClassName;\n }\n\n function renderCells(row: Row<T>): JSX.Element[] {\n return row.cells.map(cell => {\n const cellClassName = getCellClassName(row, cell);\n\n function onClickCell(): void {\n props.onSelectCell && props.onSelectCell(cell);\n }\n\n return (\n <div key={cell.column.id} {...cell.getCellProps()} className={cellClassName} onClick={onClickCell} >\n {cell.render('Cell')}\n </div>\n );\n });\n }\n\n React.useEffect(() => {\n if (!props.onSort)\n return;\n\n props.onSort(sortBy);\n }, [sortBy]);\n\n React.useEffect(() => {\n if (!props.globalFilter)\n return;\n\n setGlobalFilter(props.globalFilter);\n }, [props.globalFilter]);\n\n React.useEffect(() => {\n if (!props.hiddenColumns)\n return;\n\n setHiddenColumns(props.hiddenColumns);\n }, [props.hiddenColumns && props.hiddenColumns.length]);\n\n return (\n <div {...getTableProps()} className={props.theme?.table ?? ''}>\n <div className={props.theme?.header ?? ''}>\n {headerGroups.map(headerGroup => (\n <div {...headerGroup.getHeaderGroupProps()} className={props.theme?.headerRow ?? ''}>\n {headerGroup.headers.map(column => (\n <div {...column.getHeaderProps(column.getSortByToggleProps())} className={props.theme?.headerCell ?? ''}>\n {column.render('Header', { renderSortIndicator: () => <SortIndicator column={column} theme={props.theme} /> })}\n {!(column as Column<T>).hideSortIndicator &&\n <SortIndicator column={column} theme={props.theme} />\n }\n </div>\n ))}\n </div>\n ))}\n </div>\n <div {...getTableBodyProps()} className={props.theme?.body ?? ''}>\n { props.enableSortableRows ? (\n <SortableContainerWrapper\n ids={rows.map(row => row.original.id)}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortingRowsEnd}\n >\n {renderTableRows()}\n </SortableContainerWrapper>\n ) : (\n renderTableRows()\n )}\n </div>\n </div>\n );\n}\n\ninterface TableProps<T extends HashObject> extends BaseTableProps<T> {\n enableSlider?: boolean;\n scrollIncrement?: number;\n scrollContainerClassName?: string;\n scrollable?: boolean;\n initialSortBy?: SortingRule<T>[];\n}\n\nTable.defaultProps = {\n scrollIncrement: 250,\n scrollable: false,\n layout: 'flex'\n};\n\nexport function Table<T extends HashObject>(props: TableProps<T>): JSX.Element {\n const { enableSlider, scrollIncrement, scrollable, ...tableProps } = props;\n\n const { ref, scrollState, scroll } = useTableScroll();\n\n if (scrollable) {\n return (\n <Scrollbars\n renderTrackHorizontal={() => <div className={styles.scrollbarTrack} />}\n autoHeightMax={10000}\n autoHeight\n >\n <BaseTable {...tableProps} />\n </Scrollbars>\n );\n }\n\n if (!enableSlider)\n return <BaseTable {...tableProps} />;\n\n function onClickScroll(direction: 'left' | 'right'): void {\n scroll(scrollIncrement * (direction === 'right' ? 1 : -1));\n }\n\n return (\n <div className='mx-n4 overflow-x-hidden overflow-y-hidden'>\n <div className='px-4'>\n <div className='position-relative'>\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => onClickScroll('left')}\n hide={!scrollState.canScrollLeft}\n />\n <div className={`${styles.scrollContainer} ${props.scrollContainerClassName}`} ref={ref}>\n <BaseTable {...tableProps } />\n </div>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => onClickScroll('right')}\n hide={!scrollState.canScrollRight}\n />\n </div>\n </div>\n </div>\n );\n}","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}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { useForceUpdate } from 'libs/shared/hooks/useForceUpdate';\nimport { usePrevious } from 'libs/shared/hooks/usePrevious';\n\ntype CheckboxItemsState = Map<string, boolean>;\n\nexport interface BulkCheckboxManager {\n onToggleBulk: () => void;\n onToggleItem: (id: string) => void;\n getSelected: () => string[];\n isChecked: (item: string | number | HashObject<string>) => boolean;\n bulkChecked: boolean;\n deselectAll: () => void;\n hasSomeSelections: () => boolean;\n setSelected: (ids: string[]) => void;\n getSelectedCount: () => number;\n reset: () => void;\n getMap: () => Map<string, boolean>;\n}\n\nexport interface BulkCheckboxManagerOptions {\n idField?: string; // For objects like `PresentationAudiences` that don't use `id` as their identifier field\n persistNamespace?: string;\n preselectedIds?: string[];\n initialState?: CheckboxItemsState;\n}\n\n/**\n * @param collection - The collection you are keeping track of with checkboxes\n * @param options - See interface above\n */\nexport const useBulkCheckboxManager = (collection: HashObject[], options: BulkCheckboxManagerOptions = {}) => {\n const { idField = 'id', persistNamespace } = options;\n\n const initial = options.initialState ? options.initialState : new Map<string, boolean>();\n\n const items = React.useRef<CheckboxItemsState>(initial);\n \n const forceUpdate = useForceUpdate();\n\n const prevCollection = usePrevious(collection);\n const prevNamespace = usePrevious(persistNamespace);\n\n /**\n * This hook will clear the state of this hook when a user navigates between pages\n * if a persistNamespace was not provided\n */\n React.useEffect(() => {\n /**\n * If we're being passed initial state, we don't want to clear the state\n */\n if (options.initialState)\n return;\n\n /**\n * If we've been given a persist namespace, we don't want to clear our\n * selections while the namespace stays the same\n */\n if (persistNamespace && prevNamespace === persistNamespace)\n return;\n\n /**\n * Don't reinitialize if the ids of the new and old collection\n * are identical\n */\n const prevIds = prevCollection?.map(i => i[idField]).join();\n const ids = collection?.map(i => i[idField]).join();\n\n if (prevIds === ids)\n return;\n\n reset();\n }, [ prevCollection, prevNamespace, collection, options.initialState ]);\n\n React.useEffect(() => {\n if (!options.preselectedIds?.length)\n return;\n\n setSelected(options.preselectedIds);\n }, []);\n\n function reset(): void {\n items.current.clear();\n forceUpdate();\n }\n\n // When toggled on, all checkbox items will be enabled. Vice versa if toggled off\n function onToggleBulk(): void {\n const setValue = !isBulkChecked();\n\n collection.forEach(item => {\n if (setValue)\n items.current.set(item[idField].toString(), true);\n else\n items.current.delete(item[idField].toString());\n });\n\n forceUpdate();\n }\n\n // Toggles a single item\n function onToggleItem(id: string): void {\n const nextItemState = !items.current.get(id.toString());\n\n if (nextItemState)\n items.current.set(id.toString(), nextItemState);\n else\n items.current.delete(id.toString());\n \n forceUpdate();\n }\n\n // Returns the state of the item passed in\n function isChecked(item: string | number | HashObject<string>): boolean {\n if (typeof item === 'number')\n item = item.toString();\n else if (typeof item !== 'string')\n item = item[idField].toString();\n\n return items.current.get(item);\n }\n\n function getSelected(): string[] {\n return Array.from(items.current.keys());\n }\n\n function deselectAll(): void {\n if (!collection?.length) return;\n\n collection.forEach(item => {\n items.current.delete(item[idField].toString());\n });\n forceUpdate();\n }\n\n // Returns true if at least 1 item is checked\n function hasSomeSelections(): boolean {\n if (!collection?.length)\n return false;\n\n return !!collection.find(item => isChecked(item));\n }\n\n function isBulkChecked(): boolean {\n if (!collection?.length)\n return false;\n\n return collection.every(isChecked);\n }\n\n function setSelected(ids: string[]): void {\n ids.forEach(id => {\n items.current.set(id, true);\n });\n forceUpdate();\n }\n\n function getSelectedCount(): number {\n return items.current.size;\n }\n\n function getMap(): Map<string, boolean> {\n return items.current;\n }\n\n return {\n onToggleBulk,\n onToggleItem,\n getSelected,\n isChecked,\n bulkChecked: isBulkChecked(),\n deselectAll,\n hasSomeSelections,\n setSelected,\n getSelectedCount,\n reset,\n getMap\n };\n};","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"rfiJl\",\"partialJobCount\":\"h8k_u\",\"partialCheckbox\":\"HkuOS\",\"partialExportButton\":\"Iul7S\",\"row\":\"mwigG\",\"checkboxColumn\":\"Z5jLG\",\"actionColumn\":\"rLxYh\",\"usersColumn\":\"QZzab\",\"dateColumn\":\"Wf_Jp\",\"performedByColumn\":\"Ubtmj\",\"seeMoreColumn\":\"XdP6u\",\"heading\":\"kRMMH\",\"action\":\"DvDvW\",\"users\":\"goKpg\",\"date\":\"ejYGb\",\"performedBy\":\"NhjyL\"};","import React from 'react';\n\nimport styles from './partial-user-audit-log.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded py-3 ${styles.row}`}>\n <div className={`${styles.checkboxColumn} d-flex justify-content-center`}>\n <div className={`partial-loading-background ${styles.partialCheckbox} ms-0`} />\n </div>\n <div className={`${styles.actionColumn}`}>\n <div className={`partial-loading-background ${styles.action}`} />\n </div>\n <div className={`${styles.usersColumn}`}>\n <div className={`partial-loading-background ${styles.users}`} />\n </div>\n <div className={`${styles.dateColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`${styles.performedByColumn}`}>\n <div className={`partial-loading-background ${styles.performedBy}`} />\n </div>\n <div className={`${styles.seeMoreColumn}`}>\n \n </div>\n </div>\n );\n}\n\nfunction PartialHeader(): JSX.Element {\n return (\n <div className='d-flex py-2 mb-1'>\n <div className={`${styles.checkboxColumn}`}>\n \n </div>\n <div className={`${styles.actionColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.usersColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.dateColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.performedByColumn}`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.seeMoreColumn}`}>\n \n </div>\n </div>\n );\n}\n\nexport function PartialAuditLogTable(): JSX.Element {\n return (\n <>\n <div className='mb-3 mt-n1'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { PartialSearchFilters } from 'libs/shared/apps/search/components/search-filters/PartialSearchFilters';\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\n\nimport { PartialAuditLogTable } from './PartialAuditLogTable';\n\nimport styles from './partial-user-audit-log.scss';\n\nexport function PartialUserAuditLog(): JSX.Element {\n return (\n <>\n <div className={`partial-loading-background mb-2 ${styles.partialHeading}`} />\n\n <div className='pb-3'>\n <div className='d-flex justify-content-between'>\n <PartialBreadcrumbs />\n\n <div className={`partial-loading-background ${styles.partialJobCount}`} />\n </div>\n </div>\n\n <div className='d-flex align-items-center pb-2'>\n <div className={`partial-loading-background ${styles.partialCheckbox}`} />\n\n <div className='ms-4 ps-3'>\n <PartialSearchFilters count={3} />\n </div>\n\n <div className={`ms-auto partial-loading-background ${styles.partialExportButton}`} />\n </div>\n\n <PartialAuditLogTable />\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext } from 'libs/analytics/interfaces';\n\nimport { SearchFilters } from 'libs/shared/apps/search/components/search-filters/SearchFilters';\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { Filters } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nconst namespace = 'userManager.userAuditLogFilters';\n\nfunction getSortOptions(): FilterOption[] {\n return [{\n id: 'newest',\n name: LanguageService.getPhrase(namespace, 'newest'),\n default: true\n },\n {\n id: 'oldest',\n name: LanguageService.getPhrase(namespace, 'oldest')\n }];\n}\n\nexport interface UserAuditLogQueryParams {\n cursor: string;\n userType: UserGroup | UserGroup[];\n bulkActionType: BatchJobType | BatchJobType[];\n sort: 'newest' | 'oldest';\n}\n\ninterface UserAuditLogFiltersProps {\n queryParams: UserAuditLogQueryParams;\n appLinks: UserManagerAppLinks;\n}\n\nexport function UserAuditLogFilters(props: UserAuditLogFiltersProps): JSX.Element {\n const filters: SearchFilter<any>[] = [\n Filters.SortBy(getSortOptions()),\n Filters.BulkActionType(),\n Filters.UserType()\n ];\n\n return (\n <SearchFilters\n queryParams={props.queryParams}\n mainFilters={filters}\n appLink={props.appLinks.auditLog}\n analyticsOptions={{\n entity: EntityType.BatchJob,\n location: LocationContext.UserAuditLog\n }}\n hideHeading\n hideDivider\n constantIndices={[]}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"uymuO\"};","import React from 'react';\nimport { CellProps, Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { ClickViewAvatar } from 'libs/shared/components/clickview-avatar/ClickViewAvatar';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { SvgContainer2 } from 'libs/shared/components/svg-container/SvgContainer2';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { BatchJob } from 'libs/shared/interfaces';\n\nimport styles from './user-audit-log-table.scss';\n\nconst namespace = 'userManager.userAuditLogTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UserAuditLogTableData {\n id: string;\n checked: boolean;\n actionType: string;\n userType: string;\n date: string;\n performedBy: {\n name: string;\n submittedByClickView: boolean;\n };\n}\n\nexport function getColumns(\n summaryAppLink: Core.AppLink,\n onToggleCheckbox: (id: string) => void\n): Column<UserAuditLogTableData>[] {\n const columns: Column<UserAuditLogTableData>[] = [\n {\n Header: '',\n id: 'checkboxes',\n accessor: (data: UserAuditLogTableData) => ({ id: data.id, checked: data.checked }),\n Cell: (cell: CellProps<UserAuditLogTableData, { id: string; checked: boolean; }>) => (\n <div className='text-center mx-auto'>\n <Checkbox\n id={cell.value.id}\n checked={cell.value.checked}\n onChange={() => onToggleCheckbox(cell.value.id)}\n />\n </div>\n ),\n width: 10\n },\n {\n Header: getPhrase('action'),\n accessor: 'actionType',\n id: 'actionType',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('users'),\n accessor: 'userType',\n id: 'userType',\n Cell: ({ value }) => {\n const getValue = () => {\n switch (value) {\n case UserGroup.Learner:\n return getPhrase('students');\n case UserGroup.Staff:\n return getPhrase('staff');\n case UserGroup.Unknown:\n default:\n return getPhrase('unknown');\n }\n };\n\n return (\n <div className='w-100'>\n {getValue()}\n </div>\n );\n },\n width: 10\n },\n {\n Header: getPhrase('date'),\n accessor: 'date',\n id: 'date',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 20\n },\n {\n Header: getPhrase('performedBy'),\n accessor: 'performedBy',\n id: 'performedBy',\n Cell: (cell: CellProps<any, { name: string; submittedByClickView: boolean; }>) => (\n <div className='w-100 d-flex align-items-center'>\n {cell.value.submittedByClickView && (\n <SvgContainer2 className='me-1' size={SvgContainerSize.Small}>\n <ClickViewAvatar />\n </SvgContainer2>\n )}\n {cell.value.name}\n </div>\n ),\n width: 20\n },\n {\n Header: '',\n accessor: 'id',\n id: 'seeMore',\n Cell: ({ value }) => (\n <div className='w-100 d-flex justify-content-end'>\n <AppLink\n className={`info-link text-end me-3 ms-auto ${styles.seeMore}`}\n appLink={{\n ...summaryAppLink,\n args: summaryAppLink.args?.length ? [ ...summaryAppLink.args, value ] : [value]\n }}\n >\n <Text namespace={namespace} phrase='seeMore' />\n </AppLink>\n </div>\n ),\n width: 30\n }\n ];\n\n return columns;\n}\n\nexport function useGetData(jobs: BatchJob[], isChecked: (id: string) => boolean): UserAuditLogTableData[] {\n return jobs.map(job => {\n const formattedDate = DateHelper.format(job.dateCreated, 'DD/MM/YYYY, hh:mmA');\n\n return {\n id: job.id,\n checked: isChecked(job.id),\n actionType: BulkUserActionsHelper.mapJobTypeToName(job.type),\n userType: BulkUserActionsHelper.mapDataTypeToUserType(job.dataType),\n date: formattedDate,\n performedBy: {\n name: job.submitterName,\n submittedByClickView: job.submittedByClickView\n }\n };\n });\n}","import React from 'react';\n\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\n\nimport { getColumns, useGetData } from './UserAuditLogTableUtils';\n\nconst TABLE_THEME: TableTheme = {\n table: 'striped-list no-full-width pb-3',\n header: 'fw-semibold pb-1',\n headerCell: 'px-2 py-1',\n row: 'striped-row rounded audit-log-row',\n cell: 'd-flex align-items-center py-3 px-2'\n};\n\ninterface UserAuditLogTableProps {\n jobs: BatchJobCollection;\n appLinks: UserManagerAppLinks;\n onToggleCheckbox: (id: string) => void;\n isChecked: (id: string) => boolean;\n}\n\nexport function UserAuditLogTable(props: UserAuditLogTableProps): JSX.Element {\n const data = useGetData(props.jobs.data, props.isChecked);\n\n return (\n <Table\n columns={getColumns(props.appLinks.bulkActionSummary, props.onToggleCheckbox)}\n data={data}\n theme={TABLE_THEME}\n />\n );\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'userManager.auditLogEmptyState';\n\ninterface UserAuditLogEmptyStateProps {\n imageUrl: string;\n}\n\nexport function UserAuditLogEmptyState(props: UserAuditLogEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bulkCheckbox\":\"NMw5T\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\n\nimport { UserManagerConstants } from 'libs/shared/apps/user-manager/constants/UserManagerConstants';\nimport { UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Pagination } from 'libs/shared/components/pagination/Pagination';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useBulkCheckboxManager } from 'libs/shared/hooks/useBulkCheckboxManager';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nimport { UserAuditLogFilters, UserAuditLogQueryParams } from './components/audit-log-filters/UserAuditLogFilters';\nimport { UserAuditLogTable } from './components/audit-log-table/UserAuditLogTable';\nimport { UserAuditLogEmptyState } from './empty-state/UserAuditLogEmptyState';\n\nimport styles from './user-audit-log.scss';\n\nconst namespace = 'userManager.auditLog';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface UserAuditLogProps {\n jobs: BatchJobCollection;\n appLinks: UserManagerAppLinks;\n queryParams: UserAuditLogQueryParams;\n onClickExport: (ids: string[]) => Promise<void>;\n emptyStateImageUrl: string;\n}\n\nexport function UserAuditLog(props: UserAuditLogProps): JSX.Element {\n const referrer: UserGroup = LocalStorageHelper.get(UserManagerConstants.AUDIT_LOG_REFERRER_KEY);\n\n const [ showExportSpinner, setShowExportSpinner ] = React.useState(false);\n\n const CheckboxHelper = useBulkCheckboxManager(props.jobs.data);\n const alerts = useAlerts();\n\n function onClickExport(): void {\n if (showExportSpinner)\n return;\n\n setShowExportSpinner(true);\n\n const selectedIds = CheckboxHelper.getSelected();\n\n props.onClickExport(selectedIds)\n .then(() => alerts.success(getPhrase('exportSuccess')))\n .catch(() => alerts.error(getPhrase('exportError')))\n .finally(() => setShowExportSpinner(false));\n }\n\n return (\n <>\n <h1 className='h2'><Text namespace={namespace} phrase='heading' /></h1>\n\n <div className='pb-3'>\n <div className='d-flex justify-content-between'>\n <Breadcrumbs\n breadcrumbs={[\n { name: getPhrase('settingsBreadcrumb'), appLink: props.appLinks.settings },\n { name: getPhrase(referrer === UserGroup.Learner ? 'studentManager' : 'staffManager'), appLink: props.appLinks.userManager },\n { name: getPhrase('heading'), active: true }\n ]}\n />\n\n <p className='mb-0 fw-semibold'>\n <Text\n namespace={namespace}\n phrase='totalJobs'\n options={{ showing: props.jobs.data.length, smartCount: props.jobs.count }}\n />\n </p>\n </div>\n </div>\n\n <div className='d-flex align-items-center pb-2'>\n <Checkbox\n className={styles.bulkCheckbox}\n id='bulk-audit-log-checkbox'\n checked={CheckboxHelper.bulkChecked}\n onChange={CheckboxHelper.onToggleBulk}\n indeterminate={CheckboxHelper.hasSomeSelections()}\n />\n\n <div className='ms-4 ps-1'>\n <UserAuditLogFilters queryParams={props.queryParams} appLinks={props.appLinks} />\n </div>\n\n <SpinnerButton\n variant='dark'\n className='ms-auto'\n onClick={onClickExport}\n disabled={!CheckboxHelper.hasSomeSelections() || showExportSpinner}\n showSpinner={showExportSpinner}\n >\n <Text namespace={namespace} phrase='export' />\n </SpinnerButton>\n </div>\n\n {props.jobs.data?.length ? (\n <UserAuditLogTable\n jobs={props.jobs}\n appLinks={props.appLinks}\n onToggleCheckbox={CheckboxHelper.onToggleItem}\n isChecked={CheckboxHelper.isChecked}\n />\n ) : (\n <UserAuditLogEmptyState imageUrl={props.emptyStateImageUrl} />\n )}\n\n {!!props.jobs.pagination?.cursors && (\n <Pagination\n className='p-0 text-end pb-3'\n cursors={props.jobs.pagination.cursors}\n appLink={ContextService.getCurrentRoute().appLink}\n buttonVariant='outline-dark'\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { UserAuditLogQueryParams } from 'libs/shared/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters';\nimport { PartialUserAuditLog } from 'libs/shared/apps/user-manager/components/audit-log/partial-loading/PartialUserAuditLog';\nimport { UserAuditLog } from 'libs/shared/apps/user-manager/components/audit-log/UserAuditLog';\nimport { UserManagerConstants } from 'libs/shared/apps/user-manager/constants/UserManagerConstants';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BatchJobCollection } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nconst namespace = 'userManager.userAuditLogView';\n\ninterface UserAuditLogViewProps {\n queryParams: UserAuditLogQueryParams;\n}\n\nexport function UserAuditLogView(props: UserAuditLogViewProps): JSX.Element {\n const referrer: UserGroup = LocalStorageHelper.get(UserManagerConstants.AUDIT_LOG_REFERRER_KEY);\n\n const jobs = Flight.useBasicFetch<BatchJobCollection>(JobRequests.getJobs(props.queryParams));\n \n useHandleObjectError(jobs);\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n const fetchAsync = Flight.useGetFetchAsync();\n\n const appLinks = getUserManagerAppLinks(referrer);\n\n function onClickExport(jobIds: string[]): Promise<void> {\n return fetchAsync<void>(JobRequests.sendJobReports(jobIds));\n }\n\n if (!jobs.hasCompleted)\n return <div className='px-3'><PartialUserAuditLog /></div>;\n\n return (\n <div className='px-3'>\n <UserAuditLog\n jobs={jobs.data}\n appLinks={appLinks}\n queryParams={props.queryParams}\n onClickExport={onClickExport}\n emptyStateImageUrl={ImageUrls.EmptyStates.Search.RESULTS}\n />\n </div>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { UserAuditLogQueryParams } from 'libs/shared/apps/user-manager/components/audit-log/components/audit-log-filters/UserAuditLogFilters';\nimport { SUPPORTED_BATCH_JOB_TYPES } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { BatchJobResultStatus } from 'libs/shared/enums/BatchJobResultStatus';\nimport { BatchJobType } from 'libs/shared/enums/BatchJobType';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { BaseObject, BatchJob, BatchJobProgress, BatchJobResultsResponse, CreateBatchJobRequest } from 'libs/shared/interfaces';\n\nexport const JobRequests = {\n createJob(\n data: CreateBatchJobRequest,\n success?: (job: BatchJob) => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: '{gateway}/v1/batch/jobs',\n key: 'create:job',\n type: HttpVerbs.POST,\n data,\n success,\n error\n };\n },\n\n getJobs(queryParams: UserAuditLogQueryParams): Flight.Request {\n const params: HashObject = {};\n\n let bulkActionTypes: BatchJobType[] = [];\n let userTypes: UserGroup[] = [];\n\n if (queryParams.cursor)\n params.cursor = queryParams.cursor;\n\n if (queryParams.sort) {\n if (queryParams.sort === 'oldest')\n params.order = 'ASC';\n else\n params.order = 'DESC';\n }\n\n if (queryParams.bulkActionType) {\n bulkActionTypes = Array.isArray(queryParams.bulkActionType)\n ? queryParams.bulkActionType\n : [queryParams.bulkActionType];\n\n params.type = bulkActionTypes;\n } else {\n // only show supported type in the table by default\n params.type = SUPPORTED_BATCH_JOB_TYPES;\n }\n\n if (queryParams.userType) {\n userTypes = Array.isArray(queryParams.userType)\n ? queryParams.userType\n : [queryParams.userType];\n\n params.dataType = userTypes;\n }\n \n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/batch/jobs', params),\n key: `batch:jobs:${queryParams.cursor}:${queryParams.sort}:${bulkActionTypes.sort().join(':')}:${userTypes.sort().join(':')}`\n };\n },\n\n getJob(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}`,\n key: `job:${id}`\n };\n },\n\n getJobProgress(\n id: string,\n success?: (progress: BatchJobProgress) => void,\n error?: (xhr?: Xhr) => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/progress`,\n key: `job:${id}:progress`,\n invalidationKeys: `job:${id}:progress`,\n success,\n error\n };\n },\n\n getJobResults<TObject extends BaseObject>(\n id: string,\n status: BatchJobResultStatus,\n cursor?: string,\n success?: (results: BatchJobResultsResponse<TObject>) => void,\n error?: (xhr?: Xhr) => void\n ): Flight.Request {\n const params: HashObject = {\n status\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/batch/jobs/${id}/results`, params),\n key: `job:${id}:results:${status}:${cursor}`,\n success,\n error\n };\n },\n\n getYearGroupRolloverStatus(customerId: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/validations/customers/${customerId}/year-group-roll-over`,\n key: 'year:group:rollover:status'\n };\n },\n\n sendJobReports(ids: string[]): Flight.Request {\n return {\n url: '{gateway}/v1/batch/results/export',\n key: `send:job:reports:${ids.sort().join(':')}`,\n type: HttpVerbs.POST,\n data: {\n jobIds: ids\n }\n };\n },\n\n getJobSummary(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/batch/jobs/${id}/summary`,\n key: `job:summary:${id}`\n };\n }\n};"],"names":["PartialSearchFilters","count","className","Array","fill","map","item","index","key","DragOverlayStyles","opacity","cursor","calculateScrollState","ref","canScrollLeft","current","scrollLeft","canScrollRight","scrollWidth","clientWidth","SortIndicator","props","column","canSort","isSorted","theme","sortIndicator","SvgContainer","svgName","isSortedDesc","size","S","BaseTable","ids","idHash","tableOptions","columns","data","disableSortBy","enableSort","manualSortBy","manualSort","autoResetHiddenColumns","autoResetSortBy","initialState","sortBy","initialSortBy","initialSelectedRowIds","selectedRowIds","forEach","id","getRowId","useTable","plugins","useSortBy","useRowSelect","layout","useFlexLayout","useBlockLayout","allowFiltering","useFilters","allowGlobalFiltering","useGlobalFilter","getPlugins","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","toggleAllRowsSelected","setGlobalFilter","setHiddenColumns","state","renderTableRows","row","FunctionHelper","isSelected","selectedRow","onSelectRow","enableSortableRows","getTableRowsClass","rowAppLink","getRowAppLink","onClickRow","allowSelectMultipleRows","toggleRowSelected","renderRow","sortableProps","dragAttributes","dragListeners","getSortableProps","role","AppLink","appLink","renderCells","onClick","rowProps","getRowProps","SortableItemWrapper","original","childProps","childComponent","cells","cell","cellClassName","onSelectCell","getCellClassName","getCellProps","render","onSort","globalFilter","hiddenColumns","length","table","header","headerGroup","getHeaderGroupProps","headerRow","headers","getHeaderProps","getSortByToggleProps","headerCell","renderSortIndicator","hideSortIndicator","body","SortableContainerWrapper","getDragOverlay","rowIndex","findIndex","style","onSortEnd","onSortingRowsEnd","Table","enableSlider","scrollIncrement","scrollable","tableProps","elRef","scrollState","setScrollState","throttledOnScroll","el","removeEventListener","addEventListener","scroll","scrollBy","left","top","behavior","useTableScroll","renderTrackHorizontal","autoHeightMax","autoHeight","onClickScroll","direction","WidgetButton","W","hide","scrollContainerClassName","defaultProps","generateCacheKey","flightObjs","obj","statusCode","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","isArray","useEffect","useBulkCheckboxManager","collection","options","idField","persistNamespace","initial","Map","items","forceUpdate","prevCollection","prevNamespace","reset","clear","isChecked","toString","get","isBulkChecked","every","setSelected","set","i","preselectedIds","onToggleBulk","setValue","onToggleItem","nextItemState","getSelected","from","keys","bulkChecked","deselectAll","hasSomeSelections","find","getSelectedCount","getMap","PartialRow","PartialHeader","PartialAuditLogTable","PartialUserAuditLog","namespace","UserAuditLogFilters","filters","name","LanguageService","default","SearchFilters","queryParams","mainFilters","appLinks","auditLog","analyticsOptions","entity","location","hideHeading","hideDivider","constantIndices","getPhrase","TABLE_THEME","UserAuditLogTable","jobs","summaryAppLink","onToggleCheckbox","job","formattedDate","DateHelper","dateCreated","checked","actionType","BulkUserActionsHelper","type","userType","dataType","date","performedBy","submitterName","submittedByClickView","bulkActionSummary","Header","accessor","Cell","Checkbox","value","onChange","width","UserGroup","getValue","SvgContainer2","ClickViewAvatar","args","Text","phrase","UserAuditLogEmptyState","EmptyState","src","imageUrl","UserAuditLog","referrer","LocalStorageHelper","UserManagerConstants","showExportSpinner","setShowExportSpinner","CheckboxHelper","alerts","Breadcrumbs","breadcrumbs","settings","userManager","active","showing","smartCount","indeterminate","SpinnerButton","variant","selectedIds","onClickExport","then","success","error","disabled","showSpinner","emptyStateImageUrl","pagination","cursors","Pagination","ContextService","buttonVariant","UserAuditLogView","JobRequests","useSetPageMetadata","title","fetchAsync","hasCompleted","jobIds","ImageUrls","createJob","url","getJobs","params","bulkActionTypes","userTypes","sort","order","bulkActionType","getJob","getJobProgress","invalidationKeys","getJobResults","status","getYearGroupRolloverStatus","customerId","sendJobReports","getJobSummary"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 9630-871c10832c-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9630],{94644:(t,e,r)=>{r.d(e,{r:()=>l});var n=r(50242),i=r(81886),o=r(67058),a=r(14553),u=r(49267),c=r(49075),s={notFound:o.d,forbidden:{rating:a.q,yearLevel:a.q,region:u.a,privacy:a.q},badRequest:c._,internalServerError:c._};function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var o;o="number"==typeof t?t:t.status;var a=Object.assign(Object.assign({},s),e);o&&i.Q.Ry.isStatusCodeError(o)&&(o!==n.o.InternalServer?o!==n.o.NotFound?o!==n.o.Forbidden?r.badRequest||i.Q.Ry.throw(new a.badRequest):r.forbidden||i.Q.Ry.throw(new a.forbidden.privacy):r.notFound||i.Q.Ry.throw(new a.notFound):r.internalServerError||i.Q.Ry.throw(new c._))}}},39902:(t,e,r)=>{r.d(e,{F:()=>h,f:()=>d});var n=r(32735),i=r(20354),o=r(75896);function a(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||u(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(t,e){if(t){if("string"==typeof t)return c(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function l(t,e,r){return(e=function(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var f=50;function d(t,e){var r=o.m.chunk(t,f).map((function(t){return e(o.m.uniq(t))})),n=i.a.useBasicFetchAll(r),a=o.m.flatten(n.data),u=n.data.length?a.reduce((function(t,e){return Object.assign(Object.assign({},t),l({},e.id,e))}),{}):null;return{itemsArr:a,items:u,isFetching:n.isFetching}}function h(t,e,r){var c,d,h,y,v=r||function(t){return"object"===s(t)?t.id:t},p=n.useRef(new Set),m=(h=n.useState([]),y=2,function(t){if(Array.isArray(t))return t}(h)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,o,a,u=[],c=!0,s=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(h,y)||u(h,y)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=m[0],b=m[1];n.useEffect((function(){if(null==t?void 0:t.length){var r=[];t.forEach((function(t){var e=v(t);p.current.has(e)||(r.push(t),p.current.add(e))})),r.length&&b((function(t){return[].concat(a(t),a(o.m.chunk(r,f).map(e)))}))}}),[null==t?void 0:t.length]);var w=i.a.useBasicFetchAll(g),x=o.m.flatten(w.data),A=w.data.length?x.reduce((function(t,e){return Object.assign(Object.assign({},t),l({},v(e),e))}),{}):null;return{hasFirstRequestCompleted:!!(null===(d=null===(c=w.responses)||void 0===c?void 0:c[0])||void 0===d?void 0:d.hasCompleted),itemsArr:x,items:A,isFetching:w.isFetching}}},91286:(t,e,r)=>{r.d(e,{v:()=>a});var n=r(32735),i=r(94644);function o(t){return t.map((function(t){return t.statusCode})).join(":")}function a(t,e,r){var a=Array.isArray(t)?t:[t];(0,n.useEffect)((function(){a.forEach((function(t){(0,i.r)(t.statusCode,e,r)}))}),[o(a),e,r])}},63719:(t,e,r)=>{r.d(e,{h:()=>u});var n=r(32735),i=r(77316);function o(t,e){if(t){if("string"==typeof t)return a(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(t,e):void 0}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function u(t){var e,r,u=(e=n.useMemo((function(){return i.p.getBuilder()}),[]),r=2,function(t){if(Array.isArray(t))return t}(e)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,i,o,a,u=[],c=!0,s=!1;try{if(o=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(e,r)||o(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=u[0],s=(0,u[1])(c);return s&&t?[].concat(function(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(s),[Object.assign(Object.assign({},t),{active:!0})]):s}},35014:(t,e,r)=>{r.d(e,{I:()=>c});var n=r(16714),i=r(12754),o=r(22902),a=r(15311),u=r(11387);function c(){var t=(0,o.T)(),e=t.hasPermissions,r=t.hasLocalPermissions,c=(0,(0,a.r)().hasProduct)(i.x.Primary);return{canViewGlance:e(n.C.ViewVideoGlance),canViewResources:!0,canViewInteractives:c&&e(n.C.ViewVideoInteractives),canViewClips:c&&e(n.C.ViewVideoClips),canViewCurriculumLinks:e(n.C.ViewCurriculums),canUseActions:r(n.E.UseVideoActions),canViewPublicLayout:!r(n.E.WatchVideos)&&u.C.hasRegionPrefix(),canViewResourceItems:r(n.E.ViewVideoResourceItems),canNavigate:c}}},97816:(t,e,r)=>{r.d(e,{V:()=>s});var n=r(20354),i=r(21750),o=r(31949),a=r(1575),u=r(39902),c=r(31908);function s(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=n.a.useBasicFetch(o.N.currentUser()),l=function(t){return t?Array.isArray(t)?t.filter((function(t){return!!t&&(c.M.isVideo(t)||c.M.isClip(t))})):"data"in t?t.data.filter((function(t){return!!t&&(c.M.isVideo(t)||c.M.isClip(t))})):[]:[]}(t).map((function(t){return t.id}));(0,u.F)(l,(function(t){return a.R.videoMixinAssocs(t,r.flightNamespace)})),(0,u.F)((null===(e=s.data)||void 0===e?void 0:e.isAuthenticated)&&l,(function(t){return i.x.hasCurriculumLinks(t,null,r.flightNamespace)}))}},69630:(t,e,r)=>{r.r(e),r.d(e,{PlayView:()=>J});var n=r(32735),i=r(50242),o=r(81886),a=r(23481),u=r(20354),c=r(28400),s=r(65858),l=r(78417),f=r(16714),d=r(67058),h=r(61990),y=r(33803),v=r(89454),p=r(43012),m=r(39151),g=r(1666),b=r(20768),w=r(98064),x=r(31949),A=r(1575),L=r(63719),S=r(26304),E=r(91286),C=r(22902),F=r(79612),j=r(37802),P=r(76753),O=r(14070),I=r(97291),V=r(51855),k=r(82817),_=r(7179),T=r(49948),R=r(36873),N=r(27638),G=r(86698),B=r(35014),M=r(97816),q=r(33192),U=r(22490),D=r(91442),Q=r(21750),Y=r(35287);function H(t){return H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},H(t)}function W(){W=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,i=Object.defineProperty||function(t,e,r){t[e]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",u=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function s(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{s({},"")}catch(t){s=function(t,e,r){return t[e]=r}}function l(t,e,r,n){var o=e&&e.prototype instanceof m?e:m,a=Object.create(o.prototype),u=new O(n||[]);return i(a,"_invoke",{value:C(t,r,u)}),a}function f(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var d="suspendedStart",h="suspendedYield",y="executing",v="completed",p={};function m(){}function g(){}function b(){}var w={};s(w,a,(function(){return this}));var x=Object.getPrototypeOf,A=x&&x(x(I([])));A&&A!==r&&n.call(A,a)&&(w=A);var L=b.prototype=m.prototype=Object.create(w);function S(t){["next","throw","return"].forEach((function(e){s(t,e,(function(t){return this._invoke(e,t)}))}))}function E(t,e){function r(i,o,a,u){var c=f(t[i],t,o);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==H(l)&&n.call(l,"__await")?e.resolve(l.__await).then((function(t){r("next",t,a,u)}),(function(t){r("throw",t,a,u)})):e.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,u)}))}u(c.arg)}var o;i(this,"_invoke",{value:function(t,n){function i(){return new e((function(e,i){r(t,n,e,i)}))}return o=o?o.then(i,i):i()}})}function C(e,r,n){var i=d;return function(o,a){if(i===y)throw Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(n.method=o,n.arg=a;;){var u=n.delegate;if(u){var c=F(u,n);if(c){if(c===p)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=y;var s=f(e,r,n);if("normal"===s.type){if(i=n.done?v:h,s.arg===p)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(i=v,n.method="throw",n.arg=s.arg)}}}function F(e,r){var n=r.method,i=e.iterator[n];if(i===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,F(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),p;var o=f(i,e.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,p;var a=o.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,p):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,p)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function O(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function I(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function r(){for(;++i<e.length;)if(n.call(e,i))return r.value=e[i],r.done=!1,r;return r.value=t,r.done=!0,r};return o.next=o}}throw new TypeError(H(e)+" is not iterable")}return g.prototype=b,i(L,"constructor",{value:b,configurable:!0}),i(b,"constructor",{value:g,configurable:!0}),g.displayName=s(b,c,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===g||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,b):(t.__proto__=b,s(t,c,"GeneratorFunction")),t.prototype=Object.create(L),t},e.awrap=function(t){return{__await:t}},S(E.prototype),s(E.prototype,u,(function(){return this})),e.AsyncIterator=E,e.async=function(t,r,n,i,o){void 0===o&&(o=Promise);var a=new E(l(t,r,n,i),o);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},S(L),s(L,c,"Generator"),s(L,a,(function(){return this})),s(L,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function t(){for(;r.length;){var n=r.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},e.values=I,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(P),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function i(n,i){return u.type="throw",u.arg=e,r.next=n,i&&(r.method="next",r.arg=t),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!s)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method="next",this.next=o.finallyLoc,p):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),p},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var i=n.arg;P(r)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:I(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),p}},e}var $=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function a(t){try{c(n.next(t))}catch(t){o(t)}}function u(t){try{c(n.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,u)}c((n=n.apply(t,e||[])).next())}))},Z=a.T.encloseNamespace("shared.play"),z={notFound:h.l,forbidden:{privacy:y.G}};function J(t){var e,r,a,h,y,H,J=t.queryParams,K=J.context,X=J.contextId,tt=J.playNext,et=J.mtv,rt=(0,N.u)(s.LZ.PlayPage),nt=rt.setFavourite,it=rt.canFavourite,ot=(0,C.T)().hasPermissions,at=u.a.useGetFetchAsync(),ut=(0,V.G)().isPlugin,ct=(0,G.y)().activePresentation,st=(0,j.r)(null),lt=st.hasTopicDirectories,ft=st.hasPlayPageTranscript,dt=(0,B.I)(),ht=u.a.useBasicFetch(w.D.streamableLearning()),yt=u.a.useBasicFetch(x.N.currentUser()),vt=u.a.useBasicFetch(A.R.video(t.id)),pt=u.a.useBasicFetch(dt.canViewClips&&p.e.videoClips(t.id)),mt=u.a.useBasicFetch(dt.canViewInteractives&&b.b.videoInteractives(t.id)),gt=u.a.useBasicFetch(m.L.config()),bt=u.a.useBasicFetch((null===(e=yt.data)||void 0===e?void 0:e.isAuthenticated)&&g.h.yearGroups(yt.data.customerId)),wt=u.a.useBasicFetch(ct&&v.O.audiencesByPresentationId(ct.id)),xt=(0,D.a)(),At=u.a.useBasicFetch(vt.statusCode===i.o.Forbidden&&A.R.video(t.id,l.r.StripMetadata)),Lt=(0,k.M)(t.id),St=(0,R.k)({video:vt.data,context:K,contextId:X,moviesAndTv:et,currentUser:yt.data}),Et=(0,T.l)(t.id,!0),Ct=u.a.useBasicFetch(A.R.regionAlternatives(t.id)),Ft=(0,L.h)({name:null===(r=vt.data)||void 0===r?void 0:r.name});(0,F.M)(P.CG.getVideoMetadata({content:vt.data,regionAlternatives:Ct.data,phraseContext:{phraseHandler:Z,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:q.f.getCanonicalLink({stripPresentationSlug:!0,customAppLink:U.W.getAppLink(vt.data)}),allowIndexing:q.f.allowIndexing(),hrefLang:q.f.getContentHrefLang(Ct.data,(function(t,e){return{application:I.O.VIDEOS,action:O.e.Videos.PLAY_VIDEO,args:[t,c.m.slugify(e)]}}))})),(0,E.v)(vt,z,{forbidden:!0}),(0,M.V)(null!==(a=St.videos)&&void 0!==a?a:[]),(0,_.P)({id:t.id,app:"videos"}),(0,S.b)(At),n.useEffect((function(){var t;vt.data&&ht.data&&(null===(t=vt.data.libraries)||void 0===t?void 0:t.data.find((function(t){return t.id===ht.data.objectId})))&&o.Q.Ry.throw(new d.d)}),[vt.hasCompleted,ht.hasCompleted]);var jt=vt.data&&yt.hasCompleted&>.hasCompleted&&Et.hasCompleted;return jt?n.createElement(Y.j,{video:vt.data,clips:null===(h=pt.data)||void 0===h?void 0:h.data,interactives:null===(y=mt.data)||void 0===y?void 0:y.data,yearGroups:bt.data,curriculums:Lt,relatedVideos:St,setFavourite:nt,canFavourite:it,imageCdnUrl:gt.data.imageCdnUrl,currentUser:yt.data,pointsOfInterest:Et.items,playNext:tt,featureAccess:dt,audiences:wt.data,params:t.queryParams,canManageVideoAccess:ot(f.C.ManageVideoAccess),shouldShowSideTableOfContents:xt,tableOfContentsId:null===(H=t.queryParams)||void 0===H?void 0:H.tocId,isPlugin:ut,breadcrumbs:Ft,hasTopicDirectories:lt,checkAllCurriculums:function(){return $(this,void 0,void 0,W().mark((function e(){return W().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!jt||!Lt.hasLoaded){e.next=4;break}return e.next=3,at(Q.x.checkAllCurriculumsLinks(t.id,Lt.availableCurriculums.map((function(t){return t.id}))));case 3:return e.abrupt("return",e.sent);case 4:return e.abrupt("return",[]);case 5:case"end":return e.stop()}}),e)})))},hasTranscript:ft}):n.createElement(n.Fragment,null)}J.defaultProps={queryParams:{}}}}]);
|
|
3
|
+
//# sourceMappingURL=9630-871c10832c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/9630-871c10832c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBreadcrumbs.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoFeatureAccess.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/packages/projects/lite/src/shared/views/play/PlayView.tsx"],"sourcesContent":["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}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const getKey = _getKey || ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n\n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(getRequest) ]));\n }, [objs?.length]);\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}","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}","import React from 'react';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BreadcrumbService } from 'libs/shared/services/BreadcrumbService';\n\nexport function useBreadcrumbs(current: Breadcrumb): Breadcrumb[] {\n const [ match, useBuilder ] = React.useMemo(() => BreadcrumbService.getBuilder(), []);\n\n const breadcrumbs = useBuilder(match);\n\n if (!breadcrumbs || !current)\n return breadcrumbs;\n\n return [ ...breadcrumbs, { ...current, active: true }];\n}\n\n","import { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\n\nimport { LiteRouteHelper } from 'shared/utils/LiteRouteHelper';\n\nexport interface VideoFeaturesHash {\n canViewGlance: boolean;\n canViewResources: boolean;\n canViewInteractives: boolean;\n canViewClips: boolean;\n canUseActions: boolean;\n canViewPublicLayout: boolean;\n canNavigate: boolean;\n canViewCurriculumLinks: boolean;\n canViewResourceItems: boolean;\n}\n\nexport function useVideoFeatureAccess() {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasProduct } = useProducts();\n\n const hasNP = hasProduct(ProductId.Primary);\n\n function showPublicLayout(): boolean {\n /**\n * Authenticated users should never see the placeholder\n */\n if (hasLocalPermissions(LocalPermissionName.WatchVideos))\n return false;\n\n /**\n * Accessing a play page unathenticated will have different contextual behabviours:\n * - For a share page, the user should see the video and never the placeholder\n * - For a public browsing page (ie. using a route-prefix) they should see the placeholder\n */\n return LiteRouteHelper.hasRegionPrefix();\n }\n\n return {\n canViewGlance: hasPermissions(PermissionName.ViewVideoGlance),\n canViewResources: true,\n canViewInteractives: hasNP && hasPermissions(PermissionName.ViewVideoInteractives),\n canViewClips: hasNP && hasPermissions(PermissionName.ViewVideoClips),\n canViewCurriculumLinks: hasPermissions(PermissionName.ViewCurriculums),\n canUseActions: hasLocalPermissions(LocalPermissionName.UseVideoActions),\n canViewPublicLayout: showPublicLayout(),\n canViewResourceItems: hasLocalPermissions(LocalPermissionName.ViewVideoResourceItems),\n canNavigate: hasNP\n };\n}","import { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const videoIds = getValidObjects(objects).map(v => v.id);\n\n useGrowingBatchFetch(videoIds, ids => VideoRequests.videoMixinAssocs(ids, options.flightNamespace));\n useGrowingBatchFetch(\n currentUser.data?.isAuthenticated && videoIds,\n ids => ClassificationRequests.hasCurriculumLinks(ids, null, options.flightNamespace)\n );\n}","import * as React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionFilterOption } from 'libs/shared/enums/PermissionFilterOption';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { VideoNotFoundError } from 'libs/shared/errors/videos/video-not-found/VideoNotFoundError';\nimport { VideoPrivateError } from 'libs/shared/errors/videos/video-private/VideoPrivateError';\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { ClipCollection, Config, CurrentUser, InteractiveCollection, Presentation, PresentationAudience, RegionAlternative, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useCurriculums } from 'shared/hooks/useCurriculums';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/hooks/useShouldShowTableOfContents';\n\nexport interface PlayViewProps {\n id: string;\n queryParams?: PlayViewQueryParams;\n}\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { PlayPage } from './components/play-page/PlayPage';\n\nconst namespace = 'shared.play';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst videoErrors = {\n notFound: VideoNotFoundError,\n forbidden: {\n privacy: VideoPrivateError\n }\n};\n\nPlayView.defaultProps = {\n queryParams: {}\n};\n\nexport function PlayView(props: PlayViewProps): React.ReactElement {\n const { context, contextId, playNext, mtv } = props.queryParams;\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.PlayPage);\n\n const { hasPermissions } = usePermissions();\n const fetchAsync = Flight.useGetFetchAsync();\n\n const { isPlugin } = usePluginHelper();\n\n const { activePresentation } = usePresentation();\n const { hasTopicDirectories, hasPlayPageTranscript } = useSettings(null);\n\n const featureAccess = useVideoFeatureAccess();\n\n const streamableLibrary = Flight.useBasicFetch<HashObject>(LibraryRequests.streamableLearning());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const video = Flight.useBasicFetch<Video>(VideoRequests.video(props.id));\n const clips = Flight.useBasicFetch<ClipCollection>(\n featureAccess.canViewClips && ClipRequests.videoClips(props.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveCollection>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n \n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n activePresentation &&\n AudienceRequests.audiencesByPresentationId(activePresentation.id)\n );\n \n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const strippedVideo = Flight.useBasicFetch<Video>(video.statusCode === HttpStatus.Forbidden &&\n VideoRequests.video(props.id, PermissionFilterOption.StripMetadata));\n\n const curriculums = useCurriculums(props.id);\n\n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context,\n contextId,\n moviesAndTv: mtv,\n currentUser: currentUser.data\n });\n const pointsOfInterest = useFetchPointsOfInterest(props.id, true);\n\n const regionAlternatives = Flight.useBasicFetch<RegionAlternative[]>(\n VideoRequests.regionAlternatives(props.id)\n );\n\n const breadcrumbs = useBreadcrumbs({ name: video.data?.name });\n\n useSetPageMetadata(PageMetadataHelper.getVideoMetadata({\n content: video.data,\n regionAlternatives: regionAlternatives.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({\n stripPresentationSlug: true,\n customAppLink: VideoAppLinkHelper.getAppLink(video.data)\n }),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getContentHrefLang(regionAlternatives.data, (id: string, name: string) => ({\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ id, TextHelper.slugify(name) ]\n }))\n }));\n\n useHandleObjectError(video, videoErrors, { forbidden: true });\n useVideoMixin(relatedVideos.videos ?? []);\n useDeepLinks({ id: props.id, app: 'videos' });\n useCannotConsumeError(strippedVideo);\n\n async function checkAllCurriculums(): Promise<Presentation[]> {\n if (dataLoaded && curriculums.hasLoaded) {\n return await fetchAsync<Presentation[]>(ClassificationRequests.checkAllCurriculumsLinks(\n props.id,\n curriculums.availableCurriculums.map(c => c.id)\n ));\n }\n return [];\n }\n\n React.useEffect(() => {\n if (!video.data || !streamableLibrary.data)\n return;\n\n if (video.data.libraries?.data.find(library => library.id === streamableLibrary.data.objectId))\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ video.hasCompleted, streamableLibrary.hasCompleted ]);\n\n const dataLoaded = (\n video.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <PlayPage\n video={video.data}\n clips={clips.data?.data}\n interactives={interactives.data?.data}\n yearGroups={yearGroups.data}\n curriculums={curriculums}\n relatedVideos={relatedVideos}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n imageCdnUrl={config.data.imageCdnUrl}\n currentUser={currentUser.data}\n pointsOfInterest={pointsOfInterest.items}\n playNext={playNext}\n featureAccess={featureAccess}\n audiences={audiences.data}\n params={props.queryParams}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n tableOfContentsId={props.queryParams?.tocId}\n isPlugin={isPlugin}\n breadcrumbs={breadcrumbs}\n hasTopicDirectories={hasTopicDirectories}\n checkAllCurriculums={checkAllCurriculums}\n hasTranscript={hasPlayPageTranscript}\n />\n );\n}"],"names":["defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","map","chunk","responses","itemsArr","data","items","length","reduce","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","getKey","obj","fetchedItems","Set","setRequests","unfetchedItems","forEach","key","current","has","push","add","r","hasFirstRequestCompleted","hasCompleted","generateCacheKey","flightObjs","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","useBreadcrumbs","match","breadcrumbs","useBuilder","active","useVideoFeatureAccess","hasPermissions","hasLocalPermissions","hasNP","hasProduct","canViewGlance","canViewResources","canViewInteractives","canViewClips","canViewCurriculumLinks","canUseActions","canViewPublicLayout","canViewResourceItems","canNavigate","useVideoMixin","objects","options","currentUser","videoIds","filter","o","getValidObjects","v","ids","flightNamespace","isAuthenticated","getPhrase","videoErrors","PlayView","props","queryParams","context","contextId","playNext","mtv","u","setFavourite","canFavourite","fetchAsync","isPlugin","activePresentation","hasTopicDirectories","hasPlayPageTranscript","featureAccess","streamableLibrary","video","clips","interactives","config","yearGroups","customerId","audiences","shouldShowSideTableOfContents","strippedVideo","curriculums","relatedVideos","moviesAndTv","pointsOfInterest","regionAlternatives","name","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","stripPresentationSlug","customAppLink","allowIndexing","hrefLang","application","action","args","videos","app","libraries","find","library","objectId","dataLoaded","imageCdnUrl","params","canManageVideoAccess","tableOfContentsId","tocId","checkAllCurriculums","hasLoaded","availableCurriculums","c","hasTranscript","defaultProps"],"sourceRoot":""}
|