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