@teppen/react-ui 1.5.7 → 1.5.8

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 (41) hide show
  1. package/dist/cjs/src/index.js +1 -1
  2. package/dist/cjs/src/table/cell/hooks.js +2 -0
  3. package/dist/cjs/src/table/cell/hooks.js.map +1 -0
  4. package/dist/cjs/src/table/cell/ui/cell.js +1 -1
  5. package/dist/cjs/src/table/checkbox/hooks.js.map +1 -1
  6. package/dist/cjs/src/table/checkbox/provider.js.map +1 -1
  7. package/dist/cjs/src/table/edit/ui/editor.js.map +1 -1
  8. package/dist/cjs/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +1 -1
  9. package/dist/cjs/src/table/filter/hooks.js.map +1 -1
  10. package/dist/cjs/src/table/libs/conditional-formatting.js.map +1 -1
  11. package/dist/cjs/src/table/pagenation/hooks.js.map +1 -1
  12. package/dist/cjs/src/table/sheet/components.js.map +1 -1
  13. package/dist/cjs/src/table/sort/hooks.js.map +1 -1
  14. package/dist/cjs/src/table/table/base.js +3 -0
  15. package/dist/cjs/src/table/table/hook.js +2 -0
  16. package/dist/cjs/src/table/table/hook.js.map +1 -0
  17. package/dist/esm/src/index.js +1 -1
  18. package/dist/esm/src/table/cell/hooks.js +2 -0
  19. package/dist/esm/src/table/cell/hooks.js.map +1 -0
  20. package/dist/esm/src/table/cell/ui/cell.js +1 -1
  21. package/dist/esm/src/table/checkbox/hooks.js.map +1 -1
  22. package/dist/esm/src/table/checkbox/provider.js.map +1 -1
  23. package/dist/esm/src/table/edit/ui/editor.js.map +1 -1
  24. package/dist/esm/src/table/filter/hooks/selectedFilteringColumn/hooks.js.map +1 -1
  25. package/dist/esm/src/table/filter/hooks.js.map +1 -1
  26. package/dist/esm/src/table/libs/conditional-formatting.js.map +1 -1
  27. package/dist/esm/src/table/pagenation/hooks.js.map +1 -1
  28. package/dist/esm/src/table/sheet/components.js.map +1 -1
  29. package/dist/esm/src/table/sort/hooks.js.map +1 -1
  30. package/dist/esm/src/table/table/base.js +3 -0
  31. package/dist/esm/src/table/table/hook.js +2 -0
  32. package/dist/esm/src/table/table/hook.js.map +1 -0
  33. package/package.json +1 -1
  34. package/dist/cjs/src/table/base.js +0 -3
  35. package/dist/cjs/src/table/hook.js +0 -2
  36. package/dist/cjs/src/table/hook.js.map +0 -1
  37. package/dist/esm/src/table/base.js +0 -3
  38. package/dist/esm/src/table/hook.js +0 -2
  39. package/dist/esm/src/table/hook.js.map +0 -1
  40. /package/dist/cjs/src/table/{base.js.map → table/base.js.map} +0 -0
  41. /package/dist/esm/src/table/{base.js.map → table/base.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./table/base.js");exports.Table=e;
1
+ "use strict";var e=require("./table/table/base.js");exports.Table=e;
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),t=require("../edit/provider.js"),o=require("../focus/provider.js"),n=require("../sheet/providers.js");exports.useCell=function(r,u,i){var l,s,c=o.useFocusActionContext(),d=t.useEditActionContext(),a=n.useColumnsContext()[u],v=i[a.key],f="select"===a.type?null===(s=null===(l=a.options)||void 0===l?void 0:l.find((function(e){return e.value===v})))||void 0===s?void 0:s.label:v,p=e.useMemo((function(){return a.editable?f:a.render?a.render(v,i):f}),[a.editable,f,v,i]);return{type:!a.editable&&a.render?"component":a.type,component:p,focusAtCell:e.useCallback((function(){c.move(r,u),c.focus(r,u)}),[c,r,u]),onDoubleClickCellToEdit:e.useCallback((function(e){e.preventDefault(),c.move(r,u),c.focus(r,u),d.startEditing()}),[c,d,r,u])}};
2
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/cell/hooks.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useEditActionContext } from \"../edit/provider\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { useColumnsContext } from \"../sheet/providers\";\nimport { DataObject, DataRecord, TColumnType } from \"../table/type\";\n\nexport function useCell(\n rowIndex: number,\n colIndex: number,\n row: DataObject<DataRecord>\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label\n : value;\n\n const component = useMemo(() => {\n if (col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const onDoubleClickCellToEdit: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n e.preventDefault();\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n editAction.startEditing();\n },\n [focus, editAction, rowIndex, colIndex]\n );\n\n return {\n type,\n component,\n focusAtCell,\n onDoubleClickCellToEdit,\n };\n}\n"],"names":["rowIndex","colIndex","row","focus","useFocusActionContext","editAction","useEditActionContext","col","useColumnsContext","value","key","label","type","_a","options","find","op","_b","component","useMemo","editable","render","focusAtCell","useCallback","move","onDoubleClickCellToEdit","e","preventDefault","startEditing"],"mappings":"mKAOEA,EACAC,EACAC,WAEMC,EAAQC,EAAAA,wBACRC,EAAaC,EAAAA,uBACbC,EAAMC,EAAAA,oBAAoBP,GAC1BQ,EAAQP,EAAIK,EAAIG,KAEhBC,EACS,WAAbJ,EAAIK,KAC6C,UAAlC,QAAXC,EAAAN,EAAIO,eAAO,IAAAD,OAAA,EAAAA,EAAEE,MAAK,SAACC,GAAO,OAAAA,EAAGP,QAAUA,CAAb,WAAmB,IAAAQ,OAAA,EAAAA,EAAEN,MAC/CF,EAEAS,EAAYC,EAAAA,SAAQ,WACxB,OAAIZ,EAAIa,SACCT,EAEAJ,EAAIc,OAASd,EAAIc,OAAOZ,EAAgBP,GAAOS,CAE1D,GAAG,CAACJ,EAAIa,SAAUT,EAAOF,EAAOP,IAqBhC,MAAO,CACLU,MAnBCL,EAAIa,UAAYb,EAAIc,OAAS,YAAcd,EAAIK,KAoBhDM,UAASA,EACTI,YAnBkBC,EAAAA,aAAY,WAC9BpB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,EACvB,GAAE,CAACE,EAAOH,EAAUC,IAiBnBwB,wBAdAF,eACE,SAACG,GACCA,EAAEC,iBACFxB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,GACtBI,EAAWuB,cACZ,GACD,CAACzB,EAAOE,EAAYL,EAAUC,IASpC"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),l=require("../../hook.js"),t=require("./edit-button.js"),i=require("../../libs/id-generator.js");exports.TableCell=function(o){var n=l.useCell(o.rowIndex,o.colIndex,o.row),r=n.type,s=n.component,c=n.focusAtCell,a=n.onDoubleClickCellToEdit,d=i.IdGenerator.getTableCellId(o.rowIndex,o.colIndex);return e.jsx("td",{id:d,className:"".concat(o.cellFormatClassName),children:e.jsx("div",{className:"relative",onClick:o.isExistOnClickRow?void 0:function(e){e.preventDefault(),c()},onDoubleClick:o.isExistOnClickRow?void 0:a,children:e.jsxs("div",{className:"flex items-center gap-3 w-f-displayit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),c()},children:["component"===r?s:e.jsx("div",{onDoubleClick:a,children:e.jsx("p",{className:"cell-data text-left whitespace-nowrap",children:s})}),o.editable&&e.jsx(t.EditButton,{})]})})})};
2
+ "use strict";var e=require("react/jsx-runtime"),l=require("./edit-button.js"),t=require("../../libs/id-generator.js"),i=require("../hooks.js");exports.TableCell=function(o){var n=i.useCell(o.rowIndex,o.colIndex,o.row),r=n.type,s=n.component,c=n.focusAtCell,a=n.onDoubleClickCellToEdit,d=t.IdGenerator.getTableCellId(o.rowIndex,o.colIndex);return e.jsx("td",{id:d,className:"".concat(o.cellFormatClassName),children:e.jsx("div",{className:"relative",onClick:o.isExistOnClickRow?void 0:function(e){e.preventDefault(),c()},onDoubleClick:o.isExistOnClickRow?void 0:a,children:e.jsxs("div",{className:"flex items-center gap-3 w-f-displayit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),c()},children:["component"===r?s:e.jsx("div",{onDoubleClick:a,children:e.jsx("p",{className:"cell-data text-left whitespace-nowrap",children:s})}),o.editable&&e.jsx(l.EditButton,{})]})})})};
3
3
  //# sourceMappingURL=cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/checkbox/hooks.ts"],"sourcesContent":["import { useReducer } from \"react\";\nimport { CheckboxStatusReducer } from \"./types\";\nimport { DataRecord } from \"../type\";\n\nconst checkboxReducer: CheckboxStatusReducer<DataRecord> = (state, action) => {\n switch (action.type) {\n case \"SET\":\n return { checkedRecords: action.payload.checkedRecords };\n }\n};\n\nexport function useCheckboxStatusReducer(checkboxCount: number) {\n const [checkboxStatusState, dispatchCheckboxStatus] = useReducer(\n checkboxReducer,\n { checkedRecords: [] }\n );\n\n return {\n checkboxStatusState,\n dispatchCheckboxStatus,\n allUnchecked: checkboxStatusState.checkedRecords.length === 0,\n existChecked: checkboxStatusState.checkedRecords.length > 0,\n indeterminate:\n checkboxStatusState.checkedRecords.length > 0 &&\n checkboxStatusState.checkedRecords.length < checkboxCount,\n };\n}\n"],"names":["checkboxReducer","state","action","type","checkedRecords","payload","checkboxCount","_a","useReducer","checkboxStatusState","dispatchCheckboxStatus","allUnchecked","length","existChecked","indeterminate"],"mappings":"oCAIMA,EAAqD,SAACC,EAAOC,GACjE,GACO,QADCA,EAAOC,KAEX,MAAO,CAAEC,eAAgBF,EAAOG,QAAQD,eAE9C,mCAEM,SAAmCE,GACjC,IAAAC,EAAgDC,EAAUA,WAC9DR,EACA,CAAEI,eAAgB,KAFbK,OAKP,MAAO,CACLA,oBAAmBA,EACnBC,4BACAC,aAA4D,IAA9CF,EAAoBL,eAAeQ,OACjDC,aAAcJ,EAAoBL,eAAeQ,OAAS,EAC1DE,cACEL,EAAoBL,eAAeQ,OAAS,GAC5CH,EAAoBL,eAAeQ,OAASN,EAElD"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/checkbox/hooks.ts"],"sourcesContent":["import { useReducer } from \"react\";\nimport { CheckboxStatusReducer } from \"./types\";\nimport { DataRecord } from \"../table/type\";\n\nconst checkboxReducer: CheckboxStatusReducer<DataRecord> = (state, action) => {\n switch (action.type) {\n case \"SET\":\n return { checkedRecords: action.payload.checkedRecords };\n }\n};\n\nexport function useCheckboxStatusReducer(checkboxCount: number) {\n const [checkboxStatusState, dispatchCheckboxStatus] = useReducer(\n checkboxReducer,\n { checkedRecords: [] }\n );\n\n return {\n checkboxStatusState,\n dispatchCheckboxStatus,\n allUnchecked: checkboxStatusState.checkedRecords.length === 0,\n existChecked: checkboxStatusState.checkedRecords.length > 0,\n indeterminate:\n checkboxStatusState.checkedRecords.length > 0 &&\n checkboxStatusState.checkedRecords.length < checkboxCount,\n };\n}\n"],"names":["checkboxReducer","state","action","type","checkedRecords","payload","checkboxCount","_a","useReducer","checkboxStatusState","dispatchCheckboxStatus","allUnchecked","length","existChecked","indeterminate"],"mappings":"oCAIMA,EAAqD,SAACC,EAAOC,GACjE,GACO,QADCA,EAAOC,KAEX,MAAO,CAAEC,eAAgBF,EAAOG,QAAQD,eAE9C,mCAEM,SAAmCE,GACjC,IAAAC,EAAgDC,EAAUA,WAC9DR,EACA,CAAEI,eAAgB,KAFbK,OAKP,MAAO,CACLA,oBAAmBA,EACnBC,4BACAC,aAA4D,IAA9CF,EAAoBL,eAAeQ,OACjDC,aAAcJ,EAAoBL,eAAeQ,OAAS,EAC1DE,cACEL,EAAoBL,eAAeQ,OAAS,GAC5CH,EAAoBL,eAAeQ,OAASN,EAElD"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/checkbox/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TCheckboxProperty } from \"../type\";\nimport { useCheckboxStatusReducer } from \"./hooks\";\n\nconst CheckboxStatusContext = createContext<\n ReturnType<typeof useCheckboxStatusReducer>\n>({\n checkboxStatusState: {\n checkedRecords: [],\n },\n dispatchCheckboxStatus: () => {},\n allUnchecked: false,\n existChecked: false,\n indeterminate: false,\n});\n\nexport function CheckboxStatusProvider({\n children,\n checkboxCount,\n}: {\n children: JSX.Element;\n checkboxCount: number;\n}) {\n return (\n <CheckboxStatusContext.Provider\n value={useCheckboxStatusReducer(checkboxCount)}\n >\n {children}\n </CheckboxStatusContext.Provider>\n );\n}\n\nexport function useCheckboxStatusContext() {\n return useContext(CheckboxStatusContext);\n}\n\nconst CheckboxContext =\n createContext<TCheckboxProperty<any>[\"checkbox\"]>(undefined);\n\nexport function CheckboxProvider({\n children,\n checkbox,\n}: {\n children: React.ReactNode;\n checkbox: TCheckboxProperty<any>[\"checkbox\"];\n}) {\n return (\n <CheckboxContext.Provider value={checkbox}>\n {children}\n </CheckboxContext.Provider>\n );\n}\n\nexport function useCheckboxContext() {\n return useContext(CheckboxContext);\n}\n"],"names":["CheckboxStatusContext","createContext","checkboxStatusState","checkedRecords","dispatchCheckboxStatus","allUnchecked","existChecked","indeterminate","CheckboxContext","undefined","_a","children","checkbox","_jsx","jsx","Provider","value","checkboxCount","useCheckboxStatusReducer","useContext"],"mappings":"2FAIMA,EAAwBC,EAAAA,cAE5B,CACAC,oBAAqB,CACnBC,eAAgB,IAElBC,uBAAwB,WAAQ,EAChCC,cAAc,EACdC,cAAc,EACdC,eAAe,IAuBjB,IAAMC,EACJP,EAAAA,mBAAkDQ,4BAE9C,SAA2BC,OAC/BC,EAAQD,EAAAC,SACRC,EAAQF,EAAAE,SAKR,OACEC,EAAAC,IAACN,EAAgBO,SAAQ,CAACC,MAAOJ,EAAQD,SACtCA,GAGP,iCAnCM,SAAiCD,OACrCC,EAAQD,EAAAC,SACRM,EAAaP,EAAAO,cAKb,OACEJ,MAACb,EAAsBe,UACrBC,MAAOE,2BAAyBD,GAAcN,SAE7CA,GAGP,wCAwBE,OAAOQ,EAAAA,WAAWX,EACpB,8CAtBE,OAAOW,EAAAA,WAAWnB,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/checkbox/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TCheckboxProperty } from \"../table/type\";\nimport { useCheckboxStatusReducer } from \"./hooks\";\n\nconst CheckboxStatusContext = createContext<\n ReturnType<typeof useCheckboxStatusReducer>\n>({\n checkboxStatusState: {\n checkedRecords: [],\n },\n dispatchCheckboxStatus: () => {},\n allUnchecked: false,\n existChecked: false,\n indeterminate: false,\n});\n\nexport function CheckboxStatusProvider({\n children,\n checkboxCount,\n}: {\n children: JSX.Element;\n checkboxCount: number;\n}) {\n return (\n <CheckboxStatusContext.Provider\n value={useCheckboxStatusReducer(checkboxCount)}\n >\n {children}\n </CheckboxStatusContext.Provider>\n );\n}\n\nexport function useCheckboxStatusContext() {\n return useContext(CheckboxStatusContext);\n}\n\nconst CheckboxContext =\n createContext<TCheckboxProperty<any>[\"checkbox\"]>(undefined);\n\nexport function CheckboxProvider({\n children,\n checkbox,\n}: {\n children: React.ReactNode;\n checkbox: TCheckboxProperty<any>[\"checkbox\"];\n}) {\n return (\n <CheckboxContext.Provider value={checkbox}>\n {children}\n </CheckboxContext.Provider>\n );\n}\n\nexport function useCheckboxContext() {\n return useContext(CheckboxContext);\n}\n"],"names":["CheckboxStatusContext","createContext","checkboxStatusState","checkedRecords","dispatchCheckboxStatus","allUnchecked","existChecked","indeterminate","CheckboxContext","undefined","_a","children","checkbox","_jsx","jsx","Provider","value","checkboxCount","useCheckboxStatusReducer","useContext"],"mappings":"2FAIMA,EAAwBC,EAAAA,cAE5B,CACAC,oBAAqB,CACnBC,eAAgB,IAElBC,uBAAwB,WAAQ,EAChCC,cAAc,EACdC,cAAc,EACdC,eAAe,IAuBjB,IAAMC,EACJP,EAAAA,mBAAkDQ,4BAE9C,SAA2BC,OAC/BC,EAAQD,EAAAC,SACRC,EAAQF,EAAAE,SAKR,OACEC,EAAAC,IAACN,EAAgBO,SAAQ,CAACC,MAAOJ,EAAQD,SACtCA,GAGP,iCAnCM,SAAiCD,OACrCC,EAAQD,EAAAC,SACRM,EAAaP,EAAAO,cAKb,OACEJ,MAACb,EAAsBe,UACrBC,MAAOE,2BAAyBD,GAAcN,SAE7CA,GAGP,wCAwBE,OAAOQ,EAAAA,WAAWX,EACpB,8CAtBE,OAAOW,EAAAA,WAAWnB,EACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useFocusStateContext } from \"../../focus/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { IdGenerator } from \"../../libs\";\nimport { DataObject, DataRecord } from \"../../type\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const focus = useFocusStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (focus.isFocus && !cols[focus.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, focus]);\n\n if (!edit.isEditing) return <></>;\n if (!focus.isFocus) return <></>;\n\n const col = cols[focus.colIndex];\n const row = props.rowMaps[props.pageRowIds[focus.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId(focus.rowIndex, focus.colIndex);\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(\"table-frame\");\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop - window.scrollY;\n size.left -= rectTable.left - tableElement.scrollLeft - window.scrollX;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["props","focus","useFocusStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isFocus","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","IdGenerator","getTableCellId","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","rectTable","scrollTop","window","scrollY","scrollLeft","scrollX","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"8TAwBM,SAAiBA,GACrB,IAAMC,EAAQC,EAAAA,uBACRC,EAAOC,EAAAA,sBACPC,EAAcC,EAAAA,uBACdC,EAAOC,EAAAA,oBAQb,GANAC,EAAAA,WAAU,WACJR,EAAMS,UAAYH,EAAKN,EAAMU,UAAUC,UACzCP,EAAYQ,YAEhB,GAAG,CAACV,EAAMF,KAELE,EAAKW,UAAW,OAAOC,qBAC5B,IAAKd,EAAMS,QAAS,OAAOK,qBAE3B,IAAMC,EAAMT,EAAKN,EAAMU,UACjBM,EAAMjB,EAAMkB,QAAQlB,EAAMmB,WAAWlB,EAAMmB,WAAWC,KAE5D,IAAKL,EAAIJ,SAAU,OAAOG,qBAE1B,IAAMO,EAAKC,EAAAA,YAAYC,eAAevB,EAAMmB,SAAUnB,EAAMU,UACtDc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,qBAElB,IAAMqB,EAAeV,SAASC,eAAe,eAC7C,IAAKS,EAAc,OAAOrB,qBAC1B,IAAMsB,EAAYD,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOI,EAAUJ,IAAMG,EAAaE,UAAYC,OAAOC,QAC5DV,EAAKI,MAAQG,EAAUH,KAAOE,EAAaK,WAAaF,OAAOG,QAG7DC,EAAAA,YACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACH,EACDC,MAAO,CACLlB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MAGZgB,SAAA,CAAa,WAAblC,EAAImC,MAAqBpC,EAAAA,IAACqC,EAAAA,gBAAgB,CAAApC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,MAACsC,EAAAA,gBAAe,CAACrC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,MAACuC,EAAeA,gBAAA,CAACtC,IAAKA,EAAKC,IAAKA,MAGhE"}
1
+ {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useFocusStateContext } from \"../../focus/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { IdGenerator } from \"../../libs\";\nimport { DataObject, DataRecord } from \"../../table/type\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const focus = useFocusStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (focus.isFocus && !cols[focus.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, focus]);\n\n if (!edit.isEditing) return <></>;\n if (!focus.isFocus) return <></>;\n\n const col = cols[focus.colIndex];\n const row = props.rowMaps[props.pageRowIds[focus.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId(focus.rowIndex, focus.colIndex);\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(\"table-frame\");\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop - window.scrollY;\n size.left -= rectTable.left - tableElement.scrollLeft - window.scrollX;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["props","focus","useFocusStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isFocus","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","IdGenerator","getTableCellId","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","rectTable","scrollTop","window","scrollY","scrollLeft","scrollX","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"8TAwBM,SAAiBA,GACrB,IAAMC,EAAQC,EAAAA,uBACRC,EAAOC,EAAAA,sBACPC,EAAcC,EAAAA,uBACdC,EAAOC,EAAAA,oBAQb,GANAC,EAAAA,WAAU,WACJR,EAAMS,UAAYH,EAAKN,EAAMU,UAAUC,UACzCP,EAAYQ,YAEhB,GAAG,CAACV,EAAMF,KAELE,EAAKW,UAAW,OAAOC,qBAC5B,IAAKd,EAAMS,QAAS,OAAOK,qBAE3B,IAAMC,EAAMT,EAAKN,EAAMU,UACjBM,EAAMjB,EAAMkB,QAAQlB,EAAMmB,WAAWlB,EAAMmB,WAAWC,KAE5D,IAAKL,EAAIJ,SAAU,OAAOG,qBAE1B,IAAMO,EAAKC,EAAAA,YAAYC,eAAevB,EAAMmB,SAAUnB,EAAMU,UACtDc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,qBAElB,IAAMqB,EAAeV,SAASC,eAAe,eAC7C,IAAKS,EAAc,OAAOrB,qBAC1B,IAAMsB,EAAYD,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOI,EAAUJ,IAAMG,EAAaE,UAAYC,OAAOC,QAC5DV,EAAKI,MAAQG,EAAUH,KAAOE,EAAaK,WAAaF,OAAOG,QAG7DC,EAAAA,YACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACH,EACDC,MAAO,CACLlB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MAGZgB,SAAA,CAAa,WAAblC,EAAImC,MAAqBpC,EAAAA,IAACqC,EAAAA,gBAAgB,CAAApC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,MAACsC,EAAAA,gBAAe,CAACrC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,MAACuC,EAAeA,gBAAA,CAACtC,IAAKA,EAAKC,IAAKA,MAGhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../../../src/table/filter/hooks/selectedFilteringColumn/hooks.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilteringColumnReducer, TReturnFilteringColumnReducer } from \"./type\";\nimport { DataRecord, TTableColumn } from \"../../../type\";\n\nconst filteringColumnReducer: TFilteringColumnReducer = (state, action) => {\n switch (action.type) {\n case \"set\":\n if (!!state && state.key === action.payload.col.key) return state;\n\n if (\n action.payload.col.type === \"string\" ||\n action.payload.col.type === \"number\"\n ) {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n };\n } else {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n options: action.payload.col.options,\n };\n }\n case \"clear\":\n return null;\n }\n};\n\nexport function useFilteringColumnReducer(): TReturnFilteringColumnReducer {\n const [state, dispatch] = useReducer(filteringColumnReducer, null);\n\n const actions = useMemo(\n () => ({\n setFilteringColumn: (col: TTableColumn<DataRecord>) =>\n dispatch({ type: \"set\", payload: { col } }),\n clearFilteringColumn: () => dispatch({ type: \"clear\" }),\n }),\n []\n );\n\n return { state, actions };\n}\n"],"names":["filteringColumnReducer","state","action","type","key","payload","col","label","options","_a","useReducer","dispatch","actions","useMemo","setFilteringColumn","clearFilteringColumn"],"mappings":"oCAIMA,EAAkD,SAACC,EAAOC,GAC9D,OAAQA,EAAOC,MACb,IAAK,MACH,OAAMF,GAASA,EAAMG,MAAQF,EAAOG,QAAQC,IAAIF,IAAYH,EAG9B,WAA5BC,EAAOG,QAAQC,IAAIH,MACS,WAA5BD,EAAOG,QAAQC,IAAIH,KAEZ,CACLC,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,OAGrB,CACLH,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,MAC1BC,QAASN,EAAOG,QAAQC,IAAIE,SAGlC,IAAK,QACH,OAAO,KAEb,+CAGQ,IAAAC,EAAoBC,EAAAA,WAAWV,EAAwB,MAAtDC,EAAKQ,EAAA,GAAEE,OAWd,MAAO,CAAEV,MAAKA,EAAEW,QATAC,WACd,WAAM,MAAC,CACLC,mBAAoB,SAACR,GACnB,OAAAK,EAAS,CAAER,KAAM,MAAOE,QAAS,CAAEC,IAAGA,IAAK,EAC7CS,qBAAsB,WAAM,OAAAJ,EAAS,CAAER,KAAM,SAAU,EAHnD,GAKN,IAIJ"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../../../src/table/filter/hooks/selectedFilteringColumn/hooks.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilteringColumnReducer, TReturnFilteringColumnReducer } from \"./type\";\nimport { DataRecord, TTableColumn } from \"../../../table/type\";\n\nconst filteringColumnReducer: TFilteringColumnReducer = (state, action) => {\n switch (action.type) {\n case \"set\":\n if (!!state && state.key === action.payload.col.key) return state;\n\n if (\n action.payload.col.type === \"string\" ||\n action.payload.col.type === \"number\"\n ) {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n };\n } else {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n options: action.payload.col.options,\n };\n }\n case \"clear\":\n return null;\n }\n};\n\nexport function useFilteringColumnReducer(): TReturnFilteringColumnReducer {\n const [state, dispatch] = useReducer(filteringColumnReducer, null);\n\n const actions = useMemo(\n () => ({\n setFilteringColumn: (col: TTableColumn<DataRecord>) =>\n dispatch({ type: \"set\", payload: { col } }),\n clearFilteringColumn: () => dispatch({ type: \"clear\" }),\n }),\n []\n );\n\n return { state, actions };\n}\n"],"names":["filteringColumnReducer","state","action","type","key","payload","col","label","options","_a","useReducer","dispatch","actions","useMemo","setFilteringColumn","clearFilteringColumn"],"mappings":"oCAIMA,EAAkD,SAACC,EAAOC,GAC9D,OAAQA,EAAOC,MACb,IAAK,MACH,OAAMF,GAASA,EAAMG,MAAQF,EAAOG,QAAQC,IAAIF,IAAYH,EAG9B,WAA5BC,EAAOG,QAAQC,IAAIH,MACS,WAA5BD,EAAOG,QAAQC,IAAIH,KAEZ,CACLC,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,OAGrB,CACLH,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,MAC1BC,QAASN,EAAOG,QAAQC,IAAIE,SAGlC,IAAK,QACH,OAAO,KAEb,+CAGQ,IAAAC,EAAoBC,EAAAA,WAAWV,EAAwB,MAAtDC,EAAKQ,EAAA,GAAEE,OAWd,MAAO,CAAEV,MAAKA,EAAEW,QATAC,WACd,WAAM,MAAC,CACLC,mBAAoB,SAACR,GACnB,OAAAK,EAAS,CAAER,KAAM,MAAOE,QAAS,CAAEC,IAAGA,IAAK,EAC7CS,qBAAsB,WAAM,OAAAJ,EAAS,CAAER,KAAM,SAAU,EAHnD,GAKN,IAIJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/filter/hooks.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport {\n TFilter,\n TFilterAction,\n TFilterState,\n TReturnUseFilterReducer,\n} from \"./types\";\nimport { DataObject, DataRecord } from \"../type\";\n\nfunction reducer<T extends DataRecord>(\n state: TFilterState<T>,\n action: TFilterAction<T>\n): TFilterState<T> {\n switch (action.type) {\n case \"add\":\n return {\n filters: [\n ...state.filters,\n { id: new Date().getTime(), ...action.payload.filter },\n ],\n };\n case \"remove\":\n return {\n filters: state.filters.filter((f) => f.id !== action.payload.id),\n };\n case \"clear\":\n return { filters: [] };\n }\n}\n\nexport function useFilterReducer<\n T extends DataRecord\n>(): TReturnUseFilterReducer<T> {\n const [state, dispatch] = useReducer(reducer, { filters: [] });\n\n const addFilter = useCallback(\n (filter: TFilter<T>) => dispatch({ type: \"add\", payload: { filter } }),\n [dispatch]\n );\n const removeFilter = useCallback(\n (id: number) => dispatch({ type: \"remove\", payload: { id } }),\n [dispatch]\n );\n const clearFilter = useCallback(\n () => dispatch({ type: \"clear\" }),\n [dispatch]\n );\n\n const filter = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]): DataObject<U>[] => {\n return state.filters.reduce((acc, filter) => {\n switch (filter.operator) {\n case \"includeText\":\n return acc.filter((row) => {\n const value = row[filter.key];\n if (typeof value === \"string\") {\n return filter.value.some((v) => value.includes(v));\n }\n return false;\n });\n case \"eq\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"ne\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n case \"gt\":\n return acc.filter(\n (row) => (row[filter.key] as number) > filter.value\n );\n case \"lt\":\n return acc.filter(\n (row) => (row[filter.key] as number) < filter.value\n );\n case \"gte\":\n return acc.filter(\n (row) => (row[filter.key] as number) >= filter.value\n );\n case \"lte\":\n return acc.filter(\n (row) => (row[filter.key] as number) <= filter.value\n );\n case \"selected\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"notSelected\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n }\n }, rows);\n },\n [state]\n );\n\n return {\n addFilter,\n removeFilter,\n clearFilter,\n filter,\n filterConditions: state.filters,\n };\n}\n"],"names":["reducer","state","action","type","filters","__spreadArray","__assign","id","Date","getTime","payload","filter","f","_a","useReducer","dispatch","addFilter","useCallback","removeFilter","clearFilter","rows","reduce","acc","operator","row","value","key","some","v","includes","filterConditions"],"mappings":"0FASA,SAASA,EACPC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,MACH,MAAO,CACLC,QAAOC,EAAAA,cAAAA,gBAAA,GACFJ,EAAMG,SAAO,GAAA,CACdE,WAAA,CAAAC,IAAI,IAAIC,MAAOC,WAAcP,EAAOQ,QAAQC,UAC/C,IAEL,IAAK,SACH,MAAO,CACLP,QAASH,EAAMG,QAAQO,QAAO,SAACC,GAAM,OAAAA,EAAEL,KAAOL,EAAOQ,QAAQH,EAAxB,KAEzC,IAAK,QACH,MAAO,CAAEH,QAAS,IAExB,qCAKQ,IAAAS,EAAoBC,EAAUA,WAACd,EAAS,CAAEI,QAAS,KAAlDH,OAAOc,OAyDd,MAAO,CACLC,UAxDgBC,EAAAA,aAChB,SAACN,GAAuB,OAAAI,EAAS,CAAEZ,KAAM,MAAOO,QAAS,CAAEC,OAAMA,OACjE,CAACI,IAuDDG,aArDmBD,EAAAA,aACnB,SAACV,GAAe,OAAAQ,EAAS,CAAEZ,KAAM,SAAUO,QAAS,CAAEH,GAAEA,OACxD,CAACQ,IAoDDI,YAlDkBF,EAAAA,aAClB,WAAM,OAAAF,EAAS,CAAEZ,KAAM,SAAjB,GACN,CAACY,IAiDDJ,OA9CaM,eACb,SAAuBG,GACrB,OAAOnB,EAAMG,QAAQiB,QAAO,SAACC,EAAKX,GAChC,OAAQA,EAAOY,UACb,IAAK,cACH,OAAOD,EAAIX,QAAO,SAACa,GACjB,IAAMC,EAAQD,EAAIb,EAAOe,KACzB,MAAqB,iBAAVD,GACFd,EAAOc,MAAME,MAAK,SAACC,GAAM,OAAAH,EAAMI,SAASD,EAAE,GAGrD,IACF,IAAK,KAoBL,IAAK,WACH,OAAON,EAAIX,QAAO,SAACa,GAAQ,OAAAA,EAAIb,EAAOe,OAASf,EAAOc,KAAK,IAnB7D,IAAK,KAoBL,IAAK,cACH,OAAOH,EAAIX,QAAO,SAACa,GAAQ,OAAAA,EAAIb,EAAOe,OAASf,EAAOc,KAAK,IAnB7D,IAAK,KACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,KAAkBf,EAAOc,KAAK,IAEvD,IAAK,KACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,KAAkBf,EAAOc,KAAK,IAEvD,IAAK,MACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,MAAmBf,EAAOc,KAAK,IAExD,IAAK,MACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,MAAmBf,EAAOc,KAAK,IAO3D,GAAEL,EACL,GACA,CAACnB,IAQD6B,iBAAkB7B,EAAMG,QAE5B"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/filter/hooks.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport {\n TFilter,\n TFilterAction,\n TFilterState,\n TReturnUseFilterReducer,\n} from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction reducer<T extends DataRecord>(\n state: TFilterState<T>,\n action: TFilterAction<T>\n): TFilterState<T> {\n switch (action.type) {\n case \"add\":\n return {\n filters: [\n ...state.filters,\n { id: new Date().getTime(), ...action.payload.filter },\n ],\n };\n case \"remove\":\n return {\n filters: state.filters.filter((f) => f.id !== action.payload.id),\n };\n case \"clear\":\n return { filters: [] };\n }\n}\n\nexport function useFilterReducer<\n T extends DataRecord\n>(): TReturnUseFilterReducer<T> {\n const [state, dispatch] = useReducer(reducer, { filters: [] });\n\n const addFilter = useCallback(\n (filter: TFilter<T>) => dispatch({ type: \"add\", payload: { filter } }),\n [dispatch]\n );\n const removeFilter = useCallback(\n (id: number) => dispatch({ type: \"remove\", payload: { id } }),\n [dispatch]\n );\n const clearFilter = useCallback(\n () => dispatch({ type: \"clear\" }),\n [dispatch]\n );\n\n const filter = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]): DataObject<U>[] => {\n return state.filters.reduce((acc, filter) => {\n switch (filter.operator) {\n case \"includeText\":\n return acc.filter((row) => {\n const value = row[filter.key];\n if (typeof value === \"string\") {\n return filter.value.some((v) => value.includes(v));\n }\n return false;\n });\n case \"eq\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"ne\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n case \"gt\":\n return acc.filter(\n (row) => (row[filter.key] as number) > filter.value\n );\n case \"lt\":\n return acc.filter(\n (row) => (row[filter.key] as number) < filter.value\n );\n case \"gte\":\n return acc.filter(\n (row) => (row[filter.key] as number) >= filter.value\n );\n case \"lte\":\n return acc.filter(\n (row) => (row[filter.key] as number) <= filter.value\n );\n case \"selected\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"notSelected\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n }\n }, rows);\n },\n [state]\n );\n\n return {\n addFilter,\n removeFilter,\n clearFilter,\n filter,\n filterConditions: state.filters,\n };\n}\n"],"names":["reducer","state","action","type","filters","__spreadArray","__assign","id","Date","getTime","payload","filter","f","_a","useReducer","dispatch","addFilter","useCallback","removeFilter","clearFilter","rows","reduce","acc","operator","row","value","key","some","v","includes","filterConditions"],"mappings":"0FASA,SAASA,EACPC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,MACH,MAAO,CACLC,QAAOC,EAAAA,cAAAA,gBAAA,GACFJ,EAAMG,SAAO,GAAA,CACdE,WAAA,CAAAC,IAAI,IAAIC,MAAOC,WAAcP,EAAOQ,QAAQC,UAC/C,IAEL,IAAK,SACH,MAAO,CACLP,QAASH,EAAMG,QAAQO,QAAO,SAACC,GAAM,OAAAA,EAAEL,KAAOL,EAAOQ,QAAQH,EAAxB,KAEzC,IAAK,QACH,MAAO,CAAEH,QAAS,IAExB,qCAKQ,IAAAS,EAAoBC,EAAUA,WAACd,EAAS,CAAEI,QAAS,KAAlDH,OAAOc,OAyDd,MAAO,CACLC,UAxDgBC,EAAAA,aAChB,SAACN,GAAuB,OAAAI,EAAS,CAAEZ,KAAM,MAAOO,QAAS,CAAEC,OAAMA,OACjE,CAACI,IAuDDG,aArDmBD,EAAAA,aACnB,SAACV,GAAe,OAAAQ,EAAS,CAAEZ,KAAM,SAAUO,QAAS,CAAEH,GAAEA,OACxD,CAACQ,IAoDDI,YAlDkBF,EAAAA,aAClB,WAAM,OAAAF,EAAS,CAAEZ,KAAM,SAAjB,GACN,CAACY,IAiDDJ,OA9CaM,eACb,SAAuBG,GACrB,OAAOnB,EAAMG,QAAQiB,QAAO,SAACC,EAAKX,GAChC,OAAQA,EAAOY,UACb,IAAK,cACH,OAAOD,EAAIX,QAAO,SAACa,GACjB,IAAMC,EAAQD,EAAIb,EAAOe,KACzB,MAAqB,iBAAVD,GACFd,EAAOc,MAAME,MAAK,SAACC,GAAM,OAAAH,EAAMI,SAASD,EAAE,GAGrD,IACF,IAAK,KAoBL,IAAK,WACH,OAAON,EAAIX,QAAO,SAACa,GAAQ,OAAAA,EAAIb,EAAOe,OAASf,EAAOc,KAAK,IAnB7D,IAAK,KAoBL,IAAK,cACH,OAAOH,EAAIX,QAAO,SAACa,GAAQ,OAAAA,EAAIb,EAAOe,OAASf,EAAOc,KAAK,IAnB7D,IAAK,KACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,KAAkBf,EAAOc,KAAK,IAEvD,IAAK,KACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,KAAkBf,EAAOc,KAAK,IAEvD,IAAK,MACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,MAAmBf,EAAOc,KAAK,IAExD,IAAK,MACH,OAAOH,EAAIX,QACT,SAACa,GAAQ,OAACA,EAAIb,EAAOe,MAAmBf,EAAOc,KAAK,IAO3D,GAAEL,EACL,GACA,CAACnB,IAQD6B,iBAAkB7B,EAAMG,QAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-formatting.js","sources":["../../../../../src/table/libs/conditional-formatting.ts"],"sourcesContent":["import {\n DataObject,\n DataRecord,\n TConditionalFormatting,\n TTableColumn,\n} from \"../type\";\n\nexport function generateFormattingString(\n row: DataObject<DataRecord>,\n cols: TTableColumn<DataRecord>[],\n conditionalFormattings?: TConditionalFormatting<DataRecord>[]\n): string {\n if (!conditionalFormattings) {\n return Array(cols.length).fill(\"\").join(\",\");\n }\n\n const formats = conditionalFormattings.reduce((acc, formatting) => {\n const { condition, key, style } = formatting;\n const colIndex = cols.findIndex((col) => col.key === key);\n\n if (colIndex === -1 || acc[colIndex] !== \"\" || !condition(row)) {\n return acc;\n }\n\n acc[colIndex] = style;\n\n return acc;\n }, Array(cols.length).fill(\"\"));\n\n return formats.join(\",\");\n}\n"],"names":["row","cols","conditionalFormattings","reduce","acc","formatting","condition","key","style","colIndex","findIndex","col","Array","length","fill","join"],"mappings":"uDAQEA,EACAC,EACAC,GAEA,OAAKA,EAIWA,EAAuBC,QAAO,SAACC,EAAKC,GAC1C,IAAAC,EAA0BD,EAAUC,UAAzBC,EAAeF,EAAUE,IAApBC,EAAUH,QAC5BI,EAAWR,EAAKS,WAAU,SAACC,GAAQ,OAAAA,EAAIJ,MAAQA,CAAZ,IAEzC,OAAkB,IAAdE,GAAqC,KAAlBL,EAAIK,IAAqBH,EAAUN,IAI1DI,EAAIK,GAAYD,EAETJ,GALEA,CAMX,GAAGQ,MAAMX,EAAKY,QAAQC,KAAK,KAEZC,KAAK,KAhBXH,MAAMX,EAAKY,QAAQC,KAAK,IAAIC,KAAK,IAiB5C"}
1
+ {"version":3,"file":"conditional-formatting.js","sources":["../../../../../src/table/libs/conditional-formatting.ts"],"sourcesContent":["import {\n DataObject,\n DataRecord,\n TConditionalFormatting,\n TTableColumn,\n} from \"../table/type\";\n\nexport function generateFormattingString(\n row: DataObject<DataRecord>,\n cols: TTableColumn<DataRecord>[],\n conditionalFormattings?: TConditionalFormatting<DataRecord>[]\n): string {\n if (!conditionalFormattings) {\n return Array(cols.length).fill(\"\").join(\",\");\n }\n\n const formats = conditionalFormattings.reduce((acc, formatting) => {\n const { condition, key, style } = formatting;\n const colIndex = cols.findIndex((col) => col.key === key);\n\n if (colIndex === -1 || acc[colIndex] !== \"\" || !condition(row)) {\n return acc;\n }\n\n acc[colIndex] = style;\n\n return acc;\n }, Array(cols.length).fill(\"\"));\n\n return formats.join(\",\");\n}\n"],"names":["row","cols","conditionalFormattings","reduce","acc","formatting","condition","key","style","colIndex","findIndex","col","Array","length","fill","join"],"mappings":"uDAQEA,EACAC,EACAC,GAEA,OAAKA,EAIWA,EAAuBC,QAAO,SAACC,EAAKC,GAC1C,IAAAC,EAA0BD,EAAUC,UAAzBC,EAAeF,EAAUE,IAApBC,EAAUH,QAC5BI,EAAWR,EAAKS,WAAU,SAACC,GAAQ,OAAAA,EAAIJ,MAAQA,CAAZ,IAEzC,OAAkB,IAAdE,GAAqC,KAAlBL,EAAIK,IAAqBH,EAAUN,IAI1DI,EAAIK,GAAYD,EAETJ,GALEA,CAMX,GAAGQ,MAAMX,EAAKY,QAAQC,KAAK,KAEZC,KAAK,KAhBXH,MAAMX,EAAKY,QAAQC,KAAK,IAAIC,KAAK,IAiB5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"sHAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WAPpBF,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,cAAgBI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAClDR,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,wBAEM,SAAyBY,GACvB,IAAAC,EAAoBC,EAAAA,WACxBf,EACAa,QAAAA,EAAgBG,EAAAA,oBAFXf,OAAOgB,OAKRC,EAAOC,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDG,EAAOD,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDI,EAAOF,EAAAA,aACX,SAACP,GAAuB,OAAAK,EAAS,CAAEd,KAAM,OAAQK,QAAS,CAAEI,WAAUA,OACtE,CAACK,IAGGK,EAAcH,eAClB,SAACZ,GACC,OAAAU,EAAS,CAAEd,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACU,IAGGM,EAAOC,EAAAA,SAAQ,WACnB,OAAKvB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEwB,EAAKD,EAAAA,SAAQ,WACjB,OAAKvB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEEyB,EAAaP,eACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLrB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CsB,QAAS5B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBuB,UAAW7B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEc,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"sHAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WAPpBF,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,cAAgBI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAClDR,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAIJI,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,wBAEM,SAAyBY,GACvB,IAAAC,EAAoBC,EAAAA,WACxBf,EACAa,QAAAA,EAAgBG,EAAAA,oBAFXf,OAAOgB,OAKRC,EAAOC,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDG,EAAOD,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDI,EAAOF,EAAAA,aACX,SAACP,GAAuB,OAAAK,EAAS,CAAEd,KAAM,OAAQK,QAAS,CAAEI,WAAUA,OACtE,CAACK,IAGGK,EAAcH,eAClB,SAACZ,GACC,OAAAU,EAAS,CAAEd,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACU,IAGGM,EAAOC,EAAAA,SAAQ,WACnB,OAAKvB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEwB,EAAKD,EAAAA,SAAQ,WACjB,OAAKvB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEEyB,EAAaP,eACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLrB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CsB,QAAS5B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBuB,UAAW7B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEc,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataRecord, TTableColumn } from \"../type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\n\ninterface TPropsRow<T extends DataRecord> {\n dataString: string;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n onUpdateRow?: (newRow: any, oldRow: any) => void;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const { unfocus } = useFocusActionContext();\n const row = JSON.parse(props.dataString);\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n unfocus();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td>\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n rowIndex={props.rowIndex}\n colIndex={j}\n row={row}\n columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n isExistOnUpdateRow={!!props.onUpdateRow}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","jsx","Checkbox","cols","map","col","j","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","cellFormatClassName","isExistOnUpdateRow","onUpdateRow","editable","_a"],"mappings":"4KAiBaA,EAAMC,EAAIA,MAAC,SAAiCC,GAC/C,IAAAC,EAAYC,kCACdC,EAAMC,KAAKC,MAAML,EAAMM,YACvBC,EAAwBP,EAAMQ,4BAA4BC,MAAM,KAEtE,OACEC,OACE,KAAA,CAAAC,UAAW,0JACTC,OAAEZ,EAAMa,WAAa,uBAAyB,GAC5C,KAAAD,OAAAZ,EAAMc,mBAAqBd,EAAMc,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEIjB,EAAMa,aACVb,EAAMa,WAAWV,GACjBF,IAEH,EACY,cAAAE,EAAIe,GAEhBC,SAAA,CAAAnB,EAAMoB,eACLC,EACEC,IAAA,KAAA,CAAAH,SAAAE,EAAAA,IAACE,EAAQA,SAAC,CAAApB,IAAKA,MAGlBH,EAAMwB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAAAA,IAACO,EAAAA,UAAS,CAERC,SAAU7B,EAAM6B,SAChBC,SAAUH,EACVxB,IAAKA,EACL4B,UAAWL,EAAIM,IACfC,oBAAqBjC,EAAMa,WAC3BqB,oBAAqB3B,EAAsBoB,GAC3CQ,qBAAsBnC,EAAMoC,YAC5BC,SAAsB,QAAZC,EAAAZ,EAAIW,gBAAQ,IAAAC,GAAAA,GARjBZ,EAAIM,UAcrB"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\n\ninterface TPropsRow<T extends DataRecord> {\n dataString: string;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n onUpdateRow?: (newRow: any, oldRow: any) => void;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const { unfocus } = useFocusActionContext();\n const row = JSON.parse(props.dataString);\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n unfocus();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td>\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n rowIndex={props.rowIndex}\n colIndex={j}\n row={row}\n columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n isExistOnUpdateRow={!!props.onUpdateRow}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","jsx","Checkbox","cols","map","col","j","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","cellFormatClassName","isExistOnUpdateRow","onUpdateRow","editable","_a"],"mappings":"4KAiBaA,EAAMC,EAAIA,MAAC,SAAiCC,GAC/C,IAAAC,EAAYC,kCACdC,EAAMC,KAAKC,MAAML,EAAMM,YACvBC,EAAwBP,EAAMQ,4BAA4BC,MAAM,KAEtE,OACEC,OACE,KAAA,CAAAC,UAAW,0JACTC,OAAEZ,EAAMa,WAAa,uBAAyB,GAC5C,KAAAD,OAAAZ,EAAMc,mBAAqBd,EAAMc,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEIjB,EAAMa,aACVb,EAAMa,WAAWV,GACjBF,IAEH,EACY,cAAAE,EAAIe,GAEhBC,SAAA,CAAAnB,EAAMoB,eACLC,EACEC,IAAA,KAAA,CAAAH,SAAAE,EAAAA,IAACE,EAAQA,SAAC,CAAApB,IAAKA,MAGlBH,EAAMwB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAAAA,IAACO,EAAAA,UAAS,CAERC,SAAU7B,EAAM6B,SAChBC,SAAUH,EACVxB,IAAKA,EACL4B,UAAWL,EAAIM,IACfC,oBAAqBjC,EAAMa,WAC3BqB,oBAAqB3B,EAAsBoB,GAC3CQ,qBAAsBnC,EAAMoC,YAC5BC,SAAsB,QAAZC,EAAAZ,EAAIW,gBAAQ,IAAAC,GAAAA,GARjBZ,EAAIM,UAcrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"0FAIMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,SAAAA,EAAAA,SAAA,GACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAO,CAAAK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GAAYR,GAAK,CAAEM,eAAe,IAExC,yBAEM,SAA+CG,WAI7CC,EAAoBC,EAAUA,WAACZ,EAAS,CAC5CI,IAAiB,QAAZS,EAAAH,eAAAA,EAASN,WAAG,IAAAS,EAAAA,EAAI,KACrBP,IAAiB,QAAZQ,EAAAJ,eAAAA,EAASJ,WAAG,IAAAQ,GAAAA,EACjBP,eAAe,EACfC,WAAY,IAJPP,EAAKU,EAAA,GAAEI,OAORC,EAAY,SAACZ,GACjBW,EAAS,CAAEZ,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMa,EAAc,WAClBF,EAAS,CAAEZ,KAAM,eACnB,EAEMe,EAAc,WAClBH,EAAS,CAAEZ,KAAM,cACnB,EAEMgB,EAAOC,eACX,SAAuBC,GACrB,OAAAC,EAAAA,cAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBiB,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GAAE,GACJ,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6BwB,WAC7B,WAAM,MAAC,CACLrB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cACrB,GACF,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BmB,QAPcD,EAAAA,SACd,WAAM,MAAC,CAAET,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAAG,GACrD,CAACA,IAMDX,WAAYP,EAAMO,WAEtB"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"0FAIMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,SAAAA,EAAAA,SAAA,GACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAO,CAAAK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GAAYR,GAAK,CAAEM,eAAe,IAExC,yBAEM,SAA+CG,WAI7CC,EAAoBC,EAAUA,WAACZ,EAAS,CAC5CI,IAAiB,QAAZS,EAAAH,eAAAA,EAASN,WAAG,IAAAS,EAAAA,EAAI,KACrBP,IAAiB,QAAZQ,EAAAJ,eAAAA,EAASJ,WAAG,IAAAQ,GAAAA,EACjBP,eAAe,EACfC,WAAY,IAJPP,EAAKU,EAAA,GAAEI,OAORC,EAAY,SAACZ,GACjBW,EAAS,CAAEZ,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMa,EAAc,WAClBF,EAAS,CAAEZ,KAAM,eACnB,EAEMe,EAAc,WAClBH,EAAS,CAAEZ,KAAM,cACnB,EAEMgB,EAAOC,eACX,SAAuBC,GACrB,OAAAC,EAAAA,cAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBiB,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GAAE,GACJ,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6BwB,WAC7B,WAAM,MAAC,CACLrB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cACrB,GACF,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BmB,QAPcD,EAAAA,SACd,WAAM,MAAC,CAAET,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAAG,GACrD,CAACA,IAMDX,WAAYP,EAAMO,WAEtB"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),i=require("../header/header.js"),t=require("../pagenation/providers.js"),s=require("../pagenation/components.js"),n=require("../filter/provider.js"),l=require("../filter/components.js");require("../sort/icon.js");var a=require("../sort/provider.js"),d=require("../sheet/providers.js"),c=require("../focus/provider.js"),u=require("../checkbox/provider.js"),x=require("../checkbox/components.js"),j=require("../libs/id-generator.js"),h=require("../edit/provider.js"),p=require("../table-property/provider.js"),g=require("../operation/components/keyboard-setting.js"),m=require("../sheet/components.js"),v=require("../paste/provider.js"),b=require("../libs/conditional-formatting.js"),w=require("../edit/ui/editor.js"),f=require("../filter/hooks/selectedFilteringColumn/provider.js");function q(e){var t=o.useTable(e),n=t.cols,a=t.rowMaps,d=t.pageRowIds,c=f.useFilteringColumnStateContext(),u=v.usePasteActionContext().onPaste;return r.jsxs("div",{className:"w-full",children:[r.jsx("div",{className:"flex justify-end mb-1 mr-3",children:r.jsx(l.TableFilterRemoveButton,{children:r.jsx("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),r.jsxs("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:[r.jsx(w.Editor,{rowMaps:a,pageRowIds:d}),r.jsxs("table",{className:"table",onPaste:function(e){e.preventDefault();var r=e.clipboardData.getData("Text");u(r.replace(/\t/g,",").trim().replace(/\r\n/g,"\n").split("\n").map((function(e){return e.split(",")})))},children:[r.jsx("thead",{children:r.jsxs("tr",{className:"sticky top-0 border-gray-200 z-20 bg-gray-200 text-gray-600 h-[32px]",children:[e.checkbox&&r.jsx("th",{children:r.jsx(x.AllCheckbox,{rows:e.rows})}),n.map((function(e,o){return r.jsx(i.TableHeaderElement,{id:j.IdGenerator.getTableColId(o),col:e},e.key.toString())}))]})}),r.jsxs("tbody",{children:[!!c&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length,className:"sticky top-8 left-0 bg-gray-300 w-full shadow-lg rounded-b-2xl z-20 p-0 overflow-hidden",children:r.jsx(l.TableFilterForm,{})})}),0===d.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length,className:"py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),d.map((function(o,i){return r.jsx(m.Row,{existCheckbox:!!e.checkbox,rowIndex:i,dataString:a[o].stringValue,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:b.generateFormattingString(a[o].data,n,e.conditionalFormattings),onUpdateRow:e.onUpdateRow},o)}))]})]})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(s.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(s.Pagenation,{})})]})]})}module.exports=function(o){var i,s,l;return r.jsx(n.FilterProvider,{children:r.jsx(a.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(t.PagenationProvider,{rowCount:o.rows.length,perPage:null===(l=null===(s=o.initialCondition)||void 0===s?void 0:s.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r.jsx(u.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(u.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(d.ColumnsProvider,{cols:o.cols,errorHandler:o.errorHandler,children:r.jsx(c.FocusProvider,{children:r.jsx(h.EditProvider,{children:r.jsx(p.TablePropertyProvider,{children:r.jsxs(v.PasteProvider,{rows:o.rows,cols:o.cols,onUpdateRowFunction:o.onUpdateRow,children:[r.jsx(g.KeyboardSetting,{}),r.jsx(q,e.__assign({},o))]})})})})})})})})})})};
3
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react"),t=require("../pagenation/providers.js");require("react/jsx-runtime");var r=require("../filter/provider.js");require("../filter/constants.js"),require("../sheet/providers.js"),require("../filter/hooks/selectedFilteringColumn/provider.js");var o=require("../checkbox/provider.js"),n=require("../sort/provider.js"),u=require("../table-property/provider.js"),s=require("../paste/provider.js");exports.useTable=function(i){var c=r.useFilterContext().filter,a=n.useSortActionContext(),f=a.sort,l=a.updatedData,d=n.useSortTimingContext(),p=t.usePageContext(),h=p.setRowCount,v=p.pageFilter,x=o.useCheckboxStatusContext().dispatchCheckboxStatus,g=s.usePasteActionContext().setRows,C=u.useTablePropertyActionContext(),w=C.setMaxDisplayColCount,m=C.setMaxDisplayRowCount,j=e.useMemo((function(){return c(i.rows)}),[c,d,i.rows.length]);e.useEffect((function(){h(j.length)}),[j.length]);var q=e.useMemo((function(){return i.checkbox?i.rows.filter((function(e){var t;return null===(t=i.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[i.checkbox,i.rows]);e.useEffect((function(){x({type:"SET",payload:{checkedRecords:q}})}),[q]);var b=e.useMemo((function(){return f(j)}),[j,d]);e.useEffect((function(){l()}),[i.rows]);var k=e.useMemo((function(){return v(b)}),[v,b]),M=e.useMemo((function(){return k.map((function(e){return e.id}))}),[k]),y=e.useMemo((function(){return new Set(M)}),[M]),E=e.useMemo((function(){return i.rows.filter((function(e){return y.has(e.id)})).reduce((function(e,t){var r=Object.keys(t).sort().reduce((function(e,r){return e[r]=t[r],e}),{});return e[t.id]={data:r,stringValue:JSON.stringify(r)},e}),{})}),[i.rows,y]);return e.useEffect((function(){w(i.cols.length)}),[i.cols.length]),e.useEffect((function(){m(M.length)}),[M.length]),e.useEffect((function(){g(M.map((function(e){return E[e].data})))}),[E]),{cols:i.cols,rowMaps:E,pageRowIds:M}};
2
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useFilterContext } from \"../filter\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows } = usePasteActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, props.rows.length]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n const rowSortedByKey = Object.keys(row)\n .sort()\n .reduce((acc, key) => {\n acc[key] = row[key];\n return acc;\n }, {} as { [key: string]: string | number });\n\n acc[row.id] = {\n data: rowSortedByKey,\n stringValue: JSON.stringify(rowSortedByKey),\n };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any>; stringValue: string } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n setRows(pageRowIds.map((id) => rowMaps[id].data));\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n"],"names":["props","filter","useFilterContext","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRows","usePasteActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","useMemo","rows","length","useEffect","checkBoxes","checkbox","row","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","map","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","key","data","stringValue","JSON","stringify","cols"],"mappings":"0bASM,SAAyCA,GACrC,IAAAC,EAAWC,4BACbC,EAAwBC,EAAoBA,uBAA1CC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,EAAAA,uBACbC,EAA8BC,EAAcA,iBAA1CC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,oDAC3BC,EAAYC,kCACdC,EACJC,EAA6BA,gCADvBC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,EAAAA,SACnB,WAAM,OAAArB,EAAOD,EAAMuB,KAAK,GACxB,CAACtB,EAAQM,EAAYP,EAAMuB,KAAKC,SAGlCC,EAAAA,WAAU,WACRd,EAAYU,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,EAAAA,SAAQ,WACzB,OAAKtB,EAAM2B,SAIJ3B,EAAMuB,KAAKtB,QAAO,SAAC2B,GAAG,IAAAzB,EAAK,eAAAA,EAAAH,EAAM2B,+BAAUE,QAAQD,EAAI,IAHrD,EAIV,GAAE,CAAC5B,EAAM2B,SAAU3B,EAAMuB,OAE1BE,EAAAA,WAAU,WACRZ,EAAuB,CACrBiB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,EAAAA,SACjB,WAAM,OAAAjB,EAAKgB,KACX,CAACA,EAAcd,IAGjBkB,EAAAA,WAAU,WACRnB,GACF,GAAG,CAACN,EAAMuB,OAEV,IAAMW,EAAWZ,EAAAA,SACf,WAAM,OAAAV,EAAWqB,KACjB,CAACrB,EAAYqB,IAGTE,EAAab,EAAAA,SAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAE,GAAC,GAAE,CAACH,IAC3DI,EAAgBhB,EAAAA,SAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAW,GAAE,CAACA,IAEpDK,EAAUlB,EAAAA,SACd,WACE,OAAAtB,EAAMuB,KACHtB,QAAO,SAAC2B,GAAQ,OAAAU,EAAcG,IAAIb,EAAIS,OACtCK,QAAO,SAACC,EAAKf,GACZ,IAAMgB,EAAiBC,OAAOC,KAAKlB,GAChCvB,OACAqC,QAAO,SAACC,EAAKI,GAEZ,OADAJ,EAAII,GAAOnB,EAAImB,GACRJ,CACR,GAAE,CAAwC,GAM7C,OAJAA,EAAIf,EAAIS,IAAM,CACZW,KAAMJ,EACNK,YAAaC,KAAKC,UAAUP,IAEvBD,CACR,GAAE,CAA+E,EAAC,GACvF,CAAC3C,EAAMuB,KAAMe,IAef,OAZAb,EAAAA,WAAU,WACRN,EAAsBnB,EAAMoD,KAAK5B,OAClC,GAAE,CAACxB,EAAMoD,KAAK5B,SAEfC,EAAAA,WAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,EAAAA,WAAU,WACRV,EAAQoB,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIW,QAC7C,GAAG,CAACR,IAEG,CACLY,KAAMpD,EAAMoD,KACZZ,QAAOA,EACPL,WAAUA,EAEd"}
@@ -1,2 +1,2 @@
1
- export{default as Table}from"./table/base.js";
1
+ export{default as Table}from"./table/table/base.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import{useMemo as e,useCallback as o}from"react";import{useEditActionContext as t}from"../edit/provider.js";import{useFocusActionContext as r}from"../focus/provider.js";import{useColumnsContext as n}from"../sheet/providers.js";function i(i,l,d){var u,f,p=r(),c=t(),m=n()[l],s=d[m.key],v="select"===m.type?null===(f=null===(u=m.options)||void 0===u?void 0:u.find((function(e){return e.value===s})))||void 0===f?void 0:f.label:s,a=e((function(){return m.editable?v:m.render?m.render(s,d):v}),[m.editable,v,s,d]);return{type:!m.editable&&m.render?"component":m.type,component:a,focusAtCell:o((function(){p.move(i,l),p.focus(i,l)}),[p,i,l]),onDoubleClickCellToEdit:o((function(e){e.preventDefault(),p.move(i,l),p.focus(i,l),c.startEditing()}),[p,c,i,l])}}export{i as useCell};
2
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/cell/hooks.ts"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useEditActionContext } from \"../edit/provider\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { useColumnsContext } from \"../sheet/providers\";\nimport { DataObject, DataRecord, TColumnType } from \"../table/type\";\n\nexport function useCell(\n rowIndex: number,\n colIndex: number,\n row: DataObject<DataRecord>\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label\n : value;\n\n const component = useMemo(() => {\n if (col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const onDoubleClickCellToEdit: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n e.preventDefault();\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n editAction.startEditing();\n },\n [focus, editAction, rowIndex, colIndex]\n );\n\n return {\n type,\n component,\n focusAtCell,\n onDoubleClickCellToEdit,\n };\n}\n"],"names":["useCell","rowIndex","colIndex","row","focus","useFocusActionContext","editAction","useEditActionContext","col","useColumnsContext","value","key","label","type","_a","options","find","op","_b","component","useMemo","editable","render","focusAtCell","useCallback","move","onDoubleClickCellToEdit","e","preventDefault","startEditing"],"mappings":"4OAMgBA,EACdC,EACAC,EACAC,WAEMC,EAAQC,IACRC,EAAaC,IACbC,EAAMC,IAAoBP,GAC1BQ,EAAQP,EAAIK,EAAIG,KAEhBC,EACS,WAAbJ,EAAIK,KAC6C,UAAlC,QAAXC,EAAAN,EAAIO,eAAO,IAAAD,OAAA,EAAAA,EAAEE,MAAK,SAACC,GAAO,OAAAA,EAAGP,QAAUA,CAAb,WAAmB,IAAAQ,OAAA,EAAAA,EAAEN,MAC/CF,EAEAS,EAAYC,GAAQ,WACxB,OAAIZ,EAAIa,SACCT,EAEAJ,EAAIc,OAASd,EAAIc,OAAOZ,EAAgBP,GAAOS,CAE1D,GAAG,CAACJ,EAAIa,SAAUT,EAAOF,EAAOP,IAqBhC,MAAO,CACLU,MAnBCL,EAAIa,UAAYb,EAAIc,OAAS,YAAcd,EAAIK,KAoBhDM,UAASA,EACTI,YAnBkBC,GAAY,WAC9BpB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,EACvB,GAAE,CAACE,EAAOH,EAAUC,IAiBnBwB,wBAdAF,GACE,SAACG,GACCA,EAAEC,iBACFxB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,GACtBI,EAAWuB,cACZ,GACD,CAACzB,EAAOE,EAAYL,EAAUC,IASpC"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useCell as t}from"../../hook.js";import{EditButton as l}from"./edit-button.js";import{IdGenerator as i}from"../../libs/id-generator.js";function n(n){var r=t(n.rowIndex,n.colIndex,n.row),c=r.type,a=r.component,s=r.focusAtCell,d=r.onDoubleClickCellToEdit,m=i.getTableCellId(n.rowIndex,n.colIndex);return e("td",{id:m,className:"".concat(n.cellFormatClassName),children:e("div",{className:"relative",onClick:n.isExistOnClickRow?void 0:function(e){e.preventDefault(),s()},onDoubleClick:n.isExistOnClickRow?void 0:d,children:o("div",{className:"flex items-center gap-3 w-f-displayit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),s()},children:["component"===c?a:e("div",{onDoubleClick:d,children:e("p",{className:"cell-data text-left whitespace-nowrap",children:a})}),n.editable&&e(l,{})]})})})}export{n as TableCell};
2
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{EditButton as t}from"./edit-button.js";import{IdGenerator as l}from"../../libs/id-generator.js";import{useCell as i}from"../hooks.js";function n(n){var r=i(n.rowIndex,n.colIndex,n.row),c=r.type,a=r.component,s=r.focusAtCell,d=r.onDoubleClickCellToEdit,m=l.getTableCellId(n.rowIndex,n.colIndex);return e("td",{id:m,className:"".concat(n.cellFormatClassName),children:e("div",{className:"relative",onClick:n.isExistOnClickRow?void 0:function(e){e.preventDefault(),s()},onDoubleClick:n.isExistOnClickRow?void 0:d,children:o("div",{className:"flex items-center gap-3 w-f-displayit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),s()},children:["component"===c?a:e("div",{onDoubleClick:d,children:e("p",{className:"cell-data text-left whitespace-nowrap",children:a})}),n.editable&&e(t,{})]})})})}export{n as TableCell};
3
3
  //# sourceMappingURL=cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/checkbox/hooks.ts"],"sourcesContent":["import { useReducer } from \"react\";\nimport { CheckboxStatusReducer } from \"./types\";\nimport { DataRecord } from \"../type\";\n\nconst checkboxReducer: CheckboxStatusReducer<DataRecord> = (state, action) => {\n switch (action.type) {\n case \"SET\":\n return { checkedRecords: action.payload.checkedRecords };\n }\n};\n\nexport function useCheckboxStatusReducer(checkboxCount: number) {\n const [checkboxStatusState, dispatchCheckboxStatus] = useReducer(\n checkboxReducer,\n { checkedRecords: [] }\n );\n\n return {\n checkboxStatusState,\n dispatchCheckboxStatus,\n allUnchecked: checkboxStatusState.checkedRecords.length === 0,\n existChecked: checkboxStatusState.checkedRecords.length > 0,\n indeterminate:\n checkboxStatusState.checkedRecords.length > 0 &&\n checkboxStatusState.checkedRecords.length < checkboxCount,\n };\n}\n"],"names":["checkboxReducer","state","action","type","checkedRecords","payload","useCheckboxStatusReducer","checkboxCount","_a","useReducer","checkboxStatusState","dispatchCheckboxStatus","allUnchecked","length","existChecked","indeterminate"],"mappings":"mCAIA,IAAMA,EAAqD,SAACC,EAAOC,GACjE,GACO,QADCA,EAAOC,KAEX,MAAO,CAAEC,eAAgBF,EAAOG,QAAQD,eAE9C,EAEM,SAAUE,EAAyBC,GACjC,IAAAC,EAAgDC,EACpDT,EACA,CAAEI,eAAgB,KAFbM,OAKP,MAAO,CACLA,oBAAmBA,EACnBC,4BACAC,aAA4D,IAA9CF,EAAoBN,eAAeS,OACjDC,aAAcJ,EAAoBN,eAAeS,OAAS,EAC1DE,cACEL,EAAoBN,eAAeS,OAAS,GAC5CH,EAAoBN,eAAeS,OAASN,EAElD"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/checkbox/hooks.ts"],"sourcesContent":["import { useReducer } from \"react\";\nimport { CheckboxStatusReducer } from \"./types\";\nimport { DataRecord } from \"../table/type\";\n\nconst checkboxReducer: CheckboxStatusReducer<DataRecord> = (state, action) => {\n switch (action.type) {\n case \"SET\":\n return { checkedRecords: action.payload.checkedRecords };\n }\n};\n\nexport function useCheckboxStatusReducer(checkboxCount: number) {\n const [checkboxStatusState, dispatchCheckboxStatus] = useReducer(\n checkboxReducer,\n { checkedRecords: [] }\n );\n\n return {\n checkboxStatusState,\n dispatchCheckboxStatus,\n allUnchecked: checkboxStatusState.checkedRecords.length === 0,\n existChecked: checkboxStatusState.checkedRecords.length > 0,\n indeterminate:\n checkboxStatusState.checkedRecords.length > 0 &&\n checkboxStatusState.checkedRecords.length < checkboxCount,\n };\n}\n"],"names":["checkboxReducer","state","action","type","checkedRecords","payload","useCheckboxStatusReducer","checkboxCount","_a","useReducer","checkboxStatusState","dispatchCheckboxStatus","allUnchecked","length","existChecked","indeterminate"],"mappings":"mCAIA,IAAMA,EAAqD,SAACC,EAAOC,GACjE,GACO,QADCA,EAAOC,KAEX,MAAO,CAAEC,eAAgBF,EAAOG,QAAQD,eAE9C,EAEM,SAAUE,EAAyBC,GACjC,IAAAC,EAAgDC,EACpDT,EACA,CAAEI,eAAgB,KAFbM,OAKP,MAAO,CACLA,oBAAmBA,EACnBC,4BACAC,aAA4D,IAA9CF,EAAoBN,eAAeS,OACjDC,aAAcJ,EAAoBN,eAAeS,OAAS,EAC1DE,cACEL,EAAoBN,eAAeS,OAAS,GAC5CH,EAAoBN,eAAeS,OAASN,EAElD"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/checkbox/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TCheckboxProperty } from \"../type\";\nimport { useCheckboxStatusReducer } from \"./hooks\";\n\nconst CheckboxStatusContext = createContext<\n ReturnType<typeof useCheckboxStatusReducer>\n>({\n checkboxStatusState: {\n checkedRecords: [],\n },\n dispatchCheckboxStatus: () => {},\n allUnchecked: false,\n existChecked: false,\n indeterminate: false,\n});\n\nexport function CheckboxStatusProvider({\n children,\n checkboxCount,\n}: {\n children: JSX.Element;\n checkboxCount: number;\n}) {\n return (\n <CheckboxStatusContext.Provider\n value={useCheckboxStatusReducer(checkboxCount)}\n >\n {children}\n </CheckboxStatusContext.Provider>\n );\n}\n\nexport function useCheckboxStatusContext() {\n return useContext(CheckboxStatusContext);\n}\n\nconst CheckboxContext =\n createContext<TCheckboxProperty<any>[\"checkbox\"]>(undefined);\n\nexport function CheckboxProvider({\n children,\n checkbox,\n}: {\n children: React.ReactNode;\n checkbox: TCheckboxProperty<any>[\"checkbox\"];\n}) {\n return (\n <CheckboxContext.Provider value={checkbox}>\n {children}\n </CheckboxContext.Provider>\n );\n}\n\nexport function useCheckboxContext() {\n return useContext(CheckboxContext);\n}\n"],"names":["CheckboxStatusContext","createContext","checkboxStatusState","checkedRecords","dispatchCheckboxStatus","allUnchecked","existChecked","indeterminate","CheckboxStatusProvider","_a","children","checkboxCount","_jsx","Provider","value","useCheckboxStatusReducer","useCheckboxStatusContext","useContext","CheckboxContext","undefined","CheckboxProvider","checkbox","useCheckboxContext"],"mappings":"oJAIA,IAAMA,EAAwBC,EAE5B,CACAC,oBAAqB,CACnBC,eAAgB,IAElBC,uBAAwB,WAAQ,EAChCC,cAAc,EACdC,cAAc,EACdC,eAAe,IAGX,SAAUC,EAAuBC,OACrCC,EAAQD,EAAAC,SACRC,EAAaF,EAAAE,cAKb,OACEC,EAACZ,EAAsBa,UACrBC,MAAOC,EAAyBJ,GAAcD,SAE7CA,GAGP,UAEgBM,IACd,OAAOC,EAAWjB,EACpB,CAEA,IAAMkB,EACJjB,OAAkDkB,GAE9C,SAAUC,EAAiBX,OAC/BC,EAAQD,EAAAC,SACRW,EAAQZ,EAAAY,SAKR,OACET,EAACM,EAAgBL,SAAQ,CAACC,MAAOO,EAAQX,SACtCA,GAGP,UAEgBY,IACd,OAAOL,EAAWC,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/checkbox/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TCheckboxProperty } from \"../table/type\";\nimport { useCheckboxStatusReducer } from \"./hooks\";\n\nconst CheckboxStatusContext = createContext<\n ReturnType<typeof useCheckboxStatusReducer>\n>({\n checkboxStatusState: {\n checkedRecords: [],\n },\n dispatchCheckboxStatus: () => {},\n allUnchecked: false,\n existChecked: false,\n indeterminate: false,\n});\n\nexport function CheckboxStatusProvider({\n children,\n checkboxCount,\n}: {\n children: JSX.Element;\n checkboxCount: number;\n}) {\n return (\n <CheckboxStatusContext.Provider\n value={useCheckboxStatusReducer(checkboxCount)}\n >\n {children}\n </CheckboxStatusContext.Provider>\n );\n}\n\nexport function useCheckboxStatusContext() {\n return useContext(CheckboxStatusContext);\n}\n\nconst CheckboxContext =\n createContext<TCheckboxProperty<any>[\"checkbox\"]>(undefined);\n\nexport function CheckboxProvider({\n children,\n checkbox,\n}: {\n children: React.ReactNode;\n checkbox: TCheckboxProperty<any>[\"checkbox\"];\n}) {\n return (\n <CheckboxContext.Provider value={checkbox}>\n {children}\n </CheckboxContext.Provider>\n );\n}\n\nexport function useCheckboxContext() {\n return useContext(CheckboxContext);\n}\n"],"names":["CheckboxStatusContext","createContext","checkboxStatusState","checkedRecords","dispatchCheckboxStatus","allUnchecked","existChecked","indeterminate","CheckboxStatusProvider","_a","children","checkboxCount","_jsx","Provider","value","useCheckboxStatusReducer","useCheckboxStatusContext","useContext","CheckboxContext","undefined","CheckboxProvider","checkbox","useCheckboxContext"],"mappings":"oJAIA,IAAMA,EAAwBC,EAE5B,CACAC,oBAAqB,CACnBC,eAAgB,IAElBC,uBAAwB,WAAQ,EAChCC,cAAc,EACdC,cAAc,EACdC,eAAe,IAGX,SAAUC,EAAuBC,OACrCC,EAAQD,EAAAC,SACRC,EAAaF,EAAAE,cAKb,OACEC,EAACZ,EAAsBa,UACrBC,MAAOC,EAAyBJ,GAAcD,SAE7CA,GAGP,UAEgBM,IACd,OAAOC,EAAWjB,EACpB,CAEA,IAAMkB,EACJjB,OAAkDkB,GAE9C,SAAUC,EAAiBX,OAC/BC,EAAQD,EAAAC,SACRW,EAAQZ,EAAAY,SAKR,OACET,EAACM,EAAgBL,SAAQ,CAACC,MAAOO,EAAQX,SACtCA,GAGP,UAEgBY,IACd,OAAOL,EAAWC,EACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useFocusStateContext } from \"../../focus/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { IdGenerator } from \"../../libs\";\nimport { DataObject, DataRecord } from \"../../type\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const focus = useFocusStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (focus.isFocus && !cols[focus.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, focus]);\n\n if (!edit.isEditing) return <></>;\n if (!focus.isFocus) return <></>;\n\n const col = cols[focus.colIndex];\n const row = props.rowMaps[props.pageRowIds[focus.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId(focus.rowIndex, focus.colIndex);\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(\"table-frame\");\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop - window.scrollY;\n size.left -= rectTable.left - tableElement.scrollLeft - window.scrollX;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["Editor","props","focus","useFocusStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isFocus","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","IdGenerator","getTableCellId","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","rectTable","scrollTop","window","scrollY","scrollLeft","scrollX","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"kgBAwBM,SAAUA,EAAOC,GACrB,IAAMC,EAAQC,IACRC,EAAOC,IACPC,EAAcC,IACdC,EAAOC,IAQb,GANAC,GAAU,WACJR,EAAMS,UAAYH,EAAKN,EAAMU,UAAUC,UACzCP,EAAYQ,YAEhB,GAAG,CAACV,EAAMF,KAELE,EAAKW,UAAW,OAAOC,QAC5B,IAAKd,EAAMS,QAAS,OAAOK,QAE3B,IAAMC,EAAMT,EAAKN,EAAMU,UACjBM,EAAMjB,EAAMkB,QAAQlB,EAAMmB,WAAWlB,EAAMmB,WAAWC,KAE5D,IAAKL,EAAIJ,SAAU,OAAOG,QAE1B,IAAMO,EAAKC,EAAYC,eAAevB,EAAMmB,SAAUnB,EAAMU,UACtDc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,QAElB,IAAMqB,EAAeV,SAASC,eAAe,eAC7C,IAAKS,EAAc,OAAOrB,QAC1B,IAAMsB,EAAYD,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOI,EAAUJ,IAAMG,EAAaE,UAAYC,OAAOC,QAC5DV,EAAKI,MAAQG,EAAUH,KAAOE,EAAaK,WAAaF,OAAOG,QAG7DC,SACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACH,EACDC,MAAO,CACLlB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MAGZgB,SAAA,CAAa,WAAblC,EAAImC,MAAqBpC,EAACqC,EAAgB,CAAApC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,EAACsC,EAAe,CAACrC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,EAACuC,EAAe,CAACtC,IAAKA,EAAKC,IAAKA,MAGhE"}
1
+ {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useFocusStateContext } from \"../../focus/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { IdGenerator } from \"../../libs\";\nimport { DataObject, DataRecord } from \"../../table/type\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const focus = useFocusStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (focus.isFocus && !cols[focus.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, focus]);\n\n if (!edit.isEditing) return <></>;\n if (!focus.isFocus) return <></>;\n\n const col = cols[focus.colIndex];\n const row = props.rowMaps[props.pageRowIds[focus.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId(focus.rowIndex, focus.colIndex);\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(\"table-frame\");\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop - window.scrollY;\n size.left -= rectTable.left - tableElement.scrollLeft - window.scrollX;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["Editor","props","focus","useFocusStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isFocus","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","IdGenerator","getTableCellId","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","rectTable","scrollTop","window","scrollY","scrollLeft","scrollX","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"kgBAwBM,SAAUA,EAAOC,GACrB,IAAMC,EAAQC,IACRC,EAAOC,IACPC,EAAcC,IACdC,EAAOC,IAQb,GANAC,GAAU,WACJR,EAAMS,UAAYH,EAAKN,EAAMU,UAAUC,UACzCP,EAAYQ,YAEhB,GAAG,CAACV,EAAMF,KAELE,EAAKW,UAAW,OAAOC,QAC5B,IAAKd,EAAMS,QAAS,OAAOK,QAE3B,IAAMC,EAAMT,EAAKN,EAAMU,UACjBM,EAAMjB,EAAMkB,QAAQlB,EAAMmB,WAAWlB,EAAMmB,WAAWC,KAE5D,IAAKL,EAAIJ,SAAU,OAAOG,QAE1B,IAAMO,EAAKC,EAAYC,eAAevB,EAAMmB,SAAUnB,EAAMU,UACtDc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,QAElB,IAAMqB,EAAeV,SAASC,eAAe,eAC7C,IAAKS,EAAc,OAAOrB,QAC1B,IAAMsB,EAAYD,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOI,EAAUJ,IAAMG,EAAaE,UAAYC,OAAOC,QAC5DV,EAAKI,MAAQG,EAAUH,KAAOE,EAAaK,WAAaF,OAAOG,QAG7DC,SACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACH,EACDC,MAAO,CACLlB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MAGZgB,SAAA,CAAa,WAAblC,EAAImC,MAAqBpC,EAACqC,EAAgB,CAAApC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,EAACsC,EAAe,CAACrC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAImC,MAAqBpC,EAACuC,EAAe,CAACtC,IAAKA,EAAKC,IAAKA,MAGhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../../../src/table/filter/hooks/selectedFilteringColumn/hooks.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilteringColumnReducer, TReturnFilteringColumnReducer } from \"./type\";\nimport { DataRecord, TTableColumn } from \"../../../type\";\n\nconst filteringColumnReducer: TFilteringColumnReducer = (state, action) => {\n switch (action.type) {\n case \"set\":\n if (!!state && state.key === action.payload.col.key) return state;\n\n if (\n action.payload.col.type === \"string\" ||\n action.payload.col.type === \"number\"\n ) {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n };\n } else {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n options: action.payload.col.options,\n };\n }\n case \"clear\":\n return null;\n }\n};\n\nexport function useFilteringColumnReducer(): TReturnFilteringColumnReducer {\n const [state, dispatch] = useReducer(filteringColumnReducer, null);\n\n const actions = useMemo(\n () => ({\n setFilteringColumn: (col: TTableColumn<DataRecord>) =>\n dispatch({ type: \"set\", payload: { col } }),\n clearFilteringColumn: () => dispatch({ type: \"clear\" }),\n }),\n []\n );\n\n return { state, actions };\n}\n"],"names":["filteringColumnReducer","state","action","type","key","payload","col","label","options","useFilteringColumnReducer","_a","useReducer","dispatch","actions","useMemo","setFilteringColumn","clearFilteringColumn"],"mappings":"gDAIA,IAAMA,EAAkD,SAACC,EAAOC,GAC9D,OAAQA,EAAOC,MACb,IAAK,MACH,OAAMF,GAASA,EAAMG,MAAQF,EAAOG,QAAQC,IAAIF,IAAYH,EAG9B,WAA5BC,EAAOG,QAAQC,IAAIH,MACS,WAA5BD,EAAOG,QAAQC,IAAIH,KAEZ,CACLC,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,OAGrB,CACLH,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,MAC1BC,QAASN,EAAOG,QAAQC,IAAIE,SAGlC,IAAK,QACH,OAAO,KAEb,WAEgBC,IACR,IAAAC,EAAoBC,EAAWX,EAAwB,MAAtDC,EAAKS,EAAA,GAAEE,OAWd,MAAO,CAAEX,MAAKA,EAAEY,QATAC,GACd,WAAM,MAAC,CACLC,mBAAoB,SAACT,GACnB,OAAAM,EAAS,CAAET,KAAM,MAAOE,QAAS,CAAEC,IAAGA,IAAK,EAC7CU,qBAAsB,WAAM,OAAAJ,EAAS,CAAET,KAAM,SAAU,EAHnD,GAKN,IAIJ"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../../../src/table/filter/hooks/selectedFilteringColumn/hooks.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilteringColumnReducer, TReturnFilteringColumnReducer } from \"./type\";\nimport { DataRecord, TTableColumn } from \"../../../table/type\";\n\nconst filteringColumnReducer: TFilteringColumnReducer = (state, action) => {\n switch (action.type) {\n case \"set\":\n if (!!state && state.key === action.payload.col.key) return state;\n\n if (\n action.payload.col.type === \"string\" ||\n action.payload.col.type === \"number\"\n ) {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n };\n } else {\n return {\n key: action.payload.col.key,\n type: action.payload.col.type,\n label: action.payload.col.label,\n options: action.payload.col.options,\n };\n }\n case \"clear\":\n return null;\n }\n};\n\nexport function useFilteringColumnReducer(): TReturnFilteringColumnReducer {\n const [state, dispatch] = useReducer(filteringColumnReducer, null);\n\n const actions = useMemo(\n () => ({\n setFilteringColumn: (col: TTableColumn<DataRecord>) =>\n dispatch({ type: \"set\", payload: { col } }),\n clearFilteringColumn: () => dispatch({ type: \"clear\" }),\n }),\n []\n );\n\n return { state, actions };\n}\n"],"names":["filteringColumnReducer","state","action","type","key","payload","col","label","options","useFilteringColumnReducer","_a","useReducer","dispatch","actions","useMemo","setFilteringColumn","clearFilteringColumn"],"mappings":"gDAIA,IAAMA,EAAkD,SAACC,EAAOC,GAC9D,OAAQA,EAAOC,MACb,IAAK,MACH,OAAMF,GAASA,EAAMG,MAAQF,EAAOG,QAAQC,IAAIF,IAAYH,EAG9B,WAA5BC,EAAOG,QAAQC,IAAIH,MACS,WAA5BD,EAAOG,QAAQC,IAAIH,KAEZ,CACLC,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,OAGrB,CACLH,IAAKF,EAAOG,QAAQC,IAAIF,IACxBD,KAAMD,EAAOG,QAAQC,IAAIH,KACzBI,MAAOL,EAAOG,QAAQC,IAAIC,MAC1BC,QAASN,EAAOG,QAAQC,IAAIE,SAGlC,IAAK,QACH,OAAO,KAEb,WAEgBC,IACR,IAAAC,EAAoBC,EAAWX,EAAwB,MAAtDC,EAAKS,EAAA,GAAEE,OAWd,MAAO,CAAEX,MAAKA,EAAEY,QATAC,GACd,WAAM,MAAC,CACLC,mBAAoB,SAACT,GACnB,OAAAM,EAAS,CAAET,KAAM,MAAOE,QAAS,CAAEC,IAAGA,IAAK,EAC7CU,qBAAsB,WAAM,OAAAJ,EAAS,CAAET,KAAM,SAAU,EAHnD,GAKN,IAIJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/filter/hooks.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport {\n TFilter,\n TFilterAction,\n TFilterState,\n TReturnUseFilterReducer,\n} from \"./types\";\nimport { DataObject, DataRecord } from \"../type\";\n\nfunction reducer<T extends DataRecord>(\n state: TFilterState<T>,\n action: TFilterAction<T>\n): TFilterState<T> {\n switch (action.type) {\n case \"add\":\n return {\n filters: [\n ...state.filters,\n { id: new Date().getTime(), ...action.payload.filter },\n ],\n };\n case \"remove\":\n return {\n filters: state.filters.filter((f) => f.id !== action.payload.id),\n };\n case \"clear\":\n return { filters: [] };\n }\n}\n\nexport function useFilterReducer<\n T extends DataRecord\n>(): TReturnUseFilterReducer<T> {\n const [state, dispatch] = useReducer(reducer, { filters: [] });\n\n const addFilter = useCallback(\n (filter: TFilter<T>) => dispatch({ type: \"add\", payload: { filter } }),\n [dispatch]\n );\n const removeFilter = useCallback(\n (id: number) => dispatch({ type: \"remove\", payload: { id } }),\n [dispatch]\n );\n const clearFilter = useCallback(\n () => dispatch({ type: \"clear\" }),\n [dispatch]\n );\n\n const filter = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]): DataObject<U>[] => {\n return state.filters.reduce((acc, filter) => {\n switch (filter.operator) {\n case \"includeText\":\n return acc.filter((row) => {\n const value = row[filter.key];\n if (typeof value === \"string\") {\n return filter.value.some((v) => value.includes(v));\n }\n return false;\n });\n case \"eq\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"ne\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n case \"gt\":\n return acc.filter(\n (row) => (row[filter.key] as number) > filter.value\n );\n case \"lt\":\n return acc.filter(\n (row) => (row[filter.key] as number) < filter.value\n );\n case \"gte\":\n return acc.filter(\n (row) => (row[filter.key] as number) >= filter.value\n );\n case \"lte\":\n return acc.filter(\n (row) => (row[filter.key] as number) <= filter.value\n );\n case \"selected\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"notSelected\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n }\n }, rows);\n },\n [state]\n );\n\n return {\n addFilter,\n removeFilter,\n clearFilter,\n filter,\n filterConditions: state.filters,\n };\n}\n"],"names":["reducer","state","action","type","filters","__spreadArray","__assign","id","Date","getTime","payload","filter","f","useFilterReducer","_a","useReducer","dispatch","addFilter","useCallback","removeFilter","clearFilter","rows","reduce","acc","operator","row","value","key","some","v","includes","filterConditions"],"mappings":"2IASA,SAASA,EACPC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,MACH,MAAO,CACLC,QAAOC,EAAAA,EAAA,GACFJ,EAAMG,SAAO,GAAA,CACdE,EAAA,CAAAC,IAAI,IAAIC,MAAOC,WAAcP,EAAOQ,QAAQC,UAC/C,IAEL,IAAK,SACH,MAAO,CACLP,QAASH,EAAMG,QAAQO,QAAO,SAACC,GAAM,OAAAA,EAAEL,KAAOL,EAAOQ,QAAQH,EAAxB,KAEzC,IAAK,QACH,MAAO,CAAEH,QAAS,IAExB,UAEgBS,IAGR,IAAAC,EAAoBC,EAAWf,EAAS,CAAEI,QAAS,KAAlDH,OAAOe,OAERC,EAAYC,GAChB,SAACP,GAAuB,OAAAK,EAAS,CAAEb,KAAM,MAAOO,QAAS,CAAEC,OAAMA,OACjE,CAACK,IAqDH,MAAO,CACLC,UAASA,EACTE,aArDmBD,GACnB,SAACX,GAAe,OAAAS,EAAS,CAAEb,KAAM,SAAUO,QAAS,CAAEH,GAAEA,OACxD,CAACS,IAoDDI,YAlDkBF,GAClB,WAAM,OAAAF,EAAS,CAAEb,KAAM,SAAjB,GACN,CAACa,IAiDDL,OA9CaO,GACb,SAAuBG,GACrB,OAAOpB,EAAMG,QAAQkB,QAAO,SAACC,EAAKZ,GAChC,OAAQA,EAAOa,UACb,IAAK,cACH,OAAOD,EAAIZ,QAAO,SAACc,GACjB,IAAMC,EAAQD,EAAId,EAAOgB,KACzB,MAAqB,iBAAVD,GACFf,EAAOe,MAAME,MAAK,SAACC,GAAM,OAAAH,EAAMI,SAASD,EAAE,GAGrD,IACF,IAAK,KAoBL,IAAK,WACH,OAAON,EAAIZ,QAAO,SAACc,GAAQ,OAAAA,EAAId,EAAOgB,OAAShB,EAAOe,KAAK,IAnB7D,IAAK,KAoBL,IAAK,cACH,OAAOH,EAAIZ,QAAO,SAACc,GAAQ,OAAAA,EAAId,EAAOgB,OAAShB,EAAOe,KAAK,IAnB7D,IAAK,KACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,KAAkBhB,EAAOe,KAAK,IAEvD,IAAK,KACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,KAAkBhB,EAAOe,KAAK,IAEvD,IAAK,MACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,MAAmBhB,EAAOe,KAAK,IAExD,IAAK,MACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,MAAmBhB,EAAOe,KAAK,IAO3D,GAAEL,EACL,GACA,CAACpB,IAQD8B,iBAAkB9B,EAAMG,QAE5B"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/filter/hooks.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport {\n TFilter,\n TFilterAction,\n TFilterState,\n TReturnUseFilterReducer,\n} from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction reducer<T extends DataRecord>(\n state: TFilterState<T>,\n action: TFilterAction<T>\n): TFilterState<T> {\n switch (action.type) {\n case \"add\":\n return {\n filters: [\n ...state.filters,\n { id: new Date().getTime(), ...action.payload.filter },\n ],\n };\n case \"remove\":\n return {\n filters: state.filters.filter((f) => f.id !== action.payload.id),\n };\n case \"clear\":\n return { filters: [] };\n }\n}\n\nexport function useFilterReducer<\n T extends DataRecord\n>(): TReturnUseFilterReducer<T> {\n const [state, dispatch] = useReducer(reducer, { filters: [] });\n\n const addFilter = useCallback(\n (filter: TFilter<T>) => dispatch({ type: \"add\", payload: { filter } }),\n [dispatch]\n );\n const removeFilter = useCallback(\n (id: number) => dispatch({ type: \"remove\", payload: { id } }),\n [dispatch]\n );\n const clearFilter = useCallback(\n () => dispatch({ type: \"clear\" }),\n [dispatch]\n );\n\n const filter = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]): DataObject<U>[] => {\n return state.filters.reduce((acc, filter) => {\n switch (filter.operator) {\n case \"includeText\":\n return acc.filter((row) => {\n const value = row[filter.key];\n if (typeof value === \"string\") {\n return filter.value.some((v) => value.includes(v));\n }\n return false;\n });\n case \"eq\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"ne\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n case \"gt\":\n return acc.filter(\n (row) => (row[filter.key] as number) > filter.value\n );\n case \"lt\":\n return acc.filter(\n (row) => (row[filter.key] as number) < filter.value\n );\n case \"gte\":\n return acc.filter(\n (row) => (row[filter.key] as number) >= filter.value\n );\n case \"lte\":\n return acc.filter(\n (row) => (row[filter.key] as number) <= filter.value\n );\n case \"selected\":\n return acc.filter((row) => row[filter.key] === filter.value);\n case \"notSelected\":\n return acc.filter((row) => row[filter.key] !== filter.value);\n }\n }, rows);\n },\n [state]\n );\n\n return {\n addFilter,\n removeFilter,\n clearFilter,\n filter,\n filterConditions: state.filters,\n };\n}\n"],"names":["reducer","state","action","type","filters","__spreadArray","__assign","id","Date","getTime","payload","filter","f","useFilterReducer","_a","useReducer","dispatch","addFilter","useCallback","removeFilter","clearFilter","rows","reduce","acc","operator","row","value","key","some","v","includes","filterConditions"],"mappings":"2IASA,SAASA,EACPC,EACAC,GAEA,OAAQA,EAAOC,MACb,IAAK,MACH,MAAO,CACLC,QAAOC,EAAAA,EAAA,GACFJ,EAAMG,SAAO,GAAA,CACdE,EAAA,CAAAC,IAAI,IAAIC,MAAOC,WAAcP,EAAOQ,QAAQC,UAC/C,IAEL,IAAK,SACH,MAAO,CACLP,QAASH,EAAMG,QAAQO,QAAO,SAACC,GAAM,OAAAA,EAAEL,KAAOL,EAAOQ,QAAQH,EAAxB,KAEzC,IAAK,QACH,MAAO,CAAEH,QAAS,IAExB,UAEgBS,IAGR,IAAAC,EAAoBC,EAAWf,EAAS,CAAEI,QAAS,KAAlDH,OAAOe,OAERC,EAAYC,GAChB,SAACP,GAAuB,OAAAK,EAAS,CAAEb,KAAM,MAAOO,QAAS,CAAEC,OAAMA,OACjE,CAACK,IAqDH,MAAO,CACLC,UAASA,EACTE,aArDmBD,GACnB,SAACX,GAAe,OAAAS,EAAS,CAAEb,KAAM,SAAUO,QAAS,CAAEH,GAAEA,OACxD,CAACS,IAoDDI,YAlDkBF,GAClB,WAAM,OAAAF,EAAS,CAAEb,KAAM,SAAjB,GACN,CAACa,IAiDDL,OA9CaO,GACb,SAAuBG,GACrB,OAAOpB,EAAMG,QAAQkB,QAAO,SAACC,EAAKZ,GAChC,OAAQA,EAAOa,UACb,IAAK,cACH,OAAOD,EAAIZ,QAAO,SAACc,GACjB,IAAMC,EAAQD,EAAId,EAAOgB,KACzB,MAAqB,iBAAVD,GACFf,EAAOe,MAAME,MAAK,SAACC,GAAM,OAAAH,EAAMI,SAASD,EAAE,GAGrD,IACF,IAAK,KAoBL,IAAK,WACH,OAAON,EAAIZ,QAAO,SAACc,GAAQ,OAAAA,EAAId,EAAOgB,OAAShB,EAAOe,KAAK,IAnB7D,IAAK,KAoBL,IAAK,cACH,OAAOH,EAAIZ,QAAO,SAACc,GAAQ,OAAAA,EAAId,EAAOgB,OAAShB,EAAOe,KAAK,IAnB7D,IAAK,KACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,KAAkBhB,EAAOe,KAAK,IAEvD,IAAK,KACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,KAAkBhB,EAAOe,KAAK,IAEvD,IAAK,MACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,MAAmBhB,EAAOe,KAAK,IAExD,IAAK,MACH,OAAOH,EAAIZ,QACT,SAACc,GAAQ,OAACA,EAAId,EAAOgB,MAAmBhB,EAAOe,KAAK,IAO3D,GAAEL,EACL,GACA,CAACpB,IAQD8B,iBAAkB9B,EAAMG,QAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-formatting.js","sources":["../../../../../src/table/libs/conditional-formatting.ts"],"sourcesContent":["import {\n DataObject,\n DataRecord,\n TConditionalFormatting,\n TTableColumn,\n} from \"../type\";\n\nexport function generateFormattingString(\n row: DataObject<DataRecord>,\n cols: TTableColumn<DataRecord>[],\n conditionalFormattings?: TConditionalFormatting<DataRecord>[]\n): string {\n if (!conditionalFormattings) {\n return Array(cols.length).fill(\"\").join(\",\");\n }\n\n const formats = conditionalFormattings.reduce((acc, formatting) => {\n const { condition, key, style } = formatting;\n const colIndex = cols.findIndex((col) => col.key === key);\n\n if (colIndex === -1 || acc[colIndex] !== \"\" || !condition(row)) {\n return acc;\n }\n\n acc[colIndex] = style;\n\n return acc;\n }, Array(cols.length).fill(\"\"));\n\n return formats.join(\",\");\n}\n"],"names":["generateFormattingString","row","cols","conditionalFormattings","reduce","acc","formatting","condition","key","style","colIndex","findIndex","col","Array","length","fill","join"],"mappings":"SAOgBA,EACdC,EACAC,EACAC,GAEA,OAAKA,EAIWA,EAAuBC,QAAO,SAACC,EAAKC,GAC1C,IAAAC,EAA0BD,EAAUC,UAAzBC,EAAeF,EAAUE,IAApBC,EAAUH,QAC5BI,EAAWR,EAAKS,WAAU,SAACC,GAAQ,OAAAA,EAAIJ,MAAQA,CAAZ,IAEzC,OAAkB,IAAdE,GAAqC,KAAlBL,EAAIK,IAAqBH,EAAUN,IAI1DI,EAAIK,GAAYD,EAETJ,GALEA,CAMX,GAAGQ,MAAMX,EAAKY,QAAQC,KAAK,KAEZC,KAAK,KAhBXH,MAAMX,EAAKY,QAAQC,KAAK,IAAIC,KAAK,IAiB5C"}
1
+ {"version":3,"file":"conditional-formatting.js","sources":["../../../../../src/table/libs/conditional-formatting.ts"],"sourcesContent":["import {\n DataObject,\n DataRecord,\n TConditionalFormatting,\n TTableColumn,\n} from \"../table/type\";\n\nexport function generateFormattingString(\n row: DataObject<DataRecord>,\n cols: TTableColumn<DataRecord>[],\n conditionalFormattings?: TConditionalFormatting<DataRecord>[]\n): string {\n if (!conditionalFormattings) {\n return Array(cols.length).fill(\"\").join(\",\");\n }\n\n const formats = conditionalFormattings.reduce((acc, formatting) => {\n const { condition, key, style } = formatting;\n const colIndex = cols.findIndex((col) => col.key === key);\n\n if (colIndex === -1 || acc[colIndex] !== \"\" || !condition(row)) {\n return acc;\n }\n\n acc[colIndex] = style;\n\n return acc;\n }, Array(cols.length).fill(\"\"));\n\n return formats.join(\",\");\n}\n"],"names":["generateFormattingString","row","cols","conditionalFormattings","reduce","acc","formatting","condition","key","style","colIndex","findIndex","col","Array","length","fill","join"],"mappings":"SAOgBA,EACdC,EACAC,EACAC,GAEA,OAAKA,EAIWA,EAAuBC,QAAO,SAACC,EAAKC,GAC1C,IAAAC,EAA0BD,EAAUC,UAAzBC,EAAeF,EAAUE,IAApBC,EAAUH,QAC5BI,EAAWR,EAAKS,WAAU,SAACC,GAAQ,OAAAA,EAAIJ,MAAQA,CAAZ,IAEzC,OAAkB,IAAdE,GAAqC,KAAlBL,EAAIK,IAAqBH,EAAUN,IAI1DI,EAAIK,GAAYD,EAETJ,GALEA,CAMX,GAAGQ,MAAMX,EAAKY,QAAQC,KAAK,KAEZC,KAAK,KAhBXH,MAAMX,EAAKY,QAAQC,KAAK,IAAIC,KAAK,IAiB5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","usePageReducer","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"yLAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,EAAAA,EAAA,GACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WAPpBF,EAAAA,EAAA,CAAA,EAAAJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,EAAAA,EAAA,GACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,cAAgBI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAClDR,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,CAEM,SAAUY,EAAeC,GACvB,IAAAC,EAAoBC,EACxBhB,EACAc,QAAAA,EAAgBG,GAFXhB,OAAOiB,OAKRC,EAAOC,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDG,EAAOD,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDI,EAAOF,GACX,SAACR,GAAuB,OAAAM,EAAS,CAAEf,KAAM,OAAQK,QAAS,CAAEI,WAAUA,OACtE,CAACM,IAGGK,EAAcH,GAClB,SAACb,GACC,OAAAW,EAAS,CAAEf,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACW,IAGGM,EAAOC,GAAQ,WACnB,OAAKxB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEyB,EAAKD,GAAQ,WACjB,OAAKxB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEE0B,EAAaP,GACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLtB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CuB,QAAS7B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBwB,UAAW9B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEe,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","usePageReducer","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"yLAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,EAAAA,EAAA,GACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WAPpBF,EAAAA,EAAA,CAAA,EAAAJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,EAAAA,EAAA,GACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,cAAgBI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAClDR,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAIJI,EAAAA,EAAA,CAAA,EAAAJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,CAEM,SAAUY,EAAeC,GACvB,IAAAC,EAAoBC,EACxBhB,EACAc,QAAAA,EAAgBG,GAFXhB,OAAOiB,OAKRC,EAAOC,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDG,EAAOD,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDI,EAAOF,GACX,SAACR,GAAuB,OAAAM,EAAS,CAAEf,KAAM,OAAQK,QAAS,CAAEI,WAAUA,OACtE,CAACM,IAGGK,EAAcH,GAClB,SAACb,GACC,OAAAW,EAAS,CAAEf,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACW,IAGGM,EAAOC,GAAQ,WACnB,OAAKxB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEyB,EAAKD,GAAQ,WACjB,OAAKxB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEE0B,EAAaP,GACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLtB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CuB,QAAS7B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBwB,UAAW9B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEe,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataRecord, TTableColumn } from \"../type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\n\ninterface TPropsRow<T extends DataRecord> {\n dataString: string;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n onUpdateRow?: (newRow: any, oldRow: any) => void;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const { unfocus } = useFocusActionContext();\n const row = JSON.parse(props.dataString);\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n unfocus();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td>\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n rowIndex={props.rowIndex}\n colIndex={j}\n row={row}\n columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n isExistOnUpdateRow={!!props.onUpdateRow}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","Checkbox","cols","map","col","j","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","cellFormatClassName","isExistOnUpdateRow","onUpdateRow","editable","_a"],"mappings":"oPAiBaA,EAAMC,GAAK,SAAiCC,GAC/C,IAAAC,EAAYC,YACdC,EAAMC,KAAKC,MAAML,EAAMM,YACvBC,EAAwBP,EAAMQ,4BAA4BC,MAAM,KAEtE,OACEC,EACE,KAAA,CAAAC,UAAW,0JACTC,OAAEZ,EAAMa,WAAa,uBAAyB,GAC5C,KAAAD,OAAAZ,EAAMc,mBAAqBd,EAAMc,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEIjB,EAAMa,aACVb,EAAMa,WAAWV,GACjBF,IAEH,EACY,cAAAE,EAAIe,GAEhBC,SAAA,CAAAnB,EAAMoB,eACLC,EACE,KAAA,CAAAF,SAAAE,EAACC,EAAS,CAAAnB,IAAKA,MAGlBH,EAAMuB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEL,EAACM,EAAS,CAERC,SAAU5B,EAAM4B,SAChBC,SAAUH,EACVvB,IAAKA,EACL2B,UAAWL,EAAIM,IACfC,oBAAqBhC,EAAMa,WAC3BoB,oBAAqB1B,EAAsBmB,GAC3CQ,qBAAsBlC,EAAMmC,YAC5BC,SAAsB,QAAZC,EAAAZ,EAAIW,gBAAQ,IAAAC,GAAAA,GARjBZ,EAAIM,UAcrB"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\n\ninterface TPropsRow<T extends DataRecord> {\n dataString: string;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n onUpdateRow?: (newRow: any, oldRow: any) => void;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const { unfocus } = useFocusActionContext();\n const row = JSON.parse(props.dataString);\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n unfocus();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td>\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n rowIndex={props.rowIndex}\n colIndex={j}\n row={row}\n columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n isExistOnUpdateRow={!!props.onUpdateRow}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","Checkbox","cols","map","col","j","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","cellFormatClassName","isExistOnUpdateRow","onUpdateRow","editable","_a"],"mappings":"oPAiBaA,EAAMC,GAAK,SAAiCC,GAC/C,IAAAC,EAAYC,YACdC,EAAMC,KAAKC,MAAML,EAAMM,YACvBC,EAAwBP,EAAMQ,4BAA4BC,MAAM,KAEtE,OACEC,EACE,KAAA,CAAAC,UAAW,0JACTC,OAAEZ,EAAMa,WAAa,uBAAyB,GAC5C,KAAAD,OAAAZ,EAAMc,mBAAqBd,EAAMc,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEIjB,EAAMa,aACVb,EAAMa,WAAWV,GACjBF,IAEH,EACY,cAAAE,EAAIe,GAEhBC,SAAA,CAAAnB,EAAMoB,eACLC,EACE,KAAA,CAAAF,SAAAE,EAACC,EAAS,CAAAnB,IAAKA,MAGlBH,EAAMuB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEL,EAACM,EAAS,CAERC,SAAU5B,EAAM4B,SAChBC,SAAUH,EACVvB,IAAKA,EACL2B,UAAWL,EAAIM,IACfC,oBAAqBhC,EAAMa,WAC3BoB,oBAAqB1B,EAAsBmB,GAC3CQ,qBAAsBlC,EAAMmC,YAC5BC,SAAsB,QAAZC,EAAAZ,EAAIW,gBAAQ,IAAAC,GAAAA,GARjBZ,EAAIM,UAcrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","useSortReducer","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"wJAIA,IAAMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,EAAA,GACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,EAAA,CAAA,EAAYR,GAAO,CAAAK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,EAAA,GAAYR,GAAK,CAAEM,eAAe,IAExC,EAEM,SAAUG,EAAqCC,WAI7CC,EAAoBC,EAAWb,EAAS,CAC5CI,IAAiB,QAAZU,EAAAH,eAAAA,EAASP,WAAG,IAAAU,EAAAA,EAAI,KACrBR,IAAiB,QAAZS,EAAAJ,eAAAA,EAASL,WAAG,IAAAS,GAAAA,EACjBR,eAAe,EACfC,WAAY,IAJPP,EAAKW,EAAA,GAAEI,OAORC,EAAY,SAACb,GACjBY,EAAS,CAAEb,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMc,EAAc,WAClBF,EAAS,CAAEb,KAAM,eACnB,EAEMgB,EAAc,WAClBH,EAAS,CAAEb,KAAM,cACnB,EAEMiB,EAAOC,GACX,SAAuBC,GACrB,OAAAC,EAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBkB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GAAE,GACJ,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6ByB,GAC7B,WAAM,MAAC,CACLtB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cACrB,GACF,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BoB,QAPcD,GACd,WAAM,MAAC,CAAET,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAAG,GACrD,CAACA,IAMDZ,WAAYP,EAAMO,WAEtB"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","useSortReducer","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"wJAIA,IAAMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,EAAA,GACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,EAAA,CAAA,EAAYR,GAAO,CAAAK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,EAAA,GAAYR,GAAK,CAAEM,eAAe,IAExC,EAEM,SAAUG,EAAqCC,WAI7CC,EAAoBC,EAAWb,EAAS,CAC5CI,IAAiB,QAAZU,EAAAH,eAAAA,EAASP,WAAG,IAAAU,EAAAA,EAAI,KACrBR,IAAiB,QAAZS,EAAAJ,eAAAA,EAASL,WAAG,IAAAS,GAAAA,EACjBR,eAAe,EACfC,WAAY,IAJPP,EAAKW,EAAA,GAAEI,OAORC,EAAY,SAACb,GACjBY,EAAS,CAAEb,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMc,EAAc,WAClBF,EAAS,CAAEb,KAAM,eACnB,EAEMgB,EAAc,WAClBH,EAAS,CAAEb,KAAM,cACnB,EAEMiB,EAAOC,GACX,SAAuBC,GACrB,OAAAC,EAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBkB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GAAE,GACJ,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6ByB,GAC7B,WAAM,MAAC,CACLtB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cACrB,GACF,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BoB,QAPcD,GACd,WAAM,MAAC,CAAET,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAAG,GACrD,CAACA,IAMDZ,WAAYP,EAAMO,WAEtB"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{__assign as o}from"../../../node_modules/tslib/tslib.es6.js";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useTable as t}from"./hook.js";import{TableHeaderElement as i}from"../header/header.js";import{PagenationProvider as n}from"../pagenation/providers.js";import{DisplayRange as l,Pagenation as a}from"../pagenation/components.js";import{FilterProvider as d}from"../filter/provider.js";import{TableFilterRemoveButton as s,TableFilterForm as c}from"../filter/components.js";import"../sort/icon.js";import{SortProvider as m}from"../sort/provider.js";import{ColumnsProvider as p}from"../sheet/providers.js";import{FocusProvider as h}from"../focus/provider.js";import{CheckboxProvider as f,CheckboxStatusProvider as g}from"../checkbox/provider.js";import{AllCheckbox as u}from"../checkbox/components.js";import{IdGenerator as v}from"../libs/id-generator.js";import{EditProvider as b}from"../edit/provider.js";import{TablePropertyProvider as w}from"../table-property/provider.js";import{KeyboardSetting as x}from"../operation/components/keyboard-setting.js";import{Row as j}from"../sheet/components.js";import{PasteProvider as y,usePasteActionContext as k}from"../paste/provider.js";import{generateFormattingString as N}from"../libs/conditional-formatting.js";import{Editor as C}from"../edit/ui/editor.js";import{useFilteringColumnStateContext as R}from"../filter/hooks/selectedFilteringColumn/provider.js";function F(t){var i,l,a;return r(d,{children:r(m,{initialCondition:null===(i=t.initialCondition)||void 0===i?void 0:i.sort,children:r(n,{rowCount:t.rows.length,perPage:null===(a=null===(l=t.initialCondition)||void 0===l?void 0:l.pagenation)||void 0===a?void 0:a.rowCountPerPage,children:r(f,{checkbox:t.checkbox,children:r(g,{checkboxCount:t.rows.length,children:r(p,{cols:t.cols,errorHandler:t.errorHandler,children:r(h,{children:r(b,{children:r(w,{children:e(y,{rows:t.rows,cols:t.cols,onUpdateRowFunction:t.onUpdateRow,children:[r(x,{}),r(P,o({},t))]})})})})})})})})})})}function P(o){var n=t(o),d=n.cols,m=n.rowMaps,p=n.pageRowIds,h=R(),f=k().onPaste;return e("div",{className:"w-full",children:[r("div",{className:"flex justify-end mb-1 mr-3",children:r(s,{children:r("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),e("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:[r(C,{rowMaps:m,pageRowIds:p}),e("table",{className:"table",onPaste:function(o){o.preventDefault();var r=o.clipboardData.getData("Text");f(r.replace(/\t/g,",").trim().replace(/\r\n/g,"\n").split("\n").map((function(o){return o.split(",")})))},children:[r("thead",{children:e("tr",{className:"sticky top-0 border-gray-200 z-20 bg-gray-200 text-gray-600 h-[32px]",children:[o.checkbox&&r("th",{children:r(u,{rows:o.rows})}),d.map((function(o,e){return r(i,{id:v.getTableColId(e),col:o},o.key.toString())}))]})}),e("tbody",{children:[!!h&&r("tr",{children:r("td",{colSpan:d.length,className:"sticky top-8 left-0 bg-gray-300 w-full shadow-lg rounded-b-2xl z-20 p-0 overflow-hidden",children:r(c,{})})}),0===p.length&&r("tr",{children:r("td",{colSpan:d.length,className:"py-5",children:r("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),p.map((function(e,t){return r(j,{existCheckbox:!!o.checkbox,rowIndex:t,dataString:m[e].stringValue,cols:o.cols,onClickRow:o.onClickRow,applyRowFormatting:o.applyRowFormatting,conditionalFormattingString:N(m[e].data,d,o.conditionalFormattings),onUpdateRow:o.onUpdateRow},e)}))]})]})]}),e("div",{className:"mt-1",children:[r(l,{}),r("div",{className:"mt-2",children:r(a,{})})]})]})}export{F as default};
3
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1,2 @@
1
+ import{useMemo as r,useEffect as t}from"react";import{usePageContext as o}from"../pagenation/providers.js";import"react/jsx-runtime";import{useFilterContext as e}from"../filter/provider.js";import"../filter/constants.js";import"../sheet/providers.js";import"../filter/hooks/selectedFilteringColumn/provider.js";import{useCheckboxStatusContext as n}from"../checkbox/provider.js";import{useSortActionContext as i,useSortTimingContext as s}from"../sort/provider.js";import{useTablePropertyActionContext as c}from"../table-property/provider.js";import{usePasteActionContext as u}from"../paste/provider.js";function a(a){var p=e().filter,f=i(),l=f.sort,d=f.updatedData,m=s(),h=o(),v=h.setRowCount,g=h.pageFilter,w=n().dispatchCheckboxStatus,j=u().setRows,k=c(),x=k.setMaxDisplayColCount,b=k.setMaxDisplayRowCount,y=r((function(){return p(a.rows)}),[p,m,a.rows.length]);t((function(){v(y.length)}),[y.length]);var C=r((function(){return a.checkbox?a.rows.filter((function(r){var t;return null===(t=a.checkbox)||void 0===t?void 0:t.checked(r)})):[]}),[a.checkbox,a.rows]);t((function(){w({type:"SET",payload:{checkedRecords:C}})}),[C]);var R=r((function(){return l(y)}),[y,m]);t((function(){d()}),[a.rows]);var S=r((function(){return g(R)}),[g,R]),D=r((function(){return S.map((function(r){return r.id}))}),[S]),M=r((function(){return new Set(D)}),[D]),F=r((function(){return a.rows.filter((function(r){return M.has(r.id)})).reduce((function(r,t){var o=Object.keys(t).sort().reduce((function(r,o){return r[o]=t[o],r}),{});return r[t.id]={data:o,stringValue:JSON.stringify(o)},r}),{})}),[a.rows,M]);return t((function(){x(a.cols.length)}),[a.cols.length]),t((function(){b(D.length)}),[D.length]),t((function(){j(D.map((function(r){return F[r].data})))}),[F]),{cols:a.cols,rowMaps:F,pageRowIds:D}}export{a as useTable};
2
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useFilterContext } from \"../filter\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows } = usePasteActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, props.rows.length]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n const rowSortedByKey = Object.keys(row)\n .sort()\n .reduce((acc, key) => {\n acc[key] = row[key];\n return acc;\n }, {} as { [key: string]: string | number });\n\n acc[row.id] = {\n data: rowSortedByKey,\n stringValue: JSON.stringify(rowSortedByKey),\n };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any>; stringValue: string } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n setRows(pageRowIds.map((id) => rowMaps[id].data));\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n"],"names":["useTable","props","filter","useFilterContext","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRows","usePasteActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","useMemo","rows","length","useEffect","checkBoxes","checkbox","row","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","map","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","key","data","stringValue","JSON","stringify","cols"],"mappings":"0lBASM,SAAUA,EAA+BC,GACrC,IAAAC,EAAWC,WACbC,EAAwBC,IAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,IACbC,EAA8BC,IAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,2BAC3BC,EAAYC,YACdC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,GACnB,WAAM,OAAArB,EAAOD,EAAMuB,KAAK,GACxB,CAACtB,EAAQM,EAAYP,EAAMuB,KAAKC,SAGlCC,GAAU,WACRd,EAAYU,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,GAAQ,WACzB,OAAKtB,EAAM2B,SAIJ3B,EAAMuB,KAAKtB,QAAO,SAAC2B,GAAG,IAAAzB,EAAK,eAAAA,EAAAH,EAAM2B,+BAAUE,QAAQD,EAAI,IAHrD,EAIV,GAAE,CAAC5B,EAAM2B,SAAU3B,EAAMuB,OAE1BE,GAAU,WACRZ,EAAuB,CACrBiB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,GACjB,WAAM,OAAAjB,EAAKgB,KACX,CAACA,EAAcd,IAGjBkB,GAAU,WACRnB,GACF,GAAG,CAACN,EAAMuB,OAEV,IAAMW,EAAWZ,GACf,WAAM,OAAAV,EAAWqB,KACjB,CAACrB,EAAYqB,IAGTE,EAAab,GAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAE,GAAC,GAAE,CAACH,IAC3DI,EAAgBhB,GAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAW,GAAE,CAACA,IAEpDK,EAAUlB,GACd,WACE,OAAAtB,EAAMuB,KACHtB,QAAO,SAAC2B,GAAQ,OAAAU,EAAcG,IAAIb,EAAIS,OACtCK,QAAO,SAACC,EAAKf,GACZ,IAAMgB,EAAiBC,OAAOC,KAAKlB,GAChCvB,OACAqC,QAAO,SAACC,EAAKI,GAEZ,OADAJ,EAAII,GAAOnB,EAAImB,GACRJ,CACR,GAAE,CAAwC,GAM7C,OAJAA,EAAIf,EAAIS,IAAM,CACZW,KAAMJ,EACNK,YAAaC,KAAKC,UAAUP,IAEvBD,CACR,GAAE,CAA+E,EAAC,GACvF,CAAC3C,EAAMuB,KAAMe,IAef,OAZAb,GAAU,WACRN,EAAsBnB,EAAMoD,KAAK5B,OAClC,GAAE,CAACxB,EAAMoD,KAAK5B,SAEfC,GAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,GAAU,WACRV,EAAQoB,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIW,QAC7C,GAAG,CAACR,IAEG,CACLY,KAAMpD,EAAMoD,KACZZ,QAAOA,EACPL,WAAUA,EAEd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teppen/react-ui",
3
- "version": "1.5.7",
3
+ "version": "1.5.8",
4
4
  "description": "React UI Component",
5
5
  "main": "dist/cjs/src/index.js",
6
6
  "module": "dist/esm/src/index.js",
@@ -1,3 +0,0 @@
1
- "use client";
2
- "use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),i=require("./header/header.js"),t=require("./pagenation/providers.js"),s=require("./pagenation/components.js"),n=require("./filter/provider.js"),l=require("./filter/components.js");require("./sort/icon.js");var a=require("./sort/provider.js"),d=require("./sheet/providers.js"),c=require("./focus/provider.js"),u=require("./checkbox/provider.js"),x=require("./checkbox/components.js"),j=require("./libs/id-generator.js"),h=require("./edit/provider.js"),p=require("./table-property/provider.js"),g=require("./operation/components/keyboard-setting.js"),m=require("./sheet/components.js"),v=require("./paste/provider.js"),b=require("./libs/conditional-formatting.js"),w=require("./edit/ui/editor.js"),f=require("./filter/hooks/selectedFilteringColumn/provider.js");function q(e){var t=o.useTable(e),n=t.cols,a=t.rowMaps,d=t.pageRowIds,c=f.useFilteringColumnStateContext(),u=v.usePasteActionContext().onPaste;return r.jsxs("div",{className:"w-full",children:[r.jsx("div",{className:"flex justify-end mb-1 mr-3",children:r.jsx(l.TableFilterRemoveButton,{children:r.jsx("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),r.jsxs("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:[r.jsx(w.Editor,{rowMaps:a,pageRowIds:d}),r.jsxs("table",{className:"table",onPaste:function(e){e.preventDefault();var r=e.clipboardData.getData("Text");u(r.replace(/\t/g,",").trim().replace(/\r\n/g,"\n").split("\n").map((function(e){return e.split(",")})))},children:[r.jsx("thead",{children:r.jsxs("tr",{className:"sticky top-0 border-gray-200 z-20 bg-gray-200 text-gray-600 h-[32px]",children:[e.checkbox&&r.jsx("th",{children:r.jsx(x.AllCheckbox,{rows:e.rows})}),n.map((function(e,o){return r.jsx(i.TableHeaderElement,{id:j.IdGenerator.getTableColId(o),col:e},e.key.toString())}))]})}),r.jsxs("tbody",{children:[!!c&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length,className:"sticky top-8 left-0 bg-gray-300 w-full shadow-lg rounded-b-2xl z-20 p-0 overflow-hidden",children:r.jsx(l.TableFilterForm,{})})}),0===d.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length,className:"py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),d.map((function(o,i){return r.jsx(m.Row,{existCheckbox:!!e.checkbox,rowIndex:i,dataString:a[o].stringValue,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:b.generateFormattingString(a[o].data,n,e.conditionalFormattings),onUpdateRow:e.onUpdateRow},o)}))]})]})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(s.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(s.Pagenation,{})})]})]})}module.exports=function(o){var i,s,l;return r.jsx(n.FilterProvider,{children:r.jsx(a.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(t.PagenationProvider,{rowCount:o.rows.length,perPage:null===(l=null===(s=o.initialCondition)||void 0===s?void 0:s.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r.jsx(u.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(u.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(d.ColumnsProvider,{cols:o.cols,errorHandler:o.errorHandler,children:r.jsx(c.FocusProvider,{children:r.jsx(h.EditProvider,{children:r.jsx(p.TablePropertyProvider,{children:r.jsxs(v.PasteProvider,{rows:o.rows,cols:o.cols,onUpdateRowFunction:o.onUpdateRow,children:[r.jsx(g.KeyboardSetting,{}),r.jsx(q,e.__assign({},o))]})})})})})})})})})})};
3
- //# sourceMappingURL=base.js.map
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("react"),t=require("./pagenation/providers.js");require("react/jsx-runtime");var r=require("./filter/provider.js");require("./filter/constants.js");var o=require("./sheet/providers.js");require("./filter/hooks/selectedFilteringColumn/provider.js");var n=require("./focus/provider.js"),u=require("./checkbox/provider.js"),i=require("./edit/provider.js"),s=require("./sort/provider.js"),c=require("./table-property/provider.js"),l=require("./paste/provider.js");exports.useCell=function(t,r,u){var s,c,l=n.useFocusActionContext(),a=i.useEditActionContext(),f=o.useColumnsContext()[r],d=u[f.key],p="select"===f.type?null===(c=null===(s=f.options)||void 0===s?void 0:s.find((function(e){return e.value===d})))||void 0===c?void 0:c.label:d,v=e.useMemo((function(){return f.editable?p:f.render?f.render(d,u):p}),[f.editable,p,d,u]);return{type:!f.editable&&f.render?"component":f.type,component:v,focusAtCell:e.useCallback((function(){l.move(t,r),l.focus(t,r)}),[l,t,r]),onDoubleClickCellToEdit:e.useCallback((function(e){e.preventDefault(),l.move(t,r),l.focus(t,r),a.startEditing()}),[l,a,t,r])}},exports.useTable=function(o){var n=r.useFilterContext().filter,i=s.useSortActionContext(),a=i.sort,f=i.updatedData,d=s.useSortTimingContext(),p=t.usePageContext(),v=p.setRowCount,C=p.pageFilter,x=u.useCheckboxStatusContext().dispatchCheckboxStatus,h=l.usePasteActionContext().setRows,m=c.useTablePropertyActionContext(),b=m.setMaxDisplayColCount,g=m.setMaxDisplayRowCount,k=e.useMemo((function(){return n(o.rows)}),[n,d,o.rows.length]);e.useEffect((function(){v(k.length)}),[k.length]);var j=e.useMemo((function(){return o.checkbox?o.rows.filter((function(e){var t;return null===(t=o.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[o.checkbox,o.rows]);e.useEffect((function(){x({type:"SET",payload:{checkedRecords:j}})}),[j]);var q=e.useMemo((function(){return a(k)}),[k,d]);e.useEffect((function(){f()}),[o.rows]);var w=e.useMemo((function(){return C(q)}),[C,q]),y=e.useMemo((function(){return w.map((function(e){return e.id}))}),[w]),M=e.useMemo((function(){return new Set(y)}),[y]),E=e.useMemo((function(){return o.rows.filter((function(e){return M.has(e.id)})).reduce((function(e,t){var r=Object.keys(t).sort().reduce((function(e,r){return e[r]=t[r],e}),{});return e[t.id]={data:r,stringValue:JSON.stringify(r)},e}),{})}),[o.rows,M]);return e.useEffect((function(){b(o.cols.length)}),[o.cols.length]),e.useEffect((function(){g(y.length)}),[y.length]),e.useEffect((function(){h(y.map((function(e){return E[e].data})))}),[E]),{cols:o.cols,rowMaps:E,pageRowIds:y}};
2
- //# sourceMappingURL=hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TColumnType, TPropsTable } from \"./type\";\nimport { usePageContext } from \"./pagenation/providers\";\nimport { useFilterContext } from \"./filter\";\nimport { useFocusActionContext } from \"./focus/provider\";\nimport { useCheckboxStatusContext } from \"./checkbox/provider\";\nimport { useEditActionContext } from \"./edit/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"./sort/provider\";\nimport { useTablePropertyActionContext } from \"./table-property/provider\";\nimport { usePasteActionContext } from \"./paste/provider\";\nimport { useColumnsContext } from \"./sheet/providers\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows } = usePasteActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, props.rows.length]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n const rowSortedByKey = Object.keys(row)\n .sort()\n .reduce((acc, key) => {\n acc[key] = row[key];\n return acc;\n }, {} as { [key: string]: string | number });\n\n acc[row.id] = {\n data: rowSortedByKey,\n stringValue: JSON.stringify(rowSortedByKey),\n };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any>; stringValue: string } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n setRows(pageRowIds.map((id) => rowMaps[id].data));\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n\nexport function useCell(\n rowIndex: number,\n colIndex: number,\n row: DataObject<DataRecord>\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label\n : value;\n\n const component = useMemo(() => {\n if (col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const onDoubleClickCellToEdit: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n e.preventDefault();\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n editAction.startEditing();\n },\n [focus, editAction, rowIndex, colIndex]\n );\n\n return {\n type,\n component,\n focusAtCell,\n onDoubleClickCellToEdit,\n };\n}\n"],"names":["rowIndex","colIndex","row","focus","useFocusActionContext","editAction","useEditActionContext","col","useColumnsContext","value","key","label","type","_a","options","find","op","_b","component","useMemo","editable","render","focusAtCell","useCallback","move","onDoubleClickCellToEdit","e","preventDefault","startEditing","props","filter","useFilterContext","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRows","usePasteActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","rows","length","useEffect","checkBoxes","checkbox","checked","payload","checkedRecords","sortedRows","pageRows","pageRowIds","map","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","data","stringValue","JSON","stringify","cols"],"mappings":"ggBAwGEA,EACAC,EACAC,WAEMC,EAAQC,EAAAA,wBACRC,EAAaC,EAAAA,uBACbC,EAAMC,EAAAA,oBAAoBP,GAC1BQ,EAAQP,EAAIK,EAAIG,KAEhBC,EACS,WAAbJ,EAAIK,KAC6C,UAAlC,QAAXC,EAAAN,EAAIO,eAAO,IAAAD,OAAA,EAAAA,EAAEE,MAAK,SAACC,GAAO,OAAAA,EAAGP,QAAUA,CAAb,WAAmB,IAAAQ,OAAA,EAAAA,EAAEN,MAC/CF,EAEAS,EAAYC,EAAAA,SAAQ,WACxB,OAAIZ,EAAIa,SACCT,EAEAJ,EAAIc,OAASd,EAAIc,OAAOZ,EAAgBP,GAAOS,CAE1D,GAAG,CAACJ,EAAIa,SAAUT,EAAOF,EAAOP,IAqBhC,MAAO,CACLU,MAnBCL,EAAIa,UAAYb,EAAIc,OAAS,YAAcd,EAAIK,KAoBhDM,UAASA,EACTI,YAnBkBC,EAAAA,aAAY,WAC9BpB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,EACvB,GAAE,CAACE,EAAOH,EAAUC,IAiBnBwB,wBAdAF,eACE,SAACG,GACCA,EAAEC,iBACFxB,EAAMqB,KAAKxB,EAAUC,GACrBE,EAAMA,MAAMH,EAAUC,GACtBI,EAAWuB,cACZ,GACD,CAACzB,EAAOE,EAAYL,EAAUC,IASpC,mBA3IM,SAAyC4B,GACrC,IAAAC,EAAWC,4BACblB,EAAwBmB,EAAoBA,uBAA1CC,EAAIpB,EAAAoB,KAAEC,EAAWrB,EAAAqB,YACnBC,EAAaC,EAAAA,uBACbnB,EAA8BoB,EAAcA,iBAA1CC,EAAWrB,EAAAqB,YAAEC,EAAUtB,EAAAsB,WACvBC,EAA2BC,oDAC3BC,EAAYC,kCACdC,EACJC,EAA6BA,gCADvBC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAe7B,EAAAA,SACnB,WAAM,OAAAW,EAAOD,EAAMoB,KAAK,GACxB,CAACnB,EAAQK,EAAYN,EAAMoB,KAAKC,SAGlCC,EAAAA,WAAU,WACRb,EAAYU,EAAaE,OAC3B,GAAG,CAACF,EAAaE,SAEjB,IAAME,EAAajC,EAAAA,SAAQ,WACzB,OAAKU,EAAMwB,SAIJxB,EAAMoB,KAAKnB,QAAO,SAAC5B,GAAG,IAAAW,EAAK,eAAAA,EAAAgB,EAAMwB,+BAAUC,QAAQpD,EAAI,IAHrD,EAIV,GAAE,CAAC2B,EAAMwB,SAAUxB,EAAMoB,OAE1BE,EAAAA,WAAU,WACRX,EAAuB,CACrB5B,KAAM,MACN2C,QAAS,CAAEC,eAAgBJ,IAE/B,GAAG,CAACA,IAEJ,IAAMK,EAAatC,EAAAA,SACjB,WAAM,OAAAc,EAAKe,KACX,CAACA,EAAcb,IAGjBgB,EAAAA,WAAU,WACRjB,GACF,GAAG,CAACL,EAAMoB,OAEV,IAAMS,EAAWvC,EAAAA,SACf,WAAM,OAAAoB,EAAWkB,KACjB,CAAClB,EAAYkB,IAGTE,EAAaxC,EAAAA,SAAQ,WAAM,OAAAuC,EAASE,KAAI,SAAC1D,GAAQ,OAAAA,EAAI2D,EAAE,GAAC,GAAE,CAACH,IAC3DI,EAAgB3C,EAAAA,SAAQ,WAAM,OAAA,IAAI4C,IAAIJ,EAAW,GAAE,CAACA,IAEpDK,EAAU7C,EAAAA,SACd,WACE,OAAAU,EAAMoB,KACHnB,QAAO,SAAC5B,GAAQ,OAAA4D,EAAcG,IAAI/D,EAAI2D,OACtCK,QAAO,SAACC,EAAKjE,GACZ,IAAMkE,EAAiBC,OAAOC,KAAKpE,GAChC+B,OACAiC,QAAO,SAACC,EAAKzD,GAEZ,OADAyD,EAAIzD,GAAOR,EAAIQ,GACRyD,CACR,GAAE,CAAwC,GAM7C,OAJAA,EAAIjE,EAAI2D,IAAM,CACZU,KAAMH,EACNI,YAAaC,KAAKC,UAAUN,IAEvBD,CACR,GAAE,CAA+E,EAAC,GACvF,CAACtC,EAAMoB,KAAMa,IAef,OAZAX,EAAAA,WAAU,WACRL,EAAsBjB,EAAM8C,KAAKzB,OAClC,GAAE,CAACrB,EAAM8C,KAAKzB,SAEfC,EAAAA,WAAU,WACRJ,EAAsBY,EAAWT,OACnC,GAAG,CAACS,EAAWT,SAEfC,EAAAA,WAAU,WACRT,EAAQiB,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIU,QAC7C,GAAG,CAACP,IAEG,CACLW,KAAM9C,EAAM8C,KACZX,QAAOA,EACPL,WAAUA,EAEd"}
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useTable as t}from"./hook.js";import{TableHeaderElement as i}from"./header/header.js";import{PagenationProvider as n}from"./pagenation/providers.js";import{DisplayRange as l,Pagenation as a}from"./pagenation/components.js";import{FilterProvider as d}from"./filter/provider.js";import{TableFilterRemoveButton as s,TableFilterForm as c}from"./filter/components.js";import"./sort/icon.js";import{SortProvider as m}from"./sort/provider.js";import{ColumnsProvider as p}from"./sheet/providers.js";import{FocusProvider as h}from"./focus/provider.js";import{CheckboxProvider as f,CheckboxStatusProvider as g}from"./checkbox/provider.js";import{AllCheckbox as u}from"./checkbox/components.js";import{IdGenerator as v}from"./libs/id-generator.js";import{EditProvider as b}from"./edit/provider.js";import{TablePropertyProvider as w}from"./table-property/provider.js";import{KeyboardSetting as x}from"./operation/components/keyboard-setting.js";import{Row as j}from"./sheet/components.js";import{PasteProvider as y,usePasteActionContext as k}from"./paste/provider.js";import{generateFormattingString as N}from"./libs/conditional-formatting.js";import{Editor as C}from"./edit/ui/editor.js";import{useFilteringColumnStateContext as R}from"./filter/hooks/selectedFilteringColumn/provider.js";function F(t){var i,l,a;return r(d,{children:r(m,{initialCondition:null===(i=t.initialCondition)||void 0===i?void 0:i.sort,children:r(n,{rowCount:t.rows.length,perPage:null===(a=null===(l=t.initialCondition)||void 0===l?void 0:l.pagenation)||void 0===a?void 0:a.rowCountPerPage,children:r(f,{checkbox:t.checkbox,children:r(g,{checkboxCount:t.rows.length,children:r(p,{cols:t.cols,errorHandler:t.errorHandler,children:r(h,{children:r(b,{children:r(w,{children:e(y,{rows:t.rows,cols:t.cols,onUpdateRowFunction:t.onUpdateRow,children:[r(x,{}),r(P,o({},t))]})})})})})})})})})})}function P(o){var n=t(o),d=n.cols,m=n.rowMaps,p=n.pageRowIds,h=R(),f=k().onPaste;return e("div",{className:"w-full",children:[r("div",{className:"flex justify-end mb-1 mr-3",children:r(s,{children:r("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),e("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:[r(C,{rowMaps:m,pageRowIds:p}),e("table",{className:"table",onPaste:function(o){o.preventDefault();var r=o.clipboardData.getData("Text");f(r.replace(/\t/g,",").trim().replace(/\r\n/g,"\n").split("\n").map((function(o){return o.split(",")})))},children:[r("thead",{children:e("tr",{className:"sticky top-0 border-gray-200 z-20 bg-gray-200 text-gray-600 h-[32px]",children:[o.checkbox&&r("th",{children:r(u,{rows:o.rows})}),d.map((function(o,e){return r(i,{id:v.getTableColId(e),col:o},o.key.toString())}))]})}),e("tbody",{children:[!!h&&r("tr",{children:r("td",{colSpan:d.length,className:"sticky top-8 left-0 bg-gray-300 w-full shadow-lg rounded-b-2xl z-20 p-0 overflow-hidden",children:r(c,{})})}),0===p.length&&r("tr",{children:r("td",{colSpan:d.length,className:"py-5",children:r("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),p.map((function(e,t){return r(j,{existCheckbox:!!o.checkbox,rowIndex:t,dataString:m[e].stringValue,cols:o.cols,onClickRow:o.onClickRow,applyRowFormatting:o.applyRowFormatting,conditionalFormattingString:N(m[e].data,d,o.conditionalFormattings),onUpdateRow:o.onUpdateRow},e)}))]})]})]}),e("div",{className:"mt-1",children:[r(l,{}),r("div",{className:"mt-2",children:r(a,{})})]})]})}export{F as default};
3
- //# sourceMappingURL=base.js.map
@@ -1,2 +0,0 @@
1
- import{useMemo as r,useEffect as t,useCallback as o}from"react";import{usePageContext as e}from"./pagenation/providers.js";import"react/jsx-runtime";import{useFilterContext as n}from"./filter/provider.js";import"./filter/constants.js";import{useColumnsContext as i}from"./sheet/providers.js";import"./filter/hooks/selectedFilteringColumn/provider.js";import{useFocusActionContext as u}from"./focus/provider.js";import{useCheckboxStatusContext as c}from"./checkbox/provider.js";import{useEditActionContext as s}from"./edit/provider.js";import{useSortActionContext as f,useSortTimingContext as l}from"./sort/provider.js";import{useTablePropertyActionContext as p}from"./table-property/provider.js";import{usePasteActionContext as a}from"./paste/provider.js";function d(o){var i=n().filter,u=f(),s=u.sort,d=u.updatedData,m=l(),v=e(),h=v.setRowCount,g=v.pageFilter,j=c().dispatchCheckboxStatus,w=a().setRows,b=p(),k=b.setMaxDisplayColCount,y=b.setMaxDisplayRowCount,x=r((function(){return i(o.rows)}),[i,m,o.rows.length]);t((function(){h(x.length)}),[x.length]);var C=r((function(){return o.checkbox?o.rows.filter((function(r){var t;return null===(t=o.checkbox)||void 0===t?void 0:t.checked(r)})):[]}),[o.checkbox,o.rows]);t((function(){j({type:"SET",payload:{checkedRecords:C}})}),[C]);var D=r((function(){return s(x)}),[x,m]);t((function(){d()}),[o.rows]);var R=r((function(){return g(D)}),[g,D]),S=r((function(){return R.map((function(r){return r.id}))}),[R]),E=r((function(){return new Set(S)}),[S]),M=r((function(){return o.rows.filter((function(r){return E.has(r.id)})).reduce((function(r,t){var o=Object.keys(t).sort().reduce((function(r,o){return r[o]=t[o],r}),{});return r[t.id]={data:o,stringValue:JSON.stringify(o)},r}),{})}),[o.rows,E]);return t((function(){k(o.cols.length)}),[o.cols.length]),t((function(){y(S.length)}),[S.length]),t((function(){w(S.map((function(r){return M[r].data})))}),[M]),{cols:o.cols,rowMaps:M,pageRowIds:S}}function m(t,e,n){var c,f,l=u(),p=s(),a=i()[e],d=n[a.key],m="select"===a.type?null===(f=null===(c=a.options)||void 0===c?void 0:c.find((function(r){return r.value===d})))||void 0===f?void 0:f.label:d,v=r((function(){return a.editable?m:a.render?a.render(d,n):m}),[a.editable,m,d,n]);return{type:!a.editable&&a.render?"component":a.type,component:v,focusAtCell:o((function(){l.move(t,e),l.focus(t,e)}),[l,t,e]),onDoubleClickCellToEdit:o((function(r){r.preventDefault(),l.move(t,e),l.focus(t,e),p.startEditing()}),[l,p,t,e])}}export{m as useCell,d as useTable};
2
- //# sourceMappingURL=hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TColumnType, TPropsTable } from \"./type\";\nimport { usePageContext } from \"./pagenation/providers\";\nimport { useFilterContext } from \"./filter\";\nimport { useFocusActionContext } from \"./focus/provider\";\nimport { useCheckboxStatusContext } from \"./checkbox/provider\";\nimport { useEditActionContext } from \"./edit/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"./sort/provider\";\nimport { useTablePropertyActionContext } from \"./table-property/provider\";\nimport { usePasteActionContext } from \"./paste/provider\";\nimport { useColumnsContext } from \"./sheet/providers\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows } = usePasteActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, props.rows.length]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n const rowSortedByKey = Object.keys(row)\n .sort()\n .reduce((acc, key) => {\n acc[key] = row[key];\n return acc;\n }, {} as { [key: string]: string | number });\n\n acc[row.id] = {\n data: rowSortedByKey,\n stringValue: JSON.stringify(rowSortedByKey),\n };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any>; stringValue: string } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n setRows(pageRowIds.map((id) => rowMaps[id].data));\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n\nexport function useCell(\n rowIndex: number,\n colIndex: number,\n row: DataObject<DataRecord>\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const col = useColumnsContext()[colIndex];\n const value = row[col.key as string];\n\n const label =\n col.type === \"select\"\n ? col.options?.find((op) => op.value === value)?.label\n : value;\n\n const component = useMemo(() => {\n if (col.editable) {\n return label;\n } else {\n return col.render ? col.render(value as never, row) : label;\n }\n }, [col.editable, label, value, row]);\n\n const type: TColumnType | \"component\" =\n !col.editable && col.render ? \"component\" : col.type;\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const onDoubleClickCellToEdit: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n e.preventDefault();\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n editAction.startEditing();\n },\n [focus, editAction, rowIndex, colIndex]\n );\n\n return {\n type,\n component,\n focusAtCell,\n onDoubleClickCellToEdit,\n };\n}\n"],"names":["useTable","props","filter","useFilterContext","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRows","usePasteActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","useMemo","rows","length","useEffect","checkBoxes","checkbox","row","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","map","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","key","data","stringValue","JSON","stringify","cols","useCell","rowIndex","colIndex","focus","useFocusActionContext","editAction","useEditActionContext","col","useColumnsContext","value","label","options","find","op","component","editable","render","focusAtCell","useCallback","move","onDoubleClickCellToEdit","e","preventDefault","startEditing"],"mappings":"ovBAYM,SAAUA,EAA+BC,GACrC,IAAAC,EAAWC,WACbC,EAAwBC,IAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,IACbC,EAA8BC,IAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,2BAC3BC,EAAYC,YACdC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,GACnB,WAAM,OAAArB,EAAOD,EAAMuB,KAAK,GACxB,CAACtB,EAAQM,EAAYP,EAAMuB,KAAKC,SAGlCC,GAAU,WACRd,EAAYU,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,GAAQ,WACzB,OAAKtB,EAAM2B,SAIJ3B,EAAMuB,KAAKtB,QAAO,SAAC2B,GAAG,IAAAzB,EAAK,eAAAA,EAAAH,EAAM2B,+BAAUE,QAAQD,EAAI,IAHrD,EAIV,GAAE,CAAC5B,EAAM2B,SAAU3B,EAAMuB,OAE1BE,GAAU,WACRZ,EAAuB,CACrBiB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,GACjB,WAAM,OAAAjB,EAAKgB,KACX,CAACA,EAAcd,IAGjBkB,GAAU,WACRnB,GACF,GAAG,CAACN,EAAMuB,OAEV,IAAMW,EAAWZ,GACf,WAAM,OAAAV,EAAWqB,KACjB,CAACrB,EAAYqB,IAGTE,EAAab,GAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAE,GAAC,GAAE,CAACH,IAC3DI,EAAgBhB,GAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAW,GAAE,CAACA,IAEpDK,EAAUlB,GACd,WACE,OAAAtB,EAAMuB,KACHtB,QAAO,SAAC2B,GAAQ,OAAAU,EAAcG,IAAIb,EAAIS,OACtCK,QAAO,SAACC,EAAKf,GACZ,IAAMgB,EAAiBC,OAAOC,KAAKlB,GAChCvB,OACAqC,QAAO,SAACC,EAAKI,GAEZ,OADAJ,EAAII,GAAOnB,EAAImB,GACRJ,CACR,GAAE,CAAwC,GAM7C,OAJAA,EAAIf,EAAIS,IAAM,CACZW,KAAMJ,EACNK,YAAaC,KAAKC,UAAUP,IAEvBD,CACR,GAAE,CAA+E,EAAC,GACvF,CAAC3C,EAAMuB,KAAMe,IAef,OAZAb,GAAU,WACRN,EAAsBnB,EAAMoD,KAAK5B,OAClC,GAAE,CAACxB,EAAMoD,KAAK5B,SAEfC,GAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,GAAU,WACRV,EAAQoB,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIW,QAC7C,GAAG,CAACR,IAEG,CACLY,KAAMpD,EAAMoD,KACZZ,QAAOA,EACPL,WAAUA,EAEd,UAEgBkB,EACdC,EACAC,EACA3B,WAEM4B,EAAQC,IACRC,EAAaC,IACbC,EAAMC,IAAoBN,GAC1BO,EAAQlC,EAAIgC,EAAIb,KAEhBgB,EACS,WAAbH,EAAI9B,KAC6C,UAAlC,QAAX3B,EAAAyD,EAAII,eAAO,IAAA7D,OAAA,EAAAA,EAAE8D,MAAK,SAACC,GAAO,OAAAA,EAAGJ,QAAUA,CAAb,WAAmB,IAAArD,OAAA,EAAAA,EAAEsD,MAC/CD,EAEAK,EAAY7C,GAAQ,WACxB,OAAIsC,EAAIQ,SACCL,EAEAH,EAAIS,OAAST,EAAIS,OAAOP,EAAgBlC,GAAOmC,CAE1D,GAAG,CAACH,EAAIQ,SAAUL,EAAOD,EAAOlC,IAqBhC,MAAO,CACLE,MAnBC8B,EAAIQ,UAAYR,EAAIS,OAAS,YAAcT,EAAI9B,KAoBhDqC,UAASA,EACTG,YAnBkBC,GAAY,WAC9Bf,EAAMgB,KAAKlB,EAAUC,GACrBC,EAAMA,MAAMF,EAAUC,EACvB,GAAE,CAACC,EAAOF,EAAUC,IAiBnBkB,wBAdAF,GACE,SAACG,GACCA,EAAEC,iBACFnB,EAAMgB,KAAKlB,EAAUC,GACrBC,EAAMA,MAAMF,EAAUC,GACtBG,EAAWkB,cACZ,GACD,CAACpB,EAAOE,EAAYJ,EAAUC,IASpC"}