@teppen/react-ui 1.4.3 → 1.4.4

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 (45) hide show
  1. package/dist/cjs/src/table/base.js +1 -1
  2. package/dist/cjs/src/table/cell/ui/base-input.js +1 -1
  3. package/dist/cjs/src/table/cell/ui/base-input.js.map +1 -1
  4. package/dist/cjs/src/table/cell/ui/cell.js +1 -1
  5. package/dist/cjs/src/table/hook.js +1 -1
  6. package/dist/cjs/src/table/hook.js.map +1 -1
  7. package/dist/cjs/src/table/paste/hooks.js +2 -0
  8. package/dist/cjs/src/table/paste/hooks.js.map +1 -0
  9. package/dist/cjs/src/table/paste/provider.js +2 -0
  10. package/dist/cjs/src/table/paste/provider.js.map +1 -0
  11. package/dist/cjs/src/table/sheet/components.js +2 -0
  12. package/dist/cjs/src/table/sheet/components.js.map +1 -0
  13. package/dist/cjs/src/table/sheet/providers.js +1 -1
  14. package/dist/cjs/src/table/sort/hooks.js +1 -1
  15. package/dist/cjs/src/table/sort/hooks.js.map +1 -1
  16. package/dist/cjs/src/table/sort/provider.js +1 -1
  17. package/dist/cjs/src/table/table-property/hook.js +1 -1
  18. package/dist/cjs/src/table/table-property/hook.js.map +1 -1
  19. package/dist/cjs/src/table/table-property/provider.js +1 -1
  20. package/dist/cjs/src/table/table-property/provider.js.map +1 -1
  21. package/dist/esm/src/table/base.js +1 -1
  22. package/dist/esm/src/table/cell/ui/base-input.js +1 -1
  23. package/dist/esm/src/table/cell/ui/base-input.js.map +1 -1
  24. package/dist/esm/src/table/cell/ui/cell.js +1 -1
  25. package/dist/esm/src/table/hook.js +1 -1
  26. package/dist/esm/src/table/hook.js.map +1 -1
  27. package/dist/esm/src/table/paste/hooks.js +2 -0
  28. package/dist/esm/src/table/paste/hooks.js.map +1 -0
  29. package/dist/esm/src/table/paste/provider.js +2 -0
  30. package/dist/esm/src/table/paste/provider.js.map +1 -0
  31. package/dist/esm/src/table/sheet/components.js +2 -0
  32. package/dist/esm/src/table/sheet/components.js.map +1 -0
  33. package/dist/esm/src/table/sheet/providers.js +1 -1
  34. package/dist/esm/src/table/sort/hooks.js +1 -1
  35. package/dist/esm/src/table/sort/hooks.js.map +1 -1
  36. package/dist/esm/src/table/sort/provider.js +1 -1
  37. package/dist/esm/src/table/table-property/hook.js +1 -1
  38. package/dist/esm/src/table/table-property/hook.js.map +1 -1
  39. package/dist/esm/src/table/table-property/provider.js +1 -1
  40. package/dist/esm/src/table/table-property/provider.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/cjs/src/table/table-property/components/auto-update-table-property.js +0 -2
  43. package/dist/cjs/src/table/table-property/components/auto-update-table-property.js.map +0 -1
  44. package/dist/esm/src/table/table-property/components/auto-update-table-property.js +0 -2
  45. package/dist/esm/src/table/table-property/components/auto-update-table-property.js.map +0 -1
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),t=require("./cell/ui/cell.js"),i=require("./header/header.js"),s=require("./pagenation/providers.js"),l=require("./pagenation/components.js"),n=require("./filter/provider.js"),a=require("./filter/components.js");require("./sort/icon.js");var d=require("./sort/provider.js"),c=require("./sheet/providers.js"),u=require("./focus/provider.js"),x=require("./checkbox/provider.js"),h=require("./checkbox/components.js"),j=require("./libs/id-generator.js"),p=require("./edit/provider.js"),v=require("./table-property/provider.js"),b=require("./table-property/components/auto-update-table-property.js"),m=require("./operation/components/keyboard-setting.js"),g=require("./table/components/auto-switch-edit-mode.js");function f(e){var s=o.useTable(e),d=s.cols,x=s.rows,p=n.useFilterContext().selectedFilterKey,v=u.useFocusActionContext().unfocus;return r.jsxs("div",{className:"w-full",children:[r.jsx("div",{className:"flex justify-end mb-1 mr-3",children:r.jsx(a.TableFilterRemoveButton,{children:r.jsx("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),r.jsx("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:r.jsxs("table",{className:"table",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(h.AllCheckbox,{rows:e.rows})}),d.map((function(e,o){return r.jsx(i.TableHeaderElement,{id:j.IdGenerator.getTableColId(o),columnKey:e.key},e.key)}))]})}),r.jsxs("tbody",{children:[!!p&&r.jsx("tr",{children:r.jsx("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.jsx(a.TableFilterForm,{})})}),0===x.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:d.length,className:"py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),x.map((function(o,i){return r.jsx(c.RowProvider,{row:o,children:r.jsxs("tr",{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 ".concat(e.onClickRow?"hover:cursor-pointer":""," ").concat(e.applyRowFormatting?e.applyRowFormatting(o):""),onClick:function(r){r.preventDefault(),e.onClickRow&&(e.onClickRow(o),v())},"data-testid":o.id,children:[e.checkbox&&r.jsx("td",{children:r.jsx(h.Checkbox,{})}),d.map((function(o,s){return r.jsx(t.TableCell,{rowIndex:i,colIndex:s,columnKey:o.key,isExistOnClickRow:!!e.onClickRow,onUpdateRow:e.onUpdateRow},o.key)}))]})},o.id)}))]})]})}),r.jsxs("div",{className:"mt-1",children:[r.jsx(l.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(l.Pagenation,{})})]})]})}module.exports=function(o){var t,i,l;return r.jsx(n.FilterProvider,{children:r.jsx(d.SortProvider,{initialCondition:null===(t=o.initialCondition)||void 0===t?void 0:t.sort,children:r.jsx(s.PagenationProvider,{rowCount:o.rows.length,perPage:null===(l=null===(i=o.initialCondition)||void 0===i?void 0:i.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r.jsx(x.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(x.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(c.ProcessedDataProvider,{props:o,children:r.jsx(c.ColumnsProvider,{cols:o.cols,children:r.jsx(u.FocusProvider,{children:r.jsx(p.EditProvider,{children:r.jsxs(v.TablePropertyProvider,{children:[r.jsx(b.AutoUpdateTableProperty,{}),r.jsx(g.AutoSwitchEditMode,{}),r.jsx(m.KeyboardSetting,{}),r.jsx(f,e.__assign({},o))]})})})})})})})})})})};
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"),s=require("./pagenation/providers.js"),t=require("./pagenation/components.js"),n=require("./filter/provider.js"),l=require("./filter/components.js");require("./sort/icon.js");var d=require("./sort/provider.js"),a=require("./sheet/providers.js"),c=require("./focus/provider.js"),x=require("./checkbox/provider.js"),u=require("./checkbox/components.js"),h=require("./libs/id-generator.js"),j=require("./edit/provider.js"),p=require("./table-property/provider.js"),v=require("./operation/components/keyboard-setting.js"),m=require("./table/components/auto-switch-edit-mode.js"),b=require("./sheet/components.js"),g=require("./paste/provider.js");function w(e){var s=o.useTable(e),d=s.cols,a=s.rowMaps,c=s.pageRowIds,x=n.useFilterContext().selectedFilterKey;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.jsx("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:r.jsxs("table",{className:"table",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(u.AllCheckbox,{rows:e.rows})}),d.map((function(e,o){return r.jsx(i.TableHeaderElement,{id:h.IdGenerator.getTableColId(o),columnKey:e.key},e.key)}))]})}),r.jsxs("tbody",{children:[!!x&&r.jsx("tr",{children:r.jsx("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.jsx(l.TableFilterForm,{})})}),0===c.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:d.length,className:"py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),c.map((function(o,i){return r.jsx(b.Row,{existCheckbox:!!e.checkbox,rowIndex:i,dataString:a[o].stringValue,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,onUpdateRow:e.onUpdateRow},o)}))]})]})}),r.jsxs("div",{className:"mt-1",children:[r.jsx(t.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(t.Pagenation,{})})]})]})}module.exports=function(o){var i,t,l;return r.jsx(n.FilterProvider,{children:r.jsx(d.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(s.PagenationProvider,{rowCount:o.rows.length,perPage:null===(l=null===(t=o.initialCondition)||void 0===t?void 0:t.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r.jsx(x.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(x.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(a.ColumnsProvider,{cols:o.cols,children:r.jsx(c.FocusProvider,{children:r.jsx(j.EditProvider,{children:r.jsx(p.TablePropertyProvider,{children:r.jsxs(g.PasteProvider,{rows:o.rows,cols:o.cols,colValidators:{},onUpdateRowFunction:o.onUpdateRow,children:[r.jsx(m.AutoSwitchEditMode,{}),r.jsx(v.KeyboardSetting,{}),r.jsx(w,e.__assign({},o))]})})})})})})})})})})};
3
3
  //# sourceMappingURL=base.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("../../cancel-icon.js");exports.CellInput=function(n){return e.jsxs("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[e.jsx("input",{id:"table-cell-form",className:"w-full py-1 px-2 bg-white text-gray-900",type:"text",value:n.value,onChange:n.onChange,onBlur:n.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(n.reset(),n.endEditing())}}),e.jsx("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){n.reset(),n.endEditing()}),300)},children:e.jsx(t.CancelIcon,{size:16})})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("../../cancel-icon.js");exports.CellInput=function(n){return e.jsxs("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[e.jsx("input",{className:"w-full py-1 px-2 bg-white text-gray-900",type:"text",value:n.value,onChange:n.onChange,onBlur:n.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(n.reset(),n.endEditing())}}),e.jsx("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){n.reset(),n.endEditing()}),300)},children:e.jsx(t.CancelIcon,{size:16})})]})};
2
2
  //# sourceMappingURL=base-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-input.js","sources":["../../../../../../src/table/cell/ui/base-input.tsx"],"sourcesContent":["import { CancelIcon } from \"../../cancel-icon\";\n\nexport function CellInput(props: {\n value: string | number;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;\n reset: () => void;\n endEditing: () => void;\n}) {\n return (\n <div\n className={`flex justify-between gap-1 w-full items-center`}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <input\n id=\"table-cell-form\"\n className=\"w-full py-1 px-2 bg-white text-gray-900\"\n type=\"text\"\n value={props.value}\n onChange={props.onChange}\n onBlur={props.onBlur}\n onKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n if (e.key === \"Enter\") {\n (e.target as HTMLInputElement).blur();\n } else if (e.key === \"Escape\") {\n props.reset();\n props.endEditing();\n }\n }}\n />\n <button\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n props.reset();\n props.endEditing();\n }, 300);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </div>\n );\n}\n"],"names":["props","_jsxs","className","onClick","e","preventDefault","stopPropagation","children","_jsx","jsx","id","type","value","onChange","onBlur","onKeyUp","key","target","blur","reset","endEditing","onMouseDown","setTimeout","CancelIcon","size"],"mappings":"oGAEM,SAAoBA,GAOxB,OACEC,EAAAA,YACEC,UAAW,iDACXC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EAEAC,SAAA,CAAAC,EAAAC,IAAA,QAAA,CACEC,GAAG,kBACHR,UAAU,0CACVS,KAAK,OACLC,MAAOZ,EAAMY,MACbC,SAAUb,EAAMa,SAChBC,OAAQd,EAAMc,OACdC,QAAS,SAACX,GACRA,EAAEC,iBACY,UAAVD,EAAEY,IACHZ,EAAEa,OAA4BC,OACZ,WAAVd,EAAEY,MACXhB,EAAMmB,QACNnB,EAAMoB,aAEV,IAEFZ,EAAAA,IAAA,SAAA,CACEa,YAAa,SAACjB,GACZA,EAAEC,iBACFD,EAAEE,kBACFgB,YAAW,WACTtB,EAAMmB,QACNnB,EAAMoB,YACP,GAAE,MACJb,SAEDC,MAACe,EAAAA,WAAW,CAAAC,KAAM,SAI1B"}
1
+ {"version":3,"file":"base-input.js","sources":["../../../../../../src/table/cell/ui/base-input.tsx"],"sourcesContent":["import { CancelIcon } from \"../../cancel-icon\";\n\nexport function CellInput(props: {\n value: string | number;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;\n reset: () => void;\n endEditing: () => void;\n}) {\n return (\n <div\n className={`flex justify-between gap-1 w-full items-center`}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <input\n className=\"w-full py-1 px-2 bg-white text-gray-900\"\n type=\"text\"\n value={props.value}\n onChange={props.onChange}\n onBlur={props.onBlur}\n onKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n if (e.key === \"Enter\") {\n (e.target as HTMLInputElement).blur();\n } else if (e.key === \"Escape\") {\n props.reset();\n props.endEditing();\n }\n }}\n />\n <button\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n props.reset();\n props.endEditing();\n }, 300);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </div>\n );\n}\n"],"names":["props","_jsxs","className","onClick","e","preventDefault","stopPropagation","children","_jsx","type","value","onChange","onBlur","onKeyUp","key","target","blur","reset","endEditing","onMouseDown","setTimeout","CancelIcon","size"],"mappings":"oGAEM,SAAoBA,GAOxB,OACEC,EAAAA,YACEC,UAAW,iDACXC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EAEAC,SAAA,CAAAC,EAAAA,IAAA,QAAA,CACEN,UAAU,0CACVO,KAAK,OACLC,MAAOV,EAAMU,MACbC,SAAUX,EAAMW,SAChBC,OAAQZ,EAAMY,OACdC,QAAS,SAACT,GACRA,EAAEC,iBACY,UAAVD,EAAEU,IACHV,EAAEW,OAA4BC,OACZ,WAAVZ,EAAEU,MACXd,EAAMiB,QACNjB,EAAMkB,aAEV,IAEFV,EAAAA,IAAA,SAAA,CACEW,YAAa,SAACf,GACZA,EAAEC,iBACFD,EAAEE,kBACFc,YAAW,WACTpB,EAAMiB,QACNjB,EAAMkB,YACP,GAAE,MACJX,SAEDC,MAACa,EAAAA,WAAW,CAAAC,KAAM,SAI1B"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("../../hook.js"),l=require("./edit-button.js"),i=require("./string-input.js"),n=require("./number-input.js"),o=require("./select-input.js"),r=require("react"),s=require("../../libs/id-generator.js"),a=require("../provider.js"),c=require("../../sheet/providers.js"),u=r.memo((function(t){return e.jsx(e.Fragment,{children:"component"===t.type?t.component:e.jsx("div",{onDoubleClick:t.onDoubleClick,children:e.jsx("p",{className:"cell-data text-left whitespace-nowrap",children:t.component})})})})),d=r.memo((function(t){var r=a.useCellContext();return e.jsx("td",{id:t.id,onPaste:function(e){e.preventDefault(),t.isExistOnUpdateRow?t.pasteData(e.clipboardData.getData("text")):alert("ペースト機能が有効化されていません。")},children:e.jsxs("div",{className:"relative",onClick:t.isExistOnClickRow?void 0:function(e){e.preventDefault(),t.focusAtCell()},onDoubleClick:t.isExistOnClickRow?void 0:t.onDoubleClickCellToEdit,children:[e.jsx("div",{id:"".concat(t.id,"-display"),children:e.jsxs("div",{className:"flex items-center gap-3 w-fit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),t.focusAtCell()},children:[e.jsx(u,{type:r.type,component:r.component,onDoubleClick:t.onDoubleClickCellToEdit}),t.editable&&e.jsx(l.EditButton,{})]})}),t.editable&&e.jsxs("div",{id:"".concat(t.id,"-editor"),className:"absolute top-0 left-0 w-full h-full grid place-items-center z-10 pr-2",onClick:t.preventPropagation,style:{opacity:0,pointerEvents:"none"},children:["string"===r.type&&e.jsx(i.StringCellInput,{}),"number"===r.type&&e.jsx(n.NumberCellInput,{}),"select"===r.type&&e.jsx(o.SelectCellInput,{})]})]})})}));exports.TableCell=function(l){var i,n=t.useCell(l.rowIndex,l.colIndex,l.onUpdateRow),o=n.focusAtCell,r=n.onDoubleClickCellToEdit,u=n.preventPropagation,p=n.pasteData,C=c.useColumnContext(l.columnKey);return e.jsx(a.CellProvider,{columnKey:l.columnKey,children:e.jsx(d,{id:s.IdGenerator.getTableCellId(l.rowIndex,l.colIndex),editable:null!==(i=C.editable)&&void 0!==i&&i,focusAtCell:o,onDoubleClickCellToEdit:r,preventPropagation:u,pasteData:p,isExistOnClickRow:l.isExistOnClickRow,isExistOnUpdateRow:!!l.onUpdateRow})})};
2
+ "use strict";var e=require("react/jsx-runtime"),t=require("../../hook.js"),l=require("./edit-button.js"),i=require("./string-input.js"),n=require("./number-input.js"),o=require("./select-input.js"),r=require("react"),s=require("../../libs/id-generator.js"),c=require("../provider.js"),a=require("../../sheet/providers.js"),u=r.memo((function(t){return e.jsx(e.Fragment,{children:"component"===t.type?t.component:e.jsx("div",{onDoubleClick:t.onDoubleClick,children:e.jsx("p",{className:"cell-data text-left whitespace-nowrap",children:t.component})})})})),d=r.memo((function(t){var r=c.useCellContext();return e.jsx("td",{id:t.id,onPaste:function(e){e.preventDefault(),t.isExistOnUpdateRow?t.pasteData(e.clipboardData.getData("text")):alert("ペースト機能が有効化されていません。")},children:e.jsxs("div",{className:"relative",onClick:t.isExistOnClickRow?void 0:function(e){e.preventDefault(),t.focusAtCell()},onDoubleClick:t.isExistOnClickRow?void 0:t.onDoubleClickCellToEdit,children:[e.jsx("div",{id:"".concat(t.id,"-display"),children:e.jsxs("div",{className:"flex items-center gap-3 w-fit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),t.focusAtCell()},children:[e.jsx(u,{type:r.type,component:r.component,onDoubleClick:t.onDoubleClickCellToEdit}),t.editable&&e.jsx(l.EditButton,{})]})}),t.editable&&e.jsxs("div",{id:"".concat(t.id,"-editor"),className:"absolute top-0 left-0 w-full h-full grid place-items-center z-10 pr-2",onClick:t.preventPropagation,style:{opacity:0,pointerEvents:"none"},children:["string"===r.type&&e.jsx(i.StringCellInput,{}),"number"===r.type&&e.jsx(n.NumberCellInput,{}),"select"===r.type&&e.jsx(o.SelectCellInput,{})]})]})})}));exports.TableCell=function(l){var i,n=t.useCell(l.rowIndex,l.colIndex),o=n.focusAtCell,r=n.onDoubleClickCellToEdit,u=n.preventPropagation,p=n.pasteData,C=a.useColumnContext(l.columnKey);return e.jsx(c.CellProvider,{columnKey:l.columnKey,children:e.jsx(d,{id:s.IdGenerator.getTableCellId(l.rowIndex,l.colIndex),editable:null!==(i=C.editable)&&void 0!==i&&i,focusAtCell:o,onDoubleClickCellToEdit:r,preventPropagation:u,pasteData:p,isExistOnClickRow:l.isExistOnClickRow,isExistOnUpdateRow:!!l.onUpdateRow})})};
3
3
  //# sourceMappingURL=cell.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("./pagenation/providers.js");require("react/jsx-runtime");var o=require("./filter/provider.js");require("./filter/constants.js");var n=require("./sheet/providers.js");require("./sort/icon.js");var u=require("./sort/provider.js"),s=require("./focus/provider.js"),i=require("./checkbox/provider.js"),a=require("./edit/provider.js");exports.useCell=function(r,o,u){var i=s.useFocusActionContext(),l=a.useEditActionContext(),c=n.useProcessedDataContext().rows,f=n.useColumnsContext(),v=n.useColumnValidatesContext(),d=t.useCallback((function(){i.move(r,o),i.focus(r,o)}),[i,r,o]),p=t.useCallback((function(t){var n,s,i=0,a=t.trim().replace(/\r\n/g,"\n").split("\n").map((function(e){var t=e.split("\t");return i=Math.max(i,t.length),t}));if(0!==a.length&&0!==i){for(var l=0;l<i;l++){if(!(p=f[o+l]).editable)return void alert("編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(n=p.label)&&void 0!==n?n:p.key))}if(a.length+r>c.length)alert("貼り付け先の行数が足りません。");else{for(l=0;l<a.length;l++)for(var d=0;d<a[l].length;d++){var p=f[o+d];if(!(0,v[p.key])(a[l][d]))return void alert("[".concat(null!==(s=p.label)&&void 0!==s?s:p.key,"]列に次の不正なデータが含まれています。\n").concat(a[l][d]))}var C=function(t){for(var n=!1,s=e.__assign({},c[r+t]),i=function(e){var r=f[o+e],u="number"===r.type?Number(a[t][e]):"select"===r.type?""===a[t][e]?"":r.options.find((function(r){return r.label===a[t][e]})).value:a[t][e];s[r.key]!==u&&(n=!0,s[r.key]=u)},l=0;l<a[t].length;l++)i(l);n&&u&&u(s,c[r+t])};for(l=0;l<a.length;l++)C(l)}}}),[r,o]);return{focusAtCell:d,onDoubleClickCellToEdit:t.useCallback((function(e){e.preventDefault(),i.move(r,o),i.focus(r,o),l.startEditing()}),[i,l]),preventPropagation:t.useCallback((function(e){e.preventDefault(),e.stopPropagation()}),[]),pasteData:p}},exports.useTable=function(e){var n=o.useFilterContext().filter,s=u.useSortContext().sort,a=r.usePageContext(),l=a.setRowCount,c=a.pageFilter,f=i.useCheckboxStatusContext().dispatchCheckboxStatus,v=t.useMemo((function(){return n(e.rows)}),[n,e.rows]);t.useEffect((function(){l(v.length)}),[v.length]);var d=t.useMemo((function(){return e.checkbox?e.rows.filter((function(t){var r;return null===(r=e.checkbox)||void 0===r?void 0:r.checked(t)})):[]}),[e.checkbox,e.rows]);t.useEffect((function(){f({type:"SET",payload:{checkedRecords:d}})}),[d]);var p=t.useMemo((function(){return s(v)}),[v,s]),C=t.useMemo((function(){return c(p)}),[c,p]);return{cols:e.cols,rows:C}};
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");var n=require("./focus/provider.js"),o=require("./checkbox/provider.js"),u=require("./edit/provider.js"),s=require("./sort/provider.js"),i=require("./table-property/provider.js"),c=require("./paste/provider.js");exports.useCell=function(t,r){var o=n.useFocusActionContext(),s=u.useEditActionContext(),i=c.usePasteActionContext().onPaste,a=e.useCallback((function(){o.move(t,r),o.focus(t,r)}),[o,t,r]),f=e.useCallback((function(e){var n=e.trim().replace(/\r\n/g,"\n").split("\n").map((function(e){return e.split("\t")}));i(t,r,n)}),[t,r]);return{focusAtCell:a,onDoubleClickCellToEdit:e.useCallback((function(e){e.preventDefault(),o.move(t,r),o.focus(t,r),s.startEditing()}),[o,s,t,r]),preventPropagation:e.useCallback((function(e){e.preventDefault(),e.stopPropagation()}),[]),pasteData:f}},exports.useTable=function(n){var u=r.useFilterContext().filter,a=s.useSortActionContext(),f=a.sort,l=a.updatedData,p=s.useSortTimingContext(),d=t.usePageContext(),v=d.setRowCount,C=d.pageFilter,x=o.useCheckboxStatusContext().dispatchCheckboxStatus,g=c.usePasteActionContext().setRows,h=i.useTablePropertyActionContext(),b=h.setMaxDisplayColCount,m=h.setMaxDisplayRowCount,k=e.useMemo((function(){return u(n.rows)}),[u,p,n.rows.length]);e.useEffect((function(){v(k.length)}),[k.length]);var w=e.useMemo((function(){return n.checkbox?n.rows.filter((function(e){var t;return null===(t=n.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[n.checkbox,n.rows]);e.useEffect((function(){x({type:"SET",payload:{checkedRecords:w}})}),[w]);var j=e.useMemo((function(){return f(k)}),[k,p]);e.useEffect((function(){l()}),[n.rows]);var q=e.useMemo((function(){return C(j)}),[C,j]),E=e.useMemo((function(){return q.map((function(e){return e.id}))}),[q]),M=e.useMemo((function(){return new Set(E)}),[E]),y=e.useMemo((function(){return n.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}),{})}),[n.rows,M]);return e.useEffect((function(){b(n.cols.length)}),[n.cols.length]),e.useEffect((function(){m(E.length)}),[E.length]),e.useEffect((function(){g(E.map((function(e){return y[e].data})))}),[y]),{cols:n.cols,rowMaps:y,pageRowIds:E}};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"./pagenation/providers\";\nimport { useFilterContext } from \"./filter\";\nimport { useSortContext } from \"./sort\";\nimport { useFocusActionContext } from \"./focus/provider\";\nimport { useCheckboxStatusContext } from \"./checkbox/provider\";\nimport { useEditActionContext } from \"./edit/provider\";\nimport {\n useColumnsContext,\n useColumnValidatesContext,\n useProcessedDataContext,\n} from \"./sheet/providers\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort } = useSortContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n\n const filteredRows = useMemo(() => filter(props.rows), [filter, props.rows]);\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(() => sort(filteredRows), [filteredRows, sort]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n return {\n cols: props.cols,\n rows: pageRows,\n };\n}\n\nexport function useCell<T extends DataRecord>(\n rowIndex: number,\n colIndex: number,\n onUpdateRow?: (newRow: DataObject<T>, oldRow: DataObject<T>) => void\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const rows = useProcessedDataContext().rows;\n const cols = useColumnsContext();\n const colValidator = useColumnValidatesContext();\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const pasteData = useCallback(\n (text: string) => {\n let colLength = 0;\n\n const tableData = text\n .trim()\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((row) => {\n const colsData = row.split(\"\\t\");\n colLength = Math.max(colLength, colsData.length);\n return colsData;\n });\n\n if (tableData.length === 0 || colLength === 0) {\n return;\n }\n\n for (let i = 0; i < colLength; i++) {\n const col = cols[colIndex + i];\n\n if (!col.editable) {\n alert(\n `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? col.key\n }`\n );\n return;\n }\n }\n\n if (tableData.length + rowIndex > rows.length) {\n alert(\"貼り付け先の行数が足りません。\");\n return;\n }\n\n for (let i = 0; i < tableData.length; i++) {\n for (let j = 0; j < tableData[i].length; j++) {\n const col = cols[colIndex + j];\n const validate = colValidator[col.key];\n\n if (!validate(tableData[i][j])) {\n alert(\n `[${\n col.label ?? col.key\n }]列に次の不正なデータが含まれています。\\n${tableData[i][j]}`\n );\n return;\n }\n }\n }\n\n for (let i = 0; i < tableData.length; i++) {\n let checkUpdatedRow = false;\n const row = { ...rows[rowIndex + i] };\n\n for (let j = 0; j < tableData[i].length; j++) {\n const col = cols[colIndex + j];\n const value =\n col.type === \"number\"\n ? Number(tableData[i][j])\n : col.type === \"select\"\n ? tableData[i][j] === \"\"\n ? \"\"\n : col.options.find(\n (option) => option.label === tableData[i][j]\n )!.value\n : tableData[i][j];\n\n if (row[col.key] !== value) {\n checkUpdatedRow = true;\n\n row[col.key] = value;\n }\n }\n if (checkUpdatedRow && onUpdateRow)\n onUpdateRow!(\n row as DataObject<T>,\n rows[rowIndex + i] as DataObject<T>\n );\n }\n },\n [rowIndex, colIndex]\n );\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]\n );\n\n const preventPropagation: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return {\n focusAtCell,\n onDoubleClickCellToEdit,\n preventPropagation,\n pasteData,\n };\n}\n"],"names":["rowIndex","colIndex","onUpdateRow","focus","useFocusActionContext","editAction","useEditActionContext","rows","useProcessedDataContext","cols","useColumnsContext","colValidator","useColumnValidatesContext","focusAtCell","useCallback","move","pasteData","text","colLength","tableData","trim","replace","split","map","row","colsData","Math","max","length","i","col","editable","alert","concat","_a","label","key","j","validate","_b","checkUpdatedRow","value","type","Number","options","find","option","onDoubleClickCellToEdit","e","preventDefault","startEditing","preventPropagation","stopPropagation","props","filter","useFilterContext","sort","useSortContext","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","filteredRows","useMemo","useEffect","checkBoxes","checkbox","checked","payload","checkedRecords","sortedRows","pageRows"],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, 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\";\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(rowIndex: number, colIndex: number) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const { onPaste } = usePasteActionContext();\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const pasteData = useCallback(\n (text: string) => {\n const tableData = text\n .trim()\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((row) => row.split(\"\\t\"));\n\n onPaste(rowIndex, colIndex, tableData);\n },\n [rowIndex, colIndex]\n );\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 const preventPropagation: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return {\n focusAtCell,\n onDoubleClickCellToEdit,\n preventPropagation,\n pasteData,\n };\n}\n"],"names":["rowIndex","colIndex","focus","useFocusActionContext","editAction","useEditActionContext","onPaste","usePasteActionContext","focusAtCell","useCallback","move","pasteData","text","tableData","trim","replace","split","map","row","onDoubleClickCellToEdit","e","preventDefault","startEditing","preventPropagation","stopPropagation","props","filter","useFilterContext","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRows","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","useMemo","rows","length","useEffect","checkBoxes","checkbox","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","key","data","stringValue","JSON","stringify","cols"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),a=require("react"),t=require("../sheet/providers.js"),n=function(a,t){var n,o;switch(t.type){case"setRows":return e.__assign(e.__assign({},a),{rows:t.payload.rows});case"setCols":return e.__assign(e.__assign({},a),{cols:t.payload.cols});case"setColValidators":return e.__assign(e.__assign({},a),{colValidators:t.payload.colValidators});case"setOnUpdateRowFunction":return e.__assign(e.__assign({},a),{onUpdateRowFunction:t.payload.onUpdateRowFunction});case"onPaste":var s=t.payload,r=s.rowIndex,l=s.colIndex,u=s.pasteData,i=a.rows,c=a.cols,d=a.colValidators;if(!a.onUpdateRowFunction)return a;var p={arguments:[],timing:a.updateParameters.timing+1},f=u.length,g=Math.max.apply(Math,u.map((function(e){return e.length})));if(0===f||0===g)return a;if(u.length+r>i.length)return alert("貼り付け先の行数が足りません。"),a;for(var _=0;_<g;_++){if(!(m=c[l+_]).editable)return alert("編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(n=m.label)&&void 0!==n?n:m.key)),a}if(g+l>c.length)return alert("貼り付け先の列数が足りません。"),a;for(_=0;_<f;_++)for(var w=u[_],y=0;y<w.length;y++){var m,R=w[y];if(!(0,d[(m=c[l+y]).key])(R))return alert("[".concat(null!==(o=m.label)&&void 0!==o?o:m.key,"]列に次の不正なデータが含まれています。\n").concat(R)),a}return u.forEach((function(a,t){var n=e.__assign({},i[r+t]),o=!1;a.forEach((function(e,a){var t=c[l+a],s="number"===t.type?Number(e):"select"===t.type?""===e?"":t.options.find((function(a){return a.label===e})).value:e;n[t.key]!==s&&(o=!0,n[t.key]=s)})),o&&p.arguments.push({newRow:n,oldRow:i[r+t]})})),p.arguments.length>0?e.__assign(e.__assign({},a),{updateParameters:p}):a}};exports.usePasteReducer=function(o){var s=a.useReducer(n,e.__assign(e.__assign({},o),{updateParameters:{arguments:[],timing:0}})),r=s[0],l=s[1],u=t.useColumnValidatesContext(),i=a.useCallback((function(e){l({type:"setRows",payload:{rows:e}})}),[]),c=a.useCallback((function(e){l({type:"setCols",payload:{cols:e}})}),[]),d=a.useCallback((function(e){l({type:"setColValidators",payload:{colValidators:e}})}),[]);a.useEffect((function(){d(u)}),[u]);var p=a.useCallback((function(e){l({type:"setOnUpdateRowFunction",payload:{onUpdateRowFunction:e}})}),[]),f=a.useCallback((function(e,a,t){l({type:"onPaste",payload:{rowIndex:e,colIndex:a,pasteData:t}})}),[]);return a.useEffect((function(){r.updateParameters.arguments.length>0&&r.updateParameters.arguments.forEach((function(e){var a,t=e.newRow,n=e.oldRow;null===(a=r.onUpdateRowFunction)||void 0===a||a.call(r,t,n)}))}),[r.updateParameters.timing,r.onUpdateRowFunction]),{setRows:i,setCols:c,setColValidators:d,setOnUpdateRowFunction:p,onPaste:f}};
2
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useReducer } from \"react\";\nimport { TPasteReducer, TPasteReducerReturn } from \"./types\";\nimport { useColumnValidatesContext } from \"../sheet/providers\";\n\nconst reducer: TPasteReducer = (state, action) => {\n switch (action.type) {\n case \"setRows\":\n return { ...state, rows: action.payload.rows };\n case \"setCols\":\n return { ...state, cols: action.payload.cols };\n case \"setColValidators\":\n return { ...state, colValidators: action.payload.colValidators };\n case \"setOnUpdateRowFunction\":\n return {\n ...state,\n onUpdateRowFunction: action.payload.onUpdateRowFunction,\n };\n case \"onPaste\":\n const { rowIndex, colIndex, pasteData } = action.payload;\n const { rows, cols, colValidators, onUpdateRowFunction } = state;\n\n if (!onUpdateRowFunction) {\n return state;\n }\n\n const updateParameters = {\n arguments: [] as { newRow: any; oldRow: any }[],\n timing: state.updateParameters.timing + 1,\n };\n\n const rowLength = pasteData.length;\n const colLength = Math.max(...pasteData.map((row) => row.length));\n\n if (rowLength === 0 || colLength === 0) return state;\n\n if (pasteData.length + rowIndex > rows.length) {\n alert(\"貼り付け先の行数が足りません。\");\n return state;\n }\n\n for (let i = 0; i < colLength; i++) {\n const col = cols[colIndex + i];\n\n if (!col.editable) {\n alert(\n `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? (col.key as string)\n }`\n );\n return state;\n }\n }\n\n if (colLength + colIndex > cols.length) {\n alert(\"貼り付け先の列数が足りません。\");\n return state;\n }\n\n for (let i = 0; i < rowLength; i++) {\n const pasteRow = pasteData[i];\n\n for (let j = 0; j < pasteRow.length; j++) {\n const pasteValue = pasteRow[j];\n const col = cols[colIndex + j];\n const validate = colValidators[col.key as string];\n\n if (!validate(pasteValue)) {\n alert(\n `[${\n col.label ?? (col.key as string)\n }]列に次の不正なデータが含まれています。\\n${pasteValue}`\n );\n return state;\n }\n }\n }\n\n pasteData.forEach((pasteRow, i) => {\n const row = { ...rows[rowIndex + i] };\n let checkUpdatedRow = false;\n\n pasteRow.forEach((pasteValue, j) => {\n const col = cols[colIndex + j];\n const value =\n col.type === \"number\"\n ? Number(pasteValue)\n : col.type === \"select\"\n ? pasteValue === \"\"\n ? \"\"\n : col.options.find((option) => option.label === pasteValue)!\n .value\n : pasteValue;\n if (row[col.key] !== value) {\n checkUpdatedRow = true;\n row[col.key] = value;\n }\n });\n\n if (checkUpdatedRow) {\n updateParameters.arguments.push({\n newRow: row,\n oldRow: rows[rowIndex + i],\n });\n }\n });\n\n if (updateParameters.arguments.length > 0) {\n return { ...state, updateParameters };\n } else {\n return state;\n }\n }\n};\n\nexport function usePasteReducer(initial: {\n rows: any[];\n cols: any[];\n colValidators: { [key: string]: (value: any) => boolean };\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}): TPasteReducerReturn {\n const [state, dispatch] = useReducer(reducer, {\n ...initial,\n updateParameters: { arguments: [], timing: 0 },\n });\n const validators = useColumnValidatesContext();\n\n const setRows = useCallback((rows: any[]) => {\n dispatch({ type: \"setRows\", payload: { rows } });\n }, []);\n\n const setCols = useCallback((cols: any[]) => {\n dispatch({ type: \"setCols\", payload: { cols } });\n }, []);\n\n const setColValidators = useCallback(\n (colValidators: { [key: string]: (value: any) => boolean }) => {\n dispatch({ type: \"setColValidators\", payload: { colValidators } });\n },\n []\n );\n\n useEffect(() => {\n setColValidators(validators);\n }, [validators]);\n\n const setOnUpdateRowFunction = useCallback(\n (onUpdateRowFunction?: (newRow: any, oldRow: any) => void) => {\n dispatch({\n type: \"setOnUpdateRowFunction\",\n payload: { onUpdateRowFunction },\n });\n },\n []\n );\n\n const onPaste = useCallback(\n (rowIndex: number, colIndex: number, pasteData: string[][]) => {\n dispatch({ type: \"onPaste\", payload: { rowIndex, colIndex, pasteData } });\n },\n []\n );\n\n useEffect(() => {\n if (state.updateParameters.arguments.length > 0) {\n state.updateParameters.arguments.forEach(({ newRow, oldRow }) => {\n state.onUpdateRowFunction?.(newRow, oldRow);\n });\n }\n }, [state.updateParameters.timing, state.onUpdateRowFunction]);\n\n return {\n setRows,\n setCols,\n setColValidators,\n setOnUpdateRowFunction,\n onPaste,\n };\n}\n"],"names":["reducer","state","action","type","__assign","rows","payload","cols","colValidators","onUpdateRowFunction","_c","rowIndex_1","rowIndex","colIndex_1","colIndex","pasteData","rows_1","cols_1","updateParameters_1","arguments","timing","updateParameters","rowLength","length","colLength","Math","max","apply","map","row","alert","i","col","editable","concat","_a","label","key","pasteRow","j","pasteValue","validate","_b","forEach","checkUpdatedRow","value","Number","options","find","option","push","newRow","oldRow","initial","useReducer","dispatch","validators","useColumnValidatesContext","setRows","useCallback","setCols","setColValidators","useEffect","setOnUpdateRowFunction","onPaste","call"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";var t=require("react/jsx-runtime"),e=require("react"),o=require("./hooks.js"),n=e.createContext({setRows:function(){},setCols:function(){},setColValidators:function(){},setOnUpdateRowFunction:function(){},onPaste:function(){}});exports.PasteProvider=function(e){var r=e.children,s=e.rows,i=e.cols,c=e.colValidators,u=e.onUpdateRowFunction,a=void 0===u?function(){}:u;return t.jsx(n.Provider,{value:o.usePasteReducer({rows:s,cols:i,colValidators:c,onUpdateRowFunction:a}),children:r})},exports.usePasteActionContext=function(){return e.useContext(n)};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/paste/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TPasteReducerReturn } from \"./types\";\nimport { usePasteReducer } from \"./hooks\";\n\nconst PasteContext = createContext<TPasteReducerReturn>({\n setRows: () => {},\n setCols: () => {},\n setColValidators: () => {},\n setOnUpdateRowFunction: () => {},\n onPaste: () => {},\n});\n\nexport function PasteProvider({\n children,\n rows,\n cols,\n colValidators,\n onUpdateRowFunction = () => {},\n}: {\n children: JSX.Element | JSX.Element[];\n rows: any[];\n cols: any[];\n colValidators: { [key: string]: (value: any) => boolean };\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}) {\n return (\n <PasteContext.Provider\n value={usePasteReducer({\n rows,\n cols,\n colValidators,\n onUpdateRowFunction,\n })}\n >\n {children}\n </PasteContext.Provider>\n );\n}\n\nexport function usePasteActionContext() {\n return useContext(PasteContext);\n}\n"],"names":["PasteContext","createContext","setRows","setCols","setColValidators","setOnUpdateRowFunction","onPaste","_a","children","rows","cols","colValidators","_b","onUpdateRowFunction","_jsx","Provider","value","usePasteReducer","useContext"],"mappings":"2FAIMA,EAAeC,EAAAA,cAAmC,CACtDC,QAAS,WAAQ,EACjBC,QAAS,WAAQ,EACjBC,iBAAkB,WAAQ,EAC1BC,uBAAwB,WAAQ,EAChCC,QAAS,WAAQ,0BAGb,SAAwBC,GAC5B,IAAAC,aACAC,EAAIF,EAAAE,KACJC,EAAIH,EAAAG,KACJC,EAAaJ,EAAAI,cACbC,EAA8BL,EAAAM,oBAA9BA,OAAsB,IAAAD,EAAA,WAAQ,EAAAA,EAQ9B,OACEE,MAACd,EAAae,SACZ,CAAAC,MAAOC,EAAAA,gBAAgB,CACrBR,KAAIA,EACJC,KAAIA,EACJC,cAAaA,EACbE,oBAAmBA,IAGpBL,SAAAA,GAGP,2CAGE,OAAOU,EAAAA,WAAWlB,EACpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),o=require("./providers.js"),t=require("../focus/provider.js"),n=require("../checkbox/components.js"),i=require("../cell/ui/cell.js"),c=r.memo((function(r){var c=t.useFocusActionContext().unfocus,a=JSON.parse(r.dataString);return e.jsx(o.RowProvider,{row:a,children:e.jsxs("tr",{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 ".concat(r.onClickRow?"hover:cursor-pointer":""," ").concat(r.applyRowFormatting?r.applyRowFormatting(a):""),onClick:function(e){e.preventDefault(),r.onClickRow&&(r.onClickRow(a),c())},"data-testid":a.id,children:[r.existCheckbox&&e.jsx("td",{children:e.jsx(n.Checkbox,{})}),r.cols.map((function(o,t){return e.jsx(i.TableCell,{rowIndex:r.rowIndex,colIndex:t,columnKey:o.key,isExistOnClickRow:!!r.onClickRow,onUpdateRow:r.onUpdateRow},o.key)}))]})})}));exports.Row=c;
2
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { RowProvider } from \"./providers\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataObject, 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 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\n return (\n <RowProvider row={row}>\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 />\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 columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n onUpdateRow={props.onUpdateRow}\n />\n );\n })}\n </tr>\n </RowProvider>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","_jsx","RowProvider","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","Checkbox","cols","map","col","j","jsx","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","onUpdateRow"],"mappings":"wMAiBaA,EAAMC,EAAIA,MAAC,SAAiCC,GAC/C,IAAAC,EAAYC,kCACdC,EAAMC,KAAKC,MAAML,EAAMM,YAE7B,OACEC,MAACC,EAAWA,YAAA,CAACL,IAAKA,WAChBM,EAAAA,KACE,KAAA,CAAAC,UAAW,0JACTC,OAAEX,EAAMY,WAAa,uBAAyB,GAAE,KAAAD,OAC9CX,EAAMa,mBAAqBb,EAAMa,mBAAmBV,GAAO,IAC/DW,QAAS,SAACC,GACRA,EAAEC,iBAEIhB,EAAMY,aACVZ,EAAMY,WAAWT,GACjBF,MAEH,cACYE,EAAIc,GAAEC,SAAA,CAElBlB,EAAMmB,eACLZ,MAAA,KAAA,CAAAW,SACEX,EAAAA,IAACa,EAAQA,eAGZpB,EAAMqB,KAAKC,KAAI,SAACC,EAAKC,GACpB,OACEjB,EAACkB,IAAAC,YAEC,CAAAC,SAAU3B,EAAM2B,SAChBC,SAAUJ,EACVK,UAAWN,EAAIO,IACfC,oBAAqB/B,EAAMY,WAC3BoB,YAAahC,EAAMgC,aALdT,EAAIO,IAQf,QAIR"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../hook.js"),n=require("../libs/generate-validate-function.js"),o=t.createContext({cols:[],rows:[]});var u=t.createContext({id:""});var s=t.createContext({cols:[],colMaps:{},validates:{}});exports.ColumnsProvider=function(r){var o=r.children,u=r.cols,i=t.useMemo((function(){return u.reduce((function(e,t){return e[t.key]=t,e}),{})}),[u]),c=t.useMemo((function(){return u.reduce((function(e,t){return e[t.key]=n.generateValidateFunction(t),e}),{})}),[u]),a=t.useMemo((function(){return{cols:u,colMaps:i,validates:c}}),[u]);return e.jsx(s.Provider,{value:a,children:o})},exports.ProcessedDataProvider=function(t){var n=t.children,u=t.props,s=r.useTable(u),i=s.cols,c=s.rows;return e.jsx(o.Provider,{value:{cols:i,rows:c},children:n})},exports.RowProvider=function(r){var n=r.children,o=r.row,s=t.useMemo((function(){return o}),[JSON.stringify(Object.keys(o).sort().reduce((function(e,t){return e[t]=o[t],e}),{}))]);return e.jsx(u.Provider,{value:s,children:n})},exports.useColumnContext=function(e){return t.useContext(s).colMaps[e]},exports.useColumnValidateContext=function(e){return t.useContext(s).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(s).validates},exports.useColumnsContext=function(){return t.useContext(s).cols},exports.useProcessedDataContext=function(){return t.useContext(o)},exports.useRowContext=function(){return t.useContext(u)};
2
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../libs/generate-validate-function.js"),r=t.createContext({id:""});var o=t.createContext({cols:[],colMaps:{},validates:{}});exports.ColumnsProvider=function(r){var u=r.children,s=r.cols,i=t.useMemo((function(){return s.reduce((function(e,t){return e[t.key]=t,e}),{})}),[s]),c=t.useMemo((function(){return s.reduce((function(e,t){return e[t.key]=n.generateValidateFunction(t),e}),{})}),[s]),a=t.useMemo((function(){return{cols:s,colMaps:i,validates:c}}),[s]);return e.jsx(o.Provider,{value:a,children:u})},exports.RowProvider=function(t){var n=t.children,o=t.row;return e.jsx(r.Provider,{value:o,children:n})},exports.useColumnContext=function(e){return t.useContext(o).colMaps[e]},exports.useColumnValidateContext=function(e){return t.useContext(o).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(o).validates},exports.useColumnsContext=function(){return t.useContext(o).cols},exports.useRowContext=function(){return t.useContext(r)};
3
3
  //# sourceMappingURL=providers.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react"),a=function(r,a){switch(a.type){case"changeKey":return{key:a.payload.key,asc:!0};case"changeOrder":return e.__assign(e.__assign({},r),{asc:!r.asc})}};exports.useSortReducer=function(n){var s,c,t=r.useReducer(a,{key:null!==(s=null==n?void 0:n.key)&&void 0!==s?s:"id",asc:null===(c=null==n?void 0:n.asc)||void 0===c||c}),u=t[0],y=t[1],i=r.useCallback((function(r){return e.__spreadArray([],r,!0).sort((function(e,r){return e[u.key]<r[u.key]?u.asc?-1:1:e[u.key]>r[u.key]?u.asc?1:-1:0}))}),[u]);return{key:u.key,asc:u.asc,changeKey:function(e){y({type:"changeKey",payload:{key:e}})},changeOrder:function(){y({type:"changeOrder"})},sort:i}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),a=require("react"),t=function(a,t){switch(t.type){case"changeKey":return{key:t.payload.key,asc:!0,isUpdatedData:!1,sortTiming:a.sortTiming+1};case"changeOrder":return a.isUpdatedData?e.__assign(e.__assign({},a),{isUpdatedData:!1,sortTiming:a.sortTiming+1}):e.__assign(e.__assign({},a),{asc:!a.asc,sortTiming:a.sortTiming+1});case"updateData":return e.__assign(e.__assign({},a),{isUpdatedData:!0})}};exports.useSortReducer=function(s){var i,n,r=a.useReducer(t,{key:null!==(i=null==s?void 0:s.key)&&void 0!==i?i:"id",asc:null===(n=null==s?void 0:s.asc)||void 0===n||n,isUpdatedData:!1,sortTiming:0}),c=r[0],d=r[1],u=function(e){d({type:"changeKey",payload:{key:e}})},o=function(){d({type:"changeOrder"})},y=function(){d({type:"updateData"})},g=a.useCallback((function(a){return e.__spreadArray([],a,!0).sort((function(e,a){return e[c.key]<a[c.key]?c.asc?-1:1:e[c.key]>a[c.key]?c.asc?1:-1:0}))}),[c.key,c.asc]);return{state:a.useMemo((function(){return{key:c.key,asc:c.asc,isUpdatedData:c.isUpdatedData}}),[c.key,c.asc,c.isUpdatedData]),actions:a.useMemo((function(){return{changeKey:u,changeOrder:o,updatedData:y,sort:g}}),[g]),sortTiming:c.sortTiming}};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, 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 { key: action.payload.key, asc: true };\n case \"changeOrder\":\n return { ...state, asc: !state.asc };\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 });\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 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]\n );\n\n return { key: state.key, asc: state.asc, changeKey, changeOrder, sort };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","__assign","initial","_c","useReducer","_a","_b","dispatch","sort","useCallback","rows","__spreadArray","a","b","changeKey","changeOrder"],"mappings":"0FAIMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CAAEC,IAAKF,EAAOG,QAAQD,IAAKE,KAAK,GACzC,IAAK,cACH,OAAYC,EAAAA,SAAAA,WAAA,CAAA,EAAAN,IAAOK,KAAML,EAAMK,MAErC,yBAEM,SAA+CE,WAI7CC,EAAoBC,EAAUA,WAACV,EAAS,CAC5CI,IAAiB,QAAZO,EAAAH,eAAAA,EAASJ,WAAG,IAAAO,EAAAA,EAAI,KACrBL,IAAiB,QAAZM,EAAAJ,eAAAA,EAASF,WAAG,IAAAM,GAAAA,IAFZX,EAAKQ,EAAA,GAAEI,OAaRC,EAAOC,eACX,SAAuBC,GACrB,OAAAC,EAAAA,cAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAEjB,EAAMG,KAAOe,EAAElB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBY,EAAEjB,EAAMG,KAAOe,EAAElB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GARA,GASF,CAACL,IAGH,MAAO,CAAEG,IAAKH,EAAMG,IAAKE,IAAKL,EAAMK,IAAKc,UAtBvB,SAAChB,GACjBS,EAAS,CAAEV,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAoBoDiB,YAlBhC,WAClBR,EAAS,CAAEV,KAAM,eACnB,EAgBiEW,KAAIA,EACvE"}
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,3 +1,3 @@
1
1
  "use client";
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./hooks.js"),n=r.createContext({key:"",asc:!1,changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]}});exports.SortProvider=function(r){return e.jsx(n.Provider,{value:t.useSortReducer(r.initialCondition),children:r.children})},exports.useSortContext=function(){return r.useContext(n)};
2
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("./hooks.js"),o=n.createContext(0),i=n.createContext({key:"",asc:!1,isUpdatedData:!1}),s=n.createContext({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});exports.SortProvider=function(e){var n=r.useSortReducer(e.initialCondition),u=n.state,c=n.actions,a=n.sortTiming;return t.jsx(o.Provider,{value:a,children:t.jsx(i.Provider,{value:u,children:t.jsx(s.Provider,{value:c,children:e.children})})})},exports.useSortActionContext=function(){return n.useContext(s)},exports.useSortContext=function(){return e.__assign(e.__assign(e.__assign({},n.useContext(i)),n.useContext(s)),{sortTiming:n.useContext(o)})},exports.useSortTimingContext=function(){return n.useContext(o)};
3
3
  //# sourceMappingURL=provider.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var a=require("../../../node_modules/tslib/tslib.es6.js"),o=require("react"),s=function(o,s){switch(s.type){case"setMaxDisplayRowCount":return a.__assign(a.__assign({},o),{maxDisplayRowCount:s.payload.maxDisplayRowCount});case"setMaxDisplayColCount":return a.__assign(a.__assign({},o),{maxDisplayColCount:s.payload.maxDisplayColCount})}};exports.useTablePropertyReducer=function(){var a=o.useReducer(s,{maxDisplayRowCount:0,maxDisplayColCount:0}),t=a[0],l=a[1],u=o.useCallback((function(a){l({type:"setMaxDisplayRowCount",payload:{maxDisplayRowCount:a}})}),[l]),e=o.useCallback((function(a){l({type:"setMaxDisplayColCount",payload:{maxDisplayColCount:a}})}),[l]);return{maxDisplayRowCount:t.maxDisplayRowCount,maxDisplayColCount:t.maxDisplayColCount,setMaxDisplayRowCount:u,setMaxDisplayColCount:e}};
1
+ "use strict";var a=require("../../../node_modules/tslib/tslib.es6.js"),o=require("react"),s=function(o,s){switch(s.type){case"setMaxDisplayRowCount":return o.maxDisplayRowCount===s.payload.maxDisplayRowCount?o:a.__assign(a.__assign({},o),{maxDisplayRowCount:s.payload.maxDisplayRowCount});case"setMaxDisplayColCount":return o.maxDisplayColCount===s.payload.maxDisplayColCount?o:a.__assign(a.__assign({},o),{maxDisplayColCount:s.payload.maxDisplayColCount})}};exports.useTablePropertyReducer=function(){var a=o.useReducer(s,{maxDisplayRowCount:0,maxDisplayColCount:0}),t=a[0],l=a[1];return{state:t,setMaxDisplayRowCount:o.useCallback((function(a){l({type:"setMaxDisplayRowCount",payload:{maxDisplayRowCount:a}})}),[]),setMaxDisplayColCount:o.useCallback((function(a){l({type:"setMaxDisplayColCount",payload:{maxDisplayColCount:a}})}),[])}};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback(\n (maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n },\n [dispatch]\n );\n\n const setMaxDisplayColCount = useCallback(\n (maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n },\n [dispatch]\n );\n\n return {\n maxDisplayRowCount: state.maxDisplayRowCount,\n maxDisplayColCount: state.maxDisplayColCount,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","__assign","maxDisplayRowCount","payload","maxDisplayColCount","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"0FAGMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OACKC,WAAAA,EAAAA,SAAA,CAAA,EAAAH,IACHI,mBAAoBH,EAAOI,QAAQD,qBAGvC,IAAK,wBACH,OACKD,WAAAA,EAAAA,SAAA,CAAA,EAAAH,IACHM,mBAAoBL,EAAOI,QAAQC,qBAG3C,6CAGQ,IAAAC,EAAoBC,EAAUA,WAACT,EAAS,CAC5CK,mBAAoB,EACpBE,mBAAoB,IAFfN,EAAKO,EAAA,GAAEE,OAKRC,EAAwBC,eAC5B,SAACP,GACCK,EAAS,CACPP,KAAM,wBACNG,QAAS,CAAED,mBAAkBA,IAEjC,GACA,CAACK,IAGGG,EAAwBD,eAC5B,SAACL,GACCG,EAAS,CACPP,KAAM,wBACNG,QAAS,CAAEC,mBAAkBA,IAEjC,GACA,CAACG,IAGH,MAAO,CACLL,mBAAoBJ,EAAMI,mBAC1BE,mBAAoBN,EAAMM,mBAC1BI,sBAAqBA,EACrBE,sBAAqBA,EAEzB"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n if (state.maxDisplayRowCount === action.payload.maxDisplayRowCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n if (state.maxDisplayColCount === action.payload.maxDisplayColCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback((maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n }, []);\n\n const setMaxDisplayColCount = useCallback((maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n }, []);\n\n return {\n state,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","maxDisplayRowCount","payload","__assign","maxDisplayColCount","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"0FAGMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OAAIF,EAAMG,qBAAuBF,EAAOG,QAAQD,mBACvCH,EAIJK,WAAAA,EAAAA,SAAA,CAAA,EAAAL,IACHG,mBAAoBF,EAAOG,QAAQD,qBAGvC,IAAK,wBACH,OAAIH,EAAMM,qBAAuBL,EAAOG,QAAQE,mBACvCN,EAIJK,WAAAA,EAAAA,SAAA,CAAA,EAAAL,IACHM,mBAAoBL,EAAOG,QAAQE,qBAG3C,6CAGQ,IAAAC,EAAoBC,EAAUA,WAACT,EAAS,CAC5CI,mBAAoB,EACpBG,mBAAoB,IAFfN,EAAKO,EAAA,GAAEE,OAmBd,MAAO,CACLT,MAAKA,EACLU,sBAhB4BC,eAAY,SAACR,GACzCM,EAAS,CACPP,KAAM,wBACNE,QAAS,CAAED,mBAAkBA,IAEhC,GAAE,IAYDS,sBAV4BD,eAAY,SAACL,GACzCG,EAAS,CACPP,KAAM,wBACNE,QAAS,CAAEE,mBAAkBA,IAEhC,GAAE,IAOL"}
@@ -1,2 +1,2 @@
1
- "use strict";require("../../../node_modules/tslib/tslib.es6.js");var e=require("react/jsx-runtime"),t=require("react"),o=require("./hook.js"),r=t.createContext({maxDisplayColCount:0,maxDisplayRowCount:0}),n=t.createContext({setMaxDisplayColCount:function(){},setMaxDisplayRowCount:function(){}});exports.TablePropertyProvider=function(u){var a=o.useTablePropertyReducer(),s=t.useMemo((function(){return{maxDisplayColCount:a.maxDisplayColCount,maxDisplayRowCount:a.maxDisplayRowCount}}),[a.maxDisplayColCount,a.maxDisplayRowCount]),i=t.useMemo((function(){return{setMaxDisplayColCount:a.setMaxDisplayColCount,setMaxDisplayRowCount:a.setMaxDisplayRowCount}}),[]);return e.jsx(r.Provider,{value:s,children:e.jsx(n.Provider,{value:i,children:u.children})})},exports.useTablePropertyActionContext=function(){return t.useContext(n)},exports.useTablePropertyStateContext=function(){return t.useContext(r)};
1
+ "use strict";require("../../../node_modules/tslib/tslib.es6.js");var e=require("react/jsx-runtime"),t=require("react"),r=require("./hook.js"),o=t.createContext({maxDisplayColCount:0,maxDisplayRowCount:0}),n=t.createContext({setMaxDisplayColCount:function(){},setMaxDisplayRowCount:function(){}});exports.TablePropertyProvider=function(s){var u=r.useTablePropertyReducer(),a=u.state,i=u.setMaxDisplayColCount,l=u.setMaxDisplayRowCount,x=t.useMemo((function(){return{setMaxDisplayColCount:i,setMaxDisplayRowCount:l}}),[]);return e.jsx(o.Provider,{value:a,children:e.jsx(n.Provider,{value:x,children:s.children})})},exports.useTablePropertyActionContext=function(){return t.useContext(n)},exports.useTablePropertyStateContext=function(){return t.useContext(o)};
2
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport {\n TTablePropertyActionContext,\n TTablePropertyStateContext,\n} from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyStateContext>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: JSX.Element | JSX.Element[];\n}) {\n const tableProperty = useTablePropertyReducer();\n\n const state = useMemo(() => {\n return {\n maxDisplayColCount: tableProperty.maxDisplayColCount,\n maxDisplayRowCount: tableProperty.maxDisplayRowCount,\n };\n }, [tableProperty.maxDisplayColCount, tableProperty.maxDisplayRowCount]);\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: tableProperty.setMaxDisplayColCount,\n setMaxDisplayRowCount: tableProperty.setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","props","tableProperty","useTablePropertyReducer","state","useMemo","action","_jsx","Provider","value","children","useContext"],"mappings":"8IAOMA,EAA4BC,EAAAA,cAA0C,CAC1EC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAAAA,cAA2C,CAC5EI,sBAAuB,WAAQ,EAC/BC,sBAAuB,WAAQ,kCAG3B,SAAgCC,GAGpC,IAAMC,EAAgBC,EAAAA,0BAEhBC,EAAQC,EAAAA,SAAQ,WACpB,MAAO,CACLT,mBAAoBM,EAAcN,mBAClCC,mBAAoBK,EAAcL,mBAErC,GAAE,CAACK,EAAcN,mBAAoBM,EAAcL,qBAE9CS,EAASD,EAAAA,SAAQ,WACrB,MAAO,CACLN,sBAAuBG,EAAcH,sBACrCC,sBAAuBE,EAAcF,sBAExC,GAAE,IAEH,OACEO,EAAAA,IAACb,EAA0Bc,UAASC,MAAOL,EAAKM,SAC9CH,MAACT,EAA2BU,SAAQ,CAACC,MAAOH,EAAMI,SAC/CT,EAAMS,YAIf,mDAOE,OAAOC,EAAAA,WAAWb,EACpB,kDALE,OAAOa,EAAAA,WAAWjB,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport { TTablePropertyActionContext, TTablePropertyState } from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyState>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: JSX.Element | JSX.Element[];\n}) {\n const { state, setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyReducer();\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: setMaxDisplayColCount,\n setMaxDisplayRowCount: setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","props","_a","useTablePropertyReducer","state","action","useMemo","_jsx","Provider","value","children","useContext"],"mappings":"8IAIMA,EAA4BC,EAAAA,cAAmC,CACnEC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAAAA,cAA2C,CAC5EI,sBAAuB,WAAQ,EAC/BC,sBAAuB,WAAQ,kCAG3B,SAAgCC,GAG9B,IAAAC,EACJC,EAAAA,0BADMC,EAAKF,EAAAE,MAAEL,EAAqBG,EAAAH,sBAAEC,EAAqBE,EAAAF,sBAGrDK,EAASC,EAAAA,SAAQ,WACrB,MAAO,CACLP,sBAAuBA,EACvBC,sBAAuBA,EAE1B,GAAE,IAEH,OACEO,EAAAA,IAACb,EAA0Bc,UAASC,MAAOL,EAAKM,SAC9CH,MAACT,EAA2BU,SAAQ,CAACC,MAAOJ,EAAMK,SAC/CT,EAAMS,YAIf,mDAOE,OAAOC,EAAAA,WAAWb,EACpB,kDALE,OAAOa,EAAAA,WAAWjB,EACpB"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{__assign as e}from"../../node_modules/tslib/tslib.es6.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";import{useTable as t}from"./hook.js";import{TableCell as i}from"./cell/ui/cell.js";import{TableHeaderElement as n}from"./header/header.js";import{PagenationProvider as l}from"./pagenation/providers.js";import{DisplayRange as c,Pagenation as a}from"./pagenation/components.js";import{FilterProvider as d,useFilterContext as s}from"./filter/provider.js";import{TableFilterRemoveButton as m,TableFilterForm as p}from"./filter/components.js";import"./sort/icon.js";import{SortProvider as h}from"./sort/provider.js";import{ProcessedDataProvider as f,ColumnsProvider as u,RowProvider as b}from"./sheet/providers.js";import{FocusProvider as v,useFocusActionContext as g}from"./focus/provider.js";import{CheckboxProvider as y,CheckboxStatusProvider as w}from"./checkbox/provider.js";import{AllCheckbox as x,Checkbox as j}from"./checkbox/components.js";import{IdGenerator as k}from"./libs/id-generator.js";import{EditProvider as C}from"./edit/provider.js";import{TablePropertyProvider as N}from"./table-property/provider.js";import{AutoUpdateTableProperty as R}from"./table-property/components/auto-update-table-property.js";import{KeyboardSetting as F}from"./operation/components/keyboard-setting.js";import{AutoSwitchEditMode as I}from"./table/components/auto-switch-edit-mode.js";function K(t){var i,n,c;return r(d,{children:r(h,{initialCondition:null===(i=t.initialCondition)||void 0===i?void 0:i.sort,children:r(l,{rowCount:t.rows.length,perPage:null===(c=null===(n=t.initialCondition)||void 0===n?void 0:n.pagenation)||void 0===c?void 0:c.rowCountPerPage,children:r(y,{checkbox:t.checkbox,children:r(w,{checkboxCount:t.rows.length,children:r(f,{props:t,children:r(u,{cols:t.cols,children:r(v,{children:r(C,{children:o(N,{children:[r(R,{}),r(I,{}),r(F,{}),r(P,e({},t))]})})})})})})})})})})}function P(e){var l=t(e),d=l.cols,h=l.rows,f=s().selectedFilterKey,u=g().unfocus;return o("div",{className:"w-full",children:[r("div",{className:"flex justify-end mb-1 mr-3",children:r(m,{children:r("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),r("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:o("table",{className:"table",children:[r("thead",{children:o("tr",{className:"sticky top-0 border-gray-200 z-20 bg-gray-200 text-gray-600 h-[32px]",children:[e.checkbox&&r("th",{children:r(x,{rows:e.rows})}),d.map((function(e,o){return r(n,{id:k.getTableColId(o),columnKey:e.key},e.key)}))]})}),o("tbody",{children:[!!f&&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(p,{})})}),0===h.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"})})}),h.map((function(t,n){return r(b,{row:t,children:o("tr",{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 ".concat(e.onClickRow?"hover:cursor-pointer":""," ").concat(e.applyRowFormatting?e.applyRowFormatting(t):""),onClick:function(r){r.preventDefault(),e.onClickRow&&(e.onClickRow(t),u())},"data-testid":t.id,children:[e.checkbox&&r("td",{children:r(j,{})}),d.map((function(o,t){return r(i,{rowIndex:n,colIndex:t,columnKey:o.key,isExistOnClickRow:!!e.onClickRow,onUpdateRow:e.onUpdateRow},o.key)}))]})},t.id)}))]})]})}),o("div",{className:"mt-1",children:[r(c,{}),r("div",{className:"mt-2",children:r(a,{})})]})]})}export{K as default};
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 d}from"./pagenation/components.js";import{FilterProvider as s,useFilterContext as c}from"./filter/provider.js";import{TableFilterRemoveButton as a,TableFilterForm as m}from"./filter/components.js";import"./sort/icon.js";import{SortProvider as p}from"./sort/provider.js";import{ColumnsProvider as h}from"./sheet/providers.js";import{FocusProvider as f}from"./focus/provider.js";import{CheckboxProvider as u,CheckboxStatusProvider as g}from"./checkbox/provider.js";import{AllCheckbox as b}from"./checkbox/components.js";import{IdGenerator as v}from"./libs/id-generator.js";import{EditProvider as w}from"./edit/provider.js";import{TablePropertyProvider as x}from"./table-property/provider.js";import{KeyboardSetting as j}from"./operation/components/keyboard-setting.js";import{AutoSwitchEditMode as y}from"./table/components/auto-switch-edit-mode.js";import{Row as k}from"./sheet/components.js";import{PasteProvider as N}from"./paste/provider.js";function C(t){var i,l,d;return r(s,{children:r(p,{initialCondition:null===(i=t.initialCondition)||void 0===i?void 0:i.sort,children:r(n,{rowCount:t.rows.length,perPage:null===(d=null===(l=t.initialCondition)||void 0===l?void 0:l.pagenation)||void 0===d?void 0:d.rowCountPerPage,children:r(u,{checkbox:t.checkbox,children:r(g,{checkboxCount:t.rows.length,children:r(h,{cols:t.cols,children:r(f,{children:r(w,{children:r(x,{children:e(N,{rows:t.rows,cols:t.cols,colValidators:{},onUpdateRowFunction:t.onUpdateRow,children:[r(y,{}),r(j,{}),r(R,o({},t))]})})})})})})})})})})}function R(o){var n=t(o),s=n.cols,p=n.rowMaps,h=n.pageRowIds,f=c().selectedFilterKey;return e("div",{className:"w-full",children:[r("div",{className:"flex justify-end mb-1 mr-3",children:r(a,{children:r("p",{className:"text-xs underline text-gray-500 hover:text-gray-700",children:"全てのフィルタリング条件を解除する"})})}),r("div",{id:"table-frame",className:"relative h-full max-w-full max-h-[80vh] border border-gray-200 rounded-md overflow-auto",children:e("table",{className:"table",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(b,{rows:o.rows})}),s.map((function(o,e){return r(i,{id:v.getTableColId(e),columnKey:o.key},o.key)}))]})}),e("tbody",{children:[!!f&&r("tr",{children:r("td",{colSpan:s.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(m,{})})}),0===h.length&&r("tr",{children:r("td",{colSpan:s.length,className:"py-5",children:r("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),h.map((function(e,t){return r(k,{existCheckbox:!!o.checkbox,rowIndex:t,dataString:p[e].stringValue,cols:o.cols,onClickRow:o.onClickRow,applyRowFormatting:o.applyRowFormatting,onUpdateRow:o.onUpdateRow},e)}))]})]})}),e("div",{className:"mt-1",children:[r(l,{}),r("div",{className:"mt-2",children:r(d,{})})]})]})}export{C as default};
3
3
  //# sourceMappingURL=base.js.map
@@ -1,2 +1,2 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{CancelIcon as n}from"../../cancel-icon.js";function o(o){return e("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[t("input",{id:"table-cell-form",className:"w-full py-1 px-2 bg-white text-gray-900",type:"text",value:o.value,onChange:o.onChange,onBlur:o.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(o.reset(),o.endEditing())}}),t("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){o.reset(),o.endEditing()}),300)},children:t(n,{size:16})})]})}export{o as CellInput};
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{CancelIcon as n}from"../../cancel-icon.js";function o(o){return e("div",{className:"flex justify-between gap-1 w-full items-center",onClick:function(e){e.preventDefault(),e.stopPropagation()},children:[t("input",{className:"w-full py-1 px-2 bg-white text-gray-900",type:"text",value:o.value,onChange:o.onChange,onBlur:o.onBlur,onKeyUp:function(e){e.preventDefault(),"Enter"===e.key?e.target.blur():"Escape"===e.key&&(o.reset(),o.endEditing())}}),t("button",{onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){o.reset(),o.endEditing()}),300)},children:t(n,{size:16})})]})}export{o as CellInput};
2
2
  //# sourceMappingURL=base-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-input.js","sources":["../../../../../../src/table/cell/ui/base-input.tsx"],"sourcesContent":["import { CancelIcon } from \"../../cancel-icon\";\n\nexport function CellInput(props: {\n value: string | number;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;\n reset: () => void;\n endEditing: () => void;\n}) {\n return (\n <div\n className={`flex justify-between gap-1 w-full items-center`}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <input\n id=\"table-cell-form\"\n className=\"w-full py-1 px-2 bg-white text-gray-900\"\n type=\"text\"\n value={props.value}\n onChange={props.onChange}\n onBlur={props.onBlur}\n onKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n if (e.key === \"Enter\") {\n (e.target as HTMLInputElement).blur();\n } else if (e.key === \"Escape\") {\n props.reset();\n props.endEditing();\n }\n }}\n />\n <button\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n props.reset();\n props.endEditing();\n }, 300);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </div>\n );\n}\n"],"names":["CellInput","props","_jsxs","className","onClick","e","preventDefault","stopPropagation","children","_jsx","id","type","value","onChange","onBlur","onKeyUp","key","target","blur","reset","endEditing","onMouseDown","setTimeout","CancelIcon","size"],"mappings":"oGAEM,SAAUA,EAAUC,GAOxB,OACEC,SACEC,UAAW,iDACXC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EAEAC,SAAA,CAAAC,EAAA,QAAA,CACEC,GAAG,kBACHP,UAAU,0CACVQ,KAAK,OACLC,MAAOX,EAAMW,MACbC,SAAUZ,EAAMY,SAChBC,OAAQb,EAAMa,OACdC,QAAS,SAACV,GACRA,EAAEC,iBACY,UAAVD,EAAEW,IACHX,EAAEY,OAA4BC,OACZ,WAAVb,EAAEW,MACXf,EAAMkB,QACNlB,EAAMmB,aAEV,IAEFX,EAAA,SAAA,CACEY,YAAa,SAAChB,GACZA,EAAEC,iBACFD,EAAEE,kBACFe,YAAW,WACTrB,EAAMkB,QACNlB,EAAMmB,YACP,GAAE,MACJZ,SAEDC,EAACc,EAAW,CAAAC,KAAM,SAI1B"}
1
+ {"version":3,"file":"base-input.js","sources":["../../../../../../src/table/cell/ui/base-input.tsx"],"sourcesContent":["import { CancelIcon } from \"../../cancel-icon\";\n\nexport function CellInput(props: {\n value: string | number;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;\n reset: () => void;\n endEditing: () => void;\n}) {\n return (\n <div\n className={`flex justify-between gap-1 w-full items-center`}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <input\n className=\"w-full py-1 px-2 bg-white text-gray-900\"\n type=\"text\"\n value={props.value}\n onChange={props.onChange}\n onBlur={props.onBlur}\n onKeyUp={(e: React.KeyboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n if (e.key === \"Enter\") {\n (e.target as HTMLInputElement).blur();\n } else if (e.key === \"Escape\") {\n props.reset();\n props.endEditing();\n }\n }}\n />\n <button\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n props.reset();\n props.endEditing();\n }, 300);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </div>\n );\n}\n"],"names":["CellInput","props","_jsxs","className","onClick","e","preventDefault","stopPropagation","children","_jsx","type","value","onChange","onBlur","onKeyUp","key","target","blur","reset","endEditing","onMouseDown","setTimeout","CancelIcon","size"],"mappings":"oGAEM,SAAUA,EAAUC,GAOxB,OACEC,SACEC,UAAW,iDACXC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EAEAC,SAAA,CAAAC,EAAA,QAAA,CACEN,UAAU,0CACVO,KAAK,OACLC,MAAOV,EAAMU,MACbC,SAAUX,EAAMW,SAChBC,OAAQZ,EAAMY,OACdC,QAAS,SAACT,GACRA,EAAEC,iBACY,UAAVD,EAAEU,IACHV,EAAEW,OAA4BC,OACZ,WAAVZ,EAAEU,MACXd,EAAMiB,QACNjB,EAAMkB,aAEV,IAEFV,EAAA,SAAA,CACEW,YAAa,SAACf,GACZA,EAAEC,iBACFD,EAAEE,kBACFc,YAAW,WACTpB,EAAMiB,QACNjB,EAAMkB,YACP,GAAE,MACJX,SAEDC,EAACa,EAAW,CAAAC,KAAM,SAI1B"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e,Fragment as t,jsxs as o}from"react/jsx-runtime";import{useCell as i}from"../../hook.js";import{EditButton as n}from"./edit-button.js";import{StringCellInput as l}from"./string-input.js";import{NumberCellInput as r}from"./number-input.js";import{SelectCellInput as c}from"./select-input.js";import{memo as a}from"react";import{IdGenerator as p}from"../../libs/id-generator.js";import{useCellContext as s,CellProvider as d}from"../provider.js";import{useColumnContext as u}from"../../sheet/providers.js";var m=a((function(o){return e(t,{children:"component"===o.type?o.component:e("div",{onDoubleClick:o.onDoubleClick,children:e("p",{className:"cell-data text-left whitespace-nowrap",children:o.component})})})})),f=a((function(t){var i=s();return e("td",{id:t.id,onPaste:function(e){e.preventDefault(),t.isExistOnUpdateRow?t.pasteData(e.clipboardData.getData("text")):alert("ペースト機能が有効化されていません。")},children:o("div",{className:"relative",onClick:t.isExistOnClickRow?void 0:function(e){e.preventDefault(),t.focusAtCell()},onDoubleClick:t.isExistOnClickRow?void 0:t.onDoubleClickCellToEdit,children:[e("div",{id:"".concat(t.id,"-display"),children:o("div",{className:"flex items-center gap-3 w-fit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),t.focusAtCell()},children:[e(m,{type:i.type,component:i.component,onDoubleClick:t.onDoubleClickCellToEdit}),t.editable&&e(n,{})]})}),t.editable&&o("div",{id:"".concat(t.id,"-editor"),className:"absolute top-0 left-0 w-full h-full grid place-items-center z-10 pr-2",onClick:t.preventPropagation,style:{opacity:0,pointerEvents:"none"},children:["string"===i.type&&e(l,{}),"number"===i.type&&e(r,{}),"select"===i.type&&e(c,{})]})]})})}));function C(t){var o,n=i(t.rowIndex,t.colIndex,t.onUpdateRow),l=n.focusAtCell,r=n.onDoubleClickCellToEdit,c=n.preventPropagation,a=n.pasteData,s=u(t.columnKey);return e(d,{columnKey:t.columnKey,children:e(f,{id:p.getTableCellId(t.rowIndex,t.colIndex),editable:null!==(o=s.editable)&&void 0!==o&&o,focusAtCell:l,onDoubleClickCellToEdit:r,preventPropagation:c,pasteData:a,isExistOnClickRow:t.isExistOnClickRow,isExistOnUpdateRow:!!t.onUpdateRow})})}export{C as TableCell};
2
+ import{jsx as e,Fragment as t,jsxs as o}from"react/jsx-runtime";import{useCell as i}from"../../hook.js";import{EditButton as n}from"./edit-button.js";import{StringCellInput as l}from"./string-input.js";import{NumberCellInput as r}from"./number-input.js";import{SelectCellInput as c}from"./select-input.js";import{memo as a}from"react";import{IdGenerator as p}from"../../libs/id-generator.js";import{useCellContext as s,CellProvider as d}from"../provider.js";import{useColumnContext as u}from"../../sheet/providers.js";var m=a((function(o){return e(t,{children:"component"===o.type?o.component:e("div",{onDoubleClick:o.onDoubleClick,children:e("p",{className:"cell-data text-left whitespace-nowrap",children:o.component})})})})),f=a((function(t){var i=s();return e("td",{id:t.id,onPaste:function(e){e.preventDefault(),t.isExistOnUpdateRow?t.pasteData(e.clipboardData.getData("text")):alert("ペースト機能が有効化されていません。")},children:o("div",{className:"relative",onClick:t.isExistOnClickRow?void 0:function(e){e.preventDefault(),t.focusAtCell()},onDoubleClick:t.isExistOnClickRow?void 0:t.onDoubleClickCellToEdit,children:[e("div",{id:"".concat(t.id,"-display"),children:o("div",{className:"flex items-center gap-3 w-fit p-2 cursor-default",onClick:function(e){e.preventDefault(),e.stopPropagation(),t.focusAtCell()},children:[e(m,{type:i.type,component:i.component,onDoubleClick:t.onDoubleClickCellToEdit}),t.editable&&e(n,{})]})}),t.editable&&o("div",{id:"".concat(t.id,"-editor"),className:"absolute top-0 left-0 w-full h-full grid place-items-center z-10 pr-2",onClick:t.preventPropagation,style:{opacity:0,pointerEvents:"none"},children:["string"===i.type&&e(l,{}),"number"===i.type&&e(r,{}),"select"===i.type&&e(c,{})]})]})})}));function C(t){var o,n=i(t.rowIndex,t.colIndex),l=n.focusAtCell,r=n.onDoubleClickCellToEdit,c=n.preventPropagation,a=n.pasteData,s=u(t.columnKey);return e(d,{columnKey:t.columnKey,children:e(f,{id:p.getTableCellId(t.rowIndex,t.colIndex),editable:null!==(o=s.editable)&&void 0!==o&&o,focusAtCell:l,onDoubleClickCellToEdit:r,preventPropagation:c,pasteData:a,isExistOnClickRow:t.isExistOnClickRow,isExistOnUpdateRow:!!t.onUpdateRow})})}export{C as TableCell};
3
3
  //# sourceMappingURL=cell.js.map
@@ -1,2 +1,2 @@
1
- import{__assign as r}from"../../node_modules/tslib/tslib.es6.js";import{useMemo as t,useEffect as o,useCallback as e}from"react";import{usePageContext as n}from"./pagenation/providers.js";import"react/jsx-runtime";import{useFilterContext as i}from"./filter/provider.js";import"./filter/constants.js";import{useProcessedDataContext as c,useColumnsContext as l,useColumnValidatesContext as a}from"./sheet/providers.js";import"./sort/icon.js";import{useSortContext as s}from"./sort/provider.js";import{useFocusActionContext as f}from"./focus/provider.js";import{useCheckboxStatusContext as u}from"./checkbox/provider.js";import{useEditActionContext as p}from"./edit/provider.js";function v(r){var e=i().filter,c=s().sort,l=n(),a=l.setRowCount,f=l.pageFilter,p=u().dispatchCheckboxStatus,v=t((function(){return e(r.rows)}),[e,r.rows]);o((function(){a(v.length)}),[v.length]);var m=t((function(){return r.checkbox?r.rows.filter((function(t){var o;return null===(o=r.checkbox)||void 0===o?void 0:o.checked(t)})):[]}),[r.checkbox,r.rows]);o((function(){p({type:"SET",payload:{checkedRecords:m}})}),[m]);var d=t((function(){return c(v)}),[v,c]),h=t((function(){return f(d)}),[f,d]);return{cols:r.cols,rows:h}}function m(t,o,n){var i=f(),s=p(),u=c().rows,v=l(),m=a(),d=e((function(){i.move(t,o),i.focus(t,o)}),[i,t,o]),h=e((function(e){var i,c,l=0,a=e.trim().replace(/\r\n/g,"\n").split("\n").map((function(r){var t=r.split("\t");return l=Math.max(l,t.length),t}));if(0!==a.length&&0!==l){for(var s=0;s<l;s++){if(!(p=v[o+s]).editable)return void alert("編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(i=p.label)&&void 0!==i?i:p.key))}if(a.length+t>u.length)alert("貼り付け先の行数が足りません。");else{for(s=0;s<a.length;s++)for(var f=0;f<a[s].length;f++){var p=v[o+f];if(!(0,m[p.key])(a[s][f]))return void alert("[".concat(null!==(c=p.label)&&void 0!==c?c:p.key,"]列に次の不正なデータが含まれています。\n").concat(a[s][f]))}var d=function(e){for(var i=!1,c=r({},u[t+e]),l=function(r){var t=v[o+r],n="number"===t.type?Number(a[e][r]):"select"===t.type?""===a[e][r]?"":t.options.find((function(t){return t.label===a[e][r]})).value:a[e][r];c[t.key]!==n&&(i=!0,c[t.key]=n)},s=0;s<a[e].length;s++)l(s);i&&n&&n(c,u[t+e])};for(s=0;s<a.length;s++)d(s)}}}),[t,o]);return{focusAtCell:d,onDoubleClickCellToEdit:e((function(r){r.preventDefault(),i.move(t,o),i.focus(t,o),s.startEditing()}),[i,s]),preventPropagation:e((function(r){r.preventDefault(),r.stopPropagation()}),[]),pasteData:h}}export{m as useCell,v as useTable};
1
+ import{useMemo as t,useEffect as r,useCallback as o}from"react";import{usePageContext as n}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{useFocusActionContext as i}from"./focus/provider.js";import{useCheckboxStatusContext as u}from"./checkbox/provider.js";import{useEditActionContext as c}from"./edit/provider.js";import{useSortActionContext as s,useSortTimingContext as a}from"./sort/provider.js";import{useTablePropertyActionContext as p}from"./table-property/provider.js";import{usePasteActionContext as f}from"./paste/provider.js";function l(o){var i=e().filter,c=s(),l=c.sort,d=c.updatedData,m=a(),v=n(),h=v.setRowCount,g=v.pageFilter,w=u().dispatchCheckboxStatus,j=f().setRows,k=p(),x=k.setMaxDisplayColCount,b=k.setMaxDisplayRowCount,C=t((function(){return i(o.rows)}),[i,m,o.rows.length]);r((function(){h(C.length)}),[C.length]);var y=t((function(){return o.checkbox?o.rows.filter((function(t){var r;return null===(r=o.checkbox)||void 0===r?void 0:r.checked(t)})):[]}),[o.checkbox,o.rows]);r((function(){w({type:"SET",payload:{checkedRecords:y}})}),[y]);var D=t((function(){return l(C)}),[C,m]);r((function(){d()}),[o.rows]);var R=t((function(){return g(D)}),[g,D]),S=t((function(){return R.map((function(t){return t.id}))}),[R]),E=t((function(){return new Set(S)}),[S]),M=t((function(){return o.rows.filter((function(t){return E.has(t.id)})).reduce((function(t,r){var o=Object.keys(r).sort().reduce((function(t,o){return t[o]=r[o],t}),{});return t[r.id]={data:o,stringValue:JSON.stringify(o)},t}),{})}),[o.rows,E]);return r((function(){x(o.cols.length)}),[o.cols.length]),r((function(){b(S.length)}),[S.length]),r((function(){j(S.map((function(t){return M[t].data})))}),[M]),{cols:o.cols,rowMaps:M,pageRowIds:S}}function d(t,r){var n=i(),e=c(),u=f().onPaste,s=o((function(){n.move(t,r),n.focus(t,r)}),[n,t,r]),a=o((function(o){var n=o.trim().replace(/\r\n/g,"\n").split("\n").map((function(t){return t.split("\t")}));u(t,r,n)}),[t,r]);return{focusAtCell:s,onDoubleClickCellToEdit:o((function(o){o.preventDefault(),n.move(t,r),n.focus(t,r),e.startEditing()}),[n,e,t,r]),preventPropagation:o((function(t){t.preventDefault(),t.stopPropagation()}),[]),pasteData:a}}export{d as useCell,l as useTable};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"./pagenation/providers\";\nimport { useFilterContext } from \"./filter\";\nimport { useSortContext } from \"./sort\";\nimport { useFocusActionContext } from \"./focus/provider\";\nimport { useCheckboxStatusContext } from \"./checkbox/provider\";\nimport { useEditActionContext } from \"./edit/provider\";\nimport {\n useColumnsContext,\n useColumnValidatesContext,\n useProcessedDataContext,\n} from \"./sheet/providers\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterContext();\n const { sort } = useSortContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n\n const filteredRows = useMemo(() => filter(props.rows), [filter, props.rows]);\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(() => sort(filteredRows), [filteredRows, sort]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n return {\n cols: props.cols,\n rows: pageRows,\n };\n}\n\nexport function useCell<T extends DataRecord>(\n rowIndex: number,\n colIndex: number,\n onUpdateRow?: (newRow: DataObject<T>, oldRow: DataObject<T>) => void\n) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const rows = useProcessedDataContext().rows;\n const cols = useColumnsContext();\n const colValidator = useColumnValidatesContext();\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const pasteData = useCallback(\n (text: string) => {\n let colLength = 0;\n\n const tableData = text\n .trim()\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((row) => {\n const colsData = row.split(\"\\t\");\n colLength = Math.max(colLength, colsData.length);\n return colsData;\n });\n\n if (tableData.length === 0 || colLength === 0) {\n return;\n }\n\n for (let i = 0; i < colLength; i++) {\n const col = cols[colIndex + i];\n\n if (!col.editable) {\n alert(\n `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? col.key\n }`\n );\n return;\n }\n }\n\n if (tableData.length + rowIndex > rows.length) {\n alert(\"貼り付け先の行数が足りません。\");\n return;\n }\n\n for (let i = 0; i < tableData.length; i++) {\n for (let j = 0; j < tableData[i].length; j++) {\n const col = cols[colIndex + j];\n const validate = colValidator[col.key];\n\n if (!validate(tableData[i][j])) {\n alert(\n `[${\n col.label ?? col.key\n }]列に次の不正なデータが含まれています。\\n${tableData[i][j]}`\n );\n return;\n }\n }\n }\n\n for (let i = 0; i < tableData.length; i++) {\n let checkUpdatedRow = false;\n const row = { ...rows[rowIndex + i] };\n\n for (let j = 0; j < tableData[i].length; j++) {\n const col = cols[colIndex + j];\n const value =\n col.type === \"number\"\n ? Number(tableData[i][j])\n : col.type === \"select\"\n ? tableData[i][j] === \"\"\n ? \"\"\n : col.options.find(\n (option) => option.label === tableData[i][j]\n )!.value\n : tableData[i][j];\n\n if (row[col.key] !== value) {\n checkUpdatedRow = true;\n\n row[col.key] = value;\n }\n }\n if (checkUpdatedRow && onUpdateRow)\n onUpdateRow!(\n row as DataObject<T>,\n rows[rowIndex + i] as DataObject<T>\n );\n }\n },\n [rowIndex, colIndex]\n );\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]\n );\n\n const preventPropagation: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return {\n focusAtCell,\n onDoubleClickCellToEdit,\n preventPropagation,\n pasteData,\n };\n}\n"],"names":["useTable","props","filter","useFilterContext","sort","useSortContext","_a","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","filteredRows","useMemo","rows","useEffect","length","checkBoxes","checkbox","row","checked","type","payload","checkedRecords","sortedRows","pageRows","cols","useCell","rowIndex","colIndex","onUpdateRow","focus","useFocusActionContext","editAction","useEditActionContext","useProcessedDataContext","useColumnsContext","colValidator","useColumnValidatesContext","focusAtCell","useCallback","move","pasteData","text","colLength","tableData","trim","replace","split","map","colsData","Math","max","i","col","editable","alert","concat","label","key","j","validate","_b","checkUpdatedRow","value","Number","options","find","option","onDoubleClickCellToEdit","e","preventDefault","startEditing","preventPropagation","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../src/table/hook.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, 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\";\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(rowIndex: number, colIndex: number) {\n const focus = useFocusActionContext();\n const editAction = useEditActionContext();\n const { onPaste } = usePasteActionContext();\n\n const focusAtCell = useCallback(() => {\n focus.move(rowIndex, colIndex);\n focus.focus(rowIndex, colIndex);\n }, [focus, rowIndex, colIndex]);\n\n const pasteData = useCallback(\n (text: string) => {\n const tableData = text\n .trim()\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((row) => row.split(\"\\t\"));\n\n onPaste(rowIndex, colIndex, tableData);\n },\n [rowIndex, colIndex]\n );\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 const preventPropagation: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n e.preventDefault();\n e.stopPropagation();\n }, []);\n\n return {\n focusAtCell,\n onDoubleClickCellToEdit,\n preventPropagation,\n pasteData,\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","onPaste","focusAtCell","useCallback","move","pasteData","text","tableData","trim","replace","split","onDoubleClickCellToEdit","e","preventDefault","startEditing","preventPropagation","stopPropagation"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__assign as t}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as e,useCallback as a,useEffect as o}from"react";import{useColumnValidatesContext as n}from"../sheet/providers.js";var r=function(e,a){var o,n;switch(a.type){case"setRows":return t(t({},e),{rows:a.payload.rows});case"setCols":return t(t({},e),{cols:a.payload.cols});case"setColValidators":return t(t({},e),{colValidators:a.payload.colValidators});case"setOnUpdateRowFunction":return t(t({},e),{onUpdateRowFunction:a.payload.onUpdateRowFunction});case"onPaste":var r=a.payload,l=r.rowIndex,s=r.colIndex,i=r.pasteData,u=e.rows,c=e.cols,d=e.colValidators;if(!e.onUpdateRowFunction)return e;var p={arguments:[],timing:e.updateParameters.timing+1},f=i.length,m=Math.max.apply(Math,i.map((function(t){return t.length})));if(0===f||0===m)return e;if(i.length+l>u.length)return alert("貼り付け先の行数が足りません。"),e;for(var w=0;w<m;w++){if(!(v=c[s+w]).editable)return alert("編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(o=v.label)&&void 0!==o?o:v.key)),e}if(m+s>c.length)return alert("貼り付け先の列数が足りません。"),e;for(w=0;w<f;w++)for(var y=i[w],g=0;g<y.length;g++){var v,h=y[g];if(!(0,d[(v=c[s+g]).key])(h))return alert("[".concat(null!==(n=v.label)&&void 0!==n?n:v.key,"]列に次の不正なデータが含まれています。\n").concat(h)),e}return i.forEach((function(e,a){var o=t({},u[l+a]),n=!1;e.forEach((function(t,e){var a=c[s+e],r="number"===a.type?Number(t):"select"===a.type?""===t?"":a.options.find((function(e){return e.label===t})).value:t;o[a.key]!==r&&(n=!0,o[a.key]=r)})),n&&p.arguments.push({newRow:o,oldRow:u[l+a]})})),p.arguments.length>0?t(t({},e),{updateParameters:p}):e}};function l(l){var s=e(r,t(t({},l),{updateParameters:{arguments:[],timing:0}})),i=s[0],u=s[1],c=n(),d=a((function(t){u({type:"setRows",payload:{rows:t}})}),[]),p=a((function(t){u({type:"setCols",payload:{cols:t}})}),[]),f=a((function(t){u({type:"setColValidators",payload:{colValidators:t}})}),[]);o((function(){f(c)}),[c]);var m=a((function(t){u({type:"setOnUpdateRowFunction",payload:{onUpdateRowFunction:t}})}),[]),w=a((function(t,e,a){u({type:"onPaste",payload:{rowIndex:t,colIndex:e,pasteData:a}})}),[]);return o((function(){i.updateParameters.arguments.length>0&&i.updateParameters.arguments.forEach((function(t){var e,a=t.newRow,o=t.oldRow;null===(e=i.onUpdateRowFunction)||void 0===e||e.call(i,a,o)}))}),[i.updateParameters.timing,i.onUpdateRowFunction]),{setRows:d,setCols:p,setColValidators:f,setOnUpdateRowFunction:m,onPaste:w}}export{l as usePasteReducer};
2
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useReducer } from \"react\";\nimport { TPasteReducer, TPasteReducerReturn } from \"./types\";\nimport { useColumnValidatesContext } from \"../sheet/providers\";\n\nconst reducer: TPasteReducer = (state, action) => {\n switch (action.type) {\n case \"setRows\":\n return { ...state, rows: action.payload.rows };\n case \"setCols\":\n return { ...state, cols: action.payload.cols };\n case \"setColValidators\":\n return { ...state, colValidators: action.payload.colValidators };\n case \"setOnUpdateRowFunction\":\n return {\n ...state,\n onUpdateRowFunction: action.payload.onUpdateRowFunction,\n };\n case \"onPaste\":\n const { rowIndex, colIndex, pasteData } = action.payload;\n const { rows, cols, colValidators, onUpdateRowFunction } = state;\n\n if (!onUpdateRowFunction) {\n return state;\n }\n\n const updateParameters = {\n arguments: [] as { newRow: any; oldRow: any }[],\n timing: state.updateParameters.timing + 1,\n };\n\n const rowLength = pasteData.length;\n const colLength = Math.max(...pasteData.map((row) => row.length));\n\n if (rowLength === 0 || colLength === 0) return state;\n\n if (pasteData.length + rowIndex > rows.length) {\n alert(\"貼り付け先の行数が足りません。\");\n return state;\n }\n\n for (let i = 0; i < colLength; i++) {\n const col = cols[colIndex + i];\n\n if (!col.editable) {\n alert(\n `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? (col.key as string)\n }`\n );\n return state;\n }\n }\n\n if (colLength + colIndex > cols.length) {\n alert(\"貼り付け先の列数が足りません。\");\n return state;\n }\n\n for (let i = 0; i < rowLength; i++) {\n const pasteRow = pasteData[i];\n\n for (let j = 0; j < pasteRow.length; j++) {\n const pasteValue = pasteRow[j];\n const col = cols[colIndex + j];\n const validate = colValidators[col.key as string];\n\n if (!validate(pasteValue)) {\n alert(\n `[${\n col.label ?? (col.key as string)\n }]列に次の不正なデータが含まれています。\\n${pasteValue}`\n );\n return state;\n }\n }\n }\n\n pasteData.forEach((pasteRow, i) => {\n const row = { ...rows[rowIndex + i] };\n let checkUpdatedRow = false;\n\n pasteRow.forEach((pasteValue, j) => {\n const col = cols[colIndex + j];\n const value =\n col.type === \"number\"\n ? Number(pasteValue)\n : col.type === \"select\"\n ? pasteValue === \"\"\n ? \"\"\n : col.options.find((option) => option.label === pasteValue)!\n .value\n : pasteValue;\n if (row[col.key] !== value) {\n checkUpdatedRow = true;\n row[col.key] = value;\n }\n });\n\n if (checkUpdatedRow) {\n updateParameters.arguments.push({\n newRow: row,\n oldRow: rows[rowIndex + i],\n });\n }\n });\n\n if (updateParameters.arguments.length > 0) {\n return { ...state, updateParameters };\n } else {\n return state;\n }\n }\n};\n\nexport function usePasteReducer(initial: {\n rows: any[];\n cols: any[];\n colValidators: { [key: string]: (value: any) => boolean };\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}): TPasteReducerReturn {\n const [state, dispatch] = useReducer(reducer, {\n ...initial,\n updateParameters: { arguments: [], timing: 0 },\n });\n const validators = useColumnValidatesContext();\n\n const setRows = useCallback((rows: any[]) => {\n dispatch({ type: \"setRows\", payload: { rows } });\n }, []);\n\n const setCols = useCallback((cols: any[]) => {\n dispatch({ type: \"setCols\", payload: { cols } });\n }, []);\n\n const setColValidators = useCallback(\n (colValidators: { [key: string]: (value: any) => boolean }) => {\n dispatch({ type: \"setColValidators\", payload: { colValidators } });\n },\n []\n );\n\n useEffect(() => {\n setColValidators(validators);\n }, [validators]);\n\n const setOnUpdateRowFunction = useCallback(\n (onUpdateRowFunction?: (newRow: any, oldRow: any) => void) => {\n dispatch({\n type: \"setOnUpdateRowFunction\",\n payload: { onUpdateRowFunction },\n });\n },\n []\n );\n\n const onPaste = useCallback(\n (rowIndex: number, colIndex: number, pasteData: string[][]) => {\n dispatch({ type: \"onPaste\", payload: { rowIndex, colIndex, pasteData } });\n },\n []\n );\n\n useEffect(() => {\n if (state.updateParameters.arguments.length > 0) {\n state.updateParameters.arguments.forEach(({ newRow, oldRow }) => {\n state.onUpdateRowFunction?.(newRow, oldRow);\n });\n }\n }, [state.updateParameters.timing, state.onUpdateRowFunction]);\n\n return {\n setRows,\n setCols,\n setColValidators,\n setOnUpdateRowFunction,\n onPaste,\n };\n}\n"],"names":["reducer","state","action","type","__assign","rows","payload","cols","colValidators","onUpdateRowFunction","_c","rowIndex_1","rowIndex","colIndex_1","colIndex","pasteData","rows_1","cols_1","updateParameters_1","arguments","timing","updateParameters","rowLength","length","colLength","Math","max","apply","map","row","alert","i","col","editable","concat","_a","label","key","pasteRow","j","pasteValue","validate","_b","forEach","checkUpdatedRow","value","Number","options","find","option","push","newRow","oldRow","usePasteReducer","initial","useReducer","dispatch","validators","useColumnValidatesContext","setRows","useCallback","setCols","setColValidators","useEffect","setOnUpdateRowFunction","onPaste","call"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{createContext as n,useContext as t}from"react";import{usePasteReducer as r}from"./hooks.js";var i=n({setRows:function(){},setCols:function(){},setColValidators:function(){},setOnUpdateRowFunction:function(){},onPaste:function(){}});function c(n){var t=n.children,c=n.rows,e=n.cols,s=n.colValidators,a=n.onUpdateRowFunction,u=void 0===a?function(){}:a;return o(i.Provider,{value:r({rows:c,cols:e,colValidators:s,onUpdateRowFunction:u}),children:t})}function e(){return t(i)}export{c as PasteProvider,e as usePasteActionContext};
2
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/paste/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TPasteReducerReturn } from \"./types\";\nimport { usePasteReducer } from \"./hooks\";\n\nconst PasteContext = createContext<TPasteReducerReturn>({\n setRows: () => {},\n setCols: () => {},\n setColValidators: () => {},\n setOnUpdateRowFunction: () => {},\n onPaste: () => {},\n});\n\nexport function PasteProvider({\n children,\n rows,\n cols,\n colValidators,\n onUpdateRowFunction = () => {},\n}: {\n children: JSX.Element | JSX.Element[];\n rows: any[];\n cols: any[];\n colValidators: { [key: string]: (value: any) => boolean };\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}) {\n return (\n <PasteContext.Provider\n value={usePasteReducer({\n rows,\n cols,\n colValidators,\n onUpdateRowFunction,\n })}\n >\n {children}\n </PasteContext.Provider>\n );\n}\n\nexport function usePasteActionContext() {\n return useContext(PasteContext);\n}\n"],"names":["PasteContext","createContext","setRows","setCols","setColValidators","setOnUpdateRowFunction","onPaste","PasteProvider","_a","children","rows","cols","colValidators","_b","onUpdateRowFunction","_jsx","Provider","value","usePasteReducer","usePasteActionContext","useContext"],"mappings":"2IAIA,IAAMA,EAAeC,EAAmC,CACtDC,QAAS,WAAQ,EACjBC,QAAS,WAAQ,EACjBC,iBAAkB,WAAQ,EAC1BC,uBAAwB,WAAQ,EAChCC,QAAS,WAAQ,IAGb,SAAUC,EAAcC,GAC5B,IAAAC,aACAC,EAAIF,EAAAE,KACJC,EAAIH,EAAAG,KACJC,EAAaJ,EAAAI,cACbC,EAA8BL,EAAAM,oBAA9BA,OAAsB,IAAAD,EAAA,WAAQ,EAAAA,EAQ9B,OACEE,EAACf,EAAagB,SACZ,CAAAC,MAAOC,EAAgB,CACrBR,KAAIA,EACJC,KAAIA,EACJC,cAAaA,EACbE,oBAAmBA,IAGpBL,SAAAA,GAGP,UAEgBU,IACd,OAAOC,EAAWpB,EACpB"}
@@ -0,0 +1,2 @@
1
+ import{jsx as o,jsxs as r}from"react/jsx-runtime";import{memo as e}from"react";import{RowProvider as t}from"./providers.js";import{useFocusActionContext as n}from"../focus/provider.js";import{Checkbox as i}from"../checkbox/components.js";import{TableCell as a}from"../cell/ui/cell.js";var c=e((function(e){var c=n().unfocus,l=JSON.parse(e.dataString);return o(t,{row:l,children:r("tr",{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 ".concat(e.onClickRow?"hover:cursor-pointer":""," ").concat(e.applyRowFormatting?e.applyRowFormatting(l):""),onClick:function(o){o.preventDefault(),e.onClickRow&&(e.onClickRow(l),c())},"data-testid":l.id,children:[e.existCheckbox&&o("td",{children:o(i,{})}),e.cols.map((function(r,t){return o(a,{rowIndex:e.rowIndex,colIndex:t,columnKey:r.key,isExistOnClickRow:!!e.onClickRow,onUpdateRow:e.onUpdateRow},r.key)}))]})})}));export{c as Row};
2
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { RowProvider } from \"./providers\";\nimport { useFocusActionContext } from \"../focus/provider\";\nimport { DataObject, 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 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\n return (\n <RowProvider row={row}>\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 />\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 columnKey={col.key as string}\n isExistOnClickRow={!!props.onClickRow}\n onUpdateRow={props.onUpdateRow}\n />\n );\n })}\n </tr>\n </RowProvider>\n );\n});\n"],"names":["Row","memo","props","unfocus","useFocusActionContext","row","JSON","parse","dataString","_jsx","RowProvider","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","Checkbox","cols","map","col","j","TableCell","rowIndex","colIndex","columnKey","key","isExistOnClickRow","onUpdateRow"],"mappings":"iSAiBaA,EAAMC,GAAK,SAAiCC,GAC/C,IAAAC,EAAYC,YACdC,EAAMC,KAAKC,MAAML,EAAMM,YAE7B,OACEC,EAACC,EAAW,CAACL,IAAKA,WAChBM,EACE,KAAA,CAAAC,UAAW,0JACTC,OAAEX,EAAMY,WAAa,uBAAyB,GAAE,KAAAD,OAC9CX,EAAMa,mBAAqBb,EAAMa,mBAAmBV,GAAO,IAC/DW,QAAS,SAACC,GACRA,EAAEC,iBAEIhB,EAAMY,aACVZ,EAAMY,WAAWT,GACjBF,MAEH,cACYE,EAAIc,GAAEC,SAAA,CAElBlB,EAAMmB,eACLZ,EAAA,KAAA,CAAAW,SACEX,EAACa,QAGJpB,EAAMqB,KAAKC,KAAI,SAACC,EAAKC,GACpB,OACEjB,EAACkB,EAEC,CAAAC,SAAU1B,EAAM0B,SAChBC,SAAUH,EACVI,UAAWL,EAAIM,IACfC,oBAAqB9B,EAAMY,WAC3BmB,YAAa/B,EAAM+B,aALdR,EAAIM,IAQf,QAIR"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as r}from"react/jsx-runtime";import{createContext as n,useContext as e,useMemo as t}from"react";import{useTable as o}from"../hook.js";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var u=n({cols:[],rows:[]});function c(n){var e=n.children,t=n.props,i=o(t),c=i.cols,a=i.rows;return r(u.Provider,{value:{cols:c,rows:a},children:e})}function a(){return e(u)}var l=n({id:""});function s(n){var e=n.children,o=n.row,i=t((function(){return o}),[JSON.stringify(Object.keys(o).sort().reduce((function(r,n){return r[n]=o[n],r}),{}))]);return r(l.Provider,{value:i,children:e})}function f(){return e(l)}var d=n({cols:[],colMaps:{},validates:{}});function v(n){var e=n.children,o=n.cols,u=t((function(){return o.reduce((function(r,n){return r[n.key]=n,r}),{})}),[o]),c=t((function(){return o.reduce((function(r,n){return r[n.key]=i(n),r}),{})}),[o]),a=t((function(){return{cols:o,colMaps:u,validates:c}}),[o]);return r(d.Provider,{value:a,children:e})}function p(r){return e(d).colMaps[r]}function m(){return e(d).cols}function h(r){return e(d).validates[r]}function j(){return e(d).validates}export{v as ColumnsProvider,c as ProcessedDataProvider,s as RowProvider,p as useColumnContext,h as useColumnValidateContext,j as useColumnValidatesContext,m as useColumnsContext,a as useProcessedDataContext,f as useRowContext};
2
+ import{jsx as r}from"react/jsx-runtime";import{createContext as n,useContext as e,useMemo as t}from"react";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var o=n({id:""});function u(n){var e=n.children,t=n.row;return r(o.Provider,{value:t,children:e})}function c(){return e(o)}var a=n({cols:[],colMaps:{},validates:{}});function l(n){var e=n.children,o=n.cols,u=t((function(){return o.reduce((function(r,n){return r[n.key]=n,r}),{})}),[o]),c=t((function(){return o.reduce((function(r,n){return r[n.key]=i(n),r}),{})}),[o]),l=t((function(){return{cols:o,colMaps:u,validates:c}}),[o]);return r(a.Provider,{value:l,children:e})}function f(r){return e(a).colMaps[r]}function d(){return e(a).cols}function s(r){return e(a).validates[r]}function v(){return e(a).validates}export{l as ColumnsProvider,u as RowProvider,f as useColumnContext,s as useColumnValidateContext,v as useColumnValidatesContext,d as useColumnsContext,c as useRowContext};
3
3
  //# sourceMappingURL=providers.js.map
@@ -1,2 +1,2 @@
1
- import{__spreadArray as e,__assign as n}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as r,useCallback as c}from"react";var a=function(e,r){switch(r.type){case"changeKey":return{key:r.payload.key,asc:!0};case"changeOrder":return n(n({},e),{asc:!e.asc})}};function t(n){var t,o,s=r(a,{key:null!==(t=null==n?void 0:n.key)&&void 0!==t?t:"id",asc:null===(o=null==n?void 0:n.asc)||void 0===o||o}),y=s[0],i=s[1],u=c((function(n){return e([],n,!0).sort((function(e,n){return e[y.key]<n[y.key]?y.asc?-1:1:e[y.key]>n[y.key]?y.asc?1:-1:0}))}),[y]);return{key:y.key,asc:y.asc,changeKey:function(e){i({type:"changeKey",payload:{key:e}})},changeOrder:function(){i({type:"changeOrder"})},sort:u}}export{t as useSortReducer};
1
+ import{__spreadArray as t,__assign as a}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as e,useCallback as n,useMemo as i}from"react";var r=function(t,e){switch(e.type){case"changeKey":return{key:e.payload.key,asc:!0,isUpdatedData:!1,sortTiming:t.sortTiming+1};case"changeOrder":return t.isUpdatedData?a(a({},t),{isUpdatedData:!1,sortTiming:t.sortTiming+1}):a(a({},t),{asc:!t.asc,sortTiming:t.sortTiming+1});case"updateData":return a(a({},t),{isUpdatedData:!0})}};function s(a){var s,o,c=e(r,{key:null!==(s=null==a?void 0:a.key)&&void 0!==s?s:"id",asc:null===(o=null==a?void 0:a.asc)||void 0===o||o,isUpdatedData:!1,sortTiming:0}),d=c[0],u=c[1],y=function(t){u({type:"changeKey",payload:{key:t}})},p=function(){u({type:"changeOrder"})},g=function(){u({type:"updateData"})},m=n((function(a){return t([],a,!0).sort((function(t,a){return t[d.key]<a[d.key]?d.asc?-1:1:t[d.key]>a[d.key]?d.asc?1:-1:0}))}),[d.key,d.asc]);return{state:i((function(){return{key:d.key,asc:d.asc,isUpdatedData:d.isUpdatedData}}),[d.key,d.asc,d.isUpdatedData]),actions:i((function(){return{changeKey:y,changeOrder:p,updatedData:g,sort:m}}),[m]),sortTiming:d.sortTiming}}export{s as useSortReducer};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, 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 { key: action.payload.key, asc: true };\n case \"changeOrder\":\n return { ...state, asc: !state.asc };\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 });\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 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]\n );\n\n return { key: state.key, asc: state.asc, changeKey, changeOrder, sort };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","__assign","useSortReducer","initial","_c","useReducer","_a","_b","dispatch","sort","useCallback","rows","__spreadArray","a","b","changeKey","changeOrder"],"mappings":"2IAIA,IAAMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CAAEC,IAAKF,EAAOG,QAAQD,IAAKE,KAAK,GACzC,IAAK,cACH,OAAYC,EAAAA,EAAA,CAAA,EAAAN,IAAOK,KAAML,EAAMK,MAErC,EAEM,SAAUE,EAAqCC,WAI7CC,EAAoBC,EAAWX,EAAS,CAC5CI,IAAiB,QAAZQ,EAAAH,eAAAA,EAASL,WAAG,IAAAQ,EAAAA,EAAI,KACrBN,IAAiB,QAAZO,EAAAJ,eAAAA,EAASH,WAAG,IAAAO,GAAAA,IAFZZ,EAAKS,EAAA,GAAEI,OAaRC,EAAOC,GACX,SAAuBC,GACrB,OAAAC,EAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,OAAID,EAAElB,EAAMG,KAAOgB,EAAEnB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBa,EAAElB,EAAMG,KAAOgB,EAAEnB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GARA,GASF,CAACL,IAGH,MAAO,CAAEG,IAAKH,EAAMG,IAAKE,IAAKL,EAAMK,IAAKe,UAtBvB,SAACjB,GACjBU,EAAS,CAAEX,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAoBoDkB,YAlBhC,WAClBR,EAAS,CAAEX,KAAM,eACnB,EAgBiEY,KAAIA,EACvE"}
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,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as r}from"react/jsx-runtime";import{createContext as n,useContext as o}from"react";import{useSortReducer as t}from"./hooks.js";var e=n({key:"",asc:!1,changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]}});function i(n){return r(e.Provider,{value:t(n.initialCondition),children:n.children})}function c(){return o(e)}export{i as SortProvider,c as useSortContext};
2
+ import{__assign as r}from"../../../node_modules/tslib/tslib.es6.js";import{jsx as n}from"react/jsx-runtime";import{createContext as t,useContext as e}from"react";import{useSortReducer as o}from"./hooks.js";var i=t(0),u=t({key:"",asc:!1,isUpdatedData:!1}),c=t({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});function a(r){var t=o(r.initialCondition),e=t.state,a=t.actions,d=t.sortTiming;return n(i.Provider,{value:d,children:n(u.Provider,{value:e,children:n(c.Provider,{value:a,children:r.children})})})}function d(){return r(r(r({},e(u)),e(c)),{sortTiming:e(i)})}function m(){return e(c)}function s(){return e(i)}export{a as SortProvider,m as useSortActionContext,d as useSortContext,s as useSortTimingContext};
3
3
  //# sourceMappingURL=provider.js.map
@@ -1,2 +1,2 @@
1
- import{__assign as o}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as a,useCallback as t}from"react";var l=function(a,t){switch(t.type){case"setMaxDisplayRowCount":return o(o({},a),{maxDisplayRowCount:t.payload.maxDisplayRowCount});case"setMaxDisplayColCount":return o(o({},a),{maxDisplayColCount:t.payload.maxDisplayColCount})}};function s(){var o=a(l,{maxDisplayRowCount:0,maxDisplayColCount:0}),s=o[0],n=o[1],p=t((function(o){n({type:"setMaxDisplayRowCount",payload:{maxDisplayRowCount:o}})}),[n]),i=t((function(o){n({type:"setMaxDisplayColCount",payload:{maxDisplayColCount:o}})}),[n]);return{maxDisplayRowCount:s.maxDisplayRowCount,maxDisplayColCount:s.maxDisplayColCount,setMaxDisplayRowCount:p,setMaxDisplayColCount:i}}export{s as useTablePropertyReducer};
1
+ import{__assign as a}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as o,useCallback as t}from"react";var l=function(o,t){switch(t.type){case"setMaxDisplayRowCount":return o.maxDisplayRowCount===t.payload.maxDisplayRowCount?o:a(a({},o),{maxDisplayRowCount:t.payload.maxDisplayRowCount});case"setMaxDisplayColCount":return o.maxDisplayColCount===t.payload.maxDisplayColCount?o:a(a({},o),{maxDisplayColCount:t.payload.maxDisplayColCount})}};function s(){var a=o(l,{maxDisplayRowCount:0,maxDisplayColCount:0}),s=a[0],n=a[1];return{state:s,setMaxDisplayRowCount:t((function(a){n({type:"setMaxDisplayRowCount",payload:{maxDisplayRowCount:a}})}),[]),setMaxDisplayColCount:t((function(a){n({type:"setMaxDisplayColCount",payload:{maxDisplayColCount:a}})}),[])}}export{s as useTablePropertyReducer};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback(\n (maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n },\n [dispatch]\n );\n\n const setMaxDisplayColCount = useCallback(\n (maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n },\n [dispatch]\n );\n\n return {\n maxDisplayRowCount: state.maxDisplayRowCount,\n maxDisplayColCount: state.maxDisplayColCount,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","__assign","maxDisplayRowCount","payload","maxDisplayColCount","useTablePropertyReducer","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"wHAGA,IAAMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OACKC,EAAAA,EAAA,CAAA,EAAAH,IACHI,mBAAoBH,EAAOI,QAAQD,qBAGvC,IAAK,wBACH,OACKD,EAAAA,EAAA,CAAA,EAAAH,IACHM,mBAAoBL,EAAOI,QAAQC,qBAG3C,WAEgBC,IACR,IAAAC,EAAoBC,EAAWV,EAAS,CAC5CK,mBAAoB,EACpBE,mBAAoB,IAFfN,EAAKQ,EAAA,GAAEE,OAKRC,EAAwBC,GAC5B,SAACR,GACCM,EAAS,CACPR,KAAM,wBACNG,QAAS,CAAED,mBAAkBA,IAEjC,GACA,CAACM,IAGGG,EAAwBD,GAC5B,SAACN,GACCI,EAAS,CACPR,KAAM,wBACNG,QAAS,CAAEC,mBAAkBA,IAEjC,GACA,CAACI,IAGH,MAAO,CACLN,mBAAoBJ,EAAMI,mBAC1BE,mBAAoBN,EAAMM,mBAC1BK,sBAAqBA,EACrBE,sBAAqBA,EAEzB"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n if (state.maxDisplayRowCount === action.payload.maxDisplayRowCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n if (state.maxDisplayColCount === action.payload.maxDisplayColCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback((maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n }, []);\n\n const setMaxDisplayColCount = useCallback((maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n }, []);\n\n return {\n state,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","maxDisplayRowCount","payload","__assign","maxDisplayColCount","useTablePropertyReducer","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"wHAGA,IAAMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OAAIF,EAAMG,qBAAuBF,EAAOG,QAAQD,mBACvCH,EAIJK,EAAAA,EAAA,CAAA,EAAAL,IACHG,mBAAoBF,EAAOG,QAAQD,qBAGvC,IAAK,wBACH,OAAIH,EAAMM,qBAAuBL,EAAOG,QAAQE,mBACvCN,EAIJK,EAAAA,EAAA,CAAA,EAAAL,IACHM,mBAAoBL,EAAOG,QAAQE,qBAG3C,WAEgBC,IACR,IAAAC,EAAoBC,EAAWV,EAAS,CAC5CI,mBAAoB,EACpBG,mBAAoB,IAFfN,EAAKQ,EAAA,GAAEE,OAmBd,MAAO,CACLV,MAAKA,EACLW,sBAhB4BC,GAAY,SAACT,GACzCO,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAED,mBAAkBA,IAEhC,GAAE,IAYDU,sBAV4BD,GAAY,SAACN,GACzCI,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAEE,mBAAkBA,IAEhC,GAAE,IAOL"}
@@ -1,2 +1,2 @@
1
- import"../../../node_modules/tslib/tslib.es6.js";import{jsx as o}from"react/jsx-runtime";import{createContext as t,useMemo as n,useContext as a}from"react";import{useTablePropertyReducer as i}from"./hook.js";var r=t({maxDisplayColCount:0,maxDisplayRowCount:0}),u=t({setMaxDisplayColCount:function(){},setMaxDisplayRowCount:function(){}});function l(t){var a=i(),l=n((function(){return{maxDisplayColCount:a.maxDisplayColCount,maxDisplayRowCount:a.maxDisplayRowCount}}),[a.maxDisplayColCount,a.maxDisplayRowCount]),s=n((function(){return{setMaxDisplayColCount:a.setMaxDisplayColCount,setMaxDisplayRowCount:a.setMaxDisplayRowCount}}),[]);return o(r.Provider,{value:l,children:o(u.Provider,{value:s,children:t.children})})}function s(){return a(r)}function e(){return a(u)}export{l as TablePropertyProvider,e as useTablePropertyActionContext,s as useTablePropertyStateContext};
1
+ import"../../../node_modules/tslib/tslib.es6.js";import{jsx as o}from"react/jsx-runtime";import{createContext as t,useMemo as n,useContext as r}from"react";import{useTablePropertyReducer as i}from"./hook.js";var e=t({maxDisplayColCount:0,maxDisplayRowCount:0}),a=t({setMaxDisplayColCount:function(){},setMaxDisplayRowCount:function(){}});function s(t){var r=i(),s=r.state,u=r.setMaxDisplayColCount,l=r.setMaxDisplayRowCount,p=n((function(){return{setMaxDisplayColCount:u,setMaxDisplayRowCount:l}}),[]);return o(e.Provider,{value:s,children:o(a.Provider,{value:p,children:t.children})})}function u(){return r(e)}function l(){return r(a)}export{s as TablePropertyProvider,l as useTablePropertyActionContext,u as useTablePropertyStateContext};
2
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport {\n TTablePropertyActionContext,\n TTablePropertyStateContext,\n} from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyStateContext>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: JSX.Element | JSX.Element[];\n}) {\n const tableProperty = useTablePropertyReducer();\n\n const state = useMemo(() => {\n return {\n maxDisplayColCount: tableProperty.maxDisplayColCount,\n maxDisplayRowCount: tableProperty.maxDisplayRowCount,\n };\n }, [tableProperty.maxDisplayColCount, tableProperty.maxDisplayRowCount]);\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: tableProperty.setMaxDisplayColCount,\n setMaxDisplayRowCount: tableProperty.setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","TablePropertyProvider","props","tableProperty","useTablePropertyReducer","state","useMemo","action","_jsx","Provider","value","children","useTablePropertyStateContext","useContext","useTablePropertyActionContext"],"mappings":"gNAOA,IAAMA,EAA4BC,EAA0C,CAC1EC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAA2C,CAC5EI,sBAAuB,WAAQ,EAC/BC,sBAAuB,WAAQ,IAG3B,SAAUC,EAAsBC,GAGpC,IAAMC,EAAgBC,IAEhBC,EAAQC,GAAQ,WACpB,MAAO,CACLV,mBAAoBO,EAAcP,mBAClCC,mBAAoBM,EAAcN,mBAErC,GAAE,CAACM,EAAcP,mBAAoBO,EAAcN,qBAE9CU,EAASD,GAAQ,WACrB,MAAO,CACLP,sBAAuBI,EAAcJ,sBACrCC,sBAAuBG,EAAcH,sBAExC,GAAE,IAEH,OACEQ,EAACd,EAA0Be,UAASC,MAAOL,EAAKM,SAC9CH,EAACV,EAA2BW,SAAQ,CAACC,MAAOH,EAAMI,SAC/CT,EAAMS,YAIf,UAEgBC,IACd,OAAOC,EAAWnB,EACpB,UAEgBoB,IACd,OAAOD,EAAWf,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport { TTablePropertyActionContext, TTablePropertyState } from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyState>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: JSX.Element | JSX.Element[];\n}) {\n const { state, setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyReducer();\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: setMaxDisplayColCount,\n setMaxDisplayRowCount: setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","TablePropertyProvider","props","_a","useTablePropertyReducer","state","action","useMemo","_jsx","Provider","value","children","useTablePropertyStateContext","useContext","useTablePropertyActionContext"],"mappings":"gNAIA,IAAMA,EAA4BC,EAAmC,CACnEC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAA2C,CAC5EI,sBAAuB,WAAQ,EAC/BC,sBAAuB,WAAQ,IAG3B,SAAUC,EAAsBC,GAG9B,IAAAC,EACJC,IADMC,EAAKF,EAAAE,MAAEN,EAAqBI,EAAAJ,sBAAEC,EAAqBG,EAAAH,sBAGrDM,EAASC,GAAQ,WACrB,MAAO,CACLR,sBAAuBA,EACvBC,sBAAuBA,EAE1B,GAAE,IAEH,OACEQ,EAACd,EAA0Be,UAASC,MAAOL,EAAKM,SAC9CH,EAACV,EAA2BW,SAAQ,CAACC,MAAOJ,EAAMK,SAC/CT,EAAMS,YAIf,UAEgBC,IACd,OAAOC,EAAWnB,EACpB,UAEgBoB,IACd,OAAOD,EAAWf,EACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teppen/react-ui",
3
- "version": "1.4.3",
3
+ "version": "1.4.4",
4
4
  "description": "React UI Component",
5
5
  "main": "dist/cjs/src/index.js",
6
6
  "module": "dist/esm/src/index.js",
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../../sheet/providers.js"),s=require("../provider.js");exports.AutoUpdateTableProperty=function(){var o=s.useTablePropertyActionContext(),n=o.setMaxDisplayColCount,u=o.setMaxDisplayRowCount,a=r.useProcessedDataContext(),i=a.cols,c=a.rows;return t.useEffect((function(){n(i.length)}),[i.length]),t.useEffect((function(){u(c.length)}),[c.length]),e.jsx(e.Fragment,{})};
2
- //# sourceMappingURL=auto-update-table-property.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-update-table-property.js","sources":["../../../../../../src/table/table-property/components/auto-update-table-property.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useProcessedDataContext } from \"../../sheet/providers\";\nimport { useTablePropertyActionContext } from \"../provider\";\n\nexport function AutoUpdateTableProperty() {\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n const { cols, rows } = useProcessedDataContext();\n\n useEffect(() => {\n setMaxDisplayColCount(cols.length);\n }, [cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(rows.length);\n }, [rows.length]);\n\n return <></>;\n}\n"],"names":["_a","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","_b","useProcessedDataContext","cols","rows","useEffect","length","_jsx"],"mappings":"gLAKQ,IAAAA,EACJC,EAA6BA,gCADvBC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAE9CC,EAAiBC,EAAuBA,0BAAtCC,EAAIF,EAAAE,KAAEC,EAAIH,EAAAG,KAUlB,OARAC,EAAAA,WAAU,WACRN,EAAsBI,EAAKG,OAC7B,GAAG,CAACH,EAAKG,SAETD,EAAAA,WAAU,WACRL,EAAsBI,EAAKE,OAC7B,GAAG,CAACF,EAAKE,SAEFC,oBACT"}
@@ -1,2 +0,0 @@
1
- import{jsx as t,Fragment as o}from"react/jsx-runtime";import{useEffect as r}from"react";import{useProcessedDataContext as e}from"../../sheet/providers.js";import{useTablePropertyActionContext as n}from"../provider.js";function i(){var i=n(),s=i.setMaxDisplayColCount,m=i.setMaxDisplayRowCount,p=e(),l=p.cols,a=p.rows;return r((function(){s(l.length)}),[l.length]),r((function(){m(a.length)}),[a.length]),t(o,{})}export{i as AutoUpdateTableProperty};
2
- //# sourceMappingURL=auto-update-table-property.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-update-table-property.js","sources":["../../../../../../src/table/table-property/components/auto-update-table-property.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useProcessedDataContext } from \"../../sheet/providers\";\nimport { useTablePropertyActionContext } from \"../provider\";\n\nexport function AutoUpdateTableProperty() {\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n const { cols, rows } = useProcessedDataContext();\n\n useEffect(() => {\n setMaxDisplayColCount(cols.length);\n }, [cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(rows.length);\n }, [rows.length]);\n\n return <></>;\n}\n"],"names":["AutoUpdateTableProperty","_a","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","_b","useProcessedDataContext","cols","rows","useEffect","length","_jsx"],"mappings":"mOAIgBA,IACR,IAAAC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAE9CC,EAAiBC,IAAfC,EAAIF,EAAAE,KAAEC,EAAIH,EAAAG,KAUlB,OARAC,GAAU,WACRN,EAAsBI,EAAKG,OAC7B,GAAG,CAACH,EAAKG,SAETD,GAAU,WACRL,EAAsBI,EAAKE,OAC7B,GAAG,CAACF,EAAKE,SAEFC,OACT"}