mig-schema-table 5.0.5 → 5.0.7

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