@armtek/data 0.1.0

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.
Files changed (77) hide show
  1. package/dist/dataTableStoreFactory-BTH4XExR.cjs +1 -0
  2. package/dist/dataTableStoreFactory-CTIqHKTT.js +1505 -0
  3. package/dist/dataTableStoreFactory.css +1 -0
  4. package/dist/dictionary.cjs +1 -0
  5. package/dist/dictionary.d.ts +2 -0
  6. package/dist/dictionary.js +6 -0
  7. package/dist/index.cjs +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +15 -0
  10. package/dist/search.cjs +1 -0
  11. package/dist/search.d.ts +2 -0
  12. package/dist/search.js +4 -0
  13. package/dist/src/config/tests/changeDateField.d.ts +2 -0
  14. package/dist/src/config/tests/changeSelectField.d.ts +1 -0
  15. package/dist/src/config/tests/changeTextField.d.ts +1 -0
  16. package/dist/src/config/tests/clickBackdropOverlay.d.ts +1 -0
  17. package/dist/src/config/tests/createWrapper.d.ts +6 -0
  18. package/dist/src/index.d.ts +3 -0
  19. package/dist/src/modules/dictionary/config/types.d.ts +1 -0
  20. package/dist/src/modules/dictionary/index.d.ts +3 -0
  21. package/dist/src/modules/dictionary/lib/useDictionary.d.ts +7 -0
  22. package/dist/src/modules/dictionary/lib/useDictionaryFetching.d.ts +1 -0
  23. package/dist/src/modules/dictionary/lib/useDictionaryItems.d.ts +1 -0
  24. package/dist/src/modules/dictionary/lib/useDictionaryRequested.d.ts +1 -0
  25. package/dist/src/modules/dictionary/model/dictionaryStore.d.ts +19 -0
  26. package/dist/src/modules/dictionary/ui/DictInput.d.ts +10 -0
  27. package/dist/src/modules/search/Search.d.ts +21 -0
  28. package/dist/src/modules/search/index.d.ts +1 -0
  29. package/dist/src/modules/table/index.d.ts +11 -0
  30. package/dist/src/modules/table/lib/GetDefaultFilters.d.ts +2 -0
  31. package/dist/src/modules/table/lib/const.d.ts +1 -0
  32. package/dist/src/modules/table/lib/deleteUrlParamByName.d.ts +1 -0
  33. package/dist/src/modules/table/lib/formatDate.d.ts +3 -0
  34. package/dist/src/modules/table/lib/getFilterDisplayValue.d.ts +3 -0
  35. package/dist/src/modules/table/lib/local_storage.d.ts +6 -0
  36. package/dist/src/modules/table/lib/makePaginatedFilterParams.d.ts +12 -0
  37. package/dist/src/modules/table/lib/sortByField.d.ts +3 -0
  38. package/dist/src/modules/table/lib/uuid.d.ts +1 -0
  39. package/dist/src/modules/table/model/dataTableContext.d.ts +36 -0
  40. package/dist/src/modules/table/model/dataTableStoreFactory.d.ts +97 -0
  41. package/dist/src/modules/table/model/types.d.ts +22 -0
  42. package/dist/src/modules/table/model/useDataTable.d.ts +2 -0
  43. package/dist/src/modules/table/ui/ActionList/ActionList.d.ts +13 -0
  44. package/dist/src/modules/table/ui/DataTable.d.ts +54 -0
  45. package/dist/src/modules/table/ui/DataTable.skeleton.d.ts +12 -0
  46. package/dist/src/modules/table/ui/DataTableActions/DataTableActions.d.ts +6 -0
  47. package/dist/src/modules/table/ui/FilterBar/FilterBar.d.ts +71 -0
  48. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterForm.d.ts +9 -0
  49. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormCheckbox.d.ts +24 -0
  50. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormDate.d.ts +16 -0
  51. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormField.d.ts +10 -0
  52. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormInput.d.ts +19 -0
  53. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormInterval.d.ts +19 -0
  54. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormPeriod.d.ts +24 -0
  55. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormSearch.d.ts +21 -0
  56. package/dist/src/modules/table/ui/FilterBar/FilterForm/FilterFormSelect.d.ts +31 -0
  57. package/dist/src/modules/table/ui/FilterBar/FilterSearch/FilterSearch.d.ts +7 -0
  58. package/dist/src/modules/table/ui/FilterBar/FilterSelector.d.ts +7 -0
  59. package/dist/src/modules/table/ui/FilterBar/TableFilterBar.d.ts +2 -0
  60. package/dist/src/modules/table/ui/Menu/ContextMenu.d.ts +9 -0
  61. package/dist/src/modules/table/ui/Menu/ContextMenuBtn.d.ts +13 -0
  62. package/dist/src/modules/table/ui/Table/Table.d.ts +20 -0
  63. package/dist/src/modules/table/ui/Table/TableBody.d.ts +19 -0
  64. package/dist/src/modules/table/ui/Table/TableHead.d.ts +20 -0
  65. package/dist/src/modules/table/ui/TableActionBar/DataTableActionBar.d.ts +6 -0
  66. package/dist/src/modules/table/ui/TableActionBar/TableActionBar.d.ts +11 -0
  67. package/dist/src/modules/table/ui/TableActionBar/TableRowSelect.d.ts +10 -0
  68. package/dist/src/modules/table/ui/TableActionCol.d.ts +9 -0
  69. package/dist/src/modules/table/ui/TableCell.d.ts +11 -0
  70. package/dist/src/modules/table/ui/TableContextMenu.d.ts +16 -0
  71. package/dist/src/modules/table/ui/TablePagination.d.ts +2 -0
  72. package/dist/src/modules/table/ui/TableSort.d.ts +10 -0
  73. package/dist/table.cjs +1 -0
  74. package/dist/table.d.ts +2 -0
  75. package/dist/table.js +11 -0
  76. package/dist/vite.config.d.ts +2 -0
  77. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ "use strict";const Ge=require("@withease/factories"),n=require("react/jsx-runtime"),j=require("react"),X=require("armtek-uikit-react/ui/Icon"),ie=require("armtek-uikit-react/ui/Popover"),Ae=require("armtek-uikit-react/ui/List"),et=require("armtek-uikit-react/ui/Paper"),m=require("effector-react"),A=require("armtek-uikit-react/ui/Table"),Ne=require("armtek-uikit-react/ui/Form/Checkbox"),re=require("armtek-uikit-react/ui/ButtonIcon"),Ve=require("armtek-uikit-react/ui/Stack"),le=require("classnames"),ee=require("armtek-uikit-react/ui/Skeleton"),tt=require("armtek-uikit-react/ui/Table/TableBase"),nt=require("armtek-uikit-react/ui/Pagination"),Ue=require("armtek-uikit-react/ui/Form/TextField"),at=require("armtek-uikit-react/ui/Form/Select"),d=require("effector"),st=require("armtek-uikit-react/ui/Form/DateField"),rt=require("armtek-uikit-react/ui/Form/Period"),Re=require("armtek-uikit-react/ui/Loader"),_e=require("armtek-uikit-react/ui/Adornment"),lt=require("armtek-uikit-react/lib/hooks/useClickOutside"),ct=require("armtek-uikit-react/ui/Form/Interval"),ot=require("armtek-uikit-react/ui/Button"),it=require("armtek-uikit-react/ui/Chip");function ut(e){let{actions:t,selected:r,onSelect:c}=e,[l,s]=j.useState(null);const u=()=>s(null),a=i=>{u(),c(i)};return n.jsx(n.Fragment,{children:n.jsxs("div",{className:"bg-blue-50 flex justify-between",children:[n.jsxs("div",{children:["Выбрано: ",r.length]}),n.jsxs("div",{className:"bg-blue-a100 border-radius p-1 flex items-center justify-center",onClick:i=>s(i.currentTarget),children:[n.jsx("span",{children:"Действие"}),n.jsx(X.Mi,{icon:"expand_more"})]}),l&&n.jsx(ie,{open:!!l,anchorEl:l,onClose:u,placement:"bottom-end",children:n.jsx(et,{style:{minWidth:"230px"},children:t.map((i,o)=>n.jsx(Ae,{onClick:()=>a(o),children:i.label},o))})})]})})}const K=()=>j.useContext(Ie);function dt(){const{$tableActions:e,$items:t}=K(),r=m.useUnit(e),c=m.useUnit(t);if(r.length===0)return null;let l=c.filter(u=>u.dt_selected);const s=u=>{let a=r.find((i,o)=>o===u);a&&a.onClick(l)};return n.jsx(n.Fragment,{children:l.length>0&&n.jsx(ut,{actions:r,selected:l,onSelect:s})})}const ht="_rowCell__inner_e90xa_7",gt="_rowHead_e90xa_21",mt="_rowHead__inner_e90xa_29",pt="_TableSort__btn_e90xa_75",xt="_TableSort__btn_active_e90xa_83",ft="_TableSort_e90xa_75",H={rowCell__inner:ht,rowHead:gt,rowHead__inner:mt,TableSort__btn:pt,TableSort__btn_active:xt,TableSort:ft},Ee=e=>{let t=e.checked;return n.jsx(n.Fragment,{children:n.jsx(A.TableCell,{innerClassName:H.rowCell__inner,className:"prevent-click",children:n.jsx(Ne,{onChange:e.onChange,disabled:e.disabled,size:"medium",checked:t,intermediate:e.indeterminate})})})},yt=e=>{const{order:t,children:r,code:c,onSort:l,active:s,...u}=e;return n.jsx(n.Fragment,{children:n.jsxs(Ve,{center:!0,spacing:"small",...u,onClick:()=>l(c),className:H.TableSort,children:[r,n.jsx(re,{size:"small",className:le(H.TableSort__btn,{[H.TableSort__btn_active]:!!s}),children:n.jsx(X.Mi,{icon:t==="asc"?"arrow_downward":"arrow_upward",size:"extraLarge"})})]})})},xe=e=>{let{code:t,sort:r,activeSort:c,order:l,onSort:s,children:u,...a}=e;return n.jsx(n.Fragment,{children:n.jsx(A.TableCell,{...a,className:le(a.className,H.rowHead),innerClassName:H.rowHead__inner,head:!0,children:r&&s?n.jsx(yt,{order:l,active:c,code:t,onSort:s,children:e.children}):e.children})})};function St(e){let{structure:t,sort:r,displayIndex:c,displayActionCol:l,onSelect:s,selected:u,indeterminate:a,...i}=e;return n.jsx(n.Fragment,{children:n.jsx("thead",{children:n.jsxs(A.TableRow,{children:[!!s&&n.jsx(Ee,{checked:u,indeterminate:a,onChange:s,head:!0}),c&&n.jsx(xe,{code:"index",width:64,children:"#"}),t.map(o=>n.jsx(xe,{code:String(o.id),activeSort:o.sort&&o.id===r,sort:o.sort,...i,children:n.jsx("div",{className:H.rowCellInner,children:o.getTitle?o.getTitle():o.label})},String(o.id))),l&&n.jsx(xe,{code:"actions",width:56})]})})})}function bt(e){const{$sort:t,$order:r,$items:c,$displayActionCol:l,$displayIndex:s,$tableActions:u,rowsSelected:a,sortSet:i,$structure:o}=K(),g=m.useUnit(t),x=m.useUnit(r),v=m.useUnit(c),k=m.useUnit(l),f=m.useUnit(u).length>0,y=m.useUnit(s),S=m.useUnit(a),D=m.useUnit(i),w=m.useUnit(o),$=F=>{const P=F.target.checked;let Y=v.filter(z=>e.getIsRowActive?e.getIsRowActive(z):!0).map(z=>z.dt_id);S({rows:Y,flag:P})},R=F=>{D(F)};let E=v.filter(F=>F.dt_selected).length,N=E>0&&E===v.filter(F=>e.getIsRowActive?e.getIsRowActive(F):!0).length;return n.jsx(n.Fragment,{children:n.jsx(St,{structure:w,sort:g,order:x,onSort:R,onSelect:f?$:void 0,selected:N,indeterminate:E>0&&!N,displayIndex:y,displayActionCol:k})})}const ue=e=>{let{items:t,onButtonClick:r,wrapperClassName:c}=e;return n.jsx(n.Fragment,{children:n.jsx("div",{className:le("py-1",c),children:t.map((l,s)=>n.jsx(Ae,{onClick:()=>{l.onClick?l.onClick(l):r&&r(l)},children:l.label},s))})})},jt=e=>{let{children:t,items:r,...c}=e;return n.jsx(n.Fragment,{children:n.jsx(ie,{...c,classes:{paper:"p-0"},children:n.jsxs("div",{"data-testid":"context-menu-actions",children:[!!r&&n.jsx(ue,{items:r}),t]})})})},vt=e=>{const{Button:t,children:r,disabled:c}=e;let[l,s]=j.useState(null);const u=e.items.map(a=>({...a,onClick:()=>{a.onClick?.(a),s(null)}}));return c?null:n.jsxs(n.Fragment,{children:[t?n.jsx(t,{onClick:a=>s(a.target)}):r?n.jsx("div",{onClick:a=>s(a.target),children:r}):n.jsx(re,{onClick:a=>s(a.target),variant:"transparent","data-testid":e["data-testid"]||"context-menu-btn",color:"neutral",size:"small",children:n.jsx(X.Mi,{icon:"more_vert",className:"text-gray-800"})}),n.jsx(jt,{anchorEl:l,open:!!l,onClose:()=>s(null),placement:"bottom-end",items:u})]})};function Ye(e){const t=r=>{r&&r(e.row)};return n.jsx(n.Fragment,{children:n.jsx(A.TableCell,{innerClassName:H.rowCell__inner,children:n.jsx(vt,{"data-testid":"dt-action-cell",items:e.actions.map(r=>({onClick:()=>t(r.onClick),label:r.label}))})})})}const Ct="_dtactions_1taex_1",_t="_dtactions__actions_1taex_8",De={dtactions:Ct,dtactions__actions:_t},Dt=e=>n.jsx(n.Fragment,{children:n.jsx("div",{className:le("DataTableRowActions",De.dtactions),children:n.jsx("div",{children:n.jsx(ue,{items:e.actions,wrapperClassName:De.dtactions__actions})})})});function wt(e){let{col:t,row:r,hovered:c,actions:l}=e,s=!!t.displayActions&&c;const u=typeof t.className=="string"?t.className:t.className?.(r);return n.jsx(n.Fragment,{children:n.jsxs(A.TableCell,{className:le("relative",u),"data-testid":"dt-cell",innerClassName:H.rowCell__inner,style:t.style,children:[n.jsx("div",{className:"TableCellContent","data-testid":"dt-cell-"+String(t.id),style:{display:s?"none":"block"},children:n.jsx("div",{children:t.getValue?t.getValue(e.row):e.row[t.id]})}),s&&l&&n.jsx(Ft,{row:r,actions:l})]})})}const Ft=e=>{let t=e.actions.map(r=>({label:r.label,icon:r.icon,onClick:()=>r.onClick?r.onClick(e.row):null}));return n.jsx(n.Fragment,{children:n.jsx(Dt,{actions:t})})},kt=j.memo(wt);function $t(e){let{contextActions:t,x:r,y:c,anchorEl:l,onContextClick:s,row:u}=e,a=t.filter(i=>i.active?typeof i.active=="boolean"?i.active:i.active(u):!0).map(i=>({label:i.label,onClick:()=>{i.onClick&&i.onClick(u),s&&s()}}));return n.jsx(n.Fragment,{children:l&&n.jsx(ie,{classes:{paper:"p-0"},placement:"bottom-start",open:!0,anchorEl:l,anchorPosition:{x:r,y:c},onClose:s,children:n.jsx(ue,{items:a})})})}const Tt=e=>n.jsx(n.Fragment,{children:n.jsx(A.TableRow,{"data-testid":"dt-empty",children:n.jsx(A.TableCell,{colSpan:e.cols||1,children:e.children})})});function Mt(e){let{getRowStyles:t,getIsRowActive:r,emptyResult:c,onRowClick:l,onContextMenu:s,rowClassName:u}=e;const{$items:a,$structure:i,$pageSize:o,$page:g,$local:x,$displayActionCol:v,$tableActions:k,$displayIndex:f,$requested:y}=K();let S=m.useUnit(a);const D=m.useUnit(o),w=m.useUnit(g),$=m.useUnit(x),R=m.useUnit(v),E=m.useUnit(k).length>0,N=m.useUnit(f),F=m.useUnit(y),P=m.useUnit(i);$&&(S=S.filter(V=>!V.dt_hidden)),$&&D&&w&&(S=S.slice(w*D-D,w*D));let Y=!!c&&F&&S.length===0,z=(R?1:0)+(N?1:0)+(E?1:0)+P.length;return n.jsx(n.Fragment,{children:n.jsxs("tbody",{children:[Y&&n.jsx(Tt,{cols:z,children:e.emptyResult}),S.map((V,W)=>{let q=W+1+(D*w-D);return n.jsx(At,{row:V,index:q,getRowStyles:t,rowClassName:u,getIsRowActive:r,onRowClick:l,onContextMenu:s?Z=>s(Z,V):void 0},W)})]})})}function At(e){let{rowClassName:t,row:r,onRowClick:c}=e,[l,s]=j.useState(!1);const[u,a]=j.useState(null),[i,o]=j.useState(0),[g,x]=j.useState(0),{$tableActions:v,$displayActionCol:k,$displayIndex:f,$rowActions:y,$contextActions:S,rowsSelected:D,$structure:w}=K(),$=m.useUnit(v).length>0,R=m.useUnit(k),E=m.useUnit(f),N=m.useUnit(w),F=m.useUnit(y),P=m.useUnit(S),Y=m.useUnit(D),z=P.length>0,V=F.length>0,W=c?M=>{!M.target.closest(".prevent-click")&&c&&c(M,r)}:void 0,q=M=>{z&&(M.preventDefault(),a(M.currentTarget),o(M.clientX),x(M.clientY))},Z=M=>{Y({rows:[e.row.dt_id],flag:M.target.checked})};let J=e.row.dt_selected,L={...c&&{cursor:"pointer"}};const G=j.useMemo(()=>e.getRowStyles?e.getRowStyles(e.row):{},[]);return L={...L,...G},n.jsxs(n.Fragment,{children:[n.jsxs(A.TableRow,{className:t&&(typeof t=="string"?t:t(e.row)),"data-testid":"dt-row",onClick:W,onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),onContextMenu:q,style:L,children:[$&&n.jsx(Ee,{disabled:e.getIsRowActive?!e.getIsRowActive(e.row):!1,onChange:Z,checked:J}),E&&n.jsx(A.TableCell,{innerClassName:H.rowCell__inner,children:e.index}),N.map((M,I)=>n.jsx(kt,{hovered:l&&!!V&&!R,col:M,actions:F,row:e.row},I)),R&&F&&n.jsx(Ye,{row:e.row,actions:F})]}),P&&n.jsx($t,{row:r,x:i,y:g,anchorEl:u,contextActions:P,onContextClick:()=>a(null)})]})}const Nt=()=>n.jsx("div",{className:"mb-2 flex items-center border-bottom border-gray-300",style:{height:72},children:n.jsx(ee,{width:40,height:40})}),Vt=()=>n.jsxs(n.Fragment,{children:[n.jsx(Nt,{}),[...Array(10)].map((e,t)=>n.jsxs("div",{children:[n.jsx(ee,{height:"45px",width:"100%"}),n.jsx("div",{style:{height:"2px",width:"100%"}})]},t))]}),Ut=e=>n.jsx(n.Fragment,{children:n.jsx("tbody",{children:[...Array(e.pageSize)].map((t,r)=>n.jsxs(A.TableRow,{children:[e.useSelection&&n.jsx(A.TableCell,{width:64,children:n.jsx(ee,{width:"100%",height:30})}),e.useIndexes&&n.jsx(A.TableCell,{width:64,children:n.jsx(ee,{width:"100%",height:30})}),e.structure.map((c,l)=>n.jsx(A.TableCell,{style:c.style,innerClassName:H.rowCell__inner,children:n.jsx(ee,{width:"100%",height:30})},l)),e.useActionCol&&n.jsx(A.TableCell,{width:56,children:n.jsx(ee,{width:"100%",height:30})})]},r))})}),Rt=j.memo(Vt);function Et(e){let{emptyResult:t,getRowStyles:r,getIsRowActive:c,onRowClick:l,onContextMenu:s,rowClassName:u,...a}=e;const{$isFetching:i}=K(),o=m.useUnit(i);return n.jsx(n.Fragment,{children:n.jsxs(tt.TableBase,{"data-testid":"data-table",...a,children:[n.jsx(bt,{getIsRowActive:c}),o?n.jsx(Yt,{}):n.jsx(Mt,{getRowStyles:r,getIsRowActive:c,emptyResult:t,onRowClick:l,onContextMenu:s,rowClassName:u})]})})}const Yt=()=>{const{$structure:e,$tableActions:t,$displayIndex:r,$displayActionCol:c,$pageSize:l}=K();let s=m.useUnit(t).length>0,u=m.useUnit(r),a=m.useUnit(c),i=m.useUnit(l),o=m.useUnit(e);return n.jsx(n.Fragment,{children:n.jsx(Ut,{useSelection:s,useIndexes:u,useActionCol:a,structure:o,pageSize:i})})},zt=[12,24,36,48,60],Pt="Количество строк",qt=()=>{const{$page:e,$pageSize:t,$count:r,pageSizeSet:c,pageSet:l}=K(),s=m.useUnit(r),u=m.useUnit(t),a=m.useUnit(e),i=m.useUnit(l),o=m.useUnit(c);let g=Math.ceil(s/u);return!u||!s?null:n.jsx(n.Fragment,{children:n.jsx("div",{className:"mt-2 flex justify-end",children:n.jsx(nt,{pageSizeLabel:Pt,pageSizes:zt,total:g,pageSize:u,page:a,onPageSizeSelect:o,onChange:i})})})},T=[];for(let e=0;e<256;e+=1)T[e]=e.toString(16).padStart(2,"0");const Lt=e=>`${T[e[0]]}${T[e[1]]}${T[e[2]]}${T[e[3]]}-${T[e[4]]}${T[e[5]]}-${T[e[6]]}${T[e[7]]}-${T[e[8]]}${T[e[9]]}-${T[e[10]]}${T[e[11]]}${T[e[12]]}${T[e[13]]}${T[e[14]]}${T[e[15]]}`,Ot=e=>{if(typeof crypto<"u"&&crypto.getRandomValues){crypto.getRandomValues(e);return}for(let t=0;t<e.length;t+=1)e[t]=Math.floor(Math.random()*256)},Bt=()=>{if(typeof crypto<"u"&&crypto.randomUUID)return crypto.randomUUID();const e=new Uint8Array(16);return Ot(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128,Lt(e)},Ht=e=>{let{item:t,fieldProps:r,onChange:c,value:l=""}=e;const s=a=>t.getDisplayValue?t.getDisplayValue(t,a):`${t.label}: ${a}`,u=a=>{c(a.currentTarget.value,s(a.currentTarget.value))};return n.jsx(n.Fragment,{children:n.jsx(Ue,{name:String(t.code),onChange:u,value:l,style:{width:"468px"},placeholder:"Поиск",endAdornment:n.jsx(X.Mi,{icon:"search"}),...r})})},te=d.createStore({}),de=d.createEvent(),ze=d.createEvent(),Pe=d.createEffect(async e=>{const{getData:t,...r}=e;return je(r),await t()});d.sample({clock:de,fn:e=>e.code,target:ze});d.sample({clock:de,target:Pe});d.sample({source:te,clock:ze,fn:(e,t)=>({...e,[t]:{...e[t],isFetching:!0}}),target:te});d.sample({source:te,clock:Pe.done,fn:(e,t)=>({...e,[t.params.code]:{code:t.params.code,getData:t.params.getData,requested:!0,isFetching:!1,items:t.result}}),target:te});function Se(e){return m.useStoreMap({store:te,keys:[e],fn:t=>t[e]?.items||[],defaultValue:[]})}const It=e=>m.useStoreMap({store:te,keys:[e],fn:t=>!!t[e]?.requested});function qe(e){return m.useStoreMap({store:te,keys:[e],fn:t=>!!t[e]?.isFetching})}function Le(e,t){const r=qe(e),c=Se(e),l=It(e),s=m.useUnit(de);return j.useEffect(()=>{l||c.length>0||s({getData:t,code:e})},[l]),{isFetching:r,items:c}}function be(e){let{value_key:t="id",label_key:r="name",getData:c,Component:l,code:s,...u}=e,{isFetching:a,items:i}=Le(s,c);return a?n.jsx("div",{className:u.className,children:n.jsx(ee,{width:"100%",height:56})}):n.jsx(n.Fragment,{children:n.jsx(l,{...u,options:i.map(o=>({text:o[r],label:o[r],value:o[t]}))})})}const Qt=e=>{let{item:t}=e;return t.async?n.jsx(be,{Component:we,api:t.async.api,endpoint:t.async.endpoint,value_key:t.async.valueKey,label_key:t.async.labelKey,cache:!1,...e}):n.jsx(we,{...e})},we=e=>{let{item:t,onChange:r,value:c="",error:l,options:s}=e;try{(!t.options||t.options.length===0)&&(t.options=s)}catch{console.error("Баг на запись в readonly объект")}const u=i=>t.getDisplayValue?t.getDisplayValue(t,i):t.multiple?`${t.label}: ${s?.filter(o=>i.includes(o.value))?.map(o=>o.text).join(", ")}`:`${t.label}: ${s.find(o=>o.value===i)?.text||i}`,a=i=>{const o=Array.isArray(i.target.value)?i.target.value.filter(Boolean):i.target.value;r(o,u(o))};return n.jsx(n.Fragment,{children:n.jsx(at,{"data-testid":"filter-select-"+String(t.code),error:!!l,helperText:l,multiple:t.multiple,clear:t.clear||!0,search:t.search||!0,listStyle:t.multiple?"checkbox":"default",name:String(t.code),label:t.label,options:s,onChange:a,value:c})})},Kt=["янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"],Wt=["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"],Zt=["вс","пн","вт","ср","чт","пт","сб"],Jt=["вск","пнд","втр","срд","чтв","птн","сбт"],Xt=["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],Gt=/\[[^\]]*]|YYYY|YY|Y|MMMM|MMM|MM|M|DDDD|DDD|DD|Do|D|dddd|ddd|dd|d|HH|H|hh|h|mm|m|ss|s|SSS|SS|S|A|a|ZZ|Z|X|x|Q/g,se=e=>!Number.isNaN(e.getTime()),O=(e,t=2)=>String(e).padStart(t,"0"),en=e=>{const t=e%100;if(t>=11&&t<=13)return`${e}th`;const r=e%10;return r===1?`${e}st`:r===2?`${e}nd`:r===3?`${e}rd`:`${e}th`},Fe=e=>{const t=Date.UTC(e.getFullYear(),0,0),r=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate());return Math.floor((r-t)/864e5)},ke=(e,t)=>{const r=e.getTimezoneOffset(),c=r<=0?"+":"-",l=Math.abs(r),s=O(Math.floor(l/60),2),u=O(l%60,2);return t?`${c}${s}:${u}`:`${c}${s}${u}`},tn=e=>{if(e instanceof Date)return se(e)?new Date(e.getTime()):null;const t=e.trim();if(!t)return null;const r=t.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(r){const l=Number(r[1]),s=Number(r[2])-1,u=Number(r[3]),a=new Date(l,s,u);return se(a)?a:null}if(/^\d{10}$/.test(t)){const l=new Date(Number(t)*1e3);return se(l)?l:null}if(/^\d{13}$/.test(t)){const l=new Date(Number(t));return se(l)?l:null}const c=new Date(t);return se(c)?c:null},nn=(e,t)=>{const r=e.getFullYear(),c=e.getMonth(),l=e.getDate(),s=e.getDay(),u=e.getHours(),a=e.getMinutes(),i=e.getSeconds(),o=e.getMilliseconds(),g=u>=12?"PM":"AM";switch(t){case"Y":return String(r);case"YY":return String(r).slice(-2);case"YYYY":return String(r);case"M":return String(c+1);case"MM":return O(c+1,2);case"MMM":return Kt[c];case"MMMM":return Wt[c];case"D":return String(l);case"DD":return O(l,2);case"Do":return en(l);case"DDD":return String(Fe(e));case"DDDD":return O(Fe(e),3);case"d":return String(s);case"dd":return Zt[s];case"ddd":return Jt[s];case"dddd":return Xt[s];case"H":return String(u);case"HH":return O(u,2);case"h":return String(u%12||12);case"hh":return O(u%12||12,2);case"m":return String(a);case"mm":return O(a,2);case"s":return String(i);case"ss":return O(i,2);case"S":return String(Math.floor(o/100));case"SS":return O(Math.floor(o/10),2);case"SSS":return O(o,3);case"A":return g;case"a":return g.toLowerCase();case"Z":return ke(e,!0);case"ZZ":return ke(e,!1);case"X":return String(Math.floor(e.getTime()/1e3));case"x":return String(e.getTime());case"Q":return String(Math.floor(c/3)+1);default:return t}},B=(e,t="DD.MM.YYYY")=>{const r=tn(e);return r?t.replace(Gt,c=>c.startsWith("[")&&c.endsWith("]")?c.slice(1,-1):nn(r,c)):"Invalid date"},an=e=>{let{item:t,onChange:r,value:c=null}=e;const l=u=>{if(t.getDisplayValue)return t.getDisplayValue(t,u);let a="";return t.matchMode==="gt"&&(a="больше"),t.matchMode==="gte"&&(a="больше или равно"),t.matchMode==="lt"&&(a="меньше"),t.matchMode==="lte"&&(a="меньше или равно"),`${t.label} ${a}: ${B(u,"DD.MM.YYYY")}`},s=u=>{const a=u.target.value;a&&r(a,l(a))};return n.jsx(n.Fragment,{children:n.jsx(st,{name:String(t.code),label:t.label,showMonthYearDropdown:!0,onChange:s,value:c||null})})},sn=e=>{let{item:t,onChange:r}=e;const c=(s,u)=>{let a=B(s),i=B(u);return t.getDisplayValue?t.getDisplayValue(t,{start:s,end:u}):`${t.label}: с ${a} по ${i}`},l=s=>{const[u,a]=s.target.value;u&&a&&r({start:u,end:a},c(u,a))};return n.jsx(n.Fragment,{children:n.jsx(rt,{placeholder:"дд.мм.гггг — дд.мм.гггг",onChange:l})})},rn=e=>{let{item:t}=e;return t.async?n.jsx(be,{Component:$e,api:t.async.api,endpoint:t.async.endpoint,value_key:t.async.valueKey,label_key:t.async.labelKey,cache:!1,...e}):n.jsx($e,{...e})},$e=e=>{let{item:t,onChange:r,options:c}=e,[l,s]=j.useState([]);try{(!t.options||t.options.length===0)&&(t.options=c)}catch{console.error("Баг на запись в readonly объект")}const u=i=>t.getDisplayValue?t.getDisplayValue(t,i):`${t.label}: ${c?.filter(o=>i.includes(o.value||o.text))?.map(o=>o.text).join(", ")}`,a=i=>{const o=i.target.checked;let g=[...l];o?g.push(i.target.value):g=g.filter(x=>x!==i.target.value),r(g,u(g)),s(g)};return n.jsx(n.Fragment,{children:c.map((i,o)=>n.jsx("div",{className:"mb-1",children:n.jsx(Ne,{value:i.value,name:String(t.code),label:i.text,disabled:i.disabled,onChange:a})},o))})},ln="_SearchResult_1uw6b_1",cn={SearchResult:ln};function Oe(e){let{endpoint:t,getValue:r=C=>C.id,getOption:c=C=>C.name,getTitle:l,noResultNode:s="",defaultValue:u,onSelect:a,onChange:i,onReset:o,onClickAway:g,recommendations:x,label__recommendations:v,inputProps:k,getData:f,code:y,...S}=e;const[D]=m.useUnit([de]),w=qe(y),$=Se(y);let[R,E]=j.useState(null),[N,F]=j.useState(!1),[P,Y]=j.useState(u||"");const[z,V]=j.useState(!!S.focused),W=()=>{q(),Y(""),o&&o()},q=()=>{F(!1),V(!1),g&&g()},Z=lt(q);l||(l=c);const J=C=>{let _=C.target.value;if($.length&&F&&F(!1),_.length>=3){R&&clearTimeout(R);let ne=setTimeout(()=>{typeof t!="string"&&(t=t(_)),D({getData:f,code:y})},500);E(ne)}i?i(_):Y(_)},L=C=>{Y(l(C)),V(!1),i&&i(l(C)),a&&a(r(C),C)},G=C=>{V(!0),S.onFocus?.(C)},M=C=>{V(!1),S.onBlur?.(C)};let I=e.value||P,ce=n.jsxs(n.Fragment,{children:[!!I.length&&n.jsx(_e,{position:"start",children:n.jsx(re,{"data-testid":"search-reset",variant:"transparent",color:"neutral",size:"small",onClick:W,children:n.jsx(X.Mi,{icon:"close",className:"text-gray-600"})})}),n.jsx(_e,{position:"start",children:w?n.jsx(Re,{}):n.jsx(X.Mi,{icon:"search",className:"text-gray-600"})})]});return n.jsx(n.Fragment,{children:n.jsx("div",{className:"relative","data-testid":"search",children:n.jsx("div",{children:n.jsx("div",{ref:Z,children:n.jsxs("div",{children:[n.jsx(Ue,{"data-testid":"search-input",...S,value:I,...k,onChange:J,onFocus:G,onBlur:M,endAdornment:ce}),n.jsx("div",{children:($.length>0||N||x)&&n.jsx("div",{"data-testid":"search-result",className:cn.SearchResult,children:n.jsxs("div",{children:[x&&$.length===0&&z&&!N&&n.jsx(on,{title:v,items:x,renderItem:c,onSelect:L}),$.map((C,_)=>n.jsx("div",{className:"SearchAnythingOption","data-testid":"search-option",onClick:()=>L(C),children:c(C)},_)),N&&s]})})})]})})})})})}function on(e){let{title:t,items:r,renderItem:c,onSelect:l}=e;return n.jsxs(n.Fragment,{children:[t&&n.jsx("div",{className:"py-2",children:n.jsx("div",{className:"text-gray-500","data-testid":"search-recommendations-title",children:t})}),n.jsx("div",{"data-testid":"search-recommendations-result",children:r.map((s,u)=>n.jsx("div",{className:"py-1","data-testid":"search-recommendations-item",onClick:()=>l(s),children:c(s)},u))})]})}const fe=(e,t)=>typeof t=="string"?e[t]:t(e),un=e=>{let{item:t,onChange:r,value:c=""}=e,[l,s]=j.useState(c);const u=o=>t.getDisplayValue?t.getDisplayValue(t,o):`${t.label}: ${o}`,a=(o,g)=>{r(o,u(fe(g,t.async.labelKey||"name")))};let i=typeof t.async.endpoint=="string"?t.async.endpoint:t.async.endpoint(l);return n.jsx(n.Fragment,{children:n.jsx("div",{children:n.jsx(Oe,{onChange:s,onSelect:a,value:l,endpoint:i,getValue:o=>o[t.async.valueKey||"id"],getTitle:o=>fe(o,t.async.labelKey||"name"),getOption:o=>fe(o,t.async.labelKey||"name")})})})},dn=e=>{let{item:t,onChange:r,min:c,max:l}=e;const s=a=>t.getDisplayValue?t.getDisplayValue(t,a):`${t.label}: ${a[0]} - ${a[1]}`,u=a=>{r(a,s(a))};return n.jsx(n.Fragment,{children:n.jsx("div",{className:"pb-5",style:{width:360},children:n.jsx(ct.IntervalSlide,{min:c,max:l,size:"small",defaultValue:[c,l],onChange:u})})})},Be=e=>{let{item:t,value:r,onChange:c,error:l}=e;return n.jsxs(n.Fragment,{children:[t.type==="string"&&n.jsx(Ht,{item:t,value:r,onChange:c,fieldProps:t.fieldProps}),(t.type==="select"||t.type==="filter")&&n.jsx(Qt,{error:l,type:t.type,item:t,value:r,options:t.options,onChange:c}),t.type==="date"&&n.jsx(an,{item:t,value:r,onChange:c}),t.type==="period"&&n.jsx(sn,{item:t,value:r,onChange:c}),t.type==="checkbox"&&n.jsx(rn,{item:t,value:r,options:t.options,onChange:c}),t.type==="search"&&n.jsx(un,{item:t,value:r,onChange:c}),t.type==="interval"&&n.jsx(dn,{item:t,value:r,min:t.min,max:t.max,onChange:c})]})},hn="_filter_close_o8fvt_1",gn={filter_close:hn};function mn(e){let{filter:t,onClose:r,onSubmit:c}=e,[l,s]=j.useState(""),[u,a]=j.useState("");const i=(g,x)=>{s(g),a(x)},o=()=>{c(l,u)};return n.jsx(n.Fragment,{children:n.jsxs("div",{style:{minWidth:t.type==="search"?"560px":"360px"},"data-testid":"filter-form",children:[n.jsxs("div",{className:"relative mb-2 py-2 px-2 bg-gray-200",children:[n.jsx("div",{children:t.label}),n.jsx("div",{className:gn.filter_close,children:n.jsx(re,{onClick:r,size:"small",children:n.jsx(X.Mi,{icon:"close"})})})]}),n.jsx("div",{className:"mb-2 px-2",children:n.jsx(Be,{value:l,item:t,onChange:i})}),n.jsx("div",{className:"px-2 py-1 border-top border-gray-200 flex justify-end",children:n.jsx(ot,{onClick:o,size:"medium",color:"neutral","data-testid":"filter-submit",disabled:!l,variant:"transparent",children:"Применить"})})]})})}const pn=e=>{let{onSubmit:t,items:r}=e,[c,l]=j.useState(null),[s,u]=j.useState(null),[a,i]=j.useState(null);const o=f=>{i(f.currentTarget)},g=()=>{u(null),i(null)},x=f=>{let y=r.find(S=>S.code===f.value);y.type==="button"?(t(y,y.value,y.label),g()):u(y)},v=(f,y)=>{s&&(t(s,f,y),g())};let k=r.map(f=>({value:f.code,label:f.label}));return n.jsxs(n.Fragment,{children:[n.jsx(re,{size:"small",onClick:o,"data-testid":"filter-btn",children:n.jsx(X.Mi,{icon:"filter_list",size:"extraLarge",className:"text-extraLarge"})}),a&&n.jsx(ie,{classes:{paper:"p-0"},open:!!a,anchorEl:a,onClose:g,placement:"bottom-start",children:!s||s.type==="button"?n.jsx("div",{"data-testid":"filter-filters",children:n.jsx(ue,{items:k,onButtonClick:x})}):n.jsx(mn,{filter:s,onClose:g,onSubmit:v})})]})},xn="_filter_search_input_1rpsv_1",fn="_filter_search_loader_1rpsv_16",Te={filter_search_input:xn,filter_search_loader:fn},yn=e=>{let[t,r]=j.useState(e.value),[c,l]=j.useState(null),[s,u]=j.useState(!1);const a=i=>{let o=i.currentTarget.value;if(r(o),c&&clearTimeout(c),e.onChange){u(!0);let g=setTimeout(()=>{e.onChange(o),u(!1)},e.delay||2e3);l(g)}};return n.jsx(n.Fragment,{children:n.jsxs("div",{className:"relative pr-3 flex items-center",children:[n.jsx("input",{className:Te.filter_search_input,type:"text",placeholder:"Поиск",value:t,onChange:a}),s&&n.jsx("div",{className:Te.filter_search_loader,children:n.jsx(Re,{color:"neutral",size:"small"})})]})})},Sn=(e,t,r)=>{let c={},l={},s;const u=a=>{let i=a.matchMode||"exact",o={};if(a.value===void 0)return o;switch(a.type){case"string":case"search":case"select":o={value:a.getValue?a.getValue(a.value):a.value,matchMode:i,displayValue:a.displayValue};break;case"date":let x=B(a.value,"YYYY-MM-DD");a.getValue&&a.value&&(x=a.getValue(a.value)),o={value:x,matchMode:i,displayValue:a.displayValue};break;case"period":let v=a.getEnd?a.getEnd(a.value.end):B(a.value.end,a.endFormat||""),f=[a.getStart?a.getStart(a.value.start):B(a.value.start,a.startFormat||""),v];a.getValue&&(f=a.getValue(a.value)),o={value:f,matchMode:"range",displayValue:a.displayValue};break;case"checkbox":o={value:a.value,matchMode:"in",displayValue:a.displayValue};break;case"interval":let y=a.value;a.getValue&&a.value&&(y=a.getValue(a.value)),o={value:y,matchMode:a.matchMode||"interval",displayValue:a.displayValue};break;default:o={value:a.value,matchMode:a.matchMode||"exact",displayValue:a.displayValue};break}return o};return e.filter(a=>a.logic!=="sub").forEach(a=>{c[String(a.code)]=u(a)}),s=e.filter(a=>a.logic==="sub").map(a=>({sys_name:{value:String(a.code),matchMode:"exact"},value:u(a),sub_values_list:a.subLogic?.sub_values_list||"",sub_app:a.subLogic?.sub_app||"",sub_model:a.subLogic?.sub_model||""})),r&&t&&t.forEach(a=>{l[a]={value:r,matchMode:"contains"}}),Object.values(c).length+Object.values(l).length+s.length>0?{and:c,or:l,sub:s}:!1};function Me(e,t,r,c){const l=(s,u)=>{if(!s.value)return!1;let a=!0,i=String(s.compareKey||s.code),o=String(s.getCompareValue?s.getCompareValue(u):u[i]);if(s.getValid)a=s.getValid(u,s);else if(s.type==="string")((s.matchMode==="contains"||s.matchMode==="icontains"||!s.matchMode)&&(!o||!o.toLowerCase().includes(s.value.toLowerCase()))||s.matchMode==="exact"&&o?.toLowerCase()!==s.value.toLowerCase())&&(a=!1);else if(s.type==="search")s.matchMode==="contains"||s.matchMode==="icontains"?o?.includes(s.value)||(a=!1):o!==s.value&&(a=!1);else if(s.type==="select"){let g=s.options.find(x=>x.value===s.value);a=!1,(s.matchMode==="contains"&&g&&(o.includes(g.text)||o.includes(g.value))||g&&(o===g.text||o===g.value))&&(a=!0)}else if(s.type==="date"&&s.value){let g=new Date(B(new Date(o),"YYYY-MM-DD")),x=new Date(B(s.value,"YYYY-MM-DD"));(s.matchMode==="exact"&&g.getTime()!==x.getTime()||s.matchMode==="gt"&&g.getTime()<=x.getTime()||s.matchMode==="gte"&&g.getTime()<x.getTime()||s.matchMode==="lt"&&g.getTime()>=x.getTime()||s.matchMode==="lte"&&g.getTime()>x.getTime())&&(a=!1)}else if(s.type==="period"&&s.value.end&&s.value.start){let g=new Date(B(s.value.start,"YYYY-MM-DD")),x=new Date(B(s.value.end,"YYYY-MM-DD")),v=new Date(B(new Date(o),"YYYY-MM-DD"));(v.getTime()>x.getTime()||v.getTime()<g.getTime())&&(a=!1)}else s.type==="checkbox"&&(s.value.includes(o)||(a=!1));return a};return e.map(s=>{let u=t.every(a=>l(a,s));return{...s,dt_hidden:!u}})}function He(e){let{items:t,searchItems:r,selected:c,onSubmit:l,onDelete:s,onChange:u,searchDelay:a,searchQuery:i}=e,[o,g]=j.useState(c||[]);const x=(f,y,S)=>{let D=o.filter(w=>w.code!==f.code).concat({...f,value:y,displayValue:S});g(D),u&&u(D),l&&l(f,y,S)},v=f=>{let y=o.filter(S=>S.code!==f.code);g(y),u&&u(y),s&&s(String(f.code))};let k=o.filter(f=>!f.hidden);return n.jsx(n.Fragment,{children:n.jsx("div",{className:"flex items-center border-bottom border-gray-300",style:{minHeight:76},children:n.jsxs("div",{className:"flex items-center w-full",children:[n.jsx("div",{children:n.jsx(pn,{items:t,onSubmit:x})}),k.length>0&&n.jsx(Ve,{className:"ml-1",spacing:"small",children:k.map((f,y)=>n.jsx(it,{"data-testid":"filter-chip",text:f.displayValue,onClose:()=>v(f)},y))}),!!r&&r.length>0&&e.onSearch&&n.jsx("div",{className:"text-gray-500 ml-1 block",children:n.jsx(yn,{value:i||"",onChange:e.onSearch,delay:a})})]})})})}function bn(){const{$search:e,$filters:t,$currentFilter:r,currentFilterSet:c,currentFilterDeleted:l,searchQuerySet:s,$searchQuery:u}=K(),a=m.useUnit(e),i=m.useUnit(t),o=m.useUnit(r),g=m.useUnit(s),x=m.useUnit(l),v=m.useUnit(c),k=m.useUnit(u),f=i.filter(S=>!S.hidden),y=(S,D,w)=>{const $={...S,value:D,displayValue:w};v($)};return f.length<=0?null:n.jsx("div",{"data-testid":"dt-filter",children:n.jsx(He,{searchQuery:k,selected:o,items:f,searchItems:a,onSubmit:y,onDelete:x,onSearch:g,searchDelay:1e3})})}const oe=e=>e.map(t=>({...t,dt_id:Bt(),dt_hidden:!1,dt_selected:!1}));function jn(e){let{structure:t,items:r,getRowStyles:c,onRowClick:l,rowClassName:s,onContextMenu:u,emptyResult:a}=e;const{dataTableInitialized:i,itemsSet:o,$isReady:g,dataFetched:x,$local:v}=K(),k=m.useUnit(i),f=m.useUnit(o),y=m.useUnit(g),S=m.useUnit(v),D=m.useUnit(x);return j.useEffect(()=>{k({endpoint:e.endpoint||"",page:e.page,pageSize:e.pageSize,items:e.items?oe(e.items):[],structure:t,sort:e.sort,order:e.order||"desc",local:S,contextActions:e.contextActions,enableRowClick:!!e.onRowClick,rowActions:e.rowActions,tableActions:e.tableActions,displayActionCol:e.displayActionCol,displayIndex:!!e.displayIndex,filters:e.filters})},[]),j.useEffect(()=>{y&&S&&r&&f({items:r,applyFilters:!0})},[y,r,S]),j.useEffect(()=>{y&&D()},[y]),y?n.jsxs(n.Fragment,{children:[n.jsx(dt,{}),n.jsx(bn,{}),n.jsx("div",{style:{overflow:"auto"},children:n.jsx(Et,{getRowStyles:c,onRowClick:l,onContextMenu:u,rowClassName:s,emptyResult:a})}),n.jsx(qt,{})]}):null}const Ie=j.createContext(null);function vn(e){const{store:t,...r}=e;return n.jsx(Ie.Provider,{value:t,children:n.jsx(jn,{...r})})}const Qe=(e,t)=>t==="asc"?(r,c)=>{let l=r[e],s=c[e];return typeof l=="number"&&typeof s=="number"?s-l:(l=String(l),s=String(s),l?.localeCompare(s))}:(r,c)=>{let l=r[e],s=c[e];return typeof l=="number"&&typeof s=="number"?l-s:(l=String(l),s=String(s),s?.localeCompare(l))},ye={getArray(e){let t=[],r=localStorage.getItem(e);if(r)try{t=JSON.parse(r)}catch{}return t},setItem(e,t){localStorage.setItem(e,t)},getItem(e){return localStorage.getItem(e)},pushValue(e,t,r=5,c,l){let s=ye.getArray(e);if(r?s=[t].concat(s):s.push(t),c){let u=s.reduce((a,i)=>(a[i[c]]=i,a),{});s=Object.values(u)}else l&&(s=Array.from(new Set(s)));r&&(s=s.slice(0,r)),localStorage.setItem(e,JSON.stringify(s))}},Cn=(e,t)=>{let r=t.split("?");if(r[1]){let c=new URLSearchParams(r[1]);return c.delete(e),Array.from(c).length>0?`${r[0]}?${c.toString()}`:r[0]}return t},_n=e=>e.filter(t=>t.type==="period"&&t.value?.start&&t.value.end||t.type!=="period"&&t.type!=="button"&&t.value&&!Array.isArray(t.value)||Array.isArray(t.value)&&t.value.length>0);function je(e){let{filter:t,searchQuery:r,searchFields:c,page:l,sort:s,order:u,pageSize:a}=e,i=new URLSearchParams;if(l&&i.append("page",String(l||"1")),a&&i.append("page_size",String(a)),t){let o=Sn(t,c,r);o&&(Object.values(o.and).length>0&&i.append("filter64",JSON.stringify(o.and)),Object.values(o.or).length>0&&i.append("filter64_or",JSON.stringify(o.or)),o.sub.length>0&&o.sub.forEach(g=>{i.append("filter64_sub",JSON.stringify(g))}))}return s&&u&&i.append("sort_field",(u==="desc"?"-":"")+s),i}const Dn=Ge.createFactory(e=>{const t=new URLSearchParams(window.location.search),r=d.createStore(!1),c=d.createStore(e.structure||[]),l=d.createStore(e.endpoint||""),s=d.createStore(!1),u=d.createStore(e.filters||[]),a=d.createStore([]),i=d.createStore(e.items||[]),o=d.createStore(e.search||[]),g=d.createStore(""),x=d.createStore(0),v=d.createStore(t.get("page")?Number(t.get("page")):1);let k=ye.getItem("pageSize")?parseInt(ye.getItem("pageSize")):e.pageSize||12;t.get("page_size")&&(k=Number(t.get("page_size")));const f=d.createStore(k),y=d.createStore(!1),S=d.createStore(t.get("sort_field")?.replace(/^-/,"")||e.sort||"");let D=e.order||"asc";t.get("sort_field")&&(D=t.get("sort_field")?.startsWith("-")?"desc":"asc");const w=d.createStore(D),$=d.createStore(!!e.local),R=d.createStore([]),E=d.createStore(!!e.displayActionCol),N=d.createStore([]),F=d.createStore(!!e.displayIndex),P=d.createStore(!1),Y=d.createStore([]),z=d.createStore(e.getResult||null),V=d.createStore(e.getCount||null),W=d.createStore(e.mapper||null),q=d.createEvent(),Z={endpoint:l,currentFilter:a,page:v,pageSize:f,sort:S,order:w,searchQuery:g,searchFields:o,local:$};d.sample({clock:q,target:g});const J=d.createEvent(),L=d.createEvent();d.sample({source:a,clock:L,fn:(h,p)=>h.filter(U=>U.code!==p.code).concat(p),target:a}),d.sample({source:a,clock:J,fn:(h,p)=>h.filter(b=>b.code!==p),target:a}),d.sample({clock:[q,L,J],fn:()=>1,target:v});const G=d.createEvent();d.sample({source:d.combine($,i,a),clock:a,filter:([h,p])=>h&&p.length>0,fn:([h,p,b])=>Me(p,b),target:G}),d.sample({clock:G,target:i}),d.sample({clock:G,fn:h=>h.filter(p=>!p.dt_hidden).length,target:x});const M=d.createEvent();d.sample({source:i,clock:M,fn:(h,p)=>{let{rows:b,flag:U}=p;return h.map(Q=>b.includes(Q.dt_id)?{...Q,dt_selected:U}:Q)},target:i});const I=d.createEvent();d.sample({clock:I,target:S}),d.sample({source:d.combine(S,w),clock:I,fn:([h,p],b)=>h===b&&p==="asc"?"desc":"asc",target:w});const ce=d.createEvent(),C=d.createEffect(async h=>{let{endpoint:p,currentFilter:b,page:U,pageSize:Q,sort:ae,order:Ke,searchQuery:We,searchFields:Ze}=h;const Ce=je({page:U,pageSize:Q,sort:ae,order:Ke,filter:b,searchQuery:We,searchFields:Ze});p=Cn("filter64_sub",p);let Je=Ce.toString().length>0||p.includes("?")?(p.includes("?")?"&":"?")+Ce.toString():"/",Xe=p+Je;return e.getData(Xe)});d.sample({clock:ce,source:Z,filter:h=>!h.local,target:C}),d.sample({clock:C.pending,target:y}),d.sample({source:d.combine(V,z),clock:C.doneData,fn:([h,p],b)=>h?h(b):Array.isArray(b)?b.length:p?p(b).length:0,target:x}),d.sample({source:d.combine(z,W),clock:C.doneData,fn:([h,p],b)=>{let U=h?h(b):b;return p&&(U=U.map(p)),oe(U)},target:i}),d.sample({clock:C.doneData,fn:()=>!0,target:s});const _=d.createEvent(),ne=d.createEvent();d.sample({clock:_,filter:()=>!e.endpoint,fn:h=>h.endpoint||"",target:l}),d.sample({clock:_,filter:()=>!e.structure,fn:h=>h.structure||[],target:c}),d.sample({clock:_,filter:()=>!e.filters,fn:h=>h.filters||[],target:u}),d.sample({clock:_,filter:()=>!e.search,fn:h=>h.search||[],target:o}),d.sample({clock:_,fn:h=>{let p=e.filters||h.filters;const b=t.get("filter64");if(b&&p){const U=JSON.parse(b);p=p.map(Q=>{const ae=U[String(Q.code)];return ae?{...Q,value:ae.value,displayValue:ae.displayValue}:Q})}return p?_n(p):[]},target:a}),d.sample({clock:_,fn:()=>{const h=t.get("filter64_or");return h&&Object.values(JSON.parse(h))[0].value||""},target:g}),d.sample({clock:_,fn:h=>{const p=e.items||h.items;return p?oe(p):[]},target:i}),d.sample({source:a,clock:ne,fn:(h,p)=>p.applyFilters?Me(p.items,h):p.items,target:i}),d.sample({clock:ne,fn:h=>h.items.length,target:x}),d.sample({clock:_,fn:h=>h.items?.length||0,target:x}),d.sample({clock:_,fn:h=>!!h.enableRowClick,target:P}),d.sample({clock:_,fn:h=>!!h.displayIndex,target:F}),d.sample({clock:_,fn:h=>!!h.displayActionCol,target:E}),d.sample({clock:_,fn:h=>h.tableActions||[],target:N}),d.sample({clock:_,fn:h=>h.contextActions||[],target:Y}),d.sample({clock:_,fn:h=>h.rowActions||[],target:R}),d.sample({clock:_,filter:h=>!!h.order&&!e.order,fn:h=>h.order,target:w}),d.sample({clock:_,filter:h=>!!h.sort&&!e.sort,fn:h=>h.sort,target:S}),d.sample({clock:_,fn:()=>!0,target:r}),d.sample({source:d.combine($,i,w),clock:I,filter:([h])=>h,fn:([h,p,b],U)=>({items:[...p].sort(Qe(U,b))}),target:ne});const he=d.createEvent(),ge=d.createEvent();d.sample({clock:he,target:f}),d.sample({clock:ge,target:v}),[ge,he,L,J,I,q].forEach(h=>{d.sample({clock:h,filter:p=>!p.local,source:Z,target:C})});const me=d.createEvent();d.sample({source:i,clock:me,fn:(h,p)=>h.filter(b=>b.dt_id!==p&&b.id!==p),target:i}),d.sample({source:x,clock:me,fn:h=>h-1,target:x});const ve=d.createEvent();d.sample({source:i,clock:ve,fn:(h,p)=>h.map(b=>b.dt_id===p.dt_id?{...b,...p}:b),target:i});const pe=d.createEvent();return d.sample({source:i,clock:pe,fn:(h,p)=>h.concat(oe([p])),target:i}),d.sample({source:x,clock:pe,fn:h=>h+1,target:x}),{$endpoint:l,$isReady:r,dataTableInitialized:_,itemsSet:ne,dataFetched:ce,$tableActions:N,$items:i,$structure:c,$search:o,$searchQuery:g,$filters:u,$currentFilter:a,$isFetching:y,$sort:S,$order:w,$displayActionCol:E,$displayIndex:F,$local:$,$pageSize:f,$page:v,$count:x,$requested:s,$rowActions:R,$contextActions:Y,searchQuerySet:q,currentFilterDeleted:J,currentFilterSet:L,rowsSelected:M,sortSet:I,pageSizeSet:he,pageSet:ge,itemDeleted:me,itemAdded:pe,itemUpdated:ve,fetchDataFx:C}});exports.DataTable=vn;exports.DataTable_skeleton=Rt;exports.DictInput=be;exports.FilterBar=He;exports.FilterFormField=Be;exports.SearchAnything=Oe;exports.TableActionCol=Ye;exports.createDataTable=Dn;exports.makePaginatedFilterParams=je;exports.sortByField=Qe;exports.useDictionary=Le;exports.useDictionaryItems=Se;