mig-schema-table 5.0.15 → 5.0.16
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/mig-schema-table.es.js +726 -721
- package/dist/mig-schema-table.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(D,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-window"),require("date-fns"),require("date-fns/locale"),require("mig-data-tools"),require("lodash"),require("react-datepicker"),require("react-select"),require("date-fns/locale/nl"),require("@date-fns/tz"),require("@floating-ui/react-dom"),require("react-window-infinite-loader"),require("file-saver")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom","react-window","date-fns","date-fns/locale","mig-data-tools","lodash","react-datepicker","react-select","date-fns/locale/nl","@date-fns/tz","@floating-ui/react-dom","react-window-infinite-loader","file-saver"],t):(D=typeof globalThis<"u"?globalThis:D||self,t(D["mig-schema-table"]={},D.jsxRuntime,D.React,D.ReactDOM,D.reactWindow,D.dateFns,D.locale,D.migDataTools,D.lodash,D.DatePicker,D.Select,D.nl,D.tz,D.reactDom,D.InfiniteLoader,D.fileSaver))})(this,(function(D,t,e,Mt,Je,Ve,Tt,W,ge,it,lt,at,Fe,je,Et,Dt){"use strict";function At(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const l in n)if(l!=="default"){const p=Object.getOwnPropertyDescriptor(n,l);Object.defineProperty(r,l,p.get?p:{enumerable:!0,get:()=>n[l]})}}return r.default=n,Object.freeze(r)}const Lt=At(e),Ge=(n,r)=>Ve.format(n,r,{locale:Tt.nl}).replace(".",""),It={"Europe/Amsterdam":"AMS","Europe/Berlin":"AMS","Asia/Jakarta":"JKT","Asia/Bangkok":"JKT",showingFilteredCountOfTotalCount:"Showing {0} of {1}"};function ct(n,...r){let l=It[n]||W.unCamel(n);return r.forEach((p,g)=>{l=l.replace(`{${g}}`,`${p}`)}),l}const R="SELECT_ALL_COLUMN_NAME",dt=40,He="dd MMM yyyy",Ae="dd MMM yyyy HH:mm",Xe=25,ut=50,ht=3;var fe=(n=>(n.GT="GT",n.LT="LT",n.EQ="EQ",n))(fe||{}),ke=(n=>(n.UNAVAILABLE="UNAVAILABLE",n.AVAILABLE="AVAILABLE",n.ACTIVE="ACTIVE",n))(ke||{});const xe=Lt.createContext({checkedIndexes:[],columnNames:[],columnWidths:new Uint16Array,config:{},disabledCheckedIndexes:[],dropTargetIndex:-1,isColumnFilterable:!1,isItemLoaded:()=>!1,isSortable:!1,properties:{},required:[],setCustomColumnNames:W.emptyFn,setCustomColumnWidths:W.emptyFn,setDropTargetIndex:W.emptyFn,setFilterSortColumn:W.emptyFn,setLastCheckChangedRowIndex:W.emptyFn,setMenuConfig:W.emptyFn,tableDataState:{searchQuery:"",columnFilterMap:{},sortColumn:"",sortAsc:!1},translate:W.emptyFn}),Nt={type:"boolean"},St=({columnIndex:n,rowIndex:r,style:l})=>{const{checkedIndexes:p,columnNames:g,config:f,disabledCheckedIndexes:S,displayTimezone:C,getRowClassName:j,getRowSelected:O,isItemLoaded:A,lastCheckChangedRowIndex:F,onRowClick:M,onRowDoubleClick:w,properties:$,setCheckedIndexes:H,setLastCheckChangedRowIndex:te,sortedRenderData:T,sourceData:d,translate:a}=e.useContext(xe),o=g[n],_=o===R?Nt:$[o],Q=f?f[o]:void 0,ne=e.useCallback(v=>{H&&H(N=>N&&N.includes(v)?N.filter(E=>E!==v):N?[...N,v]:[v])},[H]),de=A(r),re=e.useCallback(v=>{if(!d||!T||!M||!de)return;const{rowIndex:N}=v.currentTarget.dataset;if(!N)return;const k=T[parseInt(N,10)];M(d[k._index],k._index,v)},[de,M,T,d]),y=e.useCallback(v=>{if(!d||!T||!w||!A)return;const{rowIndex:N}=v.currentTarget.dataset;if(!N)return;const k=T[parseInt(N,10)];w(d[k._index],k._index,v)},[A,w,T,d]),I=T?T[r]:void 0,{showTimezones:le,TdBody:Y}=Q||{},se=e.useMemo(()=>C?null:W.timeZone.startsWith("Europe/")?"Asia/Jakarta":"Europe/Amsterdam",[C]),q=e.useMemo(()=>{if(!I||!T)return;let v=o===R?void 0:I[o];if(_?.format&&_.format==="date-time"&&le!==!1){const k=d?d[I._index]:void 0,E=k?k[o]:void 0,oe=E?new Date(E):void 0;oe&&se&&(v=`${W.localeFormatInTimeZone(oe,se,Ae)} (${a(se)})`)}const N=["mig-schema-table__td",`mig-schema-table__td--${r%2?"odd":"even"}`,`mig-schema-table__td--prop-${o}`];switch(d&&O&&O(d[I._index],I._index)&&N.push("mig-schema-table__td--selected"),d&&j&&N.push(j(d[I._index],I._index,T)),_?.type){case"boolean":N.push(`text-${Q?.align||"center"}`);break;case"number":case"integer":N.push(`text-${Q?.align||"end"}`);break;default:Q?.align&&N.push(`text-${Q.align}`)}return{"data-row-index":r,"data-column-index":n,style:l,className:N.join(" "),title:v,onClick:o===R?void 0:re,onDoubleClick:o===R?void 0:y}},[I,T,o,_,le,r,d,O,j,n,l,re,y,se,a,Q]),G=e.useCallback(v=>{if(!ne||!I)return;const N=parseInt(v.currentTarget.dataset.rowIndex);if(v.shiftKey&&F!==void 0){const k=p?.includes(F)?F:void 0;if(k!==void 0&&T){const E=r;for(const oe of ge.range(E>k?k+1:E,E>k?E+1:k)){const Me=T[oe]._index;(!S||!S.includes(Me))&&ne(Me)}}}else ne(I._index);te(N),ye.current?.focus()},[p,S,F,ne,I,r,te,T]),ye=e.useRef(null);if(!I||!q)return null;if(!A||d&&!d[I._index])return t.jsx("div",{...q,children:"loading"});if(o===R)return t.jsx("div",{...q,onMouseDown:G,children:t.jsx("div",{style:{textAlign:"center"},children:t.jsx("input",{ref:ye,type:"checkbox",readOnly:!0,checked:p?.includes(I._index),disabled:S?.includes(I._index)})})});if(Y&&d)return t.jsx("div",{...q,children:t.jsx(Y,{dataIndex:I._index,rowData:d[I._index],rowIndex:r,...Q?.tdBodyProps})});const X=I[o];return _?.format==="url"&&X?t.jsx("a",{href:X,target:"_blank",rel:"noopener noreferrer",...q,children:X}):t.jsx("div",{...q,children:X})},ft=e.memo(St);function Ot(){const{checkedIndexes:n,disabledCheckedIndexes:r,sortedRenderData:l}=e.useContext(xe);return e.useMemo(()=>{const p=[...l||[]].filter(g=>(n?n.includes(g._index):!0)||(r?!r.includes(g._index):!0));return n?.length!==0&&p.length===n?.length},[n,r,l])}function mt(n,r,l){return!!(n&&l?.isSortable!==!1&&(r||l?.renderData||l?.sort))}function bt(){const{setCustomColumnWidths:n,settingsStorageKey:r}=e.useContext(xe);return e.useCallback(l=>{r&&localStorage.setItem(`${r}.columnWidths`,JSON.stringify(Array.from(l))),n(l)},[n,r])}const $t=({index:n,style:r})=>{const{checkedIndexes:l,columnNames:p,columnWidths:g,config:f,disabledCheckedIndexes:S,dropTargetIndex:C,isColumnFilterable:j,isSortable:O,setCheckedIndexes:A,properties:F,required:M,setCustomColumnNames:w,setDropTargetIndex:$,setFilterSortColumn:H,setMenuConfig:te,settingsStorageKey:T,tableDataState:d,sortedRenderData:a,translate:o,displayTimezone:_}=e.useContext(xe),[Q,ne]=e.useState(!1),de=n===C,re=bt(),y=p[n],I=y===R?{type:"boolean"}:F[y],le=d.sortColumn===y?d.sortAsc:void 0,Y=f?f[y]:void 0;let se=j&&(I||Y?.FilterMenu)&&Y?.isFilterable!==!1?ke.AVAILABLE:ke.UNAVAILABLE;d.columnFilterMap&&d.columnFilterMap[y]!==void 0&&(se=ke.ACTIVE);const q=mt(O,I,Y),G=["mig-schema-table__th",`mig-schema-table__th--filter-${se}`,`mig-schema-table__th--prop-${y}`];G.push(q?"mig-schema-table__th--sortable":"mig-schema-table__th--unsortable"),le!==void 0&&G.push("mig-schema-table__th--sorted"),Q&&G.push("mig-schema-table__th--dragging"),de&&G.push("mig-schema-table__th--drop-target");const{format:ye}=I||{},{align:X,defaultSortDesc:v,showTimezones:N=!_,title:k}=Y||{},E=e.useCallback(()=>{if(q){if(le===void 0){H(y,!v);return}H(y,!le)}},[q,v,y,H,le]),oe=M.includes(y),Me=e.useCallback(z=>{const me=z.currentTarget;te(ve=>{if(ve?.propName!==y)return{propConfig:Y,propIsRequired:oe,propName:y,referenceElement:me}})},[Y,oe,y,te]),we=e.useMemo(()=>k!==void 0?k:ye==="date-time"&&N?`${o(y)} (${o(_||W.timeZone)})`:o(y),[k,ye,N,o,y,_]),ie=e.useCallback((z,me)=>{if(!p||!g)return;const ve=p.indexOf(z),J=[...p];J.splice(ve,1);const x=J.indexOf(me);J.splice(x+1,0,z),w(J);const _e=[...g],be=_e[ve];_e.splice(ve,1),_e.splice(x+1,0,be),re(new Uint16Array(_e)),T&&localStorage.setItem(`${T}.columnNames`,JSON.stringify(J))},[p,g,re,T,w]),Le=e.useCallback(z=>{ie&&(ne(!0),z.dataTransfer.effectAllowed="move",z.dataTransfer.dropEffect="move",z.dataTransfer.setData("text/plain",y))},[ie,y]),We=e.useCallback(()=>{ie&&(ne(!1),$(-1))},[ie,$]),Ye=e.useCallback(z=>{ie&&(z.preventDefault(),$(n))},[n,ie,$]),Ke=e.useCallback(z=>{if($(-1),!ie||!y)return;const me=z.dataTransfer.getData("text/plain");!me||me===y||ie(me,y)},[ie,y,$]),Ie=Ot(),Re=e.useCallback(()=>{!A||!a||A(Ie?[]:a.map(z=>z._index).filter(z=>!S?.includes(z)))},[A,a,Ie,S]);if(y===R)return t.jsx("div",{style:r,className:G.join(" "),children:t.jsx("div",{style:{width:"100%",textAlign:"center"},title:`${l?.length||0} selected`,children:t.jsx("input",{type:"checkbox",name:"selectAll",checked:Ie,onChange:Re})})});switch(I?.type){case"boolean":G.push(`text-${X||"center"}`,`justify-content-${X||"center"}`);break;case"integer":case"number":G.push(`text-${X||"end"}`,`justify-content-${X||"end"}`);break;default:X&&G.push(`text-${X}`)}let U=Y?.hoverTitle;return!U&&typeof we=="string"&&(U=we),t.jsxs("div",{className:G.join(" "),style:r,title:U,draggable:!0,onDragStart:Le,onDragEnd:We,onDragOver:Ye,onDrop:Ke,children:[t.jsxs("div",{className:"mig-schema-table__th__label-body",style:{lineHeight:"44px"},onClick:E,children:[t.jsx("span",{className:"mig-schema-table__th__label-body-text",children:we}),le===void 0?null:t.jsx("span",{className:"mig-schema-table__th__sort-icon",children:le?"↓":"↑"})]}),q||se!==ke.UNAVAILABLE?t.jsx("button",{className:"mig-schema-table__th__trigger-el",onClick:Me,children:t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"#404040",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsx("polyline",{points:"6 9 12 15 18 9"})})}):null]})},pt=e.memo($t),Ft={[fe.GT]:">",[fe.LT]:"<",[fe.EQ]:"="},jt=e.memo(({columnFilterValue:n,onChange:r,onInputKeyDown:l,propIsRequired:p,propName:g,propSchema:f,translate:S})=>{const{displayTimezone:C}=e.useContext(xe),{type:j,format:O,minimum:A,maximum:F}=f||{},M=n,w=O==="date-time";let $,H;switch(j){case"number":case"integer":return $=M||{},H=(d,a,o)=>{const _={...$,[d]:a.value===""?void 0:parseInt(a.value)},Q=Object.values(_).find(ne=>isFinite(ne));r(Q!==void 0&&(A===void 0||Q>=A)?_:void 0,o)},t.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[p?null:t.jsxs("li",{style:{padding:8},children:[t.jsxs("label",{className:"d-flex",children:[t.jsx("input",{type:"checkbox",style:{marginRight:14},checked:!!$.filterEmpty,onChange:()=>{const{filterEmpty:d,...a}=$;d||(a.filterEmpty=!0),r(Object.keys(a).length?a:void 0,!0)}}),"Hide empty values"]}),t.jsx("hr",{})]}),Object.keys(fe).map(d=>{const a=$[d];return t.jsxs("li",{children:[t.jsx("label",{style:{width:40,paddingLeft:16},children:Ft[d]}),t.jsx("input",{className:"form-control",style:{width:120},type:"number",value:a!==void 0?a:"","data-prop-name":g,onChange:o=>{H(d,o.currentTarget,!1)},onBlur:o=>{H(d,o.currentTarget,!0)},onKeyDown:l,min:A,max:F})]},d)})]});case"boolean":const te=[{value:"✓",label:"✓"},{value:"✕",label:"✕"}];p||te.push({value:"?",label:"?"});let T=null;return M===!0?T={value:"✓",label:"✓"}:M===!1?T={value:"✕",label:"✕"}:M===null&&(T={value:"?",label:"?"}),t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx(lt,{autoFocus:!0,menuIsOpen:!0,isClearable:!0,placeholder:S("All"),className:"react-select-container",classNamePrefix:"react-select",value:T,options:te,styles:{menu:d=>({...d,marginTop:0})},onChange:d=>{if(!d){r(void 0,!0);return}switch(d.value){case"✓":r(!0,!0);break;case"✕":r(!1,!0);break;case"?":r(null,!0);break;default:r(void 0,!0)}},onKeyDown:l})})});case"string":if(f?.enum){const d=f.enum.map(o=>({value:o,label:S(o)})),a=d.filter(o=>(M||[]).includes(o.value));return t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx(lt,{isMulti:!0,autoFocus:!0,menuIsOpen:!0,className:"react-select-container",classNamePrefix:"react-select",value:a,options:d,styles:{menu:o=>({...o,marginTop:0})},onChange:o=>{const _=o?o.map(Q=>Q.value):[];r(_.length?_:void 0,!0)},onKeyDown:l,placeholder:S("Select...")})})})}if(w||O==="date"){const d=w?Ae:He,a=n||{from:void 0,to:void 0,filterEmpty:void 0};return t.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[p?null:t.jsxs("li",{style:{padding:8},children:[t.jsxs("label",{className:"d-flex",children:[t.jsx("input",{type:"checkbox",checked:!!a.filterEmpty,onChange:()=>{const{filterEmpty:o,..._}=a;o||(_.filterEmpty=!0),r(Object.keys(_).length?_:void 0,!0)}}),"Hide empty values"]}),t.jsx("hr",{})]}),t.jsxs("li",{style:{padding:8},children:[t.jsx("label",{style:{width:120,paddingLeft:4},children:"After"}),t.jsx(it,{dateFormat:d,"data-prop-name":g,locale:at.nl,selected:a.from?new Fe.TZDate(a.from).withTimeZone(C||W.timeZone):null,onChange:o=>{if(!o&&!a.to){r(void 0,!0);return}if(a.to&&o&&o>a.to)return;const _=o?Fe.TZDate.tz(C||W.timeZone,o):void 0;r({...n,from:_},!0)},placeholderText:d,isClearable:!0,selectsStart:!0,showTimeSelect:w,showTimeInput:w,showMonthDropdown:!0,showYearDropdown:!0,timeIntervals:15,shouldCloseOnSelect:!w})]}),t.jsxs("li",{style:{padding:8},children:[t.jsx("label",{style:{width:120,paddingLeft:4},children:"Before"}),t.jsx(it,{id:"filter-date",dateFormat:d,"data-prop-name":g,locale:at.nl,selectsEnd:!0,selected:a.to?new Fe.TZDate(a.to).withTimeZone(C||W.timeZone):null,showMonthDropdown:!0,showYearDropdown:!0,onChange:o=>{if(!o&&!a.from){r(void 0,!0);return}const _=o?w?Fe.TZDate.tz(C||W.timeZone,o):Ve.endOfDay(o):void 0;a.from&&_&&_<a.from||r({...n,to:_},!0)},placeholderText:d,isClearable:!0,startDate:a.from,endDate:a.to,showTimeInput:w,showTimeSelect:w,timeIntervals:15,shouldCloseOnSelect:!w})]})]})}default:return t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx("input",{autoFocus:!0,type:"search",className:"form-control",placeholder:`Search ${g}`,"aria-label":`Search ${g}`,value:Array.isArray(M)?M.join(", "):M||"","data-prop-name":g,onChange:d=>{const a=d.currentTarget.value,o=a?a.split(",").map(_=>_.trim()):[];r((o.length>1?o:o[0])||void 0,!1)},onKeyDown:l,onBlur:d=>{const a=d.currentTarget.value,o=a?a.split(",").map(_=>_.trim()):[];r((o.length>1?o:o[0])||void 0,!0)}})})})}}),Wt=({isSortable:n,isFilterable:r,onChange:l,onClose:p,onInputKeyDown:g,propConfig:f,propIsRequired:S,propName:C,propSchema:j,referenceElement:O,setFilterSortColumn:A,translate:F,value:M})=>{const w=je.useFloating({placement:"bottom-start",elements:{reference:O},middleware:[je.flip()]}),$=je.useFloating({placement:"right-start",middleware:[je.flip()]});e.useEffect(()=>{const a=o=>{if(!w.elements.floating)return;let _=o.target;for(;_&&w.elements.floating;){if(_===w.elements.floating||_===$.elements.floating)return;_=_.parentNode===window.document?null:_.parentNode}p(o)};return window.addEventListener("click",a,{capture:!0}),()=>{window.removeEventListener("click",a,{capture:!0})}},[w.elements.floating,p,$.elements.floating]);const H=f?.FilterMenu||jt,te=e.useCallback(a=>{A(C,!0),p(a)},[p,C,A]),T=e.useCallback(a=>{A(C,!1),p(a)},[p,C,A]),d=e.useCallback(()=>{l(void 0,!0)},[l]);return!n&&!r?null:t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu",ref:w.refs.setFloating,style:w.floatingStyles,children:t.jsxs("ol",{className:"mig-schema-table-menu",children:[n?t.jsxs("li",{onClick:te,style:{padding:8},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↓"})," ",F("sortAscending")]}):null,n?t.jsxs("li",{onClick:T,style:{padding:8},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↑"})," ",F("sortDescending")]}):null,r?t.jsxs("li",{style:{padding:8},onMouseOver:a=>{$.refs.setReference(a.currentTarget)},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:t.jsx("input",{type:"checkbox",id:"mig-schema-table__th-menu__filters",checked:M!==void 0,disabled:M===void 0,onChange:d})}),t.jsx("label",{htmlFor:"mig-schema-table__th-menu__filters",children:F("filters")}),t.jsx("div",{className:"mig-schema-table__th-menu__sub-menu-indicator"})]}):null]})}),$.elements.reference?t.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu__sub-menu",ref:$.refs.setFloating,style:$.floatingStyles,children:t.jsx(H,{columnFilterValue:M,onChange:l,onInputKeyDown:g,propIsRequired:S,propName:C,propSchema:j,translate:F})}):null]})},Bt=e.memo(Wt),zt=({columnWidths:n,resizeColumnIndex:r,setResizeColumnIndex:l,tableBodyHeight:p})=>{const[g,f]=e.useState(0),S=bt(),C=e.useCallback(F=>{const M=n.map((w,$)=>$===r?Math.max(w+F,Xe):w);S(M)},[n,r,S]);let j=0;const O=e.useCallback(F=>{l(parseInt(F.currentTarget.dataset.columnIndex)),f(F.clientX)},[l]),A=e.useCallback(F=>{C(F.clientX-g),f(0),l(-1)},[g,C,l]);return t.jsx("div",{children:[...n].map((F,M)=>{j+=F;const w=["mig-schema-table__column_resizer"];return M===r&&w.push("mig-schema-table__column_resizer--dragged"),t.jsx("div",{style:{left:j-ht,bottom:p},className:w.join(" "),draggable:"true","data-column-index":M,onDragStart:O,onDragEnd:A},M)})})},gt=n=>{const[r,l]=e.useState({width:0,height:0}),p=e.useMemo(()=>ge.debounce(l,100),[]);return e.useEffect(()=>{if(!n)return;const g=new ResizeObserver(f=>{for(const S of f){const{blockSize:C,inlineSize:j}=S.borderBoxSize[0];p(O=>j&&C&&(O.width!==j||O.height!==C)?{width:j,height:C}:O)}});return g.observe(n),()=>{g.disconnect()}},[p,n]),r},Qt=()=>new Promise((n,r)=>{if(window.ExcelJS){n(window.ExcelJS);return}const l=document.createElement("script");l.src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.4.0/exceljs.bare.min.js",l.onload=()=>{n(window.ExcelJS)},l.onerror=()=>{r(new Error("Failed to load ExcelJS library"))},document.head.appendChild(l)}),qt=async n=>{const{Workbook:r}=await Qt(),l=new r,p=l.addWorksheet("Data");n.length&&(p.addRow(ge.difference(Object.keys(n[0]),["_index","SELECT_ALL_COLUMN_NAME"])),p.getRow(1).font={bold:!0},p.addRows(n.map(g=>{const{_index:f,SELECT_ALL_COLUMN_NAME:S,...C}=g;return Object.values(C)})),l.xlsx.writeBuffer().then(g=>{const f=new Blob([g],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Dt.saveAs(f,"export.xlsx")}).catch(g=>{console.error("Error generating Excel file:",g)}))},_t=new Date("1000-01-01 00:00:00Z"),Ut=new Intl.NumberFormat("nl-NL"),Zt=new Intl.NumberFormat("nl-NL",{style:"currency",currency:"EUR"});function Pt(n,r){const{TdBody:l,sortByValue:p}=r||{};if(p!==void 0)return p;if(!n)return!1;const{format:g,type:f}=n;return g?.startsWith("date")||f==="boolean"||f==="integer"||f==="number"||!!l}const Jt=({CustomElement:n,CustomSearchInput:r,Heading:l=Je.VariableSizeList,autoRender:p,checkedIndexes:g,config:f,customElementProps:S,data:C,defaultColumnFilters:j,defaultSortAsc:O=!1,defaultSortColumn:A,disabledCheckedIndexes:F,displayTimezone:M,enableAutoFocus:w=!0,enableRowCounter:$=!0,getRowClassName:H,getRowSelected:te,getSearchQueryFilterResult:T,infiniteLoaderRef:d,isColumnFilterable:a=!0,isExportable:o=!0,isResizable:_=!0,isSearchable:Q=!0,isSortable:ne=!0,itemCount:de,loadMoreItems:re,maxHeight:y,onRowClick:I,onRowDoubleClick:le,onSearchEnter:Y,onTableDataStateChange:se,rowHeight:q=36,schema:G,searchPlaceholder:ye,setCheckedIndexes:X,settingsStorageKey:v,style:N,translate:k=ct,useFilterStateHash:E,width:oe},Me)=>{const[we,ie]=e.useState(),[Le,We]=e.useState(),[Ye,Ke]=e.useState(-1),[Ie,Re]=e.useState(-1),[U,z]=e.useState(),[me,ve]=e.useState(),J=C instanceof Function,[x,_e]=e.useState(J?void 0:C),[be,et]=e.useState(),[c,Te]=e.useState({searchQuery:"",columnFilterMap:j||{},sortColumn:A,sortAsc:O}),[Z,Xt]=e.useState(E?W.parseLocationHash(window.location.hash):null);e.useEffect(()=>{J||_e(C)},[C,J]),e.useEffect(()=>{!J||x!==void 0||C(Z&&Object.keys(Z).length!==0?{...Z,columnFilterMap:Z.columnFilterMap||{}}:c).then(_e)},[C,J,Z,x,c]),e.useEffect(()=>{be||et(c)},[c,be]),e.useEffect(()=>{if(!E)return;const s=()=>{Xt(W.parseLocationHash(window.location.hash))};return window.addEventListener("hashchange",s),()=>{window.removeEventListener("hashchange",s)}},[E]),e.useEffect(()=>{if(!E)return;const{columnFilterMap:s,searchQuery:u,sortAsc:h,sortColumn:i}=Z||{},m={searchQuery:u||"",columnFilterMap:s||j||{},sortAsc:h===void 0?O:h,sortColumn:i===void 0?A:i};Te(L=>ge.isEqual(m,L)?L:m)},[Z,E,j,O,A]),e.useEffect(()=>{se&&se(c)},[se,c]);const Be=e.useRef(null),Ct=e.useRef(null),yt=e.useRef(null),ze=gt(Ct.current),wt=gt(yt.current),Ne=e.useMemo(()=>oe||Math.floor(ze.width||0),[ze.width,oe]),Se=e.useMemo(()=>!ge.isEqual(c,be)&&J,[c,be,J]),{properties:ae,required:Yt}=e.useMemo(()=>({properties:{},required:[],...G}),[G]),Qe=v?localStorage.getItem(`${v}.columnNames`):null,qe=v?localStorage.getItem(`${v}.columnWidths`):null,ee=e.useMemo(()=>{if(we)return we;const s=Qe?JSON.parse(Qe):void 0;let u=Object.keys(ae);if(X&&u.unshift(R),f){Object.keys(f).forEach(i=>{u.includes(i)||u.push(i)});const h=Object.entries(f).reduce((i,[m,L])=>(L.hidden&&i.push(m),i),[]);u=u.filter(i=>!h.includes(i)).sort((i,m)=>{let L=f[i]?f[i].order:void 0;L===void 0&&(L=Object.keys(ae).findIndex(K=>K===i));let b=f[m]?f[m].order:void 0;return b===void 0&&(b=Object.keys(ae).findIndex(K=>K===m)),m===R||i===R?0:L===-1?1:b===-1?-1:L-b})}return s?.length===u.length?s:u},[f,we,X,ae,Qe]),Ue=e.useMemo(()=>x&&ee?x.map((s,u)=>ee.reduce((h,i)=>{const m=ae[i],L=f?f[i]:void 0;if(L?.renderData)return h[i]=L.renderData(s,u),h;if(!m||i===R)return h[i]="",h;const b=s?s[i]:"";switch(m.type){case"array":return h[i]=m.items?.type==="string"&&b?b.map(K=>k(K)).join(", "):JSON.stringify(b),h;case"boolean":return h[i]=b===void 0?"?":b?"✓":"✕",h;case"number":case"integer":return b===void 0?(h[i]="",h):(h[i]=m.format==="currency"?Zt.format(b):Ut.format(b),h);case"string":if(m.format==="date"&&b)return h[i]=["2999-12-31","1970-01-01"].includes(b)?"-":Ge(new Date(b),L?.dateFormat||He),h;if(m.format==="date-time"&&b)return h[i]=M?W.localeFormatInTimeZone(new Date(b),M,Ae):Ge(new Date(b),L?.dateFormat||Ae),h;if(m.enum)return h[i]=b?k(b):"",h;default:return h[i]=b?`${b}`:"",h}},{_index:u})):void 0,[x,ee,ae,f,k,M]),Ee=ee?ee.length:0,{dynamicWidthColumnCount:tt,fixedWidthColumnsWidth:nt}=e.useMemo(()=>{let s=0,u=0;return(ee||[]).forEach(h=>{if(h===R){s+=dt;return}const i=f?f[h]:void 0;i?.width?s+=i.width:u+=1},0),{dynamicWidthColumnCount:u,fixedWidthColumnsWidth:s}},[ee,f]),ce=e.useMemo(()=>{if(Le)return new Uint16Array(Le);const s=qe?new Uint16Array(JSON.parse(qe)):void 0,u=Math.max(Math.floor((Ne-nt)/tt),Xe);let h=(Ne-nt)%tt;const i=new Uint16Array(ee.map(m=>{if(m===R)return dt;const L=f?f[m]:void 0;return L?.width?L?.width:h?(h-=1,u+1):u}));return s?.length===i.length?s:i},[ee,f,Le,tt,nt,qe,Ne]),Ze=e.useCallback(s=>ce?ce[s]:1,[ce]),Oe=e.useMemo(()=>{if(!Ue||!a&&!Q||J)return Ue;const{searchQuery:s}=c,u=s.toLowerCase()||"",h=i=>x&&T?T(x[i._index],s):!(ee&&!ee.find(m=>`${i[m]}`.toLowerCase().includes(u)));return Ue.filter(i=>{let m=h(i);return!m||!c.columnFilterMap?!1:(Object.entries(c.columnFilterMap).forEach(([L,b])=>{if(!m||b===void 0)return;const K=f?f[L]:void 0;if(x&&K?.filter){m=K.filter(x[i._index],b);return}const he=ae[L],B=x[i._index]?.[L];switch(he?.type){case"boolean":case"number":case"integer":if(b&&typeof b=="object"){b.filterEmpty&&B===void 0&&(m=!1);for(const P of Object.keys(fe)){const pe=b[P];if(m&&ge.isFinite(pe))switch(P){case fe.EQ:B!==pe&&(m=!1);break;case fe.GT:B<=pe&&(m=!1);break;case fe.LT:B>=pe&&(m=!1);break}}}else{if(B===void 0&&b===null)return!0;m=B===b}break;case"string":if(typeof b=="object"&&!Array.isArray(b)&&(he.format==="date"||he.format==="date-time")){const{from:P,to:pe,filterEmpty:xt}=b;if(!B)m=!xt;else{const Pe=B?new Date(B):void 0;(xt===!1||P&&(!Pe||Pe<P)||pe&&(!Pe||Pe>pe))&&(m=!1)}return}default:if(he?.enum){Array.isArray(b)?m=b.includes(B):m=B===b;return}if(Array.isArray(b)){const P=`${i[L]}`.toLowerCase();m=b.some(pe=>P.includes(`${pe}`.toLowerCase()))}else m=`${i[L]}`.toLowerCase().includes(`${b}`.toLowerCase())}}),m)})},[Ue,a,Q,J,c,T,ee,f,x,ae]),V=e.useMemo(()=>{const{sortAsc:s,sortColumn:u}=c;if(!u||!Oe||!x||J)return Oe;const h=ae[u],i=f?f[u]:void 0,m=i?.sort;if(m)return Oe.sort((K,he)=>{const B=x[K._index],P=x[he._index];return B?P?m(B,P,s===void 0?O:s):-1:1});const L=h&&h.format?.startsWith("date"),b=Pt(h,i);return Oe.sort((K,he)=>{let B=b&&x[K._index]?x[K._index][u]:`${K[u]}`.toLowerCase(),P=b&&x[he._index]?x[he._index][u]:`${he[u]}`.toLowerCase();return b&&L&&(B=new Date(B),isNaN(B.getTime())&&(B=_t),P=new Date(P),isNaN(P.getTime())&&(P=_t)),B===P?0:B?P?(B<P?1:-1)*(s?-1:1):s?1:-1:s?-1:1})},[f,O,Oe,J,ae,x,c]);e.useImperativeHandle(Me,()=>({getFilteredSortedData:()=>V,scrollToIndex:s=>{const u=Be?.current,h=V?.findIndex(i=>i._index===s)||-1;u&&h>=0&&u.scrollToItem({rowIndex:h})}}),[V,Be]);const vt=e.useCallback(s=>{const u={...c.columnFilterMap};delete u[s],Te({...c,columnFilterMap:u})},[c]),rt=e.useCallback((s,u)=>{if(E){window.location.hash=W.serializeLocationHash({...Z,sortColumn:s,sortAsc:u});return}Te({...c,sortColumn:s,sortAsc:u})},[c,Z,E]),Kt=e.useCallback(s=>{Te({...c,searchQuery:s.currentTarget.value})},[c]),De=e.useCallback(()=>{et(c),_e(void 0)},[c]);e.useEffect(()=>{if(!p||!Z||!be||!E)return;const s=Object.keys(Z);let u=!1;for(const h of s){const i=Z[h],m=be[h];if(typeof i=="string"&&i!==m){u=!0;break}if(typeof i=="object"&&!ge.isEqual(i,m)){u=!0;break}}u&&De()},[p,Z,be,De,E]);const kt=e.useCallback(s=>{s.key==="Enter"&&(z(void 0),Se&&!E&&De(),Y&&s.currentTarget.className==="mig-schema-table__search"&&Y(c.searchQuery||""))},[Se,c.searchQuery,Y,De,E]),st=e.useCallback(()=>q,[q]),ue=e.useMemo(()=>ge.sum(ce),[ce]),$e=e.useMemo(()=>V?V.length:0,[V]),Ce=e.useMemo(()=>{const s=q*$e;let u;if(y&&(u=y==="100%"?ze.height:y,!u))return 0;const h=u?u-wt.height-ut:0;return h&&h<s?h:s},[q,$e,y,wt,ze.height]),Rt=e.useCallback(s=>{z(void 0),s.preventDefault(),s.stopPropagation()},[]),en=e.useCallback((s,u)=>{if(!U)return;if(E&&u!==!1){window.location.hash=W.serializeLocationHash({...Z,columnFilterMap:{...c.columnFilterMap,[U.propName]:s}});return}if(s===void 0){vt(U.propName);return}const h={...c.columnFilterMap,[U.propName]:s};Te({...c,columnFilterMap:h})},[vt,c,Z,U,E]),tn=e.useCallback(()=>{const s={searchQuery:"",columnFilterMap:{},sortColumn:A,sortAsc:O};E&&(window.location.hash=W.serializeLocationHash(s)),et(s),Te(s)},[E,O,A]),nn=e.useCallback(()=>{const s=Z?.searchQuery||"";E&&(c.searchQuery||s)&&c.searchQuery!==s&&(window.location.hash=W.serializeLocationHash({...Z,searchQuery:c.searchQuery}))},[Z,c.searchQuery,E]),rn=e.useCallback(async s=>{s.preventDefault(),s.stopPropagation(),V&&await qt(V)},[V]),sn=e.useCallback(()=>{v&&(localStorage.removeItem(`${v}.columnNames`),localStorage.removeItem(`${v}.columnWidths`),ie(void 0),We(void 0))},[v]),ot=e.useCallback(s=>{if(!V||!x||!re||!de)return!0;const u=V[s];return u&&x[u._index]!==void 0},[de,re,V,x]),on=e.useMemo(()=>Ce?!(x&&!Se)&&!re?t.jsx("div",{style:{width:ue,height:Math.max(50,Ce),border:"1px solid #BBB",textAlign:"center",display:"flex",backgroundColor:"#CCC",alignItems:"center",justifyContent:"center"},children:Se?t.jsx("button",{onClick:De,className:"btn border",children:"Refresh data"}):t.jsx("div",{children:"⌛ Loading..."})}):re&&de?t.jsx(Et,{ref:d,isItemLoaded:ot,itemCount:de,loadMoreItems:re,children:({onItemsRendered:u,ref:h})=>t.jsx(Je.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:q,height:Ce,width:ue,columnWidth:Ze,rowHeight:st,columnCount:Ee,rowCount:$e,ref:h,onItemsRendered:({overscanRowStartIndex:i,overscanRowStopIndex:m,visibleRowStartIndex:L,visibleRowStopIndex:b})=>u({overscanStartIndex:i,overscanStopIndex:m,visibleStartIndex:L,visibleStopIndex:b}),children:ft},`tbody_${Ce}_${ue}_${c.sortColumn}_${c.sortAsc}_${c.searchQuery}_${Ee}_${ce.join(" ")}`)}):t.jsx(Je.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:q,height:Ce,width:ue,columnWidth:Ze,rowHeight:st,columnCount:Ee,rowCount:$e,ref:Be,children:ft},`tbody_${Ce}_${ue}_${c.sortColumn}_${c.sortAsc}_${c.searchQuery}_${Ee}_${ce.join(" ")}`):null,[Ee,ce,Ze,st,d,Se,ot,de,re,De,$e,q,ue,c.searchQuery,c.sortAsc,c.sortColumn,x,Ce,Be]),ln=e.useMemo(()=>({...N,width:oe?Math.min(ue,Ne):void 0,height:y==="100%"?"100%":void 0,maxHeight:y==="100%"?"100%":void 0}),[y,ue,N,Ne,oe]),an=r||"input";return t.jsx(xe.Provider,{value:{checkedIndexes:g,columnNames:ee,columnWidths:ce,config:f,disabledCheckedIndexes:F,displayTimezone:M,dropTargetIndex:Ie,getRowClassName:H,getRowSelected:te,isColumnFilterable:a,isItemLoaded:ot,isSortable:ne,lastCheckChangedRowIndex:me,onRowClick:I,onRowDoubleClick:le,properties:ae,required:Yt,setCheckedIndexes:X,setCustomColumnNames:ie,setCustomColumnWidths:We,setDropTargetIndex:Re,setFilterSortColumn:rt,setLastCheckChangedRowIndex:ve,setMenuConfig:z,settingsStorageKey:v,sortedRenderData:V,sourceData:x,tableDataState:c,translate:k||ct},children:t.jsxs("div",{className:`mig-schema-table${I?" mig-schema-table--clickable-rows":""}`,ref:Ct,style:ln,role:"table",children:[t.jsxs("div",{className:"mig-schema-table__action-container",ref:yt,children:[t.jsx("div",{children:Q?t.jsx(an,{className:"mig-schema-table__search",type:"search",name:"search",autoComplete:"off",placeholder:ye||k("search..."),value:c.searchQuery,onChange:Kt,onKeyDown:kt,autoFocus:w,onBlur:nn}):null}),n?t.jsx(n,{...S,renderData:V}):t.jsx("div",{className:"mig-schema-table__custom_element_placeholder"}),$&&Array.isArray(C)?t.jsx("span",{className:"mig-schema-table__row_counter",children:k("showingFilteredCountOfTotalCount",V?.length||0,C.length)}):null,o?t.jsx("button",{onClick:rn,style:{marginLeft:8},disabled:!V?.length,children:k("exportData")}):null,Q||a?t.jsx("button",{onClick:tn,style:{marginLeft:8},disabled:c.columnFilterMap&&c.searchQuery?Object.keys(c.columnFilterMap).length+c.searchQuery.length===0:!1,children:k("clearFilters")}):null,v?t.jsx("button",{onClick:sn,style:{marginLeft:8},disabled:!Qe&&!qe,children:k("clearSettings")}):null]}),t.jsxs("div",{className:"mig-schema-table__column_resize_container",children:[t.jsx(l,{height:ut,itemCount:Ee,itemSize:Ze,layout:"horizontal",width:ue,sortAsc:c.sortAsc,setFilterSortColumn:rt,sortColumn:c.sortColumn,sortedRenderData:V,className:"mig-schema-table__th-row",children:pt},`thead_${ue}_${c.sortColumn}_${c.sortAsc}_${c.searchQuery}_${ce.join(" ")}`),on,_?t.jsx(zt,{columnWidths:ce,resizeColumnIndex:Ye,setResizeColumnIndex:Ke,tableBodyHeight:Ce}):null]}),x&&x.length===0?t.jsx("div",{className:"mig-schema-table__no_data",children:"No data found"}):null,U?Mt.createPortal(t.jsx(Bt,{isFilterable:a&&U.propConfig?.isFilterable!==!1,isSortable:mt(ne,G.properties[U.propName],U.propConfig),onChange:en,onClose:Rt,onInputKeyDown:kt,propConfig:U.propConfig,propIsRequired:U.propIsRequired,propName:U.propName,propSchema:G.properties[U.propName],referenceElement:U.referenceElement,setFilterSortColumn:rt,translate:k,value:c.columnFilterMap?c.columnFilterMap[U.propName]:null}),document.body):null]})})},Vt=e.forwardRef(Jt),Gt=e.memo(Vt),Ht=e.memo(({refresh:n,period:r=60})=>{const[l,p]=e.useState(new Date),[g,f]=e.useState(new Date),S=e.useCallback(()=>{f(new Date),n()},[n]),C=e.useMemo(()=>Ve.differenceInSeconds(l,g),[l,g]);e.useEffect(()=>{C>r&&S()},[C,l,g,r,S]),e.useEffect(()=>{const A=setInterval(()=>{p(new Date)},1e3);return()=>{clearInterval(A)}},[]);const j=r-C;return t.jsxs("div",{className:"mx-auto",title:`Refresh ${j>0?`in ${j} seconds`:"NOW"}`,children:["Last update ",Ge(g,"HH:mm")]})});D.DEFAULT_DATE_FORMAT=He,D.DEFAULT_DATE_TIME_FORMAT=Ae,D.EColumnFilterStatus=ke,D.MINIMUM_COLUMN_WIDTH=Xe,D.RESIZER_WIDTH=ht,D.Refresher=Ht,D.SchemaTable=Gt,D.Th=pt,Object.defineProperty(D,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(T,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react/jsx-runtime"),require("react"),require("react-dom"),require("react-window"),require("date-fns"),require("date-fns/locale"),require("mig-data-tools"),require("lodash"),require("react-datepicker"),require("react-select"),require("date-fns/locale/nl"),require("@date-fns/tz"),require("@floating-ui/react-dom"),require("react-window-infinite-loader"),require("file-saver")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","react-dom","react-window","date-fns","date-fns/locale","mig-data-tools","lodash","react-datepicker","react-select","date-fns/locale/nl","@date-fns/tz","@floating-ui/react-dom","react-window-infinite-loader","file-saver"],t):(T=typeof globalThis<"u"?globalThis:T||self,t(T["mig-schema-table"]={},T.jsxRuntime,T.React,T.ReactDOM,T.reactWindow,T.dateFns,T.locale,T.migDataTools,T.lodash,T.DatePicker,T.Select,T.nl,T.tz,T.reactDom,T.InfiniteLoader,T.fileSaver))})(this,(function(T,t,e,Tt,Je,Ge,Et,B,ge,it,at,lt,je,We,Dt,At){"use strict";function Lt(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const c in n)if(c!=="default"){const p=Object.getOwnPropertyDescriptor(n,c);Object.defineProperty(s,c,p.get?p:{enumerable:!0,get:()=>n[c]})}}return s.default=n,Object.freeze(s)}const It=Lt(e),He=(n,s)=>Ge.format(n,s,{locale:Et.nl}).replace(".",""),Nt={"Europe/Amsterdam":"AMS","Europe/Berlin":"AMS","Asia/Jakarta":"JKT","Asia/Bangkok":"JKT",showingFilteredCountOfTotalCount:"Showing {0} of {1}"};function ct(n,...s){let c=Nt[n]||B.unCamel(n);return s.forEach((p,g)=>{c=c.replace(`{${g}}`,`${p}`)}),c}const R="SELECT_ALL_COLUMN_NAME",dt=40,Xe="dd MMM yyyy",Ae="dd MMM yyyy HH:mm",Ve=25,ut=50,ht=3;var fe=(n=>(n.GT="GT",n.LT="LT",n.EQ="EQ",n))(fe||{});const ft=new Map([[!0,"✓"],[!1,"✕"],[null,"?"]]);var ke=(n=>(n.UNAVAILABLE="UNAVAILABLE",n.AVAILABLE="AVAILABLE",n.ACTIVE="ACTIVE",n))(ke||{});const xe=It.createContext({checkedIndexes:[],columnNames:[],columnWidths:new Uint16Array,config:{},disabledCheckedIndexes:[],dropTargetIndex:-1,isColumnFilterable:!1,isItemLoaded:()=>!1,isSortable:!1,properties:{},required:[],setCustomColumnNames:B.emptyFn,setCustomColumnWidths:B.emptyFn,setDropTargetIndex:B.emptyFn,setFilterSortColumn:B.emptyFn,setLastCheckChangedRowIndex:B.emptyFn,setMenuConfig:B.emptyFn,tableDataState:{searchQuery:"",columnFilterMap:{},sortColumn:"",sortAsc:!1},translate:B.emptyFn}),St={type:"boolean"},Ot=({columnIndex:n,rowIndex:s,style:c})=>{const{checkedIndexes:p,columnNames:g,config:m,disabledCheckedIndexes:S,displayTimezone:C,getRowClassName:F,getRowSelected:O,isItemLoaded:D,lastCheckChangedRowIndex:W,onRowClick:E,onRowDoubleClick:w,properties:$,setCheckedIndexes:X,setLastCheckChangedRowIndex:te,sortedRenderData:L,sourceData:i,translate:l}=e.useContext(xe),o=g[n],_=o===R?St:$[o],Q=m?m[o]:void 0,ne=e.useCallback(v=>{X&&X(N=>N&&N.includes(v)?N.filter(M=>M!==v):N?[...N,v]:[v])},[X]),de=D(s),re=e.useCallback(v=>{if(!i||!L||!E||!de)return;const{rowIndex:N}=v.currentTarget.dataset;if(!N)return;const k=L[parseInt(N,10)];E(i[k._index],k._index,v)},[de,E,L,i]),y=e.useCallback(v=>{if(!i||!L||!w||!D)return;const{rowIndex:N}=v.currentTarget.dataset;if(!N)return;const k=L[parseInt(N,10)];w(i[k._index],k._index,v)},[D,w,L,i]),I=L?L[s]:void 0,{showTimezones:ae,TdBody:Y}=Q||{},se=e.useMemo(()=>C?null:B.timeZone.startsWith("Europe/")?"Asia/Jakarta":"Europe/Amsterdam",[C]),q=e.useMemo(()=>{if(!I||!L)return;let v=o===R?void 0:I[o];if(_?.format&&_.format==="date-time"&&ae!==!1){const k=i?i[I._index]:void 0,M=k?k[o]:void 0,oe=M?new Date(M):void 0;oe&&se&&(v=`${B.localeFormatInTimeZone(oe,se,Ae)} (${l(se)})`)}const N=["mig-schema-table__td",`mig-schema-table__td--${s%2?"odd":"even"}`,`mig-schema-table__td--prop-${o}`];switch(i&&O&&O(i[I._index],I._index)&&N.push("mig-schema-table__td--selected"),i&&F&&N.push(F(i[I._index],I._index,L)),_?.type){case"boolean":N.push(`text-${Q?.align||"center"}`);break;case"number":case"integer":N.push(`text-${Q?.align||"end"}`);break;default:Q?.align&&N.push(`text-${Q.align}`)}return{"data-row-index":s,"data-column-index":n,style:c,className:N.join(" "),title:v,onClick:o===R?void 0:re,onDoubleClick:o===R?void 0:y}},[I,L,o,_,ae,s,i,O,F,n,c,re,y,se,l,Q]),H=e.useCallback(v=>{if(!ne||!I)return;const N=parseInt(v.currentTarget.dataset.rowIndex);if(v.shiftKey&&W!==void 0){const k=p?.includes(W)?W:void 0;if(k!==void 0&&L){const M=s;for(const oe of ge.range(M>k?k+1:M,M>k?M+1:k)){const Me=L[oe]._index;(!S||!S.includes(Me))&&ne(Me)}}}else ne(I._index);te(N),ye.current?.focus()},[p,S,W,ne,I,s,te,L]),ye=e.useRef(null);if(!I||!q)return null;if(!D||i&&!i[I._index])return t.jsx("div",{...q,children:"loading"});if(o===R)return t.jsx("div",{...q,onMouseDown:H,children:t.jsx("div",{style:{textAlign:"center"},children:t.jsx("input",{ref:ye,type:"checkbox",readOnly:!0,checked:p?.includes(I._index),disabled:S?.includes(I._index)})})});if(Y&&i)return t.jsx("div",{...q,children:t.jsx(Y,{dataIndex:I._index,rowData:i[I._index],rowIndex:s,...Q?.tdBodyProps})});const V=I[o];return _?.format==="url"&&V?t.jsx("a",{href:V,target:"_blank",rel:"noopener noreferrer",...q,children:V}):t.jsx("div",{...q,children:V})},mt=e.memo(Ot);function $t(){const{checkedIndexes:n,disabledCheckedIndexes:s,sortedRenderData:c}=e.useContext(xe);return e.useMemo(()=>{const p=[...c||[]].filter(g=>(n?n.includes(g._index):!0)||(s?!s.includes(g._index):!0));return n?.length!==0&&p.length===n?.length},[n,s,c])}function bt(n,s,c){return!!(n&&c?.isSortable!==!1&&(s||c?.renderData||c?.sort))}function pt(){const{setCustomColumnWidths:n,settingsStorageKey:s}=e.useContext(xe);return e.useCallback(c=>{s&&localStorage.setItem(`${s}.columnWidths`,JSON.stringify(Array.from(c))),n(c)},[n,s])}const jt=({index:n,style:s})=>{const{checkedIndexes:c,columnNames:p,columnWidths:g,config:m,disabledCheckedIndexes:S,dropTargetIndex:C,isColumnFilterable:F,isSortable:O,setCheckedIndexes:D,properties:W,required:E,setCustomColumnNames:w,setDropTargetIndex:$,setFilterSortColumn:X,setMenuConfig:te,settingsStorageKey:L,tableDataState:i,sortedRenderData:l,translate:o,displayTimezone:_}=e.useContext(xe),[Q,ne]=e.useState(!1),de=n===C,re=pt(),y=p[n],I=y===R?{type:"boolean"}:W[y],ae=i.sortColumn===y?i.sortAsc:void 0,Y=m?m[y]:void 0;let se=F&&(I||Y?.FilterMenu)&&Y?.isFilterable!==!1?ke.AVAILABLE:ke.UNAVAILABLE;i.columnFilterMap&&i.columnFilterMap[y]!==void 0&&(se=ke.ACTIVE);const q=bt(O,I,Y),H=["mig-schema-table__th",`mig-schema-table__th--filter-${se}`,`mig-schema-table__th--prop-${y}`];H.push(q?"mig-schema-table__th--sortable":"mig-schema-table__th--unsortable"),ae!==void 0&&H.push("mig-schema-table__th--sorted"),Q&&H.push("mig-schema-table__th--dragging"),de&&H.push("mig-schema-table__th--drop-target");const{format:ye}=I||{},{align:V,defaultSortDesc:v,showTimezones:N=!_,title:k}=Y||{},M=e.useCallback(()=>{if(q){if(ae===void 0){X(y,!v);return}X(y,!ae)}},[q,v,y,X,ae]),oe=E.includes(y),Me=e.useCallback(z=>{const me=z.currentTarget;te(ve=>{if(ve?.propName!==y)return{propConfig:Y,propIsRequired:oe,propName:y,referenceElement:me}})},[Y,oe,y,te]),we=e.useMemo(()=>k!==void 0?k:ye==="date-time"&&N?`${o(y)} (${o(_||B.timeZone)})`:o(y),[k,ye,N,o,y,_]),ie=e.useCallback((z,me)=>{if(!p||!g)return;const ve=p.indexOf(z),J=[...p];J.splice(ve,1);const x=J.indexOf(me);J.splice(x+1,0,z),w(J);const _e=[...g],be=_e[ve];_e.splice(ve,1),_e.splice(x+1,0,be),re(new Uint16Array(_e)),L&&localStorage.setItem(`${L}.columnNames`,JSON.stringify(J))},[p,g,re,L,w]),Le=e.useCallback(z=>{ie&&(ne(!0),z.dataTransfer.effectAllowed="move",z.dataTransfer.dropEffect="move",z.dataTransfer.setData("text/plain",y))},[ie,y]),Fe=e.useCallback(()=>{ie&&(ne(!1),$(-1))},[ie,$]),Ye=e.useCallback(z=>{ie&&(z.preventDefault(),$(n))},[n,ie,$]),Ke=e.useCallback(z=>{if($(-1),!ie||!y)return;const me=z.dataTransfer.getData("text/plain");!me||me===y||ie(me,y)},[ie,y,$]),Ie=$t(),Re=e.useCallback(()=>{!D||!l||D(Ie?[]:l.map(z=>z._index).filter(z=>!S?.includes(z)))},[D,l,Ie,S]);if(y===R)return t.jsx("div",{style:s,className:H.join(" "),children:t.jsx("div",{style:{width:"100%",textAlign:"center"},title:`${c?.length||0} selected`,children:t.jsx("input",{type:"checkbox",name:"selectAll",checked:Ie,onChange:Re})})});switch(I?.type){case"boolean":H.push(`text-${V||"center"}`,`justify-content-${V||"center"}`);break;case"integer":case"number":H.push(`text-${V||"end"}`,`justify-content-${V||"end"}`);break;default:V&&H.push(`text-${V}`)}let U=Y?.hoverTitle;return!U&&typeof we=="string"&&(U=we),t.jsxs("div",{className:H.join(" "),style:s,title:U,draggable:!0,onDragStart:Le,onDragEnd:Fe,onDragOver:Ye,onDrop:Ke,children:[t.jsxs("div",{className:"mig-schema-table__th__label-body",style:{lineHeight:"44px"},onClick:M,children:[t.jsx("span",{className:"mig-schema-table__th__label-body-text",children:we}),ae===void 0?null:t.jsx("span",{className:"mig-schema-table__th__sort-icon",children:ae?"↓":"↑"})]}),q||se!==ke.UNAVAILABLE?t.jsx("button",{className:"mig-schema-table__th__trigger-el",onClick:Me,children:t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"#404040",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:t.jsx("polyline",{points:"6 9 12 15 18 9"})})}):null]})},gt=e.memo(jt),Wt={[fe.GT]:">",[fe.LT]:"<",[fe.EQ]:"="},Ft=e.memo(({columnFilterValue:n,onChange:s,onInputKeyDown:c,propIsRequired:p,propName:g,propSchema:m,translate:S})=>{const{displayTimezone:C}=e.useContext(xe),{type:F,format:O,minimum:D,maximum:W}=m||{},E=n,w=O==="date-time";let $,X;switch(F){case"number":case"integer":return $=E||{},X=(i,l,o)=>{const _={...$,[i]:l.value===""?void 0:parseInt(l.value)},Q=Object.values(_).find(ne=>isFinite(ne));s(Q!==void 0&&(D===void 0||Q>=D)?_:void 0,o)},t.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[p?null:t.jsxs("li",{style:{padding:8},children:[t.jsxs("label",{className:"d-flex",children:[t.jsx("input",{type:"checkbox",style:{marginRight:14},checked:!!$.filterEmpty,onChange:()=>{const{filterEmpty:i,...l}=$;i||(l.filterEmpty=!0),s(Object.keys(l).length?l:void 0,!0)}}),"Hide empty values"]}),t.jsx("hr",{})]}),Object.keys(fe).map(i=>{const l=$[i];return t.jsxs("li",{children:[t.jsx("label",{style:{width:40,paddingLeft:16},children:Wt[i]}),t.jsx("input",{className:"form-control",style:{width:120},type:"number",value:l!==void 0?l:"","data-prop-name":g,onChange:o=>{X(i,o.currentTarget,!1)},onBlur:o=>{X(i,o.currentTarget,!0)},onKeyDown:c,min:D,max:W})]},i)})]});case"boolean":const te=[!0,!1];p||te.push(null);const L=E?E.map(i=>({value:i,label:ft.get(i)})):null;return t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx(at,{autoFocus:!0,menuIsOpen:!0,isClearable:!0,isMulti:!0,placeholder:S("All"),className:"react-select-container",classNamePrefix:"react-select",value:L,options:te.map(i=>({value:i,label:ft.get(i)})),styles:{menu:i=>({...i,marginTop:0})},onChange:i=>{const l=i&&i.length?i.map(({value:o})=>o):void 0;s(l,!0)},onKeyDown:c})})});case"string":if(m?.enum){const i=m.enum.map(o=>({value:o,label:S(o)})),l=i.filter(o=>(E||[]).includes(o.value));return t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx(at,{isMulti:!0,autoFocus:!0,menuIsOpen:!0,className:"react-select-container",classNamePrefix:"react-select",value:l,options:i,styles:{menu:o=>({...o,marginTop:0})},onChange:o=>{const _=o?o.map(Q=>Q.value):[];s(_.length?_:void 0,!0)},onKeyDown:c,placeholder:S("Select...")})})})}if(w||O==="date"){const i=w?Ae:Xe,l=n||{from:void 0,to:void 0,filterEmpty:void 0};return t.jsxs("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:[p?null:t.jsxs("li",{style:{padding:8},children:[t.jsxs("label",{className:"d-flex",children:[t.jsx("input",{type:"checkbox",checked:!!l.filterEmpty,onChange:()=>{const{filterEmpty:o,..._}=l;o||(_.filterEmpty=!0),s(Object.keys(_).length?_:void 0,!0)}}),"Hide empty values"]}),t.jsx("hr",{})]}),t.jsxs("li",{style:{padding:8},children:[t.jsx("label",{style:{width:120,paddingLeft:4},children:"After"}),t.jsx(it,{dateFormat:i,"data-prop-name":g,locale:lt.nl,selected:l.from?new je.TZDate(l.from).withTimeZone(C||B.timeZone):null,onChange:o=>{if(!o&&!l.to){s(void 0,!0);return}if(l.to&&o&&o>l.to)return;const _=o?je.TZDate.tz(C||B.timeZone,o):void 0;s({...n,from:_},!0)},placeholderText:i,isClearable:!0,selectsStart:!0,showTimeSelect:w,showTimeInput:w,showMonthDropdown:!0,showYearDropdown:!0,timeIntervals:15,shouldCloseOnSelect:!w})]}),t.jsxs("li",{style:{padding:8},children:[t.jsx("label",{style:{width:120,paddingLeft:4},children:"Before"}),t.jsx(it,{id:"filter-date",dateFormat:i,"data-prop-name":g,locale:lt.nl,selectsEnd:!0,selected:l.to?new je.TZDate(l.to).withTimeZone(C||B.timeZone):null,showMonthDropdown:!0,showYearDropdown:!0,onChange:o=>{if(!o&&!l.from){s(void 0,!0);return}const _=o?w?je.TZDate.tz(C||B.timeZone,o):Ge.endOfDay(o):void 0;l.from&&_&&_<l.from||s({...n,to:_},!0)},placeholderText:i,isClearable:!0,startDate:l.from,endDate:l.to,showTimeInput:w,showTimeSelect:w,timeIntervals:15,shouldCloseOnSelect:!w})]})]})}default:return t.jsx("ol",{className:"mig-schema-table-menu mig-schema-table__th-menu__filter-menu-component",children:t.jsx("li",{children:t.jsx("input",{autoFocus:!0,type:"search",className:"form-control",placeholder:`Search ${g}`,"aria-label":`Search ${g}`,value:Array.isArray(E)?E.join(", "):E||"","data-prop-name":g,onChange:i=>{const l=i.currentTarget.value,o=l?l.split(",").map(_=>_.trim()):[];s((o.length>1?o:o[0])||void 0,!1)},onKeyDown:c,onBlur:i=>{const l=i.currentTarget.value,o=l?l.split(",").map(_=>_.trim()):[];s((o.length>1?o:o[0])||void 0,!0)}})})})}}),Bt=({isSortable:n,isFilterable:s,onChange:c,onClose:p,onInputKeyDown:g,propConfig:m,propIsRequired:S,propName:C,propSchema:F,referenceElement:O,setFilterSortColumn:D,translate:W,value:E})=>{const w=We.useFloating({placement:"bottom-start",elements:{reference:O},middleware:[We.flip()]}),$=We.useFloating({placement:"right-start",middleware:[We.flip()]});e.useEffect(()=>{const l=o=>{if(!w.elements.floating)return;let _=o.target;for(;_&&w.elements.floating;){if(_===w.elements.floating||_===$.elements.floating)return;_=_.parentNode===window.document?null:_.parentNode}p(o)};return window.addEventListener("click",l,{capture:!0}),()=>{window.removeEventListener("click",l,{capture:!0})}},[w.elements.floating,p,$.elements.floating]);const X=m?.FilterMenu||Ft,te=e.useCallback(l=>{D(C,!0),p(l)},[p,C,D]),L=e.useCallback(l=>{D(C,!1),p(l)},[p,C,D]),i=e.useCallback(()=>{c(void 0,!0)},[c]);return!n&&!s?null:t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu",ref:w.refs.setFloating,style:w.floatingStyles,children:t.jsxs("ol",{className:"mig-schema-table-menu",children:[n?t.jsxs("li",{onClick:te,style:{padding:8},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↓"})," ",W("sortAscending")]}):null,n?t.jsxs("li",{onClick:L,style:{padding:8},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:"↑"})," ",W("sortDescending")]}):null,s?t.jsxs("li",{style:{padding:8},onMouseOver:l=>{$.refs.setReference(l.currentTarget)},children:[t.jsx("span",{className:"mig-schema-table__th-menu__icon",children:t.jsx("input",{type:"checkbox",id:"mig-schema-table__th-menu__filters",checked:E!==void 0,disabled:E===void 0,onChange:i})}),t.jsx("label",{htmlFor:"mig-schema-table__th-menu__filters",children:W("filters")}),t.jsx("div",{className:"mig-schema-table__th-menu__sub-menu-indicator"})]}):null]})}),$.elements.reference?t.jsx("div",{className:"mig-schema-table mig-schema-table__th-menu__sub-menu",ref:$.refs.setFloating,style:$.floatingStyles,children:t.jsx(X,{columnFilterValue:E,onChange:c,onInputKeyDown:g,propIsRequired:S,propName:C,propSchema:F,translate:W})}):null]})},zt=e.memo(Bt),Qt=({columnWidths:n,resizeColumnIndex:s,setResizeColumnIndex:c,tableBodyHeight:p})=>{const[g,m]=e.useState(0),S=pt(),C=e.useCallback(W=>{const E=n.map((w,$)=>$===s?Math.max(w+W,Ve):w);S(E)},[n,s,S]);let F=0;const O=e.useCallback(W=>{c(parseInt(W.currentTarget.dataset.columnIndex)),m(W.clientX)},[c]),D=e.useCallback(W=>{C(W.clientX-g),m(0),c(-1)},[g,C,c]);return t.jsx("div",{children:[...n].map((W,E)=>{F+=W;const w=["mig-schema-table__column_resizer"];return E===s&&w.push("mig-schema-table__column_resizer--dragged"),t.jsx("div",{style:{left:F-ht,bottom:p},className:w.join(" "),draggable:"true","data-column-index":E,onDragStart:O,onDragEnd:D},E)})})},_t=n=>{const[s,c]=e.useState({width:0,height:0}),p=e.useMemo(()=>ge.debounce(c,100),[]);return e.useEffect(()=>{if(!n)return;const g=new ResizeObserver(m=>{for(const S of m){const{blockSize:C,inlineSize:F}=S.borderBoxSize[0];p(O=>F&&C&&(O.width!==F||O.height!==C)?{width:F,height:C}:O)}});return g.observe(n),()=>{g.disconnect()}},[p,n]),s},qt=()=>new Promise((n,s)=>{if(window.ExcelJS){n(window.ExcelJS);return}const c=document.createElement("script");c.src="https://cdnjs.cloudflare.com/ajax/libs/exceljs/4.4.0/exceljs.bare.min.js",c.onload=()=>{n(window.ExcelJS)},c.onerror=()=>{s(new Error("Failed to load ExcelJS library"))},document.head.appendChild(c)}),Ut=async n=>{const{Workbook:s}=await qt(),c=new s,p=c.addWorksheet("Data");n.length&&(p.addRow(ge.difference(Object.keys(n[0]),["_index","SELECT_ALL_COLUMN_NAME"])),p.getRow(1).font={bold:!0},p.addRows(n.map(g=>{const{_index:m,SELECT_ALL_COLUMN_NAME:S,...C}=g;return Object.values(C)})),c.xlsx.writeBuffer().then(g=>{const m=new Blob([g],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});At.saveAs(m,"export.xlsx")}).catch(g=>{console.error("Error generating Excel file:",g)}))},Ct=new Date("1000-01-01 00:00:00Z"),Zt=new Intl.NumberFormat("nl-NL"),Pt=new Intl.NumberFormat("nl-NL",{style:"currency",currency:"EUR"});function Jt(n,s){const{TdBody:c,sortByValue:p}=s||{};if(p!==void 0)return p;if(!n)return!1;const{format:g,type:m}=n;return g?.startsWith("date")||m==="boolean"||m==="integer"||m==="number"||!!c}const Gt=({CustomElement:n,CustomSearchInput:s,Heading:c=Je.VariableSizeList,autoRender:p,checkedIndexes:g,config:m,customElementProps:S,data:C,defaultColumnFilters:F,defaultSortAsc:O=!1,defaultSortColumn:D,disabledCheckedIndexes:W,displayTimezone:E,enableAutoFocus:w=!0,enableRowCounter:$=!0,getRowClassName:X,getRowSelected:te,getSearchQueryFilterResult:L,infiniteLoaderRef:i,isColumnFilterable:l=!0,isExportable:o=!0,isResizable:_=!0,isSearchable:Q=!0,isSortable:ne=!0,itemCount:de,loadMoreItems:re,maxHeight:y,onRowClick:I,onRowDoubleClick:ae,onSearchEnter:Y,onTableDataStateChange:se,rowHeight:q=36,schema:H,searchPlaceholder:ye,setCheckedIndexes:V,settingsStorageKey:v,style:N,translate:k=ct,useFilterStateHash:M,width:oe},Me)=>{const[we,ie]=e.useState(),[Le,Fe]=e.useState(),[Ye,Ke]=e.useState(-1),[Ie,Re]=e.useState(-1),[U,z]=e.useState(),[me,ve]=e.useState(),J=C instanceof Function,[x,_e]=e.useState(J?void 0:C),[be,et]=e.useState(),[d,Te]=e.useState({searchQuery:"",columnFilterMap:F||{},sortColumn:D,sortAsc:O}),[Z,Yt]=e.useState(M?B.parseLocationHash(window.location.hash):null);e.useEffect(()=>{J||_e(C)},[C,J]),e.useEffect(()=>{!J||x!==void 0||C(Z&&Object.keys(Z).length!==0?{...Z,columnFilterMap:Z.columnFilterMap||{}}:d).then(_e)},[C,J,Z,x,d]),e.useEffect(()=>{be||et(d)},[d,be]),e.useEffect(()=>{if(!M)return;const r=()=>{Yt(B.parseLocationHash(window.location.hash))};return window.addEventListener("hashchange",r),()=>{window.removeEventListener("hashchange",r)}},[M]),e.useEffect(()=>{if(!M)return;const{columnFilterMap:r,searchQuery:u,sortAsc:f,sortColumn:a}=Z||{},b={searchQuery:u||"",columnFilterMap:r||F||{},sortAsc:f===void 0?O:f,sortColumn:a===void 0?D:a};Te(A=>ge.isEqual(b,A)?A:b)},[Z,M,F,O,D]),e.useEffect(()=>{se&&se(d)},[se,d]);const Be=e.useRef(null),yt=e.useRef(null),wt=e.useRef(null),ze=_t(yt.current),vt=_t(wt.current),Ne=e.useMemo(()=>oe||Math.floor(ze.width||0),[ze.width,oe]),Se=e.useMemo(()=>!ge.isEqual(d,be)&&J,[d,be,J]),{properties:le,required:Kt}=e.useMemo(()=>({properties:{},required:[],...H}),[H]),Qe=v?localStorage.getItem(`${v}.columnNames`):null,qe=v?localStorage.getItem(`${v}.columnWidths`):null,ee=e.useMemo(()=>{if(we)return we;const r=Qe?JSON.parse(Qe):void 0;let u=Object.keys(le);if(V&&u.unshift(R),m){Object.keys(m).forEach(a=>{u.includes(a)||u.push(a)});const f=Object.entries(m).reduce((a,[b,A])=>(A.hidden&&a.push(b),a),[]);u=u.filter(a=>!f.includes(a)).sort((a,b)=>{let A=m[a]?m[a].order:void 0;A===void 0&&(A=Object.keys(le).findIndex(K=>K===a));let h=m[b]?m[b].order:void 0;return h===void 0&&(h=Object.keys(le).findIndex(K=>K===b)),b===R||a===R?0:A===-1?1:h===-1?-1:A-h})}return r?.length===u.length?r:u},[m,we,V,le,Qe]),Ue=e.useMemo(()=>x&&ee?x.map((r,u)=>ee.reduce((f,a)=>{const b=le[a],A=m?m[a]:void 0;if(A?.renderData)return f[a]=A.renderData(r,u),f;if(!b||a===R)return f[a]="",f;const h=r?r[a]:"";switch(b.type){case"array":return f[a]=b.items?.type==="string"&&h?h.map(K=>k(K)).join(", "):JSON.stringify(h),f;case"boolean":return f[a]=h===void 0?"?":h?"✓":"✕",f;case"number":case"integer":return h===void 0?(f[a]="",f):(f[a]=b.format==="currency"?Pt.format(h):Zt.format(h),f);case"string":if(b.format==="date"&&h)return f[a]=["2999-12-31","1970-01-01"].includes(h)?"-":He(new Date(h),A?.dateFormat||Xe),f;if(b.format==="date-time"&&h)return f[a]=E?B.localeFormatInTimeZone(new Date(h),E,Ae):He(new Date(h),A?.dateFormat||Ae),f;if(b.enum)return f[a]=h?k(h):"",f;default:return f[a]=h?`${h}`:"",f}},{_index:u})):void 0,[x,ee,le,m,k,E]),Ee=ee?ee.length:0,{dynamicWidthColumnCount:tt,fixedWidthColumnsWidth:nt}=e.useMemo(()=>{let r=0,u=0;return(ee||[]).forEach(f=>{if(f===R){r+=dt;return}const a=m?m[f]:void 0;a?.width?r+=a.width:u+=1},0),{dynamicWidthColumnCount:u,fixedWidthColumnsWidth:r}},[ee,m]),ce=e.useMemo(()=>{if(Le)return new Uint16Array(Le);const r=qe?new Uint16Array(JSON.parse(qe)):void 0,u=Math.max(Math.floor((Ne-nt)/tt),Ve);let f=(Ne-nt)%tt;const a=new Uint16Array(ee.map(b=>{if(b===R)return dt;const A=m?m[b]:void 0;return A?.width?A?.width:f?(f-=1,u+1):u}));return r?.length===a.length?r:a},[ee,m,Le,tt,nt,qe,Ne]),Ze=e.useCallback(r=>ce?ce[r]:1,[ce]),Oe=e.useMemo(()=>{if(!Ue||!l&&!Q||J)return Ue;const{searchQuery:r}=d,u=r.toLowerCase()||"",f=a=>x&&L?L(x[a._index],r):!(ee&&!ee.find(b=>`${a[b]}`.toLowerCase().includes(u)));return Ue.filter(a=>{let b=f(a);return!b||!d.columnFilterMap?!1:(Object.entries(d.columnFilterMap).forEach(([A,h])=>{if(!b||h===void 0)return;const K=m?m[A]:void 0;if(x&&K?.filter){b=K.filter(x[a._index],h);return}const he=le[A],j=x[a._index]?.[A];switch(he?.type){case"boolean":if(h===void 0)return;if(Array.isArray(h)&&h.length){h.includes(j===void 0?null:j)||(b=!1);return}b=j===h;break;case"number":case"integer":if(h&&typeof h=="object"){h.filterEmpty&&j===void 0&&(b=!1);for(const P of Object.keys(fe)){const pe=h[P];if(b&&ge.isFinite(pe))switch(P){case fe.EQ:j!==pe&&(b=!1);break;case fe.GT:j<=pe&&(b=!1);break;case fe.LT:j>=pe&&(b=!1);break}}}else{if(j===void 0&&h===null)return!0;b=j===h}break;case"string":if(typeof h=="object"&&!Array.isArray(h)&&(he.format==="date"||he.format==="date-time")){const{from:P,to:pe,filterEmpty:Mt}=h;if(!j)b=!Mt;else{const Pe=j?new Date(j):void 0;(Mt===!1||P&&(!Pe||Pe<P)||pe&&(!Pe||Pe>pe))&&(b=!1)}return}default:if(he?.enum){Array.isArray(h)?b=h.includes(j):b=j===h;return}if(Array.isArray(h)){const P=`${a[A]}`.toLowerCase();b=h.some(pe=>P.includes(`${pe}`.toLowerCase()))}else b=`${a[A]}`.toLowerCase().includes(`${h}`.toLowerCase())}}),b)})},[Ue,l,Q,J,d,L,ee,m,x,le]),G=e.useMemo(()=>{const{sortAsc:r,sortColumn:u}=d;if(!u||!Oe||!x||J)return Oe;const f=le[u],a=m?m[u]:void 0,b=a?.sort;if(b)return Oe.sort((K,he)=>{const j=x[K._index],P=x[he._index];return j?P?b(j,P,r===void 0?O:r):-1:1});const A=f&&f.format?.startsWith("date"),h=Jt(f,a);return Oe.sort((K,he)=>{let j=h&&x[K._index]?x[K._index][u]:`${K[u]}`.toLowerCase(),P=h&&x[he._index]?x[he._index][u]:`${he[u]}`.toLowerCase();return h&&A&&(j=new Date(j),isNaN(j.getTime())&&(j=Ct),P=new Date(P),isNaN(P.getTime())&&(P=Ct)),j===P?0:j?P?(j<P?1:-1)*(r?-1:1):r?1:-1:r?-1:1})},[m,O,Oe,J,le,x,d]);e.useImperativeHandle(Me,()=>({getFilteredSortedData:()=>G,scrollToIndex:r=>{const u=Be?.current,f=G?.findIndex(a=>a._index===r)||-1;u&&f>=0&&u.scrollToItem({rowIndex:f})}}),[G,Be]);const kt=e.useCallback(r=>{const u={...d.columnFilterMap};delete u[r],Te({...d,columnFilterMap:u})},[d]),rt=e.useCallback((r,u)=>{if(M){window.location.hash=B.serializeLocationHash({...Z,sortColumn:r,sortAsc:u});return}Te({...d,sortColumn:r,sortAsc:u})},[d,Z,M]),Rt=e.useCallback(r=>{Te({...d,searchQuery:r.currentTarget.value})},[d]),De=e.useCallback(()=>{et(d),_e(void 0)},[d]);e.useEffect(()=>{if(!p||!Z||!be||!M)return;const r=Object.keys(Z);let u=!1;for(const f of r){const a=Z[f],b=be[f];if(typeof a=="string"&&a!==b){u=!0;break}if(typeof a=="object"&&!ge.isEqual(a,b)){u=!0;break}}u&&De()},[p,Z,be,De,M]);const xt=e.useCallback(r=>{r.key==="Enter"&&(z(void 0),Se&&!M&&De(),Y&&r.currentTarget.className==="mig-schema-table__search"&&Y(d.searchQuery||""))},[Se,d.searchQuery,Y,De,M]),st=e.useCallback(()=>q,[q]),ue=e.useMemo(()=>ge.sum(ce),[ce]),$e=e.useMemo(()=>G?G.length:0,[G]),Ce=e.useMemo(()=>{const r=q*$e;let u;if(y&&(u=y==="100%"?ze.height:y,!u))return 0;const f=u?u-vt.height-ut:0;return f&&f<r?f:r},[q,$e,y,vt,ze.height]),en=e.useCallback(r=>{z(void 0),r.preventDefault(),r.stopPropagation()},[]),tn=e.useCallback((r,u)=>{if(!U)return;if(M&&u!==!1){window.location.hash=B.serializeLocationHash({...Z,columnFilterMap:{...d.columnFilterMap,[U.propName]:r}});return}if(r===void 0){kt(U.propName);return}const f={...d.columnFilterMap,[U.propName]:r};Te({...d,columnFilterMap:f})},[kt,d,Z,U,M]),nn=e.useCallback(()=>{const r={searchQuery:"",columnFilterMap:{},sortColumn:D,sortAsc:O};M&&(window.location.hash=B.serializeLocationHash(r)),et(r),Te(r)},[M,O,D]),rn=e.useCallback(()=>{const r=Z?.searchQuery||"";M&&(d.searchQuery||r)&&d.searchQuery!==r&&(window.location.hash=B.serializeLocationHash({...Z,searchQuery:d.searchQuery}))},[Z,d.searchQuery,M]),sn=e.useCallback(async r=>{r.preventDefault(),r.stopPropagation(),G&&await Ut(G)},[G]),on=e.useCallback(()=>{v&&(localStorage.removeItem(`${v}.columnNames`),localStorage.removeItem(`${v}.columnWidths`),ie(void 0),Fe(void 0))},[v]),ot=e.useCallback(r=>{if(!G||!x||!re||!de)return!0;const u=G[r];return u&&x[u._index]!==void 0},[de,re,G,x]),an=e.useMemo(()=>Ce?!(x&&!Se)&&!re?t.jsx("div",{style:{width:ue,height:Math.max(50,Ce),border:"1px solid #BBB",textAlign:"center",display:"flex",backgroundColor:"#CCC",alignItems:"center",justifyContent:"center"},children:Se?t.jsx("button",{onClick:De,className:"btn border",children:"Refresh data"}):t.jsx("div",{children:"⌛ Loading..."})}):re&&de?t.jsx(Dt,{ref:i,isItemLoaded:ot,itemCount:de,loadMoreItems:re,children:({onItemsRendered:u,ref:f})=>t.jsx(Je.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:q,height:Ce,width:ue,columnWidth:Ze,rowHeight:st,columnCount:Ee,rowCount:$e,ref:f,onItemsRendered:({overscanRowStartIndex:a,overscanRowStopIndex:b,visibleRowStartIndex:A,visibleRowStopIndex:h})=>u({overscanStartIndex:a,overscanStopIndex:b,visibleStartIndex:A,visibleStopIndex:h}),children:mt},`tbody_${Ce}_${ue}_${d.sortColumn}_${d.sortAsc}_${d.searchQuery}_${Ee}_${ce.join(" ")}`)}):t.jsx(Je.VariableSizeGrid,{className:"mig-schema-table__tbody",estimatedRowHeight:q,height:Ce,width:ue,columnWidth:Ze,rowHeight:st,columnCount:Ee,rowCount:$e,ref:Be,children:mt},`tbody_${Ce}_${ue}_${d.sortColumn}_${d.sortAsc}_${d.searchQuery}_${Ee}_${ce.join(" ")}`):null,[Ee,ce,Ze,st,i,Se,ot,de,re,De,$e,q,ue,d.searchQuery,d.sortAsc,d.sortColumn,x,Ce,Be]),ln=e.useMemo(()=>({...N,width:oe?Math.min(ue,Ne):void 0,height:y==="100%"?"100%":void 0,maxHeight:y==="100%"?"100%":void 0}),[y,ue,N,Ne,oe]),cn=s||"input";return t.jsx(xe.Provider,{value:{checkedIndexes:g,columnNames:ee,columnWidths:ce,config:m,disabledCheckedIndexes:W,displayTimezone:E,dropTargetIndex:Ie,getRowClassName:X,getRowSelected:te,isColumnFilterable:l,isItemLoaded:ot,isSortable:ne,lastCheckChangedRowIndex:me,onRowClick:I,onRowDoubleClick:ae,properties:le,required:Kt,setCheckedIndexes:V,setCustomColumnNames:ie,setCustomColumnWidths:Fe,setDropTargetIndex:Re,setFilterSortColumn:rt,setLastCheckChangedRowIndex:ve,setMenuConfig:z,settingsStorageKey:v,sortedRenderData:G,sourceData:x,tableDataState:d,translate:k||ct},children:t.jsxs("div",{className:`mig-schema-table${I?" mig-schema-table--clickable-rows":""}`,ref:yt,style:ln,role:"table",children:[t.jsxs("div",{className:"mig-schema-table__action-container",ref:wt,children:[t.jsx("div",{children:Q?t.jsx(cn,{className:"mig-schema-table__search",type:"search",name:"search",autoComplete:"off",placeholder:ye||k("search..."),value:d.searchQuery,onChange:Rt,onKeyDown:xt,autoFocus:w,onBlur:rn}):null}),n?t.jsx(n,{...S,renderData:G}):t.jsx("div",{className:"mig-schema-table__custom_element_placeholder"}),$&&Array.isArray(C)?t.jsx("span",{className:"mig-schema-table__row_counter",children:k("showingFilteredCountOfTotalCount",G?.length||0,C.length)}):null,o?t.jsx("button",{onClick:sn,style:{marginLeft:8},disabled:!G?.length,children:k("exportData")}):null,Q||l?t.jsx("button",{onClick:nn,style:{marginLeft:8},disabled:d.columnFilterMap&&d.searchQuery?Object.keys(d.columnFilterMap).length+d.searchQuery.length===0:!1,children:k("clearFilters")}):null,v?t.jsx("button",{onClick:on,style:{marginLeft:8},disabled:!Qe&&!qe,children:k("clearSettings")}):null]}),t.jsxs("div",{className:"mig-schema-table__column_resize_container",children:[t.jsx(c,{height:ut,itemCount:Ee,itemSize:Ze,layout:"horizontal",width:ue,sortAsc:d.sortAsc,setFilterSortColumn:rt,sortColumn:d.sortColumn,sortedRenderData:G,className:"mig-schema-table__th-row",children:gt},`thead_${ue}_${d.sortColumn}_${d.sortAsc}_${d.searchQuery}_${ce.join(" ")}`),an,_?t.jsx(Qt,{columnWidths:ce,resizeColumnIndex:Ye,setResizeColumnIndex:Ke,tableBodyHeight:Ce}):null]}),x&&x.length===0?t.jsx("div",{className:"mig-schema-table__no_data",children:"No data found"}):null,U?Tt.createPortal(t.jsx(zt,{isFilterable:l&&U.propConfig?.isFilterable!==!1,isSortable:bt(ne,H.properties[U.propName],U.propConfig),onChange:tn,onClose:en,onInputKeyDown:xt,propConfig:U.propConfig,propIsRequired:U.propIsRequired,propName:U.propName,propSchema:H.properties[U.propName],referenceElement:U.referenceElement,setFilterSortColumn:rt,translate:k,value:d.columnFilterMap?d.columnFilterMap[U.propName]:null}),document.body):null]})})},Ht=e.forwardRef(Gt),Xt=e.memo(Ht),Vt=e.memo(({refresh:n,period:s=60})=>{const[c,p]=e.useState(new Date),[g,m]=e.useState(new Date),S=e.useCallback(()=>{m(new Date),n()},[n]),C=e.useMemo(()=>Ge.differenceInSeconds(c,g),[c,g]);e.useEffect(()=>{C>s&&S()},[C,c,g,s,S]),e.useEffect(()=>{const D=setInterval(()=>{p(new Date)},1e3);return()=>{clearInterval(D)}},[]);const F=s-C;return t.jsxs("div",{className:"mx-auto",title:`Refresh ${F>0?`in ${F} seconds`:"NOW"}`,children:["Last update ",He(g,"HH:mm")]})});T.DEFAULT_DATE_FORMAT=Xe,T.DEFAULT_DATE_TIME_FORMAT=Ae,T.EColumnFilterStatus=ke,T.MINIMUM_COLUMN_WIDTH=Ve,T.RESIZER_WIDTH=ht,T.Refresher=Vt,T.SchemaTable=Xt,T.Th=gt,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})}));
|