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