mig-schema-table 5.0.18 → 5.0.19

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