@teppen/react-ui 1.10.2 → 2.0.1
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.
- package/README.md +73 -6
- package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -1
- package/dist/cjs/node_modules/react-icons/lib/iconBase.js.map +1 -1
- package/dist/cjs/node_modules/react-icons/lib/iconContext.js.map +1 -1
- package/dist/cjs/node_modules/react-icons/lu/index.js.map +1 -1
- package/dist/cjs/node_modules/react-icons/md/index.js.map +1 -1
- package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -1
- package/dist/cjs/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/cjs/src/file-uploader/hook.js +1 -1
- package/dist/cjs/src/file-uploader/hook.js.map +1 -1
- package/dist/cjs/src/search-bar/condition-search-bar/base.js +1 -2
- package/dist/cjs/src/search-bar/condition-search-bar/base.js.map +1 -1
- package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +1 -2
- package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
- package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +1 -2
- package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -1
- package/dist/cjs/src/search-bar/id-generator/provider.js +1 -2
- package/dist/cjs/src/search-bar/id-generator/provider.js.map +1 -1
- package/dist/cjs/src/select-box/index.js +1 -2
- package/dist/cjs/src/select-box/index.js.map +1 -1
- package/dist/cjs/src/select-box/options-window/component.js +1 -1
- package/dist/cjs/src/select-box/options-window/component.js.map +1 -1
- package/dist/cjs/src/select-box/parts/input-area.js +1 -2
- package/dist/cjs/src/select-box/parts/input-area.js.map +1 -1
- package/dist/cjs/src/select-box/provider.js +1 -2
- package/dist/cjs/src/select-box/provider.js.map +1 -1
- package/dist/cjs/src/table/cell/ui/cell.js +1 -2
- package/dist/cjs/src/table/cell/ui/cell.js.map +1 -1
- package/dist/cjs/src/table/checkbox/components.js +1 -2
- package/dist/cjs/src/table/checkbox/components.js.map +1 -1
- package/dist/cjs/src/table/copy/format.js +2 -0
- package/dist/cjs/src/table/copy/format.js.map +1 -0
- package/dist/cjs/src/table/copy/hooks.js +1 -1
- package/dist/cjs/src/table/copy/hooks.js.map +1 -1
- package/dist/cjs/src/table/edit/provider.js +1 -2
- package/dist/cjs/src/table/edit/provider.js.map +1 -1
- package/dist/cjs/src/table/edit/ui/base-input.js +1 -2
- package/dist/cjs/src/table/edit/ui/base-input.js.map +1 -1
- package/dist/cjs/src/table/edit/ui/editor.js.map +1 -1
- package/dist/cjs/src/table/edit/ui/number-input.js +1 -2
- package/dist/cjs/src/table/edit/ui/number-input.js.map +1 -1
- package/dist/cjs/src/table/edit/ui/select-input.js +1 -2
- package/dist/cjs/src/table/edit/ui/select-input.js.map +1 -1
- package/dist/cjs/src/table/edit/ui/string-input.js +1 -2
- package/dist/cjs/src/table/edit/ui/string-input.js.map +1 -1
- package/dist/cjs/src/table/filter-v2/hook.js +1 -1
- package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
- package/dist/cjs/src/table/frame/frame.js +1 -2
- package/dist/cjs/src/table/frame/frame.js.map +1 -1
- package/dist/cjs/src/table/header/columns-width/provider.js +1 -2
- package/dist/cjs/src/table/header/columns-width/provider.js.map +1 -1
- package/dist/cjs/src/table/header/columns-width/reducer.js +1 -1
- package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -1
- package/dist/cjs/src/table/header/header-v2-hook.js +1 -1
- package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -1
- package/dist/cjs/src/table/header/header-v2.js +1 -1
- package/dist/cjs/src/table/header/header-v2.js.map +1 -1
- package/dist/cjs/src/table/header/header.js +1 -2
- package/dist/cjs/src/table/header/header.js.map +1 -1
- package/dist/cjs/src/table/id/provider.js +1 -1
- package/dist/cjs/src/table/id/provider.js.map +1 -1
- package/dist/cjs/src/table/operation/components/keyboard-setting.js +1 -2
- package/dist/cjs/src/table/operation/components/keyboard-setting.js.map +1 -1
- package/dist/cjs/src/table/operation/event-target.js +2 -0
- package/dist/cjs/src/table/operation/event-target.js.map +1 -0
- package/dist/cjs/src/table/pagenation/components.js +1 -2
- package/dist/cjs/src/table/pagenation/components.js.map +1 -1
- package/dist/cjs/src/table/pagenation/hooks.js +1 -1
- package/dist/cjs/src/table/pagenation/hooks.js.map +1 -1
- package/dist/cjs/src/table/pagenation/providers.js +1 -2
- package/dist/cjs/src/table/pagenation/providers.js.map +1 -1
- package/dist/cjs/src/table/paste/hooks.js +1 -1
- package/dist/cjs/src/table/paste/hooks.js.map +1 -1
- package/dist/cjs/src/table/paste/logic.js +1 -1
- package/dist/cjs/src/table/paste/logic.js.map +1 -1
- package/dist/cjs/src/table/paste/parse.js +2 -0
- package/dist/cjs/src/table/paste/parse.js.map +1 -0
- package/dist/cjs/src/table/paste/provider.js +1 -1
- package/dist/cjs/src/table/paste/provider.js.map +1 -1
- package/dist/cjs/src/table/sheet/components.js +1 -1
- package/dist/cjs/src/table/sheet/components.js.map +1 -1
- package/dist/cjs/src/table/sheet/providers.js +1 -2
- package/dist/cjs/src/table/sheet/providers.js.map +1 -1
- package/dist/cjs/src/table/sort/components.js +1 -2
- package/dist/cjs/src/table/sort/components.js.map +1 -1
- package/dist/cjs/src/table/sort/provider.js +1 -2
- package/dist/cjs/src/table/sort/provider.js.map +1 -1
- package/dist/cjs/src/table/table/base.js +1 -2
- package/dist/cjs/src/table/table/base.js.map +1 -1
- package/dist/cjs/src/table/table/component-provider/provider.js +1 -2
- package/dist/cjs/src/table/table/component-provider/provider.js.map +1 -1
- package/dist/cjs/src/table/table/hook.js +1 -1
- package/dist/cjs/src/table/table/hook.js.map +1 -1
- package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -1
- package/dist/esm/node_modules/react-icons/lib/iconBase.js.map +1 -1
- package/dist/esm/node_modules/react-icons/lib/iconContext.js.map +1 -1
- package/dist/esm/node_modules/react-icons/lu/index.js.map +1 -1
- package/dist/esm/node_modules/react-icons/md/index.js.map +1 -1
- package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/package.json +3 -0
- package/dist/esm/src/file-uploader/hook.js +1 -1
- package/dist/esm/src/file-uploader/hook.js.map +1 -1
- package/dist/esm/src/search-bar/condition-search-bar/base.js +1 -2
- package/dist/esm/src/search-bar/condition-search-bar/base.js.map +1 -1
- package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +1 -2
- package/dist/esm/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
- package/dist/esm/src/search-bar/condition-search-bar/input-form.js +1 -2
- package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -1
- package/dist/esm/src/search-bar/id-generator/provider.js +1 -2
- package/dist/esm/src/search-bar/id-generator/provider.js.map +1 -1
- package/dist/esm/src/select-box/index.js +1 -2
- package/dist/esm/src/select-box/index.js.map +1 -1
- package/dist/esm/src/select-box/options-window/component.js +1 -1
- package/dist/esm/src/select-box/options-window/component.js.map +1 -1
- package/dist/esm/src/select-box/parts/input-area.js +1 -2
- package/dist/esm/src/select-box/parts/input-area.js.map +1 -1
- package/dist/esm/src/select-box/provider.js +1 -2
- package/dist/esm/src/select-box/provider.js.map +1 -1
- package/dist/esm/src/table/cell/ui/cell.js +1 -2
- package/dist/esm/src/table/cell/ui/cell.js.map +1 -1
- package/dist/esm/src/table/checkbox/components.js +1 -2
- package/dist/esm/src/table/checkbox/components.js.map +1 -1
- package/dist/esm/src/table/copy/format.js +2 -0
- package/dist/esm/src/table/copy/format.js.map +1 -0
- package/dist/esm/src/table/copy/hooks.js +1 -1
- package/dist/esm/src/table/copy/hooks.js.map +1 -1
- package/dist/esm/src/table/edit/provider.js +1 -2
- package/dist/esm/src/table/edit/provider.js.map +1 -1
- package/dist/esm/src/table/edit/ui/base-input.js +1 -2
- package/dist/esm/src/table/edit/ui/base-input.js.map +1 -1
- package/dist/esm/src/table/edit/ui/editor.js.map +1 -1
- package/dist/esm/src/table/edit/ui/number-input.js +1 -2
- package/dist/esm/src/table/edit/ui/number-input.js.map +1 -1
- package/dist/esm/src/table/edit/ui/select-input.js +1 -2
- package/dist/esm/src/table/edit/ui/select-input.js.map +1 -1
- package/dist/esm/src/table/edit/ui/string-input.js +1 -2
- package/dist/esm/src/table/edit/ui/string-input.js.map +1 -1
- package/dist/esm/src/table/filter-v2/hook.js +1 -1
- package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
- package/dist/esm/src/table/frame/frame.js +1 -2
- package/dist/esm/src/table/frame/frame.js.map +1 -1
- package/dist/esm/src/table/header/columns-width/provider.js +1 -2
- package/dist/esm/src/table/header/columns-width/provider.js.map +1 -1
- package/dist/esm/src/table/header/columns-width/reducer.js +1 -1
- package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -1
- package/dist/esm/src/table/header/header-v2-hook.js +1 -1
- package/dist/esm/src/table/header/header-v2-hook.js.map +1 -1
- package/dist/esm/src/table/header/header-v2.js +1 -1
- package/dist/esm/src/table/header/header-v2.js.map +1 -1
- package/dist/esm/src/table/header/header.js +1 -2
- package/dist/esm/src/table/header/header.js.map +1 -1
- package/dist/esm/src/table/id/provider.js +1 -1
- package/dist/esm/src/table/id/provider.js.map +1 -1
- package/dist/esm/src/table/operation/components/keyboard-setting.js +1 -2
- package/dist/esm/src/table/operation/components/keyboard-setting.js.map +1 -1
- package/dist/esm/src/table/operation/event-target.js +2 -0
- package/dist/esm/src/table/operation/event-target.js.map +1 -0
- package/dist/esm/src/table/pagenation/components.js +1 -2
- package/dist/esm/src/table/pagenation/components.js.map +1 -1
- package/dist/esm/src/table/pagenation/hooks.js +1 -1
- package/dist/esm/src/table/pagenation/hooks.js.map +1 -1
- package/dist/esm/src/table/pagenation/providers.js +1 -2
- package/dist/esm/src/table/pagenation/providers.js.map +1 -1
- package/dist/esm/src/table/paste/hooks.js +1 -1
- package/dist/esm/src/table/paste/hooks.js.map +1 -1
- package/dist/esm/src/table/paste/logic.js +1 -1
- package/dist/esm/src/table/paste/logic.js.map +1 -1
- package/dist/esm/src/table/paste/parse.js +2 -0
- package/dist/esm/src/table/paste/parse.js.map +1 -0
- package/dist/esm/src/table/paste/provider.js +1 -1
- package/dist/esm/src/table/paste/provider.js.map +1 -1
- package/dist/esm/src/table/sheet/components.js +1 -1
- package/dist/esm/src/table/sheet/components.js.map +1 -1
- package/dist/esm/src/table/sheet/providers.js +1 -2
- package/dist/esm/src/table/sheet/providers.js.map +1 -1
- package/dist/esm/src/table/sort/components.js +1 -2
- package/dist/esm/src/table/sort/components.js.map +1 -1
- package/dist/esm/src/table/sort/provider.js +1 -2
- package/dist/esm/src/table/sort/provider.js.map +1 -1
- package/dist/esm/src/table/table/base.js +1 -2
- package/dist/esm/src/table/table/base.js.map +1 -1
- package/dist/esm/src/table/table/component-provider/provider.js +1 -2
- package/dist/esm/src/table/table/component-provider/provider.js.map +1 -1
- package/dist/esm/src/table/table/hook.js +1 -1
- package/dist/esm/src/table/table/hook.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/package.json +1 -3
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useEffect as r}from"react";import{useEditContext as n}from"../../edit/provider.js";import{useColumnsContext as o}from"../../sheet/providers.js";import{useRangeContext as i}from"../../range/provider.js";import{useCopyActionContext as d}from"../../copy/provider.js";import{useTableIdGenerator as p}from"../../id/provider.js";var a=function(e,t){var r,n=document.getElementById(t);if(n){var o=null===(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===r?void 0:r.set;o&&o.call(n,e);var i=new Event("input",{bubbles:!0});n.dispatchEvent(i)}};function s(s){var y=p(),f=n(),v=i(),c=d().copy,l=o()[v.isSelecting?v.start.colIndex:0];return r((function(){var e=function(e){f.isEditing?"Escape"===e.key&&(e.preventDefault(),f.endEditing()):v.isSelecting&&("Enter"===e.key?(e.preventDefault(),v.moveDown()):"Escape"===e.key?(e.preventDefault(),v.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?v.extendRightEnd():e.ctrlKey?v.moveRightEnd():e.shiftKey?v.extendRight():v.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?v.extendLeftEnd():e.ctrlKey?v.moveLeftEnd():e.shiftKey?v.extendLeft():v.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?v.extendTop():e.ctrlKey?v.moveTop():e.shiftKey?v.extendUp():v.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?v.extendBottom():e.ctrlKey?v.moveBottom():e.shiftKey?v.extendDown():v.moveDown()):"F2"===e.key?(e.preventDefault(),f.startEditing()):e.ctrlKey&&"c"===e.key.toLowerCase()?(e.preventDefault(),c({enableDeprecatedCopy:null==s?void 0:s.enableDeprecatedCopy})):e.altKey||e.ctrlKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),f.startEditing(),setTimeout((function(){a("",y.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),f.startEditing(),setTimeout((function(){a(e.key,y.getEditorId())}),10)))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[v,f.isEditing]),r((function(){f.isEditing&&!l.editable&&f.endEditing()}),[f,l]),e(t,{})}export{s as KeyboardSetting};
|
|
1
|
+
"use client";import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useEffect as r}from"react";import{useEditContext as n}from"../../edit/provider.js";import{useColumnsContext as o}from"../../sheet/providers.js";import{useRangeContext as i}from"../../range/provider.js";import{useCopyActionContext as d}from"../../copy/provider.js";import{useTableIdGenerator as p}from"../../id/provider.js";import{isComposingKey as a,isTextEntryTarget as s}from"../event-target.js";var y=function(e,t){var r,n=document.getElementById(t);if(n){var o=null===(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===r?void 0:r.set;o&&o.call(n,e);var i=new Event("input",{bubbles:!0});n.dispatchEvent(i)}};function f(f){var v=p(),c=n(),l=i(),m=d().copy,u=o()[l.isSelecting?l.start.colIndex:0];return r((function(){var e=function(e){a(e)||(c.isEditing?"Escape"===e.key&&(e.preventDefault(),c.endEditing()):l.isSelecting&&!s(e.target)&&("Enter"===e.key?(e.preventDefault(),l.moveDown()):"Escape"===e.key?(e.preventDefault(),l.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?l.extendRightEnd():e.ctrlKey?l.moveRightEnd():e.shiftKey?l.extendRight():l.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?l.extendLeftEnd():e.ctrlKey?l.moveLeftEnd():e.shiftKey?l.extendLeft():l.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?l.extendTop():e.ctrlKey?l.moveTop():e.shiftKey?l.extendUp():l.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?l.extendBottom():e.ctrlKey?l.moveBottom():e.shiftKey?l.extendDown():l.moveDown()):"F2"===e.key?(e.preventDefault(),c.startEditing()):(e.ctrlKey||e.metaKey)&&"c"===e.key.toLowerCase()?(e.preventDefault(),m({enableDeprecatedCopy:null==f?void 0:f.enableDeprecatedCopy})):e.altKey||e.ctrlKey||e.metaKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){y("",v.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){y(e.key,v.getEditorId())}),10))))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[l,c.isEditing]),r((function(){c.isEditing&&!u.editable&&c.endEditing()}),[c,u]),e(t,{})}export{f as KeyboardSetting};
|
|
3
2
|
//# sourceMappingURL=keyboard-setting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard-setting.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keyboard-setting.js","sources":["../../../../../../src/table/operation/components/keyboard-setting.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useEditContext } from \"../../edit/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useRangeContext } from \"../../range/provider\";\nimport { useCopyActionContext } from \"../../copy/provider\";\nimport { useTableIdGenerator } from \"../../id\";\nimport { isComposingKey, isTextEntryTarget } from \"../event-target\";\n\nconst setInitialValueToInputForm = (key: string, id: string) => {\n const inputElement = document.getElementById(id);\n if (inputElement) {\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(inputElement, key);\n }\n\n const ev = new Event(\"input\", { bubbles: true });\n inputElement.dispatchEvent(ev);\n }\n};\n\nexport function KeyboardSetting(options?: { enableDeprecatedCopy?: boolean }) {\n const IdGenerator = useTableIdGenerator();\n const edit = useEditContext();\n const range = useRangeContext();\n const { copy } = useCopyActionContext();\n const col = useColumnsContext()[range.isSelecting ? range.start.colIndex : 0];\n\n useEffect(() => {\n const listener = (e: KeyboardEvent) => {\n if (isComposingKey(e)) {\n return;\n }\n\n if (edit.isEditing) {\n if (e.key === \"Escape\") {\n e.preventDefault();\n edit.endEditing();\n }\n } else if (range.isSelecting && !isTextEntryTarget(e.target)) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n range.moveDown();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n range.reset();\n } else if (e.key === \"ArrowRight\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendRightEnd();\n } else if (e.ctrlKey) {\n range.moveRightEnd();\n } else if (e.shiftKey) {\n range.extendRight();\n } else {\n range.moveRight();\n }\n } else if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendLeftEnd();\n } else if (e.ctrlKey) {\n range.moveLeftEnd();\n } else if (e.shiftKey) {\n range.extendLeft();\n } else {\n range.moveLeft();\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendTop();\n } else if (e.ctrlKey) {\n range.moveTop();\n } else if (e.shiftKey) {\n range.extendUp();\n } else {\n range.moveUp();\n }\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendBottom();\n } else if (e.ctrlKey) {\n range.moveBottom();\n } else if (e.shiftKey) {\n range.extendDown();\n } else {\n range.moveDown();\n }\n } else if (e.key === \"F2\") {\n e.preventDefault();\n edit.startEditing();\n } else if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === \"c\") {\n e.preventDefault();\n copy({ enableDeprecatedCopy: options?.enableDeprecatedCopy });\n } else if (\n !e.altKey &&\n !e.ctrlKey &&\n !e.metaKey &&\n /^[a-zA-Z0-9]$/.test(e.key)\n ) {\n e.preventDefault();\n e.stopPropagation();\n edit.startEditing();\n\n setTimeout(() => {\n setInitialValueToInputForm(e.key, IdGenerator.getEditorId());\n }, 10);\n } else if (e.key === \"Backspace\" || e.key === \"Delete\") {\n e.preventDefault();\n e.stopPropagation();\n edit.startEditing();\n\n setTimeout(() => {\n setInitialValueToInputForm(\"\", IdGenerator.getEditorId());\n }, 10);\n }\n }\n };\n\n document.addEventListener(\"keydown\", listener);\n\n return () => {\n document.removeEventListener(\"keydown\", listener);\n };\n }, [range, edit.isEditing]);\n\n useEffect(() => {\n if (edit.isEditing && !col.editable) {\n edit.endEditing();\n }\n }, [edit, col]);\n\n return <></>;\n}\n"],"names":["setInitialValueToInputForm","key","id","inputElement","document","getElementById","nativeInputValueSetter","_a","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","ev","Event","bubbles","dispatchEvent","KeyboardSetting","options","IdGenerator","useTableIdGenerator","edit","useEditContext","range","useRangeContext","copy","useCopyActionContext","col","useColumnsContext","isSelecting","start","colIndex","useEffect","listener","e","isComposingKey","isEditing","preventDefault","endEditing","isTextEntryTarget","target","moveDown","reset","ctrlKey","shiftKey","extendRightEnd","moveRightEnd","extendRight","moveRight","extendLeftEnd","moveLeftEnd","extendLeft","moveLeft","extendTop","moveTop","extendUp","moveUp","extendBottom","moveBottom","extendDown","startEditing","metaKey","toLowerCase","enableDeprecatedCopy","altKey","test","stopPropagation","setTimeout","getEditorId","addEventListener","removeEventListener","editable","_jsx"],"mappings":"wdAUA,IAAMA,EAA6B,SAACC,EAAaC,SACzCC,EAAeC,SAASC,eAAeH,GAC7C,GAAIC,EAAc,CAChB,IAAMG,EAGL,QAH8BC,EAAAC,OAAOC,yBACpCC,OAAOC,iBAAiBC,UACxB,gBACD,IAAAL,OAAA,EAAAA,EAAEM,IAECP,GACFA,EAAuBQ,KAAKX,EAAcF,GAG5C,IAAMc,EAAK,IAAIC,MAAM,QAAS,CAAEC,SAAS,IACzCd,EAAae,cAAcH,EAC7B,CACF,EAEM,SAAUI,EAAgBC,GAC9B,IAAMC,EAAcC,IACdC,EAAOC,IACPC,EAAQC,IACNC,EAASC,SACXC,EAAMC,IAAoBL,EAAMM,YAAcN,EAAMO,MAAMC,SAAW,GAgH3E,OA9GAC,GAAU,WACR,IAAMC,EAAW,SAACC,GACZC,EAAeD,KAIfb,EAAKe,UACO,WAAVF,EAAEnC,MACJmC,EAAEG,iBACFhB,EAAKiB,cAEEf,EAAMM,cAAgBU,EAAkBL,EAAEM,UACrC,UAAVN,EAAEnC,KACJmC,EAAEG,iBACFd,EAAMkB,YACa,WAAVP,EAAEnC,KACXmC,EAAEG,iBACFd,EAAMmB,SACa,eAAVR,EAAEnC,KACXmC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAMsB,iBACGX,EAAES,QACXpB,EAAMuB,eACGZ,EAAEU,SACXrB,EAAMwB,cAENxB,EAAMyB,aAEW,cAAVd,EAAEnC,KACXmC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAM0B,gBACGf,EAAES,QACXpB,EAAM2B,cACGhB,EAAEU,SACXrB,EAAM4B,aAEN5B,EAAM6B,YAEW,YAAVlB,EAAEnC,KACXmC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAM8B,YACGnB,EAAES,QACXpB,EAAM+B,UACGpB,EAAEU,SACXrB,EAAMgC,WAENhC,EAAMiC,UAEW,cAAVtB,EAAEnC,KACXmC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAMkC,eACGvB,EAAES,QACXpB,EAAMmC,aACGxB,EAAEU,SACXrB,EAAMoC,aAENpC,EAAMkB,YAEW,OAAVP,EAAEnC,KACXmC,EAAEG,iBACFhB,EAAKuC,iBACK1B,EAAES,SAAWT,EAAE2B,UAAoC,MAAxB3B,EAAEnC,IAAI+D,eAC3C5B,EAAEG,iBACFZ,EAAK,CAAEsC,qBAAsB7C,aAAO,EAAPA,EAAS6C,wBAErC7B,EAAE8B,QACF9B,EAAES,SACFT,EAAE2B,UACH,gBAAgBI,KAAK/B,EAAEnC,KASJ,cAAVmC,EAAEnC,KAAiC,WAAVmC,EAAEnC,MACpCmC,EAAEG,iBACFH,EAAEgC,kBACF7C,EAAKuC,eAELO,YAAW,WACTrE,EAA2B,GAAIqB,EAAYiD,cAC7C,GAAG,MAdHlC,EAAEG,iBACFH,EAAEgC,kBACF7C,EAAKuC,eAELO,YAAW,WACTrE,EAA2BoC,EAAEnC,IAAKoB,EAAYiD,cAChD,GAAG,MAWT,EAIA,OAFAlE,SAASmE,iBAAiB,UAAWpC,GAE9B,WACL/B,SAASoE,oBAAoB,UAAWrC,EAC1C,CACF,GAAG,CAACV,EAAOF,EAAKe,YAEhBJ,GAAU,WACJX,EAAKe,YAAcT,EAAI4C,UACzBlD,EAAKiB,YAET,GAAG,CAACjB,EAAMM,IAEH6C,OACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e){return e instanceof HTMLElement&&(!!e.isContentEditable||(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement))}function n(e){return e.isComposing||229===e.keyCode}export{n as isComposingKey,e as isTextEntryTarget};
|
|
2
|
+
//# sourceMappingURL=event-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-target.js","sources":["../../../../../src/table/operation/event-target.ts"],"sourcesContent":["/**\n * Returns true when the event comes from an element where the user types\n * text (input, textarea, select or contenteditable). The table must not take\n * over keys or pastes aimed at such elements.\n */\nexport function isTextEntryTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n if (target.isContentEditable) {\n return true;\n }\n\n return (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n\n/** True while an IME (e.g. Japanese input) is composing text. */\nexport function isComposingKey(e: KeyboardEvent): boolean {\n return e.isComposing || e.keyCode === 229;\n}\n"],"names":["isTextEntryTarget","target","HTMLElement","isContentEditable","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","isComposingKey","e","isComposing","keyCode"],"mappings":"AAKM,SAAUA,EAAkBC,GAChC,OAAMA,aAAkBC,gBAIpBD,EAAOE,oBAKTF,aAAkBG,kBAClBH,aAAkBI,qBAClBJ,aAAkBK,mBAEtB,CAGM,SAAUC,EAAeC,GAC7B,OAAOA,EAAEC,aAA6B,MAAdD,EAAEE,OAC5B"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as r,Fragment as t,jsxs as e}from"react/jsx-runtime";import{usePageContext as n}from"./providers.js";function o(){var o=n(),u=o.enable,c=o.current,i=o.pageCount,s=o.jump,a=o.prev,l=o.next;return u?e("div",{className:"flex justify-center gap-2",children:[r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return s(1)},disabled:1===c,children:"≪"}),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return a()},disabled:1===c,children:"<"}),Array.from({length:i},(function(r,t){return t+1})).filter((function(r){return c-2<=r&&r<=c+2})).map((function(t){return r("button",{className:"text-sm cursor-pointer disabled:cursor-default ".concat(c===t?"text-blue-600":""),onClick:function(){return s(t)},children:t},t)})),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return l()},disabled:c===i,children:">"}),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return s(i)},disabled:c===i,children:"≫"})]}):r(t,{})}function u(){var o=n(),u=o.enable,c=o.from,i=o.to,s=o.rowCount;return u?e("p",{className:"text-center text-sm text-gray-600",children:[c+1," - ",i<s?i:s," of ",s]}):r(t,{})}export{u as DisplayRange,o as Pagenation};
|
|
1
|
+
"use client";import{jsx as r,Fragment as t,jsxs as e}from"react/jsx-runtime";import{usePageContext as n}from"./providers.js";function o(){var o=n(),u=o.enable,c=o.current,i=o.pageCount,s=o.jump,l=o.prev,a=o.next;return u?e("div",{className:"flex justify-center gap-2",children:[r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return s(1)},disabled:1===c,children:"≪"}),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return l()},disabled:1===c,children:"<"}),Array.from({length:i},(function(r,t){return t+1})).filter((function(r){return c-2<=r&&r<=c+2})).map((function(t){return r("button",{className:"text-sm cursor-pointer disabled:cursor-default ".concat(c===t?"text-blue-600":""),onClick:function(){return s(t)},children:t},t)})),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return a()},disabled:c>=i,children:">"}),r("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return s(i)},disabled:c>=i,children:"≫"})]}):r(t,{})}function u(){var o=n(),u=o.enable,c=o.from,i=o.to,s=o.rowCount;return u?e("p",{className:"text-center text-sm text-gray-600",children:[0===s?0:c+1," - ",i<s?i:s," of"," ",s]}):r(t,{})}export{u as DisplayRange,o as Pagenation};
|
|
3
2
|
//# sourceMappingURL=components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../../../../../src/table/pagenation/components.tsx"],"sourcesContent":["\"use client\";\n\nimport { usePageContext } from \"./providers\";\n\nexport function Pagenation() {\n const { enable, current, pageCount, jump, prev, next } = usePageContext();\n\n if (!enable) {\n return <></>;\n }\n\n return (\n <div className=\"flex justify-center gap-2\">\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => jump(1)}\n disabled={current === 1}\n >\n ≪\n </button>\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => prev()}\n disabled={current === 1}\n >\n <\n </button>\n {Array.from({ length: pageCount }, (_, i) => i + 1)\n .filter((i) => current - 2 <= i && i <= current + 2)\n .map((i) => (\n <button\n key={i}\n className={`text-sm cursor-pointer disabled:cursor-default ${current === i ? \"text-blue-600\" : \"\"}`}\n onClick={() => jump(i)}\n >\n {i}\n </button>\n ))}\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => next()}\n disabled={current >= pageCount}\n >\n >\n </button>\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => jump(pageCount)}\n disabled={current >= pageCount}\n >\n ≫\n </button>\n </div>\n );\n}\n\nexport function DisplayRange() {\n const { enable, from, to, rowCount } = usePageContext();\n\n if (!enable) {\n return <></>;\n }\n\n return (\n <p className=\"text-center text-sm text-gray-600\">\n {rowCount === 0 ? 0 : from + 1} - {to < rowCount ? to : rowCount} of{\" \"}\n {rowCount}\n </p>\n );\n}\n"],"names":["Pagenation","_a","usePageContext","enable","current","pageCount","jump","prev","next","_jsxs","className","children","_jsx","onClick","disabled","Array","from","length","_","i","filter","map","DisplayRange","to","rowCount"],"mappings":"sIAIgBA,IACR,IAAAC,EAAmDC,IAAjDC,EAAMF,EAAAE,OAAEC,EAAOH,EAAAG,QAAEC,EAASJ,EAAAI,UAAEC,EAAIL,EAAAK,KAAEC,EAAIN,EAAAM,KAAEC,EAAIP,EAAAO,KAEpD,OAAKL,EAKHM,EAAA,MAAA,CAAKC,UAAU,4BAA2BC,SAAA,CACxCC,EAAA,SAAA,CACEF,UAAU,iDACVG,QAAS,WAAM,OAAAP,EAAK,EAAL,EACfQ,SAAsB,IAAZV,iBAIZQ,EAAA,SAAA,CACEF,UAAU,iDACVG,QAAS,WAAM,OAAAN,GAAA,EACfO,SAAsB,IAAZV,EAAaO,SAAA,MAIxBI,MAAMC,KAAK,CAAEC,OAAQZ,IAAa,SAACa,EAAGC,GAAM,OAAAA,EAAI,CAAJ,IAC1CC,QAAO,SAACD,GAAM,OAAAf,EAAU,GAAKe,GAAKA,GAAKf,EAAU,CAAnC,IACdiB,KAAI,SAACF,GAAM,OACVP,YAEEF,UAAW,yDAAkDN,IAAYe,EAAI,gBAAkB,IAC/FN,QAAS,WAAM,OAAAP,EAAKa,EAAL,EAAOR,SAErBQ,GAJIA,EAFG,IASdP,EAAA,SAAA,CACEF,UAAU,iDACVG,QAAS,WAAM,OAAAL,GAAA,EACfM,SAAUV,GAAWC,EAASM,SAAA,MAIhCC,YACEF,UAAU,iDACVG,QAAS,WAAM,OAAAP,EAAKD,EAAL,EACfS,SAAUV,GAAWC,EAASM,SAAA,SAxC3BC,OA8CX,UAEgBU,IACR,IAAArB,EAAiCC,IAA/BC,EAAMF,EAAAE,OAAEa,EAAIf,EAAAe,KAAEO,EAAEtB,EAAAsB,GAAEC,aAE1B,OAAKrB,EAKHM,EAAA,IAAA,CAAGC,UAAU,8CACG,IAAbc,EAAiB,EAAIR,EAAO,EAAC,MAAKO,EAAKC,EAAWD,EAAKC,EAAQ,MAAK,IACpEA,KANIZ,OASX"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as r,useCallback as n,useMemo as t}from"react";import{INITIAL_PAGE_STATE as a}from"./constants.js";function o(r,n){switch(n.type){case"setRowCount":return r.enable?e(e({},r),{currentPage:1,rowCount:n.payload.rowCount}):e(e({},r),{rowCount:n.payload.rowCount});case"setPerPage":return"all"===n.payload.perPage?{rowCount:r.rowCount,enable:!1}:r.enable?e(e({},r),{currentPage:1,perPage:n.payload.perPage}):{rowCount:r.rowCount,enable:!0,currentPage:1,perPage:n.payload.perPage};case"next":return r.enable?r.currentPage
|
|
1
|
+
import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as r,useCallback as n,useMemo as t}from"react";import{INITIAL_PAGE_STATE as a}from"./constants.js";function o(r,n){switch(n.type){case"setRowCount":return r.enable?e(e({},r),{currentPage:1,rowCount:n.payload.rowCount}):e(e({},r),{rowCount:n.payload.rowCount});case"setPerPage":return"all"===n.payload.perPage?{rowCount:r.rowCount,enable:!1}:r.enable?e(e({},r),{currentPage:1,perPage:n.payload.perPage}):{rowCount:r.rowCount,enable:!0,currentPage:1,perPage:n.payload.perPage};case"next":return r.enable?r.currentPage>=Math.ceil(r.rowCount/r.perPage)?r:e(e({},r),{currentPage:r.currentPage+1}):r;case"prev":return r.enable?1===r.currentPage?r:e(e({},r),{currentPage:r.currentPage-1}):r;case"jump":return r.enable?n.payload.pageNumber<1||n.payload.pageNumber>Math.ceil(r.rowCount/r.perPage)||r.currentPage===n.payload.pageNumber?r:e(e({},r),{currentPage:n.payload.pageNumber}):r;default:return r}}function u(e){var u=r(o,null!=e?e:a),p=u[0],l=u[1],c=n((function(){return l({type:"next"})}),[l]),g=n((function(){return l({type:"prev"})}),[l]),P=n((function(e){return l({type:"jump",payload:{pageNumber:e}})}),[l]),b=n((function(e){return l({type:"setRowCount",payload:{rowCount:e}})}),[l]),i=t((function(){return p.enable?(p.currentPage-1)*p.perPage:0}),[p]),w=t((function(){return p.enable?p.currentPage*p.perPage:p.rowCount}),[p]),C=n((function(e){return e.slice(i,w)}),[i,w]);return{enable:p.enable,perPage:p.enable?p.perPage:p.rowCount,current:p.enable?p.currentPage:1,rowCount:p.rowCount,pageCount:p.enable?Math.ceil(p.rowCount/p.perPage):1,from:i,to:w,next:c,prev:g,jump:P,setRowCount:b,pageFilter:C}}export{u as usePageReducer};
|
|
2
2
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage >= Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","usePageReducer","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"yLAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,EAAAA,EAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WARzBF,EAAAA,EAAA,CAAA,EACKJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,EAAAA,EAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,aAAeI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SACjDR,EAGTI,EAAAA,EAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAGTI,EAAAA,EAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAGTI,EAAAA,EAAA,CAAA,EACKJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,CAEM,SAAUY,EAAeC,GACvB,IAAAC,EAAoBC,EACxBhB,EACAc,QAAAA,EAAgBG,GAFXhB,OAAOiB,OAKRC,EAAOC,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDG,EAAOD,GAAY,WAAM,OAAAF,EAAS,CAAEf,KAAM,QAAjB,GAA4B,CAACe,IACtDI,EAAOF,GACX,SAACR,GAAuB,OAAAM,EAAS,CAAEf,KAAM,OAAQK,QAAS,CAAEI,WAAUA,IAA9C,GACxB,CAACM,IAGGK,EAAcH,GAClB,SAACb,GACC,OAAAW,EAAS,CAAEf,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACW,IAGGM,EAAOC,GAAQ,WACnB,OAAKxB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEyB,EAAKD,GAAQ,WACjB,OAAKxB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEE0B,EAAaP,GACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLtB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CuB,QAAS7B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBwB,UAAW9B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEe,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as n}from"react/jsx-runtime";import{createContext as r,useContext as e}from"react";import{usePageReducer as o}from"./hooks.js";var t=r({enable:!0,perPage:0,current:0,pageCount:0,from:0,to:0,rowCount:0,next:function(){throw new Error("Function not implemented.")},prev:function(){throw new Error("Function not implemented.")},jump:function(){throw new Error("Function not implemented.")},setRowCount:function(){throw new Error("Function not implemented.")},pageFilter:function(){return[]}});function u(r){var e,u,i="all"===r.perPage?{enable:!1,rowCount:r.rowCount}:{enable:!0,rowCount:r.rowCount,perPage:null!==(e=r.perPage)&&void 0!==e?e:50,currentPage:null!==(u=r.currentPage)&&void 0!==u?u:1};return n(t.Provider,{value:o(i),children:r.children})}function i(){return e(t)}export{u as PagenationProvider,i as usePageContext};
|
|
1
|
+
"use client";import{jsx as n}from"react/jsx-runtime";import{createContext as r,useContext as e}from"react";import{usePageReducer as o}from"./hooks.js";var t=r({enable:!0,perPage:0,current:0,pageCount:0,from:0,to:0,rowCount:0,next:function(){throw new Error("Function not implemented.")},prev:function(){throw new Error("Function not implemented.")},jump:function(){throw new Error("Function not implemented.")},setRowCount:function(){throw new Error("Function not implemented.")},pageFilter:function(){return[]}});function u(r){var e,u,i="all"===r.perPage?{enable:!1,rowCount:r.rowCount}:{enable:!0,rowCount:r.rowCount,perPage:null!==(e=r.perPage)&&void 0!==e?e:50,currentPage:null!==(u=r.currentPage)&&void 0!==u?u:1};return n(t.Provider,{value:o(i),children:r.children})}function i(){return e(t)}export{u as PagenationProvider,i as usePageContext};
|
|
3
2
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.js","sources":["../../../../../src/table/pagenation/providers.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport { TPageContext, TPageState } from \"./types\";\nimport { usePageReducer } from \"./hooks\";\n\nconst PageContext = createContext<TPageContext>({\n enable: true,\n perPage: 0,\n current: 0,\n pageCount: 0,\n from: 0,\n to: 0,\n rowCount: 0,\n next: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n prev: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n jump: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n setRowCount: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n pageFilter: () => [],\n});\n\nexport function PagenationProvider(props: {\n children: React.ReactNode;\n rowCount: number;\n perPage?: number | \"all\";\n currentPage?: number;\n}) {\n const pagenationParams: TPageState =\n props.perPage === \"all\"\n ? { enable: false, rowCount: props.rowCount }\n : {\n enable: true,\n rowCount: props.rowCount,\n perPage: props.perPage ?? 50,\n currentPage: props.currentPage ?? 1,\n };\n\n return (\n <PageContext.Provider value={usePageReducer(pagenationParams)}>\n {props.children}\n </PageContext.Provider>\n );\n}\n\nexport function usePageContext() {\n return useContext(PageContext);\n}\n"],"names":["PageContext","createContext","enable","perPage","current","pageCount","from","to","rowCount","next","Error","prev","jump","setRowCount","pageFilter","PagenationProvider","props","pagenationParams","_a","currentPage","_b","_jsx","Provider","value","usePageReducer","children","usePageContext","useContext"],"mappings":"uJAMA,IAAMA,EAAcC,EAA4B,CAC9CC,QAAQ,EACRC,QAAS,EACTC,QAAS,EACTC,UAAW,EACXC,KAAM,EACNC,GAAI,EACJC,SAAU,EACVC,KAAM,WACJ,MAAM,IAAIC,MAAM,4BAClB,EACAC,KAAM,WACJ,MAAM,IAAID,MAAM,4BAClB,EACAE,KAAM,WACJ,MAAM,IAAIF,MAAM,4BAClB,EACAG,YAAa,WACX,MAAM,IAAIH,MAAM,4BAClB,EACAI,WAAY,WAAM,MAAA,EAAA,IAGd,SAAUC,EAAmBC,WAM3BC,EACc,QAAlBD,EAAMb,QACF,CAAED,QAAQ,EAAOM,SAAUQ,EAAMR,UACjC,CACEN,QAAQ,EACRM,SAAUQ,EAAMR,SAChBL,gBAASe,EAAAF,EAAMb,uBAAW,GAC1BgB,oBAAaC,EAAAJ,EAAMG,2BAAe,GAG1C,OACEE,EAACrB,EAAYsB,SAAQ,CAACC,MAAOC,EAAeP,GAAiBQ,SAC1DT,EAAMS,UAGb,UAEgBC,IACd,OAAOC,EAAW3B,EACpB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign as
|
|
1
|
+
import{__assign as r}from"../../../node_modules/tslib/tslib.es6.js";import{useRef as t,useEffect as e,useCallback as a,useMemo as o}from"react";import{useColumnValidatesContext as n}from"../sheet/providers.js";import{useRangeActionContext as s,useRangeStateContext as i}from"../range/provider.js";import{paste as c}from"./logic.js";import{parseClipboardText as u}from"./parse.js";import{isTextEntryTarget as p}from"../operation/event-target.js";function m(m){var d=s().setRange,f=n(),l=i(),v=t(m.rows),g=t(r(r({},m),{validators:f,range:l}));e((function(){g.current=r(r({},m),{validators:f,range:l})}));var w=a((function(r){v.current=r}),[]),R=a((function(r){var t=g.current,e=t.cols,a=t.validators,o=t.range,n=t.onUpdateRowFunction,s=t.onPasteError;if(o.isSelecting&&n){var i=c({pasteData:r,pasteArea:{start:o.start,end:o.end},currentRows:v.current,currentCols:e,validators:a});if(i.isError){if("ValidationError"===i.type||"NoPasteData"===i.type)return;var u={type:i.type,message:i.message};s?s(u):alert(u.message)}else i.updateArgument.forEach((function(r){var t=r.newRow,e=r.oldRow;n(t,e)})),d(i.pasteRange)}}),[d]);return e((function(){var r=function(r){var t=g.current,e=t.range,a=t.onUpdateRowFunction;e.isSelecting&&a&&(p(r.target)||r.clipboardData&&(r.preventDefault(),R(u(r.clipboardData.getData("Text")))))};return document.addEventListener("paste",r),function(){document.removeEventListener("paste",r)}}),[R]),o((function(){return{setRows:w,onPaste:R}}),[w,R])}export{m as usePasteReducer};
|
|
2
2
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo,
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { TPasteHookArguments, TPasteReducerReturn } from \"./types\";\nimport { useColumnValidatesContext } from \"../sheet/providers\";\nimport { useRangeActionContext, useRangeStateContext } from \"../range/provider\";\nimport { paste } from \"./logic\";\nimport { parseClipboardText } from \"./parse\";\nimport { isTextEntryTarget } from \"../operation/event-target\";\n\nexport function usePasteReducer(args: TPasteHookArguments): TPasteReducerReturn {\n const { setRange } = useRangeActionContext();\n const validators = useColumnValidatesContext();\n const range = useRangeStateContext();\n const rowsRef = useRef(args.rows);\n\n // Read the latest props when a paste happens, so callbacks passed in later\n // renders are the ones that get called.\n const latest = useRef({ ...args, validators, range });\n useEffect(() => {\n latest.current = { ...args, validators, range };\n });\n\n const setRows = useCallback((rows: any[]) => {\n rowsRef.current = rows;\n }, []);\n\n const onPaste = useCallback(\n (pasteData: string[][]) => {\n const { cols, validators, range, onUpdateRowFunction, onPasteError } =\n latest.current;\n\n if (!range.isSelecting || !onUpdateRowFunction) {\n return;\n }\n\n const res = paste({\n pasteData,\n pasteArea: { start: range.start, end: range.end },\n currentRows: rowsRef.current,\n currentCols: cols,\n validators,\n });\n\n if (res.isError) {\n // Validation errors are already reported by the column validators.\n if (res.type === \"ValidationError\" || res.type === \"NoPasteData\") {\n return;\n }\n\n const error = { type: res.type, message: res.message };\n if (onPasteError) {\n onPasteError(error);\n } else {\n alert(error.message);\n }\n return;\n }\n\n res.updateArgument.forEach(({ newRow, oldRow }) => {\n onUpdateRowFunction(newRow, oldRow);\n });\n setRange(res.pasteRange);\n },\n [setRange]\n );\n\n useEffect(() => {\n const listener = (e: ClipboardEvent) => {\n const { range, onUpdateRowFunction } = latest.current;\n\n if (!range.isSelecting || !onUpdateRowFunction) {\n return;\n }\n\n // Leave pastes into text fields (including the cell editor) to them.\n if (isTextEntryTarget(e.target)) {\n return;\n }\n\n if (e.clipboardData) {\n e.preventDefault();\n onPaste(parseClipboardText(e.clipboardData.getData(\"Text\")));\n }\n };\n\n document.addEventListener(\"paste\", listener);\n\n return () => {\n document.removeEventListener(\"paste\", listener);\n };\n }, [onPaste]);\n\n return useMemo(() => ({ setRows, onPaste }), [setRows, onPaste]);\n}\n"],"names":["usePasteReducer","args","setRange","useRangeActionContext","validators","useColumnValidatesContext","range","useRangeStateContext","rowsRef","useRef","rows","latest","__assign","useEffect","current","setRows","useCallback","onPaste","pasteData","_a","cols","onUpdateRowFunction","onPasteError","isSelecting","res","paste","pasteArea","start","end","currentRows","currentCols","isError","type","error","message","alert","updateArgument","forEach","newRow","oldRow","pasteRange","listener","e","isTextEntryTarget","target","clipboardData","preventDefault","parseClipboardText","getData","document","addEventListener","removeEventListener","useMemo"],"mappings":"6bAQM,SAAUA,EAAgBC,GACtB,IAAAC,EAAaC,aACfC,EAAaC,IACbC,EAAQC,IACRC,EAAUC,EAAOR,EAAKS,MAItBC,EAASF,EAAMG,EAAAA,EAAA,CAAA,EAAMX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,KAClDO,GAAU,WACRF,EAAOG,QAAOF,EAAAA,EAAA,CAAA,EAAQX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,GAC/C,IAEA,IAAMS,EAAUC,GAAY,SAACN,GAC3BF,EAAQM,QAAUJ,CACpB,GAAG,IAEGO,EAAUD,GACd,SAACE,GACO,IAAAC,EACJR,EAAOG,QADDM,SAAMhB,eAAYE,UAAOe,wBAAqBC,iBAGtD,GAAKhB,EAAMiB,aAAgBF,EAA3B,CAIA,IAAMG,EAAMC,EAAM,CAChBP,UAASA,EACTQ,UAAW,CAAEC,MAAOrB,EAAMqB,MAAOC,IAAKtB,EAAMsB,KAC5CC,YAAarB,EAAQM,QACrBgB,YAAaV,EACbhB,WAAUA,IAGZ,GAAIoB,EAAIO,QAAR,CAEE,GAAiB,oBAAbP,EAAIQ,MAA2C,gBAAbR,EAAIQ,KACxC,OAGF,IAAMC,EAAQ,CAAED,KAAMR,EAAIQ,KAAME,QAASV,EAAIU,SACzCZ,EACFA,EAAaW,GAEbE,MAAMF,EAAMC,QAGhB,MAEAV,EAAIY,eAAeC,SAAQ,SAAClB,OAAEmB,EAAMnB,EAAAmB,OAAEC,EAAMpB,EAAAoB,OAC1ClB,EAAoBiB,EAAQC,EAC9B,IACArC,EAASsB,EAAIgB,WA5Bb,CA6BF,GACA,CAACtC,IA6BH,OA1BAW,GAAU,WACR,IAAM4B,EAAW,SAACC,GACV,IAAAvB,EAAiCR,EAAOG,QAAtCR,EAAKa,EAAAb,MAAEe,EAAmBF,EAAAE,oBAE7Bf,EAAMiB,aAAgBF,IAKvBsB,EAAkBD,EAAEE,SAIpBF,EAAEG,gBACJH,EAAEI,iBACF7B,EAAQ8B,EAAmBL,EAAEG,cAAcG,QAAQ,WAEvD,EAIA,OAFAC,SAASC,iBAAiB,QAAST,GAE5B,WACLQ,SAASE,oBAAoB,QAASV,EACxC,CACF,GAAG,CAACxB,IAEGmC,GAAQ,WAAM,OAAGrC,QAAOA,EAAEE,QAAOA,EAAnB,GAAwB,CAACF,EAASE,GACzD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__assign as
|
|
1
|
+
import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";var r=/^-?\d{1,3}(,\d{3})+(\.\d+)?$/;function t(e,t){if("number"!==e.type)return t;var a=t.trim();return r.test(a)?a.replace(/,/g,""):a}function a(r){var a,n=r.pasteData.length,s=Math.max.apply(Math,r.pasteData.map((function(e){return e.length})));if(0===n||0===s)return{isError:!0,type:"NoPasteData",message:"ペーストデータがありません。"};var o=r.pasteArea.end.rowIndex-r.pasteArea.start.rowIndex+1,l=r.pasteArea.end.colIndex-r.pasteArea.start.colIndex+1,p=o<n?n:o,d=l<s?s:l;if(p+r.pasteArea.start.rowIndex>r.currentRows.length)return{isError:!0,type:"NOT_ENOUGH_ROWS",message:"貼り付け先の行数が足りません。"};if(d+r.pasteArea.start.colIndex>r.currentCols.length)return{isError:!0,type:"NOT_ENOUGH_COLUMNS",message:"貼り付け先の列数が足りません。"};for(var u=0;u<d;u++){if(!(x=r.currentCols[r.pasteArea.start.colIndex+u]).editable)return{isError:!0,type:"NOT_EDITABLE_COLUMN",message:"編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(a=x.label)&&void 0!==a?a:x.key)}}for(u=0;u<n;u++)for(var c=r.pasteData[u],i=0;i<d;i++){var x,I=i%c.length,f=t(x=r.currentCols[r.pasteArea.start.colIndex+i],c[I]);if(!(0,r.validators[x.key])(f))return{isError:!0,type:"ValidationError",message:"バリデーションエラー: ".concat(f)}}var A=[];for(u=0;u<p;u++){c=r.pasteData[u%n];var m=e({},r.currentRows[r.pasteArea.start.rowIndex+u]),w=!1,g=function(e){var a=r.currentCols[r.pasteArea.start.colIndex+e],n=t(a,c[e%c.length]),s="number"===a.type?Number(n):"select"===a.type?""===n?"":a.options.find((function(e){return e.label===n})).value:n;m[a.key]!==s&&(w=!0,m[a.key]=s)};for(i=0;i<d;i++)g(i);w&&A.push({newRow:m,oldRow:r.currentRows[r.pasteArea.start.rowIndex+u]})}return{isError:!1,updateArgument:A,pasteRange:{start:{rowIndex:r.pasteArea.start.rowIndex,colIndex:r.pasteArea.start.colIndex},end:{rowIndex:r.pasteArea.start.rowIndex+p-1,colIndex:r.pasteArea.start.colIndex+d-1}}}}export{a as paste};
|
|
2
2
|
//# sourceMappingURL=logic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sources":["../../../../../src/table/paste/logic.ts"],"sourcesContent":["import { TTableColumn } from \"../table/type\";\n\ntype TPasteArgument = {\n pasteData: string[][];\n currentRows: any[];\n currentCols: TTableColumn<any>[];\n tableArea
|
|
1
|
+
{"version":3,"file":"logic.js","sources":["../../../../../src/table/paste/logic.ts"],"sourcesContent":["import { TTableColumn } from \"../table/type\";\n\ntype TPasteArgument = {\n pasteData: string[][];\n currentRows: any[];\n currentCols: TTableColumn<any>[];\n tableArea?: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n pasteArea: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n validators: {\n [key: string]: (value: any) => boolean;\n };\n};\n\ntype TPasteResult =\n | {\n isError: true;\n type:\n | \"ValidationError\"\n | \"NoPasteData\"\n | \"NOT_ENOUGH_ROWS\"\n | \"NOT_ENOUGH_COLUMNS\"\n | \"NOT_EDITABLE_COLUMN\";\n message: string;\n }\n | {\n isError: false;\n updateArgument: {\n newRow: any;\n oldRow: any;\n }[];\n pasteRange: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n };\n\n// A number with thousands separators, as Excel copies formatted numbers.\nconst GROUPED_NUMBER = /^-?\\d{1,3}(,\\d{3})+(\\.\\d+)?$/;\n\n/**\n * Turns pasted text into the form the column's validator expects. For number\n * columns, surrounding spaces and thousands separators (\"1,000\") are removed.\n */\nfunction normalizePastedValue(col: TTableColumn<any>, value: string): string {\n if (col.type !== \"number\") {\n return value;\n }\n\n const trimmed = value.trim();\n return GROUPED_NUMBER.test(trimmed) ? trimmed.replace(/,/g, \"\") : trimmed;\n}\n\nexport function paste(args: TPasteArgument): TPasteResult {\n // ペーストデータの行数と列数を取得\n const pasteDataRowLength = args.pasteData.length;\n const pasteDataColLength = Math.max(\n ...args.pasteData.map((row) => row.length)\n );\n\n // ペーストデータが空の場合は何もしない\n if (pasteDataRowLength === 0 || pasteDataColLength === 0) {\n return {\n isError: true,\n type: \"NoPasteData\",\n message: \"ペーストデータがありません。\",\n };\n }\n\n // Rangeの種類を取得\n const rangeRowLength =\n args.pasteArea.end.rowIndex - args.pasteArea.start.rowIndex + 1;\n const rangeColLength =\n args.pasteArea.end.colIndex - args.pasteArea.start.colIndex + 1;\n\n const pasteRowLength =\n rangeRowLength < pasteDataRowLength ? pasteDataRowLength : rangeRowLength;\n const pasteColLength =\n rangeColLength < pasteDataColLength ? pasteDataColLength : rangeColLength;\n\n // ペースト先の行数が足りない場合はエラー\n if (\n pasteRowLength + args.pasteArea.start.rowIndex >\n args.currentRows.length\n ) {\n return {\n isError: true,\n type: \"NOT_ENOUGH_ROWS\",\n message: \"貼り付け先の行数が足りません。\",\n };\n }\n // ペースト先の列数が足りない場合はエラー\n if (\n pasteColLength + args.pasteArea.start.colIndex >\n args.currentCols.length\n ) {\n return {\n isError: true,\n type: \"NOT_ENOUGH_COLUMNS\",\n message: \"貼り付け先の列数が足りません。\",\n };\n }\n\n // ペースト先の列に編集不可列が含まれている場合はエラー\n for (let i = 0; i < pasteColLength; i++) {\n const col = args.currentCols[args.pasteArea.start.colIndex + i];\n\n if (!col.editable) {\n return {\n isError: true,\n type: \"NOT_EDITABLE_COLUMN\",\n message: `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? (col.key as string)\n }`,\n };\n }\n }\n\n // ペーストデータのバリデーション\n for (let i = 0; i < pasteDataRowLength; i++) {\n const pasteRow = args.pasteData[i];\n\n for (let j = 0; j < pasteColLength; j++) {\n const colIndexForData = j % pasteRow.length;\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const pasteValue = normalizePastedValue(col, pasteRow[colIndexForData]);\n const validate = args.validators[col.key as string];\n\n if (!validate(pasteValue)) {\n return {\n isError: true,\n type: \"ValidationError\",\n message: `バリデーションエラー: ${pasteValue}`,\n };\n }\n }\n }\n\n const updateArguments: { newRow: any; oldRow: any }[] = [];\n\n // ペーストデータを反映\n for (let i = 0; i < pasteRowLength; i++) {\n const pasteRow = args.pasteData[i % pasteDataRowLength];\n const newRow = { ...args.currentRows[args.pasteArea.start.rowIndex + i] };\n let checkUpdatedRow = false;\n\n for (let j = 0; j < pasteColLength; j++) {\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const pasteValue = normalizePastedValue(col, pasteRow[j % pasteRow.length]);\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)!.value\n : pasteValue;\n if (newRow[col.key] !== value) {\n checkUpdatedRow = true;\n newRow[col.key] = value;\n }\n }\n\n if (checkUpdatedRow) {\n updateArguments.push({\n newRow,\n oldRow: args.currentRows[args.pasteArea.start.rowIndex + i],\n });\n }\n }\n\n return {\n isError: false,\n updateArgument: updateArguments,\n pasteRange: {\n start: {\n rowIndex: args.pasteArea.start.rowIndex,\n colIndex: args.pasteArea.start.colIndex,\n },\n end: {\n rowIndex: args.pasteArea.start.rowIndex + pasteRowLength - 1,\n colIndex: args.pasteArea.start.colIndex + pasteColLength - 1,\n },\n },\n };\n}\n"],"names":["GROUPED_NUMBER","normalizePastedValue","col","value","type","trimmed","trim","test","replace","paste","args","pasteDataRowLength","pasteData","length","pasteDataColLength","Math","max","map","row","isError","message","rangeRowLength","pasteArea","end","rowIndex","start","rangeColLength","colIndex","pasteRowLength","pasteColLength","currentRows","currentCols","i","editable","concat","_a","label","key","pasteRow","j","colIndexForData","pasteValue","validate","validators","updateArguments","newRow","__assign","checkUpdatedRow","Number","options","find","option","push","oldRow","updateArgument","pasteRange"],"mappings":"oEA6DA,IAAMA,EAAiB,+BAMvB,SAASC,EAAqBC,EAAwBC,GACpD,GAAiB,WAAbD,EAAIE,KACN,OAAOD,EAGT,IAAME,EAAUF,EAAMG,OACtB,OAAON,EAAeO,KAAKF,GAAWA,EAAQG,QAAQ,KAAM,IAAMH,CACpE,CAEM,SAAUI,EAAMC,SAEdC,EAAqBD,EAAKE,UAAUC,OACpCC,EAAqBC,KAAKC,UAALD,KACtBL,EAAKE,UAAUK,KAAI,SAACC,GAAQ,OAAAA,EAAIL,MAAJ,KAIjC,GAA2B,IAAvBF,GAAmD,IAAvBG,EAC9B,MAAO,CACLK,SAAS,EACTf,KAAM,cACNgB,QAAS,kBAKb,IAAMC,EACJX,EAAKY,UAAUC,IAAIC,SAAWd,EAAKY,UAAUG,MAAMD,SAAW,EAC1DE,EACJhB,EAAKY,UAAUC,IAAII,SAAWjB,EAAKY,UAAUG,MAAME,SAAW,EAE1DC,EACJP,EAAiBV,EAAqBA,EAAqBU,EACvDQ,EACJH,EAAiBZ,EAAqBA,EAAqBY,EAG7D,GACEE,EAAiBlB,EAAKY,UAAUG,MAAMD,SACtCd,EAAKoB,YAAYjB,OAEjB,MAAO,CACLM,SAAS,EACTf,KAAM,kBACNgB,QAAS,mBAIb,GACES,EAAiBnB,EAAKY,UAAUG,MAAME,SACtCjB,EAAKqB,YAAYlB,OAEjB,MAAO,CACLM,SAAS,EACTf,KAAM,qBACNgB,QAAS,mBAKb,IAAK,IAAIY,EAAI,EAAGA,EAAIH,EAAgBG,IAAK,CAGvC,KAFM9B,EAAMQ,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWK,IAEpDC,SACP,MAAO,CACLd,SAAS,EACTf,KAAM,sBACNgB,QAAS,wCAAAc,OACE,QAATC,EAAAjC,EAAIkC,aAAK,IAAAD,EAAAA,EAAKjC,EAAImC,KAI1B,CAGA,IAASL,EAAI,EAAGA,EAAIrB,EAAoBqB,IAGtC,IAFA,IAAMM,EAAW5B,EAAKE,UAAUoB,GAEvBO,EAAI,EAAGA,EAAIV,EAAgBU,IAAK,CACvC,IACMrC,EADAsC,EAAkBD,EAAID,EAASzB,OAE/B4B,EAAaxC,EADbC,EAAMQ,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWY,GAChBD,EAASE,IAGtD,KAAKE,EAFYhC,EAAKiC,WAAWzC,EAAImC,MAEvBI,GACZ,MAAO,CACLtB,SAAS,EACTf,KAAM,kBACNgB,QAAS,eAAAc,OAAeO,GAG9B,CAGF,IAAMG,EAAkD,GAGxD,IAASZ,EAAI,EAAGA,EAAIJ,EAAgBI,IAAK,CACjCM,EAAW5B,EAAKE,UAAUoB,EAAIrB,GAApC,IACMkC,EAAMC,EAAA,CAAA,EAAQpC,EAAKoB,YAAYpB,EAAKY,UAAUG,MAAMD,SAAWQ,IACjEe,GAAkB,aAEbR,GACP,IAAMrC,EAAMQ,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWY,GACvDE,EAAaxC,EAAqBC,EAAKoC,EAASC,EAAID,EAASzB,SAC7DV,EACS,WAAbD,EAAIE,KACA4C,OAAOP,GACM,WAAbvC,EAAIE,KACW,KAAfqC,EACE,GACAvC,EAAI+C,QAAQC,MAAK,SAACC,GAAW,OAAAA,EAAOf,QAAUK,CAAjB,IAA8BtC,MAC7DsC,EACFI,EAAO3C,EAAImC,OAASlC,IACtB4C,GAAkB,EAClBF,EAAO3C,EAAImC,KAAOlC,IAbtB,IAASoC,EAAI,EAAGA,EAAIV,EAAgBU,MAA3BA,GAiBLQ,GACFH,EAAgBQ,KAAK,CACnBP,OAAMA,EACNQ,OAAQ3C,EAAKoB,YAAYpB,EAAKY,UAAUG,MAAMD,SAAWQ,IAG/D,CAEA,MAAO,CACLb,SAAS,EACTmC,eAAgBV,EAChBW,WAAY,CACV9B,MAAO,CACLD,SAAUd,EAAKY,UAAUG,MAAMD,SAC/BG,SAAUjB,EAAKY,UAAUG,MAAME,UAEjCJ,IAAK,CACHC,SAAUd,EAAKY,UAAUG,MAAMD,SAAWI,EAAiB,EAC3DD,SAAUjB,EAAKY,UAAUG,MAAME,SAAWE,EAAiB,IAInE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function n(n){var e=n.replace(/\r\n?/g,"\n").replace(/\n$/,"");if(""===e)return[];for(var l=[],t=[],u=0;;){var i='"'===e[u]?r(e,u):null,a=void 0;if(i)a=i.value,u=i.next;else{for(var f=u;f<e.length&&"\t"!==e[f]&&"\n"!==e[f];)f++;a=e.slice(u,f),u=f}if(t.push(a),u>=e.length)return l.push(t),l;"\n"===e[u]&&(l.push(t),t=[]),u++}}function r(n,r){for(var e="",l=r+1;l<n.length;){if('"'===n[l]){if('"'===n[l+1]){e+='"',l+=2;continue}var t=n[l+1];return void 0===t||"\t"===t||"\n"===t?{value:e,next:l+1}:null}e+=n[l],l++}return null}export{n as parseClipboardText};
|
|
2
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sources":["../../../../../src/table/paste/parse.ts"],"sourcesContent":["/**\n * Parses clipboard text copied from a spreadsheet (Excel, Google Sheets)\n * into rows of cells.\n *\n * - Cells are separated by tabs and rows by line breaks.\n * - A cell wrapped in double quotes may contain tabs and line breaks, and\n * `\"\"` inside it stands for one `\"` (this is how Excel copies such cells).\n * - Commas are kept as part of the value, so \"1,000\" stays one cell.\n * - Only the final line break is dropped; empty cells are kept.\n */\nexport function parseClipboardText(text: string): string[][] {\n const source = text.replace(/\\r\\n?/g, \"\\n\").replace(/\\n$/, \"\");\n\n if (source === \"\") {\n return [];\n }\n\n const rows: string[][] = [];\n let row: string[] = [];\n let i = 0;\n\n while (true) {\n const quoted = source[i] === '\"' ? readQuotedCell(source, i) : null;\n let cell: string;\n\n if (quoted) {\n cell = quoted.value;\n i = quoted.next;\n } else {\n let end = i;\n while (end < source.length && source[end] !== \"\\t\" && source[end] !== \"\\n\") {\n end++;\n }\n cell = source.slice(i, end);\n i = end;\n }\n\n row.push(cell);\n\n if (i >= source.length) {\n rows.push(row);\n return rows;\n }\n\n if (source[i] === \"\\n\") {\n rows.push(row);\n row = [];\n }\n i++;\n }\n}\n\n/**\n * Reads a quoted cell starting at `start`. Returns null if the text is not a\n * properly closed quoted cell, in which case it is read as plain text.\n */\nfunction readQuotedCell(\n source: string,\n start: number\n): { value: string; next: number } | null {\n let value = \"\";\n let i = start + 1;\n\n while (i < source.length) {\n if (source[i] === '\"') {\n if (source[i + 1] === '\"') {\n value += '\"';\n i += 2;\n continue;\n }\n\n const after = source[i + 1];\n if (after === undefined || after === \"\\t\" || after === \"\\n\") {\n return { value, next: i + 1 };\n }\n return null;\n }\n\n value += source[i];\n i++;\n }\n\n return null;\n}\n"],"names":["parseClipboardText","text","source","replace","rows","row","i","quoted","readQuotedCell","cell","value","next","end","length","slice","push","start","after","undefined"],"mappings":"AAUM,SAAUA,EAAmBC,GACjC,IAAMC,EAASD,EAAKE,QAAQ,SAAU,MAAMA,QAAQ,MAAO,IAE3D,GAAe,KAAXD,EACF,MAAO,GAOT,IAJA,IAAME,EAAmB,GACrBC,EAAgB,GAChBC,EAAI,IAEK,CACX,IAAMC,EAAuB,MAAdL,EAAOI,GAAaE,EAAeN,EAAQI,GAAK,KAC3DG,SAEJ,GAAIF,EACFE,EAAOF,EAAOG,MACdJ,EAAIC,EAAOI,SACN,CAEL,IADA,IAAIC,EAAMN,EACHM,EAAMV,EAAOW,QAA0B,OAAhBX,EAAOU,IAAiC,OAAhBV,EAAOU,IAC3DA,IAEFH,EAAOP,EAAOY,MAAMR,EAAGM,GACvBN,EAAIM,CACN,CAIA,GAFAP,EAAIU,KAAKN,GAELH,GAAKJ,EAAOW,OAEd,OADAT,EAAKW,KAAKV,GACHD,EAGS,OAAdF,EAAOI,KACTF,EAAKW,KAAKV,GACVA,EAAM,IAERC,GACF,CACF,CAMA,SAASE,EACPN,EACAc,GAKA,IAHA,IAAIN,EAAQ,GACRJ,EAAIU,EAAQ,EAETV,EAAIJ,EAAOW,QAAQ,CACxB,GAAkB,MAAdX,EAAOI,GAAY,CACrB,GAAsB,MAAlBJ,EAAOI,EAAI,GAAY,CACzBI,GAAS,IACTJ,GAAK,EACL,QACF,CAEA,IAAMW,EAAQf,EAAOI,EAAI,GACzB,YAAcY,IAAVD,GAAiC,OAAVA,GAA4B,OAAVA,EACpC,CAAEP,MAAKA,EAAEC,KAAML,EAAI,GAErB,IACT,CAEAI,GAASR,EAAOI,GAChBA,GACF,CAEA,OAAO,IACT"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{createContext as
|
|
1
|
+
import{__rest as r}from"../../../node_modules/tslib/tslib.es6.js";import{jsx as o}from"react/jsx-runtime";import{createContext as t,useContext as e}from"react";import{usePasteReducer as n}from"./hooks.js";var i=t({setRows:function(){},onPaste:function(){}});function s(t){var e=t.children,s=r(t,["children"]);return o(i.Provider,{value:n(s),children:e})}function m(){return e(i)}export{s as PasteProvider,m as usePasteActionContext};
|
|
2
2
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +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
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../../../../src/table/paste/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TPasteHookArguments, TPasteReducerReturn } from \"./types\";\nimport { usePasteReducer } from \"./hooks\";\n\nconst PasteContext = createContext<TPasteReducerReturn>({\n setRows: () => {},\n onPaste: () => {},\n});\n\nexport function PasteProvider({\n children,\n ...args\n}: TPasteHookArguments & {\n children: React.JSX.Element | React.JSX.Element[];\n}) {\n return (\n <PasteContext.Provider value={usePasteReducer(args)}>\n {children}\n </PasteContext.Provider>\n );\n}\n\nexport function usePasteActionContext() {\n return useContext(PasteContext);\n}\n"],"names":["PasteContext","createContext","setRows","onPaste","PasteProvider","_a","children","args","__rest","_jsx","Provider","value","usePasteReducer","usePasteActionContext","useContext"],"mappings":"6MAIA,IAAMA,EAAeC,EAAmC,CACtDC,QAAS,WAAO,EAChBC,QAAS,WAAO,IAGZ,SAAUC,EAAcC,GAC5B,IAAAC,EAAQD,EAAAC,SACLC,EAAIC,EAAAH,EAFqB,cAM5B,OACEI,EAACT,EAAaU,UAASC,MAAOC,EAAgBL,GAAKD,SAChDA,GAGP,UAEgBO,IACd,OAAOC,EAAWd,EACpB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as o,jsx as r}from"react/jsx-runtime";import{memo as e}from"react";import{Checkbox as t}from"../checkbox/components.js";import{TableCell as i}from"../cell/ui/cell.js";import{useRangeActionContext as n}from"../range/provider.js";import{useTableIdGenerator as a}from"../id/provider.js";var l=e((function(e){var l=a(),c=n().reset,p=e.row,m=e.conditionalFormattingString.split(",");return 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 hover:after:bg-gray-500/10 ".concat(e.onClickRow?"hover:cursor-pointer":""," ").concat(e.applyRowFormatting?e.applyRowFormatting(p):""),onClick:function(o){o.preventDefault(),e.onClickRow&&(e.onClickRow(p),c())},"data-testid":p.id,children:[e.existCheckbox&&r("td",{className:"w-8 h-full p-px",onClick:function(o){o.stopPropagation()},children:r(t,{row:p})}),e.cols.map((function(o,t){var n;return r(i,{id:l.getTableCellId({rowIndex:e.rowIndex,columnIndex:t}),row:p,isExistOnClickRow:!!e.onClickRow,cellFormatClassName:m[t],editable:null!==(n=o.editable)&&void 0!==n&&n},o.key)}))]})}));export{l as Row};
|
|
2
2
|
//# sourceMappingURL=components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\ninterface TPropsRow<T extends DataRecord> {\n
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\ninterface TPropsRow<T extends DataRecord> {\n row: DataObject<DataRecord>;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const IdGenerator = useTableIdGenerator();\n const { reset } = useRangeActionContext();\n const row = props.row;\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none hover:after: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 reset();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td\n className=\"w-8 h-full p-px\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n id={IdGenerator.getTableCellId({\n rowIndex: props.rowIndex,\n columnIndex: j,\n })}\n row={row}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","IdGenerator","useTableIdGenerator","reset","useRangeActionContext","row","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","stopPropagation","Checkbox","cols","map","col","j","TableCell","getTableCellId","rowIndex","columnIndex","isExistOnClickRow","cellFormatClassName","editable","_a","key"],"mappings":"4SAiBaA,EAAMC,GAAK,SAAiCC,GACvD,IAAMC,EAAcC,IACZC,EAAUC,UACZC,EAAML,EAAMK,IACZC,EAAwBN,EAAMO,4BAA4BC,MAAM,KAEtE,OACEC,EAAA,KAAA,CACEC,UAAW,0JAAAC,OACPX,EAAMY,WAAa,uBAAyB,GAAE,KAAAD,OAC9CX,EAAMa,mBAAqBb,EAAMa,mBAAmBR,GAAO,IAC/DS,QAAS,SAACC,GACRA,EAAEC,iBAEIhB,EAAMY,aACVZ,EAAMY,WAAWP,GACjBF,IAEJ,gBACaE,EAAIY,GAAEC,SAAA,CAElBlB,EAAMmB,eACLC,EAAA,KAAA,CACEV,UAAU,kBACVI,QAAS,SAACC,GACRA,EAAEM,iBACJ,EAACH,SAEDE,EAACE,EAAQ,CAACjB,IAAKA,MAGlBL,EAAMuB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAACO,EAAS,CAERV,GAAIhB,EAAY2B,eAAe,CAC7BC,SAAU7B,EAAM6B,SAChBC,YAAaJ,IAEfrB,IAAKA,EACL0B,oBAAqB/B,EAAMY,WAC3BoB,oBAAqB1B,EAAsBoB,GAC3CO,SAAsB,QAAZC,EAAAT,EAAIQ,gBAAQ,IAAAC,GAAAA,GARjBT,EAAIU,IAWf,MAGN"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as n,useMemo as t}from"react";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var o=e({cols:[],validates:{}});function u(e){var n=e.children,u=e.cols,a=e.errorHandler,c=t((function(){return u.reduce((function(r,e){return r[e.key]=i(e,a),r}),{})}),[u]),l=t((function(){return{cols:u,validates:c}}),[u]);return r(o.Provider,{value:l,children:n})}function a(){return n(o).cols}function c(r){return n(o).validates[r]}function l(){return n(o).validates}export{u as ColumnsProvider,c as useColumnValidateContext,l as useColumnValidatesContext,a as useColumnsContext};
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as n,useMemo as t}from"react";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var o=e({cols:[],validates:{}});function u(e){var n=e.children,u=e.cols,c=e.errorHandler,a=t((function(){return u.reduce((function(r,e){return r[e.key]=i(e,c),r}),{})}),[u]),l=t((function(){return{cols:u,validates:a}}),[u]);return r(o.Provider,{value:l,children:n})}function c(){return n(o).cols}function a(r){return n(o).validates[r]}function l(){return n(o).validates}export{u as ColumnsProvider,a as useColumnValidateContext,l as useColumnValidatesContext,c as useColumnsContext};
|
|
3
2
|
//# sourceMappingURL=providers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.js","sources":["../../../../../src/table/sheet/providers.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport {\n generateValidateFunction,\n TErrorValidation,\n} from \"../libs/generate-validate-function\";\n\nconst ColsContext = createContext<{\n cols: TTableColumn<DataRecord>[];\n validates: { [key: string]: (value: any) => boolean };\n}>({\n cols: [],\n validates: {},\n});\n\nexport function ColumnsProvider<T extends DataRecord>({\n children,\n cols,\n errorHandler,\n}: {\n children: React.ReactNode;\n cols: TTableColumn<T>[];\n errorHandler?: (errors: TErrorValidation[]) => void;\n}) {\n const validates = useMemo(\n () =>\n cols.reduce((acc, col) => {\n const { key } = col;\n\n acc[key] = generateValidateFunction(col as any, errorHandler);\n\n return acc;\n }, {} as { [key in keyof T]: (value: any) => boolean }),\n [cols]\n );\n\n const state = useMemo(() => ({ cols, validates }), [cols]);\n\n return (\n <ColsContext.Provider\n value={\n state as {\n cols: TTableColumn<DataRecord>[];\n validates: { [key: string]: (value: any) => boolean };\n }\n }\n >\n {children}\n </ColsContext.Provider>\n );\n}\n\nexport function useColumnsContext() {\n return useContext(ColsContext).cols;\n}\n\nexport function useColumnValidateContext(key: string) {\n return useContext(ColsContext).validates[key];\n}\n\nexport function useColumnValidatesContext() {\n return useContext(ColsContext).validates;\n}\n"],"names":["ColsContext","createContext","cols","validates","ColumnsProvider","_a","children","errorHandler","useMemo","reduce","acc","col","key","generateValidateFunction","state","_jsx","Provider","value","useColumnsContext","useContext","useColumnValidateContext","useColumnValidatesContext"],"mappings":"yMASA,IAAMA,EAAcC,EAGjB,CACDC,KAAM,GACNC,UAAW,CAAA,IAGP,SAAUC,EAAsCC,GACpD,IAAAC,aACAJ,EAAIG,EAAAH,KACJK,EAAYF,EAAAE,aAMNJ,EAAYK,GAChB,WACE,OAAAN,EAAKO,QAAO,SAACC,EAAKC,GAKhB,OAFAD,EAFgBC,EAAGC,KAERC,EAAyBF,EAAYJ,GAEzCG,CACT,GAAG,CAAA,EANH,GAOF,CAACR,IAGGY,EAAQN,GAAQ,WAAM,MAAA,CAAGN,KAAIA,EAAEC,UAASA,EAAlB,GAAuB,CAACD,IAEpD,OACEa,EAACf,EAAYgB,SAAQ,CACnBC,MACEH,EAGCR,SAGFA,GAGP,UAEgBY,IACd,OAAOC,EAAWnB,GAAaE,IACjC,CAEM,SAAUkB,EAAyBR,GACvC,OAAOO,EAAWnB,GAAaG,UAAUS,EAC3C,UAEgBS,IACd,OAAOF,EAAWnB,GAAaG,SACjC"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as r}from"react/jsx-runtime";import{SortIcon as e}from"./icon.js";import{useSortContext as o}from"./provider.js";function n(n){var t=o(),c=t.key,i=t.asc,m=t.changeKey,s=t.changeOrder,a=c===n.columnKey;return r("div",{onClick:function(r){r.preventDefault(),a?s():m(n.columnKey)},className:"cursor-pointer",children:r(e,{sortOrder:a?i?"ASC":"DESC":"ASC",isSortActive:a})})}export{n as SortButton};
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import{SortIcon as e}from"./icon.js";import{useSortContext as o}from"./provider.js";function n(n){var t=o(),c=t.key,i=t.asc,m=t.changeKey,s=t.changeOrder,u=c===n.columnKey;return r("div",{onClick:function(r){r.preventDefault(),u?s():m(n.columnKey)},className:"cursor-pointer",children:r(e,{sortOrder:u?i?"ASC":"DESC":"ASC",isSortActive:u})})}export{n as SortButton};
|
|
3
2
|
//# sourceMappingURL=components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../../../../../src/table/sort/components.tsx"],"sourcesContent":["\"use client\";\n\nimport { SortIcon } from \"./icon\";\nimport { useSortContext } from \"./provider\";\n\ntype TPropsSort = {\n columnKey: string;\n};\n\nexport function SortButton(props: TPropsSort) {\n const { key, asc, changeKey, changeOrder } = useSortContext();\n\n const isActive = key === props.columnKey;\n\n return (\n <div\n onClick={(e) => {\n e.preventDefault();\n if (isActive) {\n changeOrder();\n } else {\n changeKey(props.columnKey);\n }\n }}\n className=\"cursor-pointer\"\n >\n <SortIcon\n sortOrder={isActive ? (asc ? \"ASC\" : \"DESC\") : \"ASC\"}\n isSortActive={isActive}\n />\n </div>\n );\n}\n"],"names":["SortButton","props","_a","useSortContext","key","asc","changeKey","changeOrder","isActive","columnKey","_jsx","onClick","e","preventDefault","className","children","SortIcon","sortOrder","isSortActive"],"mappings":"yIASM,SAAUA,EAAWC,GACnB,IAAAC,EAAuCC,IAArCC,EAAGF,EAAAE,IAAEC,EAAGH,EAAAG,IAAEC,EAASJ,EAAAI,UAAEC,gBAEvBC,EAAWJ,IAAQH,EAAMQ,UAE/B,OACEC,EAAA,MAAA,CACEC,QAAS,SAACC,GACRA,EAAEC,iBACEL,EACFD,IAEAD,EAAUL,EAAMQ,UAEpB,EACAK,UAAU,iBAAgBC,SAE1BL,EAACM,EAAQ,CACPC,UAAWT,EAAYH,EAAM,MAAQ,OAAU,MAC/Ca,aAAcV,KAItB"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
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};
|
|
1
|
+
"use client";import{__assign as n}from"../../../node_modules/tslib/tslib.es6.js";import{jsx as r}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(n){var t=o(n.initialCondition),e=t.state,a=t.actions,d=t.sortTiming;return r(i.Provider,{value:d,children:r(u.Provider,{value:e,children:r(c.Provider,{value:a,children:n.children})})})}function d(){return n(n(n({},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
2
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../../../../src/table/sort/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport { TReturnSortReducer } from \"./types\";\nimport { useSortReducer } from \"./hooks\";\nimport { DataRecord } from \"../table/type\";\n\nconst SortTimingContext = createContext<number>(0);\n\nconst SortStateContext = createContext<TReturnSortReducer<DataRecord>[\"state\"]>(\n {\n key: \"\",\n asc: false,\n isUpdatedData: false,\n }\n);\n\nconst SortActionContext = createContext<\n TReturnSortReducer<DataRecord>[\"actions\"]\n>({\n changeKey: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n changeOrder: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n sort: () => [],\n updatedData: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n});\n\nexport function SortProvider(props: {\n children: React.ReactNode;\n initialCondition?: { key: string; asc?: boolean };\n}) {\n const { state, actions, sortTiming } = useSortReducer(props.initialCondition);\n return (\n <SortTimingContext.Provider value={sortTiming}>\n <SortStateContext.Provider value={state}>\n <SortActionContext.Provider value={actions}>\n {props.children}\n </SortActionContext.Provider>\n </SortStateContext.Provider>\n </SortTimingContext.Provider>\n );\n}\n\nexport function useSortContext() {\n return {\n ...useContext(SortStateContext),\n ...useContext(SortActionContext),\n sortTiming: useContext(SortTimingContext),\n };\n}\n\nexport function useSortStateContext() {\n return useContext(SortStateContext);\n}\n\nexport function useSortActionContext() {\n return useContext(SortActionContext);\n}\n\nexport function useSortTimingContext() {\n return useContext(SortTimingContext);\n}\n"],"names":["SortTimingContext","createContext","SortStateContext","key","asc","isUpdatedData","SortActionContext","changeKey","Error","changeOrder","sort","updatedData","SortProvider","props","_a","useSortReducer","initialCondition","state","actions","sortTiming","_jsx","Provider","value","children","useSortContext","__assign","useContext","useSortActionContext","useSortTimingContext"],"mappings":"2NAOA,IAAMA,EAAoBC,EAAsB,GAE1CC,EAAmBD,EACvB,CACEE,IAAK,GACLC,KAAK,EACLC,eAAe,IAIbC,EAAoBL,EAExB,CACAM,UAAW,WACT,MAAM,IAAIC,MAAM,4BAClB,EACAC,YAAa,WACX,MAAM,IAAID,MAAM,4BAClB,EACAE,KAAM,WAAM,MAAA,EAAA,EACZC,YAAa,WACX,MAAM,IAAIH,MAAM,4BAClB,IAGI,SAAUI,EAAaC,GAIrB,IAAAC,EAAiCC,EAAeF,EAAMG,kBAApDC,EAAKH,EAAAG,MAAEC,EAAOJ,EAAAI,QAAEC,eACxB,OACEC,EAACpB,EAAkBqB,SAAQ,CAACC,MAAOH,WACjCC,EAAClB,EAAiBmB,UAASC,MAAOL,EAAKM,SACrCH,EAACd,EAAkBe,SAAQ,CAACC,MAAOJ,EAAOK,SACvCV,EAAMU,cAKjB,UAEgBC,IACd,OAAAC,EAAAA,EAAAA,EAAA,CAAA,EACKC,EAAWxB,IACXwB,EAAWpB,IAAkB,CAChCa,WAAYO,EAAW1B,IAE3B,UAMgB2B,IACd,OAAOD,EAAWpB,EACpB,UAEgBsB,IACd,OAAOF,EAAW1B,EACpB"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{__assign as o}from"../../../node_modules/tslib/tslib.es6.js";import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useTable as i}from"./hook.js";import{TableHeaderElement as t}from"../header/header.js";import{PagenationProvider as n}from"../pagenation/providers.js";import{DisplayRange as d,Pagenation as l}from"../pagenation/components.js";import"../filter-v2/context.js";import{FilterProvider as s}from"../filter-v2/provider.js";import"../sort/icon.js";import{SortProvider as c}from"../sort/provider.js";import{ColumnsProvider as a}from"../sheet/providers.js";import{CheckboxProvider as m,CheckboxStatusProvider as p}from"../checkbox/provider.js";import{EditProvider as h}from"../edit/provider.js";import{TablePropertyProvider as f}from"../table-property/provider.js";import{KeyboardSetting as v}from"../operation/components/keyboard-setting.js";import{Row as x}from"../sheet/components.js";import{PasteProvider as j}from"../paste/provider.js";import{generateFormattingString as g}from"../libs/conditional-formatting.js";import{Editor as u}from"../edit/ui/editor.js";import{RangeProvider as w,TestRange as b}from"../range/provider.js";import{CopyProvider as k}from"../copy/provider.js";import{CopiedMessage as y}from"../copy/components.js";import{TableIdGeneratorProvider as C,useTableIdGenerator as N}from"../id/provider.js";import{TableHeader as R}from"../header/header-v2.js";import"../header/columns-width/context.js";import{ColumnsWidthProvider as S}from"../header/columns-width/provider.js";import"../header/x-scroll-position/context.js";import{ScrollXPositionProvider as F}from"../header/x-scroll-position/provider.js";import{Frame as H}from"../frame/frame.js";import{ComponentProvider as I,useGenerateSortButton as W}from"./component-provider/provider.js";import{SelectBoxProvider as D}from"../../select-box/provider.js";function P(i){var t,d,l,x;return r(I,{children:r(C,{id:i.id,children:r(S,{initialState:i.cols,children:r(s,{initialConditions:[],children:r(c,{initialCondition:null===(t=i.initialCondition)||void 0===t?void 0:t.sort,children:r(n,{rowCount:i.rows.length,perPage:null===(l=null===(d=i.initialCondition)||void 0===d?void 0:d.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r(m,{checkbox:i.checkbox,children:r(p,{checkboxCount:i.rows.length,children:r(a,{cols:i.cols,errorHandler:i.errorHandler,children:r(h,{children:r(f,{children:r(w,{children:e(k,{rows:i.rows,cols:i.cols,children:[r(y,{}),e(j,{rows:i.rows,cols:i.cols,onUpdateRowFunction:i.onUpdateRow,children:[r(v,{enableDeprecatedCopy:null===(x=i.deprecatedOptions)||void 0===x?void 0:x.enableDeprecatedCopy}),r(F,{children:r(A,o({},i))})]})]})})})})})})})})})})})})})}function A(o){var n=i(o),s=n.cols,c=n.rowMaps,a=n.pageRowIds,m=N(),p=W();return e("div",{className:"w-full max-w-full max-h-full",children:[e("div",{children:[r(R,{cols:s,checkbox:!!o.checkbox,rows:o.rows,maxWidth:o.maxWidth,generateSortButton:p}),r(D,{children:e(H,{id:m.getTableId(),maxHeight:o.maxHeight,maxWidth:o.maxWidth,displayScroll:!1,children:[e("table",{className:"table",children:[r("thead",{children:e("tr",{children:[o.checkbox&&r("th",{className:"p-px"}),s.map((function(o){return r(t,{keyname:o.key.toString()},o.key.toString())}))]})}),e("tbody",{children:[0===a.length&&r("tr",{children:r("td",{colSpan:s.length,className:"px-px py-5",children:r("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),a.map((function(e,i){return r(x,{existCheckbox:!!o.checkbox,rowIndex:i,dataString:c[e].stringValue,cols:o.cols,onClickRow:o.onClickRow,applyRowFormatting:o.applyRowFormatting,conditionalFormattingString:g(c[e].data,s,o.conditionalFormattings)},e)}))]})]}),r(b,{}),r(u,{rowMaps:c,pageRowIds:a})]})})]}),e("div",{className:"mt-1",children:[r(d,{}),r("div",{className:"mt-2",children:r(l,{})})]})]})}export{P as default};
|
|
1
|
+
"use client";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 i}from"./hook.js";import{TableHeaderElement as t}from"../header/header.js";import{PagenationProvider as n}from"../pagenation/providers.js";import{DisplayRange as d,Pagenation as l}from"../pagenation/components.js";import"../filter-v2/context.js";import{FilterProvider as s}from"../filter-v2/provider.js";import"../sort/icon.js";import{SortProvider as c}from"../sort/provider.js";import{ColumnsProvider as a}from"../sheet/providers.js";import{CheckboxProvider as m,CheckboxStatusProvider as p}from"../checkbox/provider.js";import{EditProvider as h}from"../edit/provider.js";import{TablePropertyProvider as f}from"../table-property/provider.js";import{KeyboardSetting as v}from"../operation/components/keyboard-setting.js";import{Row as x}from"../sheet/components.js";import{PasteProvider as j}from"../paste/provider.js";import{generateFormattingString as g}from"../libs/conditional-formatting.js";import{Editor as u}from"../edit/ui/editor.js";import{RangeProvider as w,TestRange as b}from"../range/provider.js";import{CopyProvider as k}from"../copy/provider.js";import{CopiedMessage as y}from"../copy/components.js";import{TableIdGeneratorProvider as C,useTableIdGenerator as N}from"../id/provider.js";import{TableHeader as R}from"../header/header-v2.js";import"../header/columns-width/context.js";import{ColumnsWidthProvider as I,ColumnsWidthStyle as S}from"../header/columns-width/provider.js";import"../header/x-scroll-position/context.js";import{ScrollXPositionProvider as F}from"../header/x-scroll-position/provider.js";import{Frame as P}from"../frame/frame.js";import{ComponentProvider as H,useGenerateSortButton as W}from"./component-provider/provider.js";import{SelectBoxProvider as D}from"../../select-box/provider.js";function T(i){var t,d,l,x;return r(H,{children:r(C,{id:i.id,children:r(I,{cols:i.cols,children:r(s,{initialConditions:[],children:r(c,{initialCondition:null===(t=i.initialCondition)||void 0===t?void 0:t.sort,children:r(n,{rowCount:i.rows.length,perPage:null===(l=null===(d=i.initialCondition)||void 0===d?void 0:d.pagenation)||void 0===l?void 0:l.rowCountPerPage,children:r(m,{checkbox:i.checkbox,children:r(p,{checkboxCount:i.rows.length,children:r(a,{cols:i.cols,errorHandler:i.errorHandler,children:r(h,{children:r(f,{children:r(w,{children:e(k,{rows:i.rows,cols:i.cols,children:[r(y,{}),e(j,{rows:i.rows,cols:i.cols,onUpdateRowFunction:i.onUpdateRow,onPasteError:i.onPasteError,children:[r(v,{enableDeprecatedCopy:null===(x=i.deprecatedOptions)||void 0===x?void 0:x.enableDeprecatedCopy}),r(F,{children:r(A,o({},i))})]})]})})})})})})})})})})})})})}function A(o){var n=i(o),s=n.cols,c=n.rowMaps,a=n.pageRowIds,m=N(),p=W();return e("div",{className:"w-full max-w-full max-h-full",children:[e("div",{children:[r(R,{cols:s,checkbox:!!o.checkbox,rows:o.rows,maxWidth:o.maxWidth,generateSortButton:p}),r(S,{scopeId:m.getTableId()}),r(D,{children:e(P,{id:m.getTableId(),maxHeight:o.maxHeight,maxWidth:o.maxWidth,displayScroll:!1,children:[e("table",{className:"table",children:[r("thead",{children:e("tr",{children:[o.checkbox&&r("th",{className:"p-px"}),s.map((function(o){return r(t,{keyname:o.key.toString()},o.key.toString())}))]})}),e("tbody",{children:[0===a.length&&r("tr",{children:r("td",{colSpan:s.length+(o.checkbox?1:0),className:"px-px py-5",children:r("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),a.map((function(e,i){return r(x,{existCheckbox:!!o.checkbox,rowIndex:i,row:c[e].data,cols:o.cols,onClickRow:o.onClickRow,applyRowFormatting:o.applyRowFormatting,conditionalFormattingString:g(c[e].data,s,o.conditionalFormattings)},e)}))]})]}),r(b,{}),r(u,{rowMaps:c,pageRowIds:a})]})})]}),e("div",{className:"mt-1",children:[r(d,{}),r("div",{className:"mt-2",children:r(l,{})})]})]})}export{T as default};
|
|
3
2
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../../../src/table/table/base.tsx"],"sourcesContent":["\"use client\";\n\nimport { useTable } from \"./hook\";\nimport { TableHeaderElement } from \"../header/header\";\nimport {\n DataRecord,\n TConditionalFormatting,\n TPropsTable,\n TTableColumn,\n} from \"./type\";\nimport { PagenationProvider, DisplayRange, Pagenation } from \"../pagenation\";\nimport { FilterProvider } from \"../filter-v2\";\nimport { SortProvider } from \"../sort\";\nimport { ColumnsProvider } from \"../sheet/providers\";\nimport { CheckboxProvider, CheckboxStatusProvider } from \"../checkbox/provider\";\nimport { EditProvider } from \"../edit/provider\";\nimport { TablePropertyProvider } from \"../table-property/provider\";\nimport { KeyboardSetting } from \"../operation/components/keyboard-setting\";\nimport { Row } from \"../sheet/components\";\nimport { PasteProvider } from \"../paste/provider\";\nimport { generateFormattingString } from \"../libs/conditional-formatting\";\nimport { Editor } from \"../edit/ui/editor\";\nimport { RangeProvider, TestRange } from \"../range/provider\";\nimport { CopyProvider } from \"../copy/provider\";\nimport { CopiedMessage } from \"../copy/components\";\nimport { TableIdGeneratorProvider, useTableIdGenerator } from \"../id\";\nimport { TableHeader } from \"../header/header-v2\";\nimport {\n ColumnsWidthProvider,\n ColumnsWidthStyle,\n ScrollXPositionProvider,\n} from \"../header\";\nimport { Frame } from \"../frame\";\nimport { ComponentProvider } from \"./component-provider\";\nimport { useGenerateSortButton } from \"./component-provider/provider\";\nimport { SelectBoxProvider } from \"../../select-box/provider\";\n\nexport default function Table<T extends DataRecord>(props: TPropsTable<T>) {\n return (\n <ComponentProvider>\n <TableIdGeneratorProvider id={props.id}>\n <ColumnsWidthProvider cols={props.cols as TTableColumn<DataRecord>[]}>\n <FilterProvider initialConditions={[]}>\n <SortProvider initialCondition={props.initialCondition?.sort}>\n <PagenationProvider\n rowCount={props.rows.length}\n perPage={props.initialCondition?.pagenation?.rowCountPerPage}\n >\n <CheckboxProvider checkbox={props.checkbox}>\n <CheckboxStatusProvider checkboxCount={props.rows.length}>\n <ColumnsProvider\n cols={props.cols}\n errorHandler={props.errorHandler}\n >\n <EditProvider>\n <TablePropertyProvider>\n <RangeProvider>\n <CopyProvider rows={props.rows} cols={props.cols}>\n <CopiedMessage />\n <PasteProvider\n rows={props.rows}\n cols={props.cols}\n onUpdateRowFunction={props.onUpdateRow}\n onPasteError={props.onPasteError}\n >\n <KeyboardSetting\n enableDeprecatedCopy={\n props.deprecatedOptions\n ?.enableDeprecatedCopy\n }\n />\n <ScrollXPositionProvider>\n <BaseTable {...props} />\n </ScrollXPositionProvider>\n </PasteProvider>\n </CopyProvider>\n </RangeProvider>\n </TablePropertyProvider>\n </EditProvider>\n </ColumnsProvider>\n </CheckboxStatusProvider>\n </CheckboxProvider>\n </PagenationProvider>\n </SortProvider>\n </FilterProvider>\n </ColumnsWidthProvider>\n </TableIdGeneratorProvider>\n </ComponentProvider>\n );\n}\n\nfunction BaseTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { cols, rowMaps, pageRowIds } = useTable<T>(props);\n const IdGenerator = useTableIdGenerator();\n const generateSortButton = useGenerateSortButton();\n\n return (\n <div className=\"w-full max-w-full max-h-full\">\n <div>\n <TableHeader\n cols={cols}\n checkbox={!!props.checkbox}\n rows={props.rows}\n maxWidth={props.maxWidth}\n generateSortButton={generateSortButton}\n />\n\n <ColumnsWidthStyle scopeId={IdGenerator.getTableId()} />\n <SelectBoxProvider>\n <Frame\n id={IdGenerator.getTableId()}\n maxHeight={props.maxHeight}\n maxWidth={props.maxWidth}\n displayScroll={false}\n >\n <table className={`table`}>\n <thead>\n <tr>\n {props.checkbox && <th className=\"p-px\"></th>}\n {cols.map((col) => (\n <TableHeaderElement\n key={col.key.toString()}\n keyname={col.key.toString()}\n />\n ))}\n </tr>\n </thead>\n <tbody>\n {pageRowIds.length === 0 && (\n <tr>\n <td\n colSpan={cols.length + (props.checkbox ? 1 : 0)}\n className=\"px-px py-5\"\n >\n <p className=\"text-center font-bold text-lg\">NO DATA</p>\n </td>\n </tr>\n )}\n {pageRowIds.map((rowId, i) => (\n <Row\n key={rowId}\n existCheckbox={!!props.checkbox}\n rowIndex={i}\n row={rowMaps[rowId].data}\n cols={props.cols as TTableColumn<DataRecord>[]}\n onClickRow={props.onClickRow}\n applyRowFormatting={props.applyRowFormatting}\n conditionalFormattingString={generateFormattingString(\n rowMaps[rowId].data,\n cols as TTableColumn<DataRecord>[],\n props.conditionalFormattings as TConditionalFormatting<DataRecord>[]\n )}\n />\n ))}\n </tbody>\n </table>\n <TestRange />\n <Editor rowMaps={rowMaps} pageRowIds={pageRowIds} />\n </Frame>\n </SelectBoxProvider>\n </div>\n <div className=\"mt-1\">\n <DisplayRange />\n <div className=\"mt-2\">\n <Pagenation />\n </div>\n </div>\n </div>\n );\n}\n"],"names":["Table","props","_jsx","ComponentProvider","children","TableIdGeneratorProvider","id","ColumnsWidthProvider","cols","FilterProvider","initialConditions","SortProvider","initialCondition","_a","sort","PagenationProvider","rowCount","rows","length","perPage","_c","_b","pagenation","rowCountPerPage","CheckboxProvider","checkbox","CheckboxStatusProvider","checkboxCount","ColumnsProvider","errorHandler","EditProvider","TablePropertyProvider","RangeProvider","_jsxs","CopyProvider","CopiedMessage","PasteProvider","onUpdateRowFunction","onUpdateRow","onPasteError","KeyboardSetting","enableDeprecatedCopy","deprecatedOptions","_d","ScrollXPositionProvider","BaseTable","__assign","useTable","rowMaps","pageRowIds","IdGenerator","useTableIdGenerator","generateSortButton","useGenerateSortButton","className","TableHeader","maxWidth","ColumnsWidthStyle","scopeId","getTableId","SelectBoxProvider","Frame","maxHeight","displayScroll","map","col","TableHeaderElement","keyname","key","toString","colSpan","rowId","i","Row","existCheckbox","rowIndex","row","data","onClickRow","applyRowFormatting","conditionalFormattingString","generateFormattingString","conditionalFormattings","TestRange","Editor","DisplayRange","Pagenation"],"mappings":"q1DAqCc,SAAUA,EAA4BC,eAClD,OACEC,EAACC,EAAiB,CAAAC,SAChBF,EAACG,EAAwB,CAACC,GAAIL,EAAMK,GAAEF,SACpCF,EAACK,EAAoB,CAACC,KAAMP,EAAMO,KAAkCJ,SAClEF,EAACO,EAAc,CAACC,kBAAmB,YACjCR,EAACS,GAAaC,iBAAwC,UAAtBX,EAAMW,wBAAgB,IAAAC,OAAA,EAAAA,EAAEC,cACtDZ,EAACa,GACCC,SAAUf,EAAMgB,KAAKC,OACrBC,gBAASC,EAAsB,UAAtBnB,EAAMW,wBAAgB,IAAAS,OAAA,EAAAA,EAAEC,iCAAYC,gBAAenB,SAE5DF,EAACsB,EAAgB,CAACC,SAAUxB,EAAMwB,SAAQrB,SACxCF,EAACwB,EAAsB,CAACC,cAAe1B,EAAMgB,KAAKC,OAAMd,SACtDF,EAAC0B,EAAe,CACdpB,KAAMP,EAAMO,KACZqB,aAAc5B,EAAM4B,sBAEpB3B,EAAC4B,YACC5B,EAAC6B,YACC7B,EAAC8B,YACCC,EAACC,GAAajB,KAAMhB,EAAMgB,KAAMT,KAAMP,EAAMO,eAC1CN,EAACiC,MACDF,EAACG,EAAa,CACZnB,KAAMhB,EAAMgB,KACZT,KAAMP,EAAMO,KACZ6B,oBAAqBpC,EAAMqC,YAC3BC,aAActC,EAAMsC,uBAEpBrC,EAACsC,GACCC,qBACyB,UAAvBxC,EAAMyC,yBAAiB,IAAAC,OAAA,EAAAA,EACnBF,uBAGRvC,EAAC0C,EAAuB,CAAAxC,SACtBF,EAAC2C,EAASC,EAAA,CAAA,EAAK7C,mCAiBjD,CAEA,SAAS4C,EAAgC5C,GACjC,IAAAY,EAAgCkC,EAAY9C,GAA1CO,EAAIK,EAAAL,KAAEwC,EAAOnC,EAAAmC,QAAEC,eACjBC,EAAcC,IACdC,EAAqBC,IAE3B,OACEpB,EAAA,MAAA,CAAKqB,UAAU,+BAA8BlD,SAAA,CAC3C6B,EAAA,MAAA,CAAA7B,SAAA,CACEF,EAACqD,EAAW,CACV/C,KAAMA,EACNiB,WAAYxB,EAAMwB,SAClBR,KAAMhB,EAAMgB,KACZuC,SAAUvD,EAAMuD,SAChBJ,mBAAoBA,IAGtBlD,EAACuD,GAAkBC,QAASR,EAAYS,eACxCzD,EAAC0D,EAAiB,CAAAxD,SAChB6B,EAAC4B,EAAK,CACJvD,GAAI4C,EAAYS,aAChBG,UAAW7D,EAAM6D,UACjBN,SAAUvD,EAAMuD,SAChBO,eAAe,YAEf9B,EAAA,QAAA,CAAOqB,UAAW,QAAOlD,SAAA,CACvBF,EAAA,QAAA,CAAAE,SACE6B,EAAA,KAAA,CAAA7B,SAAA,CACGH,EAAMwB,UAAYvB,EAAA,KAAA,CAAIoD,UAAU,SAChC9C,EAAKwD,KAAI,SAACC,GAAQ,OACjB/D,EAACgE,EAAkB,CAEjBC,QAASF,EAAIG,IAAIC,YADZJ,EAAIG,IAAIC,WAFE,SAQvBpC,EAAA,QAAA,CAAA7B,SAAA,CACyB,IAAtB6C,EAAW/B,QACVhB,iBACEA,EAAA,KAAA,CACEoE,QAAS9D,EAAKU,QAAUjB,EAAMwB,SAAW,EAAI,GAC7C6B,UAAU,aAAYlD,SAEtBF,EAAA,IAAA,CAAGoD,UAAU,gCAA+BlD,SAAA,gBAIjD6C,EAAWe,KAAI,SAACO,EAAOC,GAAM,OAC5BtE,EAACuE,EAAG,CAEFC,gBAAiBzE,EAAMwB,SACvBkD,SAAUH,EACVI,IAAK5B,EAAQuB,GAAOM,KACpBrE,KAAMP,EAAMO,KACZsE,WAAY7E,EAAM6E,WAClBC,mBAAoB9E,EAAM8E,mBAC1BC,4BAA6BC,EAC3BjC,EAAQuB,GAAOM,KACfrE,EACAP,EAAMiF,yBAVHX,EAFqB,UAkBlCrE,EAACiF,EAAS,CAAA,GACVjF,EAACkF,EAAM,CAACpC,QAASA,EAASC,WAAYA,YAI5ChB,EAAA,MAAA,CAAKqB,UAAU,OAAMlD,SAAA,CACnBF,EAACmF,EAAY,CAAA,GACbnF,EAAA,MAAA,CAAKoD,UAAU,OAAMlD,SACnBF,EAACoF,EAAU,CAAA,UAKrB"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{jsx as r,Fragment as o}from"react/jsx-runtime";import{createContext as t,useCallback as n,useContext as e}from"react";import{SortButton as i}from"../../sort/components.js";import"../../sort/provider.js";var u=t((function(){return r(o,{})}));function c(o){var t=n((function(o){return r(i,{columnKey:o})}),[]);return r(u.Provider,{value:t,children:o.children})}function m(){return e(u)}export{c as ComponentProvider,m as useGenerateSortButton};
|
|
1
|
+
"use client";import{jsx as r,Fragment as t}from"react/jsx-runtime";import{createContext as n,useCallback as o,useContext as e}from"react";import{SortButton as i}from"../../sort/components.js";import"../../sort/provider.js";var u=n((function(){return r(t,{})}));function c(t){var n=o((function(t){return r(i,{columnKey:t})}),[]);return r(u.Provider,{value:n,children:t.children})}function m(){return e(u)}export{c as ComponentProvider,m as useGenerateSortButton};
|
|
3
2
|
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../../../../../src/table/table/component-provider/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useCallback, useContext } from \"react\";\nimport { SortButton } from \"../../sort\";\n\nconst GenerateSortButtonContext = createContext<\n (columnKey: string) => React.JSX.Element\n>(() => <></>);\n\nexport function ComponentProvider(props: { children: React.ReactNode }) {\n const generateSortButton = useCallback((columnKey: string) => {\n return <SortButton columnKey={columnKey} />;\n }, []);\n\n return (\n <GenerateSortButtonContext.Provider value={generateSortButton}>\n {props.children}\n </GenerateSortButtonContext.Provider>\n );\n}\n\nexport function useGenerateSortButton() {\n return useContext(GenerateSortButtonContext);\n}\n"],"names":["GenerateSortButtonContext","createContext","_jsx","_Fragment","ComponentProvider","props","generateSortButton","useCallback","columnKey","SortButton","Provider","value","children","useGenerateSortButton","useContext"],"mappings":"+NAKA,IAAMA,EAA4BC,GAEhC,WAAM,OAAAC,EAAAC,EAAA,CAAA,EAAA,IAEF,SAAUC,EAAkBC,GAChC,IAAMC,EAAqBC,GAAY,SAACC,GACtC,OAAON,EAACO,EAAU,CAACD,UAAWA,GAChC,GAAG,IAEH,OACEN,EAACF,EAA0BU,SAAQ,CAACC,MAAOL,WACxCD,EAAMO,UAGb,UAEgBC,IACd,OAAOC,EAAWd,EACpB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useMemo as r,useEffect as t}from"react";import{usePageContext as o}from"../pagenation/providers.js";import{useCheckboxStatusContext as n}from"../checkbox/provider.js";import{useSortActionContext as e,useSortTimingContext as i}from"../sort/provider.js";import{useTablePropertyActionContext as c}from"../table-property/provider.js";import{usePasteActionContext as u}from"../paste/provider.js";import{useCopyActionContext as s}from"../copy/provider.js";import{useFilterFunctions as
|
|
1
|
+
import{useMemo as r,useEffect as t}from"react";import{usePageContext as o}from"../pagenation/providers.js";import{useCheckboxStatusContext as n}from"../checkbox/provider.js";import{useSortActionContext as e,useSortTimingContext as i}from"../sort/provider.js";import{useTablePropertyActionContext as c}from"../table-property/provider.js";import{usePasteActionContext as u}from"../paste/provider.js";import{useCopyActionContext as s}from"../copy/provider.js";import{useFilterFunctions as f}from"../filter-v2/context.js";function a(a){var p=f().filter,d=e(),l=d.sort,m=d.updatedData,h=i(),v=o(),w=v.setRowCount,g=v.pageFilter,x=n().dispatchCheckboxStatus,j=u().setRows,k=s().setRows,y=c(),b=y.setMaxDisplayColCount,R=y.setMaxDisplayRowCount,C=r((function(){return JSON.stringify(a.rows.map((function(r){return r.id})))}),[a.rows]),S=r((function(){return p(a.rows)}),[p,h,C]);t((function(){w(S.length)}),[S.length]);var D=r((function(){return a.checkbox?a.rows.filter((function(r){var t;return null===(t=a.checkbox)||void 0===t?void 0:t.checked(r)})):[]}),[a.checkbox,a.rows]);t((function(){x({type:"SET",payload:{checkedRecords:D}})}),[D]);var M=r((function(){return l(S)}),[S,h]);t((function(){m()}),[a.rows]);var E=r((function(){return g(M)}),[g,M]),F=r((function(){return E.map((function(r){return r.id}))}),[E]),I=r((function(){return new Set(F)}),[F]),J=r((function(){return a.rows.filter((function(r){return I.has(r.id)})).reduce((function(r,t){return r[t.id]={data:t},r}),{})}),[a.rows,I]);return t((function(){b(a.cols.length)}),[a.cols.length]),t((function(){R(F.length)}),[F.length]),t((function(){var r=F.map((function(r){return J[r].data}));k(r),j(r)}),[J]),{cols:a.cols,rowMaps:J,pageRowIds:F}}export{a as useTable};
|
|
2
2
|
//# sourceMappingURL=hook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\nimport { useCopyActionContext } from \"../copy/provider\";\nimport { useFilterFunctions } from \"../filter-v2/context\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterFunctions();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows: setRowsForPaste } = usePasteActionContext();\n const { setRows: setRowsForCopy } = useCopyActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming,
|
|
1
|
+
{"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\nimport { useCopyActionContext } from \"../copy/provider\";\nimport { useFilterFunctions } from \"../filter-v2/context\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterFunctions();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows: setRowsForPaste } = usePasteActionContext();\n const { setRows: setRowsForCopy } = useCopyActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n // Re-run filter/sort only when the set of rows changes (rows added, removed\n // or replaced). Edits that keep the same ids keep the current order.\n const rowIdsKey = useMemo(\n () => JSON.stringify(props.rows.map((row) => row.id)),\n [props.rows]\n );\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, rowIdsKey]\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 // Rows on the current page by id. `data` is the row object passed in\n // through props, so callbacks receive it unchanged (Date values stay Date).\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n acc[row.id] = { data: row };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any> } }),\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 const rows = pageRowIds.map((id) => rowMaps[id].data);\n setRowsForCopy(rows);\n setRowsForPaste(rows);\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n"],"names":["useTable","props","filter","useFilterFunctions","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRowsForPaste","usePasteActionContext","setRowsForCopy","useCopyActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","rowIdsKey","useMemo","JSON","stringify","rows","map","row","id","filteredRows","useEffect","length","checkBoxes","checkbox","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","pageRowIdSets","Set","rowMaps","has","reduce","acc","data","cols"],"mappings":"sgBAUM,SAAUA,EAA+BC,GACrC,IAAAC,EAAWC,WACbC,EAAwBC,IAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,IACbC,EAA8BC,IAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,2BAClBC,EAAoBC,YACpBC,EAAmBC,YAC9BC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAK9CC,EAAYC,GAChB,WAAM,OAAAC,KAAKC,UAAU1B,EAAM2B,KAAKC,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,IAAvC,GACN,CAAC9B,EAAM2B,OAGHI,EAAeP,GACnB,WAAM,OAAAvB,EAAOD,EAAM2B,KAAb,GACN,CAAC1B,EAAQM,EAAYgB,IAGvBS,GAAU,WACRrB,EAAYoB,EAAaE,OAC3B,GAAG,CAACF,EAAaE,SAEjB,IAAMC,EAAaV,GAAQ,WACzB,OAAKxB,EAAMmC,SAIJnC,EAAM2B,KAAK1B,QAAO,SAAC4B,GAAG,IAAA1B,EAAK,eAAAA,EAAAH,EAAMmC,+BAAUC,QAAQP,EAAI,IAHrD,EAIX,GAAG,CAAC7B,EAAMmC,SAAUnC,EAAM2B,OAE1BK,GAAU,WACRnB,EAAuB,CACrBwB,KAAM,MACNC,QAAS,CAAEC,eAAgBL,IAE/B,GAAG,CAACA,IAEJ,IAAMM,EAAahB,GACjB,WAAM,OAAAnB,EAAK0B,EAAL,GACN,CAACA,EAAcxB,IAGjByB,GAAU,WACR1B,GACF,GAAG,CAACN,EAAM2B,OAEV,IAAMc,EAAWjB,GACf,WAAM,OAAAZ,EAAW4B,EAAX,GACN,CAAC5B,EAAY4B,IAGTE,EAAalB,GAAQ,WAAM,OAAAiB,EAASb,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,GAAtB,GAA+B,CAACW,IAC3DE,EAAgBnB,GAAQ,WAAM,OAAA,IAAIoB,IAAIF,EAAR,GAAqB,CAACA,IAIpDG,EAAUrB,GACd,WACE,OAAAxB,EAAM2B,KACH1B,QAAO,SAAC4B,GAAQ,OAAAc,EAAcG,IAAIjB,EAAIC,GAAtB,IAChBiB,QAAO,SAACC,EAAKnB,GAEZ,OADAmB,EAAInB,EAAIC,IAAM,CAAEmB,KAAMpB,GACfmB,CACT,GAAG,CAAA,EALL,GAMF,CAAChD,EAAM2B,KAAMgB,IAiBf,OAdAX,GAAU,WACRX,EAAsBrB,EAAMkD,KAAKjB,OACnC,GAAG,CAACjC,EAAMkD,KAAKjB,SAEfD,GAAU,WACRV,EAAsBoB,EAAWT,OACnC,GAAG,CAACS,EAAWT,SAEfD,GAAU,WACR,IAAML,EAAOe,EAAWd,KAAI,SAACE,GAAO,OAAAe,EAAQf,GAAImB,IAAZ,IACpChC,EAAeU,GACfZ,EAAgBY,EAClB,GAAG,CAACkB,IAEG,CACLK,KAAMlD,EAAMkD,KACZL,QAAOA,EACPH,WAAUA,EAEd"}
|