@teppen/react-ui 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +14 -1
  2. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +1 -1
  3. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  4. package/dist/cjs/src/share/text/normalize.js +2 -0
  5. package/dist/cjs/src/share/text/normalize.js.map +1 -0
  6. package/dist/cjs/src/table/copy/components.js +1 -1
  7. package/dist/cjs/src/table/copy/components.js.map +1 -1
  8. package/dist/cjs/src/table/edit/ui/select-input.js +1 -1
  9. package/dist/cjs/src/table/edit/ui/select-input.js.map +1 -1
  10. package/dist/cjs/src/table/filter-v2/hook.js +1 -1
  11. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
  12. package/dist/cjs/src/table/libs/generate-validate-function.js +1 -1
  13. package/dist/cjs/src/table/libs/generate-validate-function.js.map +1 -1
  14. package/dist/cjs/src/table/locale/messages.js +2 -0
  15. package/dist/cjs/src/table/locale/messages.js.map +1 -0
  16. package/dist/cjs/src/table/locale/provider.js +2 -0
  17. package/dist/cjs/src/table/locale/provider.js.map +1 -0
  18. package/dist/cjs/src/table/operation/components/key-catcher.js +2 -0
  19. package/dist/cjs/src/table/operation/components/key-catcher.js.map +1 -0
  20. package/dist/cjs/src/table/operation/components/keyboard-setting.js +1 -1
  21. package/dist/cjs/src/table/operation/components/keyboard-setting.js.map +1 -1
  22. package/dist/cjs/src/table/operation/editor-input.js +2 -0
  23. package/dist/cjs/src/table/operation/editor-input.js.map +1 -0
  24. package/dist/cjs/src/table/operation/event-target.js +1 -1
  25. package/dist/cjs/src/table/operation/event-target.js.map +1 -1
  26. package/dist/cjs/src/table/paste/hooks.js +1 -1
  27. package/dist/cjs/src/table/paste/hooks.js.map +1 -1
  28. package/dist/cjs/src/table/paste/logic.js +1 -1
  29. package/dist/cjs/src/table/paste/logic.js.map +1 -1
  30. package/dist/cjs/src/table/sheet/providers.js +1 -1
  31. package/dist/cjs/src/table/sheet/providers.js.map +1 -1
  32. package/dist/cjs/src/table/sort/hooks.js +1 -1
  33. package/dist/cjs/src/table/sort/hooks.js.map +1 -1
  34. package/dist/cjs/src/table/sort/provider.js +1 -1
  35. package/dist/cjs/src/table/sort/provider.js.map +1 -1
  36. package/dist/cjs/src/table/table/base.js +1 -1
  37. package/dist/cjs/src/table/table/base.js.map +1 -1
  38. package/dist/cjs/src/table/table/hook.js +1 -1
  39. package/dist/cjs/src/table/table/hook.js.map +1 -1
  40. package/dist/esm/src/search-bar/condition-search-bar/input-form.js +1 -1
  41. package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  42. package/dist/esm/src/share/text/normalize.js +2 -0
  43. package/dist/esm/src/share/text/normalize.js.map +1 -0
  44. package/dist/esm/src/table/copy/components.js +1 -1
  45. package/dist/esm/src/table/copy/components.js.map +1 -1
  46. package/dist/esm/src/table/edit/ui/select-input.js +1 -1
  47. package/dist/esm/src/table/edit/ui/select-input.js.map +1 -1
  48. package/dist/esm/src/table/filter-v2/hook.js +1 -1
  49. package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
  50. package/dist/esm/src/table/libs/generate-validate-function.js +1 -1
  51. package/dist/esm/src/table/libs/generate-validate-function.js.map +1 -1
  52. package/dist/esm/src/table/locale/messages.js +2 -0
  53. package/dist/esm/src/table/locale/messages.js.map +1 -0
  54. package/dist/esm/src/table/locale/provider.js +2 -0
  55. package/dist/esm/src/table/locale/provider.js.map +1 -0
  56. package/dist/esm/src/table/operation/components/key-catcher.js +2 -0
  57. package/dist/esm/src/table/operation/components/key-catcher.js.map +1 -0
  58. package/dist/esm/src/table/operation/components/keyboard-setting.js +1 -1
  59. package/dist/esm/src/table/operation/components/keyboard-setting.js.map +1 -1
  60. package/dist/esm/src/table/operation/editor-input.js +2 -0
  61. package/dist/esm/src/table/operation/editor-input.js.map +1 -0
  62. package/dist/esm/src/table/operation/event-target.js +1 -1
  63. package/dist/esm/src/table/operation/event-target.js.map +1 -1
  64. package/dist/esm/src/table/paste/hooks.js +1 -1
  65. package/dist/esm/src/table/paste/hooks.js.map +1 -1
  66. package/dist/esm/src/table/paste/logic.js +1 -1
  67. package/dist/esm/src/table/paste/logic.js.map +1 -1
  68. package/dist/esm/src/table/sheet/providers.js +1 -1
  69. package/dist/esm/src/table/sheet/providers.js.map +1 -1
  70. package/dist/esm/src/table/sort/hooks.js +1 -1
  71. package/dist/esm/src/table/sort/hooks.js.map +1 -1
  72. package/dist/esm/src/table/sort/provider.js +1 -1
  73. package/dist/esm/src/table/sort/provider.js.map +1 -1
  74. package/dist/esm/src/table/table/base.js +1 -1
  75. package/dist/esm/src/table/table/base.js.map +1 -1
  76. package/dist/esm/src/table/table/hook.js +1 -1
  77. package/dist/esm/src/table/table/hook.js.map +1 -1
  78. package/dist/index.d.ts +39 -26
  79. package/package.json +1 -1
@@ -1 +1 @@
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","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":"qSAUMA,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,0BAEM,SAA0BI,GAC9B,IAAMC,EAAcC,EAAAA,sBACdC,EAAOC,EAAAA,iBACPC,EAAQC,EAAAA,kBACNC,EAASC,EAAAA,4BACXC,EAAMC,EAAAA,oBAAoBL,EAAMM,YAAcN,EAAMO,MAAMC,SAAW,GAgH3E,OA9GAC,EAAAA,WAAU,WACR,IAAMC,EAAW,SAACC,GACZC,EAAAA,eAAeD,KAIfb,EAAKe,UACO,WAAVF,EAAElC,MACJkC,EAAEG,iBACFhB,EAAKiB,cAEEf,EAAMM,cAAgBU,EAAAA,kBAAkBL,EAAEM,UACrC,UAAVN,EAAElC,KACJkC,EAAEG,iBACFd,EAAMkB,YACa,WAAVP,EAAElC,KACXkC,EAAEG,iBACFd,EAAMmB,SACa,eAAVR,EAAElC,KACXkC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAMsB,iBACGX,EAAES,QACXpB,EAAMuB,eACGZ,EAAEU,SACXrB,EAAMwB,cAENxB,EAAMyB,aAEW,cAAVd,EAAElC,KACXkC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAM0B,gBACGf,EAAES,QACXpB,EAAM2B,cACGhB,EAAEU,SACXrB,EAAM4B,aAEN5B,EAAM6B,YAEW,YAAVlB,EAAElC,KACXkC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAM8B,YACGnB,EAAES,QACXpB,EAAM+B,UACGpB,EAAEU,SACXrB,EAAMgC,WAENhC,EAAMiC,UAEW,cAAVtB,EAAElC,KACXkC,EAAEG,iBAEEH,EAAES,SAAWT,EAAEU,SACjBrB,EAAMkC,eACGvB,EAAES,QACXpB,EAAMmC,aACGxB,EAAEU,SACXrB,EAAMoC,aAENpC,EAAMkB,YAEW,OAAVP,EAAElC,KACXkC,EAAEG,iBACFhB,EAAKuC,iBACK1B,EAAES,SAAWT,EAAE2B,UAAoC,MAAxB3B,EAAElC,IAAI8D,eAC3C5B,EAAEG,iBACFZ,EAAK,CAAEsC,qBAAsB7C,aAAO,EAAPA,EAAS6C,wBAErC7B,EAAE8B,QACF9B,EAAES,SACFT,EAAE2B,UACH,gBAAgBI,KAAK/B,EAAElC,KASJ,cAAVkC,EAAElC,KAAiC,WAAVkC,EAAElC,MACpCkC,EAAEG,iBACFH,EAAEgC,kBACF7C,EAAKuC,eAELO,YAAW,WACTpE,EAA2B,GAAIoB,EAAYiD,cAC7C,GAAG,MAdHlC,EAAEG,iBACFH,EAAEgC,kBACF7C,EAAKuC,eAELO,YAAW,WACTpE,EAA2BmC,EAAElC,IAAKmB,EAAYiD,cAChD,GAAG,MAWT,EAIA,OAFAjE,SAASkE,iBAAiB,UAAWpC,GAE9B,WACL9B,SAASmE,oBAAoB,UAAWrC,EAC1C,CACF,GAAG,CAACV,EAAOF,EAAKe,YAEhBJ,EAAAA,WAAU,WACJX,EAAKe,YAAcT,EAAI4C,UACzBlD,EAAKiB,YAET,GAAG,CAACjB,EAAMM,IAEH6C,EAAAA,kBACT"}
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\";\nimport { setEditorInitialValue } from \"../editor-input\";\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 // Any key that types one character (letters, digits, symbols,\n // space). IME input is handled by KeyCatcher instead.\n Array.from(e.key).length === 1\n ) {\n e.preventDefault();\n e.stopPropagation();\n edit.startEditing();\n\n setTimeout(() => {\n setEditorInitialValue(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 setEditorInitialValue(\"\", 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":["options","IdGenerator","useTableIdGenerator","edit","useEditContext","range","useRangeContext","copy","useCopyActionContext","col","useColumnsContext","isSelecting","start","colIndex","useEffect","listener","e","isComposingKey","isEditing","key","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","Array","from","length","stopPropagation","setTimeout","setEditorInitialValue","getEditorId","document","addEventListener","removeEventListener","editable","_jsx"],"mappings":"6VAWM,SAA0BA,GAC9B,IAAMC,EAAcC,EAAAA,sBACdC,EAAOC,EAAAA,iBACPC,EAAQC,EAAAA,kBACNC,EAASC,EAAAA,4BACXC,EAAMC,EAAAA,oBAAoBL,EAAMM,YAAcN,EAAMO,MAAMC,SAAW,GAkH3E,OAhHAC,EAAAA,WAAU,WACR,IAAMC,EAAW,SAACC,GACZC,EAAAA,eAAeD,KAIfb,EAAKe,UACO,WAAVF,EAAEG,MACJH,EAAEI,iBACFjB,EAAKkB,cAEEhB,EAAMM,cAAgBW,EAAAA,kBAAkBN,EAAEO,UACrC,UAAVP,EAAEG,KACJH,EAAEI,iBACFf,EAAMmB,YACa,WAAVR,EAAEG,KACXH,EAAEI,iBACFf,EAAMoB,SACa,eAAVT,EAAEG,KACXH,EAAEI,iBAEEJ,EAAEU,SAAWV,EAAEW,SACjBtB,EAAMuB,iBACGZ,EAAEU,QACXrB,EAAMwB,eACGb,EAAEW,SACXtB,EAAMyB,cAENzB,EAAM0B,aAEW,cAAVf,EAAEG,KACXH,EAAEI,iBAEEJ,EAAEU,SAAWV,EAAEW,SACjBtB,EAAM2B,gBACGhB,EAAEU,QACXrB,EAAM4B,cACGjB,EAAEW,SACXtB,EAAM6B,aAEN7B,EAAM8B,YAEW,YAAVnB,EAAEG,KACXH,EAAEI,iBAEEJ,EAAEU,SAAWV,EAAEW,SACjBtB,EAAM+B,YACGpB,EAAEU,QACXrB,EAAMgC,UACGrB,EAAEW,SACXtB,EAAMiC,WAENjC,EAAMkC,UAEW,cAAVvB,EAAEG,KACXH,EAAEI,iBAEEJ,EAAEU,SAAWV,EAAEW,SACjBtB,EAAMmC,eACGxB,EAAEU,QACXrB,EAAMoC,aACGzB,EAAEW,SACXtB,EAAMqC,aAENrC,EAAMmB,YAEW,OAAVR,EAAEG,KACXH,EAAEI,iBACFjB,EAAKwC,iBACK3B,EAAEU,SAAWV,EAAE4B,UAAoC,MAAxB5B,EAAEG,IAAI0B,eAC3C7B,EAAEI,iBACFb,EAAK,CAAEuC,qBAAsB9C,aAAO,EAAPA,EAAS8C,wBAErC9B,EAAE+B,QACF/B,EAAEU,SACFV,EAAE4B,SAG0B,IAA7BI,MAAMC,KAAKjC,EAAEG,KAAK+B,OASC,cAAVlC,EAAEG,KAAiC,WAAVH,EAAEG,MACpCH,EAAEI,iBACFJ,EAAEmC,kBACFhD,EAAKwC,eAELS,YAAW,WACTC,EAAAA,sBAAsB,GAAIpD,EAAYqD,cACxC,GAAG,MAdHtC,EAAEI,iBACFJ,EAAEmC,kBACFhD,EAAKwC,eAELS,YAAW,WACTC,EAAAA,sBAAsBrC,EAAEG,IAAKlB,EAAYqD,cAC3C,GAAG,MAWT,EAIA,OAFAC,SAASC,iBAAiB,UAAWzC,GAE9B,WACLwC,SAASE,oBAAoB,UAAW1C,EAC1C,CACF,GAAG,CAACV,EAAOF,EAAKe,YAEhBJ,EAAAA,WAAU,WACJX,EAAKe,YAAcT,EAAIiD,UACzBvD,EAAKkB,YAET,GAAG,CAAClB,EAAMM,IAEHkD,EAAAA,kBACT"}
@@ -0,0 +1,2 @@
1
+ "use strict";exports.setEditorInitialValue=function(t,e){var n,i=document.getElementById(e);if(i instanceof HTMLInputElement){var l=null===(n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===n?void 0:n.set;null==l||l.call(i,t),i.dispatchEvent(new Event("input",{bubbles:!0}))}};
2
+ //# sourceMappingURL=editor-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-input.js","sources":["../../../../../src/table/operation/editor-input.ts"],"sourcesContent":["/**\n * Puts text into the cell editor (`id`) as if the user had typed it, so the\n * editor's onChange runs. Used when editing starts by typing on a cell.\n */\nexport function setEditorInitialValue(text: string, id: string) {\n const inputElement = document.getElementById(id);\n if (!(inputElement instanceof HTMLInputElement)) {\n return;\n }\n\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputElement, text);\n inputElement.dispatchEvent(new Event(\"input\", { bubbles: true }));\n}\n"],"names":["text","id","inputElement","document","getElementById","HTMLInputElement","nativeInputValueSetter","_a","Object","getOwnPropertyDescriptor","window","prototype","set","call","dispatchEvent","Event","bubbles"],"mappings":"2CAIM,SAAgCA,EAAcC,SAC5CC,EAAeC,SAASC,eAAeH,GAC7C,GAAMC,aAAwBG,iBAA9B,CAIA,IAAMC,EAGL,QAH8BC,EAAAC,OAAOC,yBACpCC,OAAOL,iBAAiBM,UACxB,gBACD,IAAAJ,OAAA,EAAAA,EAAEK,IACHN,SAAAA,EAAwBO,KAAKX,EAAcF,GAC3CE,EAAaY,cAAc,IAAIC,MAAM,QAAS,CAAEC,SAAS,IAPzD,CAQF"}
@@ -1,2 +1,2 @@
1
- "use strict";exports.isComposingKey=function(e){return e.isComposing||229===e.keyCode},exports.isTextEntryTarget=function(e){return e instanceof HTMLElement&&(!!e.isContentEditable||(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement))};
1
+ "use strict";var e="data-react-ui-key-catcher";exports.KEY_CATCHER_ATTRIBUTE=e,exports.isComposingKey=function(e){return e.isComposing||229===e.keyCode},exports.isTextEntryTarget=function(t){return t instanceof HTMLElement&&(!t.hasAttribute(e)&&(!!t.isContentEditable||(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement)))};
2
2
  //# sourceMappingURL=event-target.js.map
@@ -1 +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":["e","isComposing","keyCode","target","HTMLElement","isContentEditable","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement"],"mappings":"oCAsBM,SAAyBA,GAC7B,OAAOA,EAAEC,aAA6B,MAAdD,EAAEE,OAC5B,4BAnBM,SAA4BC,GAChC,OAAMA,aAAkBC,gBAIpBD,EAAOE,oBAKTF,aAAkBG,kBAClBH,aAAkBI,qBAClBJ,aAAkBK,mBAEtB"}
1
+ {"version":3,"file":"event-target.js","sources":["../../../../../src/table/operation/event-target.ts"],"sourcesContent":["/** Marks the hidden input that receives keys while a cell is selected. */\nexport const KEY_CATCHER_ATTRIBUTE = \"data-react-ui-key-catcher\";\n\n/**\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 // The table's own hidden input that receives keys for the selected cell.\n if (target.hasAttribute(KEY_CATCHER_ATTRIBUTE)) {\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":["KEY_CATCHER_ATTRIBUTE","e","isComposing","keyCode","target","HTMLElement","hasAttribute","isContentEditable","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement"],"mappings":"aACO,IAAMA,EAAwB,mFA6B/B,SAAyBC,GAC7B,OAAOA,EAAEC,aAA6B,MAAdD,EAAEE,OAC5B,4BAxBM,SAA4BC,GAChC,OAAMA,aAAkBC,eAKpBD,EAAOE,aAAaN,OAIpBI,EAAOG,oBAKTH,aAAkBI,kBAClBJ,aAAkBK,qBAClBL,aAAkBM,oBAEtB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../sheet/providers.js"),a=require("../range/provider.js"),n=require("./logic.js"),s=require("./parse.js"),o=require("../operation/event-target.js");exports.usePasteReducer=function(i){var u=a.useRangeActionContext().setRange,c=r.useColumnValidatesContext(),d=a.useRangeStateContext(),l=t.useRef(i.rows),g=t.useRef(e.__assign(e.__assign({},i),{validators:c,range:d}));t.useEffect((function(){g.current=e.__assign(e.__assign({},i),{validators:c,range:d})}));var p=t.useCallback((function(e){l.current=e}),[]),x=t.useCallback((function(e){var t=g.current,r=t.cols,a=t.validators,s=t.range,o=t.onUpdateRowFunction,i=t.onPasteError;if(s.isSelecting&&o){var c=n.paste({pasteData:e,pasteArea:{start:{rowIndex:Math.min(s.start.rowIndex,s.end.rowIndex),colIndex:Math.min(s.start.colIndex,s.end.colIndex)},end:{rowIndex:Math.max(s.start.rowIndex,s.end.rowIndex),colIndex:Math.max(s.start.colIndex,s.end.colIndex)}},currentRows:l.current,currentCols:r,validators:a});if(c.isError){if("ValidationError"===c.type||"NoPasteData"===c.type)return;var d={type:c.type,message:c.message};i?i(d):alert(d.message)}else c.updateArgument.forEach((function(e){var t=e.newRow,r=e.oldRow;o(t,r)})),u(c.pasteRange)}}),[u]);return t.useEffect((function(){var e=function(e){var t=g.current,r=t.range,a=t.onUpdateRowFunction;r.isSelecting&&a&&(o.isTextEntryTarget(e.target)||e.clipboardData&&(e.preventDefault(),x(s.parseClipboardText(e.clipboardData.getData("Text")))))};return document.addEventListener("paste",e),function(){document.removeEventListener("paste",e)}}),[x]),t.useMemo((function(){return{setRows:p,onPaste:x}}),[p,x])};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../sheet/providers.js"),a=require("../range/provider.js"),s=require("./logic.js"),n=require("./parse.js"),o=require("../operation/event-target.js"),i=require("../locale/provider.js");exports.usePasteReducer=function(u){var c=a.useRangeActionContext().setRange,d=r.useColumnValidatesContext(),l=a.useRangeStateContext(),g=i.useMessages(),p=t.useRef(u.rows),v=t.useRef(e.__assign(e.__assign({},u),{validators:d,range:l,messages:g}));t.useEffect((function(){v.current=e.__assign(e.__assign({},u),{validators:d,range:l,messages:g})}));var x=t.useCallback((function(e){p.current=e}),[]),f=t.useCallback((function(e){var t=v.current,r=t.cols,a=t.validators,n=t.range,o=t.messages,i=t.onUpdateRowFunction,u=t.onPasteError;if(n.isSelecting&&i){var d=s.paste({pasteData:e,pasteArea:{start:{rowIndex:Math.min(n.start.rowIndex,n.end.rowIndex),colIndex:Math.min(n.start.colIndex,n.end.colIndex)},end:{rowIndex:Math.max(n.start.rowIndex,n.end.rowIndex),colIndex:Math.max(n.start.colIndex,n.end.colIndex)}},currentRows:p.current,currentCols:r,validators:a,messages:o.paste});if(d.isError){if("ValidationError"===d.type||"NoPasteData"===d.type)return;var l={type:d.type,message:d.message};u?u(l):alert(l.message)}else d.updateArgument.forEach((function(e){var t=e.newRow,r=e.oldRow;i(t,r)})),c(d.pasteRange)}}),[c]);return t.useEffect((function(){var e=function(e){var t=v.current,r=t.range,a=t.onUpdateRowFunction;r.isSelecting&&a&&(o.isTextEntryTarget(e.target)||e.clipboardData&&(e.preventDefault(),f(n.parseClipboardText(e.clipboardData.getData("Text")))))};return document.addEventListener("paste",e),function(){document.removeEventListener("paste",e)}}),[f]),t.useMemo((function(){return{setRows:x,onPaste:f}}),[x,f])};
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, 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 // The selection may have been made bottom-up or right-to-left, so\n // paste from its top-left cell.\n pasteArea: {\n start: {\n rowIndex: Math.min(range.start.rowIndex, range.end.rowIndex),\n colIndex: Math.min(range.start.colIndex, range.end.colIndex),\n },\n end: {\n rowIndex: Math.max(range.start.rowIndex, range.end.rowIndex),\n colIndex: Math.max(range.start.colIndex, range.end.colIndex),\n },\n },\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":["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","rowIndex","Math","min","end","colIndex","max","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":"iRAQM,SAA0BA,GACtB,IAAAC,EAAaC,EAAAA,iCACfC,EAAaC,EAAAA,4BACbC,EAAQC,EAAAA,uBACRC,EAAUC,EAAAA,OAAOR,EAAKS,MAItBC,EAASF,EAAAA,OAAMG,WAAAA,EAAAA,SAAA,CAAA,EAAMX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,KAClDO,EAAAA,WAAU,WACRF,EAAOG,QAAOF,WAAAA,EAAAA,SAAA,CAAA,EAAQX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,GAC/C,IAEA,IAAMS,EAAUC,eAAY,SAACN,GAC3BF,EAAQM,QAAUJ,CACpB,GAAG,IAEGO,EAAUD,eACd,SAACE,GACO,IAAAC,EACJR,EAAOG,QADDM,SAAMhB,eAAYE,UAAOe,wBAAqBC,iBAGtD,GAAKhB,EAAMiB,aAAgBF,EAA3B,CAIA,IAAMG,EAAMC,EAAAA,MAAM,CAChBP,UAASA,EAGTQ,UAAW,CACTC,MAAO,CACLC,SAAUC,KAAKC,IAAIxB,EAAMqB,MAAMC,SAAUtB,EAAMyB,IAAIH,UACnDI,SAAUH,KAAKC,IAAIxB,EAAMqB,MAAMK,SAAU1B,EAAMyB,IAAIC,WAErDD,IAAK,CACHH,SAAUC,KAAKI,IAAI3B,EAAMqB,MAAMC,SAAUtB,EAAMyB,IAAIH,UACnDI,SAAUH,KAAKI,IAAI3B,EAAMqB,MAAMK,SAAU1B,EAAMyB,IAAIC,YAGvDE,YAAa1B,EAAQM,QACrBqB,YAAaf,EACbhB,WAAUA,IAGZ,GAAIoB,EAAIY,QAAR,CAEE,GAAiB,oBAAbZ,EAAIa,MAA2C,gBAAbb,EAAIa,KACxC,OAGF,IAAMC,EAAQ,CAAED,KAAMb,EAAIa,KAAME,QAASf,EAAIe,SACzCjB,EACFA,EAAagB,GAEbE,MAAMF,EAAMC,QAGhB,MAEAf,EAAIiB,eAAeC,SAAQ,SAACvB,OAAEwB,EAAMxB,EAAAwB,OAAEC,EAAMzB,EAAAyB,OAC1CvB,EAAoBsB,EAAQC,EAC9B,IACA1C,EAASsB,EAAIqB,WAvCb,CAwCF,GACA,CAAC3C,IA6BH,OA1BAW,EAAAA,WAAU,WACR,IAAMiC,EAAW,SAACC,GACV,IAAA5B,EAAiCR,EAAOG,QAAtCR,EAAKa,EAAAb,MAAEe,EAAmBF,EAAAE,oBAE7Bf,EAAMiB,aAAgBF,IAKvB2B,EAAAA,kBAAkBD,EAAEE,SAIpBF,EAAEG,gBACJH,EAAEI,iBACFlC,EAAQmC,EAAAA,mBAAmBL,EAAEG,cAAcG,QAAQ,WAEvD,EAIA,OAFAC,SAASC,iBAAiB,QAAST,GAE5B,WACLQ,SAASE,oBAAoB,QAASV,EACxC,CACF,GAAG,CAAC7B,IAEGwC,EAAAA,SAAQ,WAAM,OAAG1C,QAAOA,EAAEE,QAAOA,EAAnB,GAAwB,CAACF,EAASE,GACzD"}
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\";\nimport { useMessages } from \"../locale/provider\";\n\nexport function usePasteReducer(args: TPasteHookArguments): TPasteReducerReturn {\n const { setRange } = useRangeActionContext();\n const validators = useColumnValidatesContext();\n const range = useRangeStateContext();\n const messages = useMessages();\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, messages });\n useEffect(() => {\n latest.current = { ...args, validators, range, messages };\n });\n\n const setRows = useCallback((rows: any[]) => {\n rowsRef.current = rows;\n }, []);\n\n const onPaste = useCallback(\n (pasteData: string[][]) => {\n const {\n cols,\n validators,\n range,\n messages,\n onUpdateRowFunction,\n onPasteError,\n } = latest.current;\n\n if (!range.isSelecting || !onUpdateRowFunction) {\n return;\n }\n\n const res = paste({\n pasteData,\n // The selection may have been made bottom-up or right-to-left, so\n // paste from its top-left cell.\n pasteArea: {\n start: {\n rowIndex: Math.min(range.start.rowIndex, range.end.rowIndex),\n colIndex: Math.min(range.start.colIndex, range.end.colIndex),\n },\n end: {\n rowIndex: Math.max(range.start.rowIndex, range.end.rowIndex),\n colIndex: Math.max(range.start.colIndex, range.end.colIndex),\n },\n },\n currentRows: rowsRef.current,\n currentCols: cols,\n validators,\n messages: messages.paste,\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":["args","setRange","useRangeActionContext","validators","useColumnValidatesContext","range","useRangeStateContext","messages","useMessages","rowsRef","useRef","rows","latest","__assign","useEffect","current","setRows","useCallback","onPaste","pasteData","_a","cols","onUpdateRowFunction","onPasteError","isSelecting","res","paste","pasteArea","start","rowIndex","Math","min","end","colIndex","max","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":"oTASM,SAA0BA,GACtB,IAAAC,EAAaC,EAAAA,iCACfC,EAAaC,EAAAA,4BACbC,EAAQC,EAAAA,uBACRC,EAAWC,EAAAA,cACXC,EAAUC,EAAAA,OAAOV,EAAKW,MAItBC,EAASF,EAAAA,OAAMG,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAMb,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,EAAEE,SAAQA,KAC5DO,EAAAA,WAAU,WACRF,EAAOG,QAAOF,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAQb,IAAMG,WAAUA,EAAEE,MAAKA,EAAEE,SAAQA,GACzD,IAEA,IAAMS,EAAUC,eAAY,SAACN,GAC3BF,EAAQM,QAAUJ,CACpB,GAAG,IAEGO,EAAUD,eACd,SAACE,GACO,IAAAC,EAOFR,EAAOG,QANTM,EAAID,EAAAC,KACJlB,EAAUiB,EAAAjB,WACVE,EAAKe,EAAAf,MACLE,EAAQa,EAAAb,SACRe,EAAmBF,EAAAE,oBACnBC,EAAYH,EAAAG,aAGd,GAAKlB,EAAMmB,aAAgBF,EAA3B,CAIA,IAAMG,EAAMC,EAAAA,MAAM,CAChBP,UAASA,EAGTQ,UAAW,CACTC,MAAO,CACLC,SAAUC,KAAKC,IAAI1B,EAAMuB,MAAMC,SAAUxB,EAAM2B,IAAIH,UACnDI,SAAUH,KAAKC,IAAI1B,EAAMuB,MAAMK,SAAU5B,EAAM2B,IAAIC,WAErDD,IAAK,CACHH,SAAUC,KAAKI,IAAI7B,EAAMuB,MAAMC,SAAUxB,EAAM2B,IAAIH,UACnDI,SAAUH,KAAKI,IAAI7B,EAAMuB,MAAMK,SAAU5B,EAAM2B,IAAIC,YAGvDE,YAAa1B,EAAQM,QACrBqB,YAAaf,EACblB,WAAUA,EACVI,SAAUA,EAASmB,QAGrB,GAAID,EAAIY,QAAR,CAEE,GAAiB,oBAAbZ,EAAIa,MAA2C,gBAAbb,EAAIa,KACxC,OAGF,IAAMC,EAAQ,CAAED,KAAMb,EAAIa,KAAME,QAASf,EAAIe,SACzCjB,EACFA,EAAagB,GAEbE,MAAMF,EAAMC,QAGhB,MAEAf,EAAIiB,eAAeC,SAAQ,SAACvB,OAAEwB,EAAMxB,EAAAwB,OAAEC,EAAMzB,EAAAyB,OAC1CvB,EAAoBsB,EAAQC,EAC9B,IACA5C,EAASwB,EAAIqB,WAxCb,CAyCF,GACA,CAAC7C,IA6BH,OA1BAa,EAAAA,WAAU,WACR,IAAMiC,EAAW,SAACC,GACV,IAAA5B,EAAiCR,EAAOG,QAAtCV,EAAKe,EAAAf,MAAEiB,EAAmBF,EAAAE,oBAE7BjB,EAAMmB,aAAgBF,IAKvB2B,EAAAA,kBAAkBD,EAAEE,SAIpBF,EAAEG,gBACJH,EAAEI,iBACFlC,EAAQmC,EAAAA,mBAAmBL,EAAEG,cAAcG,QAAQ,WAEvD,EAIA,OAFAC,SAASC,iBAAiB,QAAST,GAE5B,WACLQ,SAASE,oBAAoB,QAASV,EACxC,CACF,GAAG,CAAC7B,IAEGwC,EAAAA,SAAQ,WAAM,OAAG1C,QAAOA,EAAEE,QAAOA,EAAnB,GAAwB,CAACF,EAASE,GACzD"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),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}exports.paste=function(r){var a,s=r.pasteData.length,n=Math.max.apply(Math,r.pasteData.map((function(e){return e.length})));if(0===s||0===n)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<s?s:o,d=l<n?n: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<s;u++)for(var i=r.pasteData[u],c=0;c<d;c++){var x,I=c%i.length,f=t(x=r.currentCols[r.pasteArea.start.colIndex+c],i[I]);if(!(0,r.validators[x.key])(f))return{isError:!0,type:"ValidationError",message:"バリデーションエラー: ".concat(f)}}var A=[];for(u=0;u<p;u++){i=r.pasteData[u%s];var g=e.__assign({},r.currentRows[r.pasteArea.start.rowIndex+u]),w=!1,m=function(e){var a=r.currentCols[r.pasteArea.start.colIndex+e],s=t(a,i[e%i.length]),n="number"===a.type?Number(s):"select"===a.type?""===s?"":a.options.find((function(e){return e.label===s})).value:s;g[a.key]!==n&&(w=!0,g[a.key]=n)};for(c=0;c<d;c++)m(c);w&&A.push({newRow:g,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}}}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("../locale/messages.js"),t=/^-?\d{1,3}(,\d{3})+(\.\d+)?$/;function a(e,r){if("number"!==e.type)return r;var a=r.trim();return t.test(a)?a.replace(/,/g,""):a}exports.paste=function(t){var s,n,o=null!==(s=t.messages)&&void 0!==s?s:r.MESSAGES.ja.paste,l=t.pasteData.length,u=Math.max.apply(Math,t.pasteData.map((function(e){return e.length})));if(0===l||0===u)return{isError:!0,type:"NoPasteData",message:o.noData};var p=t.pasteArea.end.rowIndex-t.pasteArea.start.rowIndex+1,d=t.pasteArea.end.colIndex-t.pasteArea.start.colIndex+1,i=p<l?l:p,c=d<u?u:d;if(i+t.pasteArea.start.rowIndex>t.currentRows.length)return{isError:!0,type:"NOT_ENOUGH_ROWS",message:o.notEnoughRows};if(c+t.pasteArea.start.colIndex>t.currentCols.length)return{isError:!0,type:"NOT_ENOUGH_COLUMNS",message:o.notEnoughColumns};for(var x=0;x<c;x++){if(!(A=t.currentCols[t.pasteArea.start.colIndex+x]).editable)return{isError:!0,type:"NOT_EDITABLE_COLUMN",message:o.notEditableColumn(null!==(n=A.label)&&void 0!==n?n:A.key)}}for(x=0;x<l;x++)for(var I=t.pasteData[x],g=0;g<c;g++){var A,f=g%I.length,m=a(A=t.currentCols[t.pasteArea.start.colIndex+g],I[f]);if(!(0,t.validators[A.key])(m))return{isError:!0,type:"ValidationError",message:o.invalidValue(m)}}var w=[];for(x=0;x<i;x++){I=t.pasteData[x%l];var E=e.__assign({},t.currentRows[t.pasteArea.start.rowIndex+x]),v=!1,y=function(e){var r=t.currentCols[t.pasteArea.start.colIndex+e],s=a(r,I[e%I.length]),n="number"===r.type?Number(s):"select"===r.type?""===s?"":r.options.find((function(e){return e.label===s})).value:s;E[r.key]!==n&&(v=!0,E[r.key]=n)};for(g=0;g<c;g++)y(g);v&&w.push({newRow:E,oldRow:t.currentRows[t.pasteArea.start.rowIndex+x]})}return{isError:!1,updateArgument:w,pasteRange:{start:{rowIndex:t.pasteArea.start.rowIndex,colIndex:t.pasteArea.start.colIndex},end:{rowIndex:t.pasteArea.start.rowIndex+i-1,colIndex:t.pasteArea.start.colIndex+c-1}}}};
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?: {\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","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":"uEA6DMA,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,eAEM,SAAgBI,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,EACTd,KAAM,cACNe,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,EACTd,KAAM,kBACNe,QAAS,mBAIb,GACES,EAAiBnB,EAAKY,UAAUG,MAAME,SACtCjB,EAAKqB,YAAYlB,OAEjB,MAAO,CACLM,SAAS,EACTd,KAAM,qBACNe,QAAS,mBAKb,IAAK,IAAIY,EAAI,EAAGA,EAAIH,EAAgBG,IAAK,CAGvC,KAFM7B,EAAMO,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWK,IAEpDC,SACP,MAAO,CACLd,SAAS,EACTd,KAAM,sBACNe,QAAS,wCAAAc,OACE,QAATC,EAAAhC,EAAIiC,aAAK,IAAAD,EAAAA,EAAKhC,EAAIkC,KAI1B,CAGA,IAASL,EAAI,EAAGA,EAAIrB,EAAoBqB,IAGtC,IAFA,IAAMM,EAAW5B,EAAKE,UAAUoB,GAEvBO,EAAI,EAAGA,EAAIV,EAAgBU,IAAK,CACvC,IACMpC,EADAqC,EAAkBD,EAAID,EAASzB,OAE/B4B,EAAavC,EADbC,EAAMO,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWY,GAChBD,EAASE,IAGtD,KAAKE,EAFYhC,EAAKiC,WAAWxC,EAAIkC,MAEvBI,GACZ,MAAO,CACLtB,SAAS,EACTd,KAAM,kBACNe,QAAS,eAAAc,OAAeO,GAG9B,CAGF,IAAMG,EAAkD,GAGxD,IAASZ,EAAI,EAAGA,EAAIJ,EAAgBI,IAAK,CACjCM,EAAW5B,EAAKE,UAAUoB,EAAIrB,GAApC,IACMkC,EAAMC,EAAAA,SAAA,CAAA,EAAQpC,EAAKoB,YAAYpB,EAAKY,UAAUG,MAAMD,SAAWQ,IACjEe,GAAkB,aAEbR,GACP,IAAMpC,EAAMO,EAAKqB,YAAYrB,EAAKY,UAAUG,MAAME,SAAWY,GACvDE,EAAavC,EAAqBC,EAAKmC,EAASC,EAAID,EAASzB,SAC7DT,EACS,WAAbD,EAAIE,KACA2C,OAAOP,GACM,WAAbtC,EAAIE,KACW,KAAfoC,EACE,GACAtC,EAAI8C,QAAQC,MAAK,SAACC,GAAW,OAAAA,EAAOf,QAAUK,CAAjB,IAA8BrC,MAC7DqC,EACFI,EAAO1C,EAAIkC,OAASjC,IACtB2C,GAAkB,EAClBF,EAAO1C,EAAIkC,KAAOjC,IAbtB,IAASmC,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"}
1
+ {"version":3,"file":"logic.js","sources":["../../../../../src/table/paste/logic.ts"],"sourcesContent":["import { MESSAGES, TMessages } from \"../locale/messages\";\nimport { 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 /** Messages for the errors. Japanese when omitted. */\n messages?: TMessages[\"paste\"];\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 const messages = args.messages ?? MESSAGES.ja.paste;\n\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: messages.noData,\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: messages.notEnoughRows,\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: messages.notEnoughColumns,\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: messages.notEditableColumn(\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: messages.invalidValue(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","args","messages","_a","MESSAGES","ja","paste","pasteDataRowLength","pasteData","length","pasteDataColLength","Math","max","map","row","isError","message","noData","rangeRowLength","pasteArea","end","rowIndex","start","rangeColLength","colIndex","pasteRowLength","pasteColLength","currentRows","notEnoughRows","currentCols","notEnoughColumns","i","editable","notEditableColumn","_b","label","key","pasteRow","j","colIndexForData","pasteValue","validate","validators","invalidValue","updateArguments","newRow","__assign","checkUpdatedRow","Number","options","find","option","push","oldRow","updateArgument","pasteRange"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../libs/generate-validate-function.js"),n=t.createContext({cols:[],validates:{}});exports.ColumnsProvider=function(u){var o=u.children,s=u.cols,i=u.errorHandler,a=t.useMemo((function(){return s.reduce((function(e,t){return e[t.key]=r.generateValidateFunction(t,i),e}),{})}),[s]),l=t.useMemo((function(){return{cols:s,validates:a}}),[s]);return e.jsx(n.Provider,{value:l,children:o})},exports.useColumnValidateContext=function(e){return t.useContext(n).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(n).validates},exports.useColumnsContext=function(){return t.useContext(n).cols};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../libs/generate-validate-function.js"),n=require("../locale/provider.js"),u=t.createContext({cols:[],validates:{}});exports.ColumnsProvider=function(o){var s=o.children,i=o.cols,a=o.errorHandler,c=n.useMessages(),l=t.useRef(a);t.useEffect((function(){l.current=a}));var d=t.useMemo((function(){var e=function(e){l.current?l.current(e):alert(c.validation(e))};return i.reduce((function(t,n){return t[n.key]=r.generateValidateFunction(n,e),t}),{})}),[i,c]),v=t.useMemo((function(){return{cols:i,validates:d}}),[i,d]);return e.jsx(u.Provider,{value:v,children:s})},exports.useColumnValidateContext=function(e){return t.useContext(u).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(u).validates},exports.useColumnsContext=function(){return t.useContext(u).cols};
2
2
  //# sourceMappingURL=providers.js.map
@@ -1 +1 @@
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","_a","children","errorHandler","useMemo","reduce","acc","col","key","generateValidateFunction","state","_jsx","Provider","value","useContext"],"mappings":"mIASMA,EAAcC,EAAAA,cAGjB,CACDC,KAAM,GACNC,UAAW,CAAA,4BAGP,SAAgDC,GACpD,IAAAC,aACAH,EAAIE,EAAAF,KACJI,EAAYF,EAAAE,aAMNH,EAAYI,EAAAA,SAChB,WACE,OAAAL,EAAKM,QAAO,SAACC,EAAKC,GAKhB,OAFAD,EAFgBC,EAAGC,KAERC,2BAAyBF,EAAYJ,GAEzCG,CACT,GAAG,CAAA,EANH,GAOF,CAACP,IAGGW,EAAQN,EAAAA,SAAQ,WAAM,MAAA,CAAGL,KAAIA,EAAEC,UAASA,EAAlB,GAAuB,CAACD,IAEpD,OACEY,EAAAA,IAACd,EAAYe,SAAQ,CACnBC,MACEH,EAGCR,SAGFA,GAGP,mCAMM,SAAmCM,GACvC,OAAOM,aAAWjB,GAAaG,UAAUQ,EAC3C,+CAGE,OAAOM,EAAAA,WAAWjB,GAAaG,SACjC,uCATE,OAAOc,EAAAA,WAAWjB,GAAaE,IACjC"}
1
+ {"version":3,"file":"providers.js","sources":["../../../../../src/table/sheet/providers.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext, useEffect, useMemo, useRef } from \"react\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport {\n generateValidateFunction,\n TErrorValidation,\n} from \"../libs/generate-validate-function\";\nimport { useMessages } from \"../locale/provider\";\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 messages = useMessages();\n\n // Call the latest errorHandler without rebuilding the validators (and\n // re-rendering every cell) when the app passes a new function.\n const errorHandlerRef = useRef(errorHandler);\n useEffect(() => {\n errorHandlerRef.current = errorHandler;\n });\n\n const validates = useMemo(() => {\n const handleErrors = (errors: TErrorValidation[]) => {\n if (errorHandlerRef.current) {\n errorHandlerRef.current(errors);\n } else {\n alert(messages.validation(errors));\n }\n };\n\n return cols.reduce((acc, col) => {\n const { key } = col;\n\n acc[key] = generateValidateFunction(col as any, handleErrors);\n\n return acc;\n }, {} as { [key in keyof T]: (value: any) => boolean });\n }, [cols, messages]);\n\n const state = useMemo(() => ({ cols, validates }), [cols, validates]);\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","_a","children","errorHandler","messages","useMessages","errorHandlerRef","useRef","useEffect","current","useMemo","handleErrors","errors","alert","validation","reduce","acc","col","key","generateValidateFunction","state","_jsx","Provider","value","useContext"],"mappings":"sKAUMA,EAAcC,EAAAA,cAGjB,CACDC,KAAM,GACNC,UAAW,CAAA,4BAGP,SAAgDC,GACpD,IAAAC,aACAH,EAAIE,EAAAF,KACJI,EAAYF,EAAAE,aAMNC,EAAWC,EAAAA,cAIXC,EAAkBC,EAAAA,OAAOJ,GAC/BK,EAAAA,WAAU,WACRF,EAAgBG,QAAUN,CAC5B,IAEA,IAAMH,EAAYU,EAAAA,SAAQ,WACxB,IAAMC,EAAe,SAACC,GAChBN,EAAgBG,QAClBH,EAAgBG,QAAQG,GAExBC,MAAMT,EAASU,WAAWF,GAE9B,EAEA,OAAOb,EAAKgB,QAAO,SAACC,EAAKC,GAKvB,OAFAD,EAFgBC,EAAGC,KAERC,2BAAyBF,EAAYN,GAEzCK,CACT,GAAG,CAAA,EACL,GAAG,CAACjB,EAAMK,IAEJgB,EAAQV,EAAAA,SAAQ,WAAM,MAAA,CAAGX,KAAIA,EAAEC,YAAT,GAAuB,CAACD,EAAMC,IAE1D,OACEqB,EAAAA,IAACxB,EAAYyB,SAAQ,CACnBC,MACEH,EAGClB,SAGFA,GAGP,mCAMM,SAAmCgB,GACvC,OAAOM,aAAW3B,GAAaG,UAAUkB,EAC3C,+CAGE,OAAOM,EAAAA,WAAW3B,GAAaG,SACjC,uCATE,OAAOwB,EAAAA,WAAW3B,GAAaE,IACjC"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),a=require("react"),t=function(a,t){switch(t.type){case"changeKey":return{key:t.payload.key,asc:!0,isUpdatedData:!1,sortTiming:a.sortTiming+1};case"changeOrder":return a.isUpdatedData?e.__assign(e.__assign({},a),{isUpdatedData:!1,sortTiming:a.sortTiming+1}):e.__assign(e.__assign({},a),{asc:!a.asc,sortTiming:a.sortTiming+1});case"updateData":return e.__assign(e.__assign({},a),{isUpdatedData:!0})}};exports.useSortReducer=function(s){var i,n,r=a.useReducer(t,{key:null!==(i=null==s?void 0:s.key)&&void 0!==i?i:"id",asc:null===(n=null==s?void 0:s.asc)||void 0===n||n,isUpdatedData:!1,sortTiming:0}),c=r[0],d=r[1],u=function(e){d({type:"changeKey",payload:{key:e}})},o=function(){d({type:"changeOrder"})},y=function(){d({type:"updateData"})},g=a.useCallback((function(a){return e.__spreadArray([],a,!0).sort((function(e,a){return""===e[c.key]&&""===a[c.key]?0:""===e[c.key]?1:""===a[c.key]?-1:e[c.key]<a[c.key]?c.asc?-1:1:e[c.key]>a[c.key]?c.asc?1:-1:0}))}),[c.key,c.asc]);return{state:a.useMemo((function(){return{key:c.key,asc:c.asc,isUpdatedData:c.isUpdatedData}}),[c.key,c.asc,c.isUpdatedData]),actions:a.useMemo((function(){return{changeKey:u,changeOrder:o,updatedData:y,sort:g}}),[g]),sortTiming:c.sortTiming}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),a=require("../../share/text/normalize.js");function n(e){return null==e||""===e||"number"==typeof e&&isNaN(e)||e instanceof Date&&isNaN(e.getTime())}var r=function(t,a){switch(a.type){case"changeKey":return{key:a.payload.key,asc:!0,isUpdatedData:!1,sortTiming:t.sortTiming+1};case"changeOrder":return t.isUpdatedData?e.__assign(e.__assign({},t),{isUpdatedData:!1,sortTiming:t.sortTiming+1}):e.__assign(e.__assign({},t),{asc:!t.asc,sortTiming:t.sortTiming+1});case"updateData":return e.__assign(e.__assign({},t),{isUpdatedData:!0})}};exports.useSortReducer=function(i){var s,u,o=t.useReducer(r,{key:null!==(s=null==i?void 0:i.key)&&void 0!==s?s:"id",asc:null===(u=null==i?void 0:i.asc)||void 0===u||u,isUpdatedData:!1,sortTiming:0}),c=o[0],d=o[1],g=function(e){d({type:"changeKey",payload:{key:e}})},p=function(){d({type:"changeOrder"})},y=function(){d({type:"updateData"})},f=t.useCallback((function(t,r){return void 0===r&&(r=function(e){return e[c.key]}),e.__spreadArray([],t,!0).sort((function(e,t){var i=r(e),s=r(t);if(n(i)&&n(s))return 0;if(n(i))return 1;if(n(s))return-1;var u=function(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e instanceof Date&&t instanceof Date?e.getTime()-t.getTime():a.compareText(String(e),String(t))}(i,s);return c.asc?u:-u}))}),[c.key,c.asc]);return{state:t.useMemo((function(){return{key:c.key,asc:c.asc,isUpdatedData:c.isUpdatedData}}),[c.key,c.asc,c.isUpdatedData]),actions:t.useMemo((function(){return{changeKey:g,changeOrder:p,updatedData:y,sort:f}}),[f]),sortTiming:c.sortTiming}};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] === \"\" && b[state.key] === \"\") {\n return 0;\n } else if (a[state.key] === \"\") {\n return 1;\n } else if (b[state.key] === \"\") {\n return -1;\n }\n\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"0FAIMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,WAAAA,EAAAA,SAAA,CAAA,EACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAK,CAAEK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAK,CAAEM,eAAe,IAExC,yBAEM,SAA+CG,WAI7CC,EAAoBC,EAAAA,WAAWZ,EAAS,CAC5CI,IAAiB,QAAZS,EAAAH,eAAAA,EAASN,WAAG,IAAAS,EAAAA,EAAI,KACrBP,IAAiB,QAAZQ,EAAAJ,eAAAA,EAASJ,WAAG,IAAAQ,GAAAA,EACjBP,eAAe,EACfC,WAAY,IAJPP,EAAKU,EAAA,GAAEI,OAORC,EAAY,SAACZ,GACjBW,EAAS,CAAEZ,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMa,EAAc,WAClBF,EAAS,CAAEZ,KAAM,eACnB,EAEMe,EAAc,WAClBH,EAAS,CAAEZ,KAAM,cACnB,EAEMgB,EAAOC,eACX,SAAuBC,GACrB,OAAAC,EAAAA,cAAA,GAAID,GAAI,GAAEF,MAAK,SAACI,EAAGC,GACjB,MAAqB,KAAjBD,EAAEtB,EAAMG,MAAgC,KAAjBoB,EAAEvB,EAAMG,KAC1B,EACmB,KAAjBmB,EAAEtB,EAAMG,KACV,EACmB,KAAjBoB,EAAEvB,EAAMG,MACV,EAGLmB,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,KAAM,EAAK,EAEtBiB,EAAEtB,EAAMG,KAAOoB,EAAEvB,EAAMG,KAClBH,EAAMK,IAAM,GAAI,EAElB,CACT,GAhBA,GAiBF,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6BwB,WAC7B,WAAM,MAAA,CACJrB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cAHjB,GAKN,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BmB,QAPcD,EAAAA,SACd,WAAM,MAAA,CAAGT,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAA5C,GACN,CAACA,IAMDX,WAAYP,EAAMO,WAEtB"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\nimport { compareText } from \"../../share/text/normalize\";\n\nfunction isEmpty(value: unknown): boolean {\n return (\n value === null ||\n value === undefined ||\n value === \"\" ||\n (typeof value === \"number\" && isNaN(value)) ||\n (value instanceof Date && isNaN(value.getTime()))\n );\n}\n\n/** Numbers and dates by value; text in Japanese order (\"2\" before \"10\"). */\nfunction compareValues(a: unknown, b: unknown): number {\n if (typeof a === \"number\" && typeof b === \"number\") return a - b;\n if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();\n return compareText(String(a), String(b));\n}\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(\n rows: DataObject<U>[],\n getValue: (row: DataObject<U>) => unknown = (row) => row[state.key]\n ) =>\n [...rows].sort((rowA, rowB) => {\n const a = getValue(rowA);\n const b = getValue(rowB);\n\n // Empty values stay at the end in both orders.\n if (isEmpty(a) && isEmpty(b)) return 0;\n if (isEmpty(a)) return 1;\n if (isEmpty(b)) return -1;\n\n const result = compareValues(a, b);\n return state.asc ? result : -result;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["isEmpty","value","isNaN","Date","getTime","reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","getValue","row","__spreadArray","rowA","rowB","a","b","result","compareText","String","compareValues","useMemo","actions"],"mappings":"qIAKA,SAASA,EAAQC,GACf,OACEA,SAEU,KAAVA,GACkB,iBAAVA,GAAsBC,MAAMD,IACnCA,aAAiBE,MAAQD,MAAMD,EAAMG,UAE1C,CASA,IAAMC,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,WAAAA,EAAAA,SAAA,CAAA,EACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAK,CAAEK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYR,GAAK,CAAEM,eAAe,IAExC,yBAEM,SAA+CG,WAI7CC,EAAoBC,EAAAA,WAAWZ,EAAS,CAC5CI,IAAiB,QAAZS,EAAAH,eAAAA,EAASN,WAAG,IAAAS,EAAAA,EAAI,KACrBP,IAAiB,QAAZQ,EAAAJ,eAAAA,EAASJ,WAAG,IAAAQ,GAAAA,EACjBP,eAAe,EACfC,WAAY,IAJPP,EAAKU,EAAA,GAAEI,OAORC,EAAY,SAACZ,GACjBW,EAAS,CAAEZ,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMa,EAAc,WAClBF,EAAS,CAAEZ,KAAM,eACnB,EAEMe,EAAc,WAClBH,EAAS,CAAEZ,KAAM,cACnB,EAEMgB,EAAOC,EAAAA,aACX,SACEC,EACAC,GAEA,YAFA,IAAAA,IAAAA,EAAA,SAA6CC,GAAQ,OAAAA,EAAItB,EAAMG,IAAV,GAErDoB,EAAAA,cAAA,GAAIH,GAAI,GAAEF,MAAK,SAACM,EAAMC,GACpB,IAAMC,EAAIL,EAASG,GACbG,EAAIN,EAASI,GAGnB,GAAI/B,EAAQgC,IAAMhC,EAAQiC,GAAI,OAAO,EACrC,GAAIjC,EAAQgC,GAAI,OAAO,EACvB,GAAIhC,EAAQiC,GAAI,OAAO,EAEvB,IAAMC,EAnEd,SAAuBF,EAAYC,GACjC,MAAiB,iBAAND,GAA+B,iBAANC,EAAuBD,EAAIC,EAC3DD,aAAa7B,MAAQ8B,aAAa9B,KAAa6B,EAAE5B,UAAY6B,EAAE7B,UAC5D+B,EAAAA,YAAYC,OAAOJ,GAAII,OAAOH,GACvC,CA+DuBI,CAAcL,EAAGC,GAChC,OAAO3B,EAAMK,IAAMuB,GAAUA,CAC/B,GAXA,GAYF,CAAC5B,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6BgC,WAC7B,WAAM,MAAA,CACJ7B,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cAHjB,GAKN,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7B2B,QAPcD,EAAAA,SACd,WAAM,MAAA,CAAGjB,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAA5C,GACN,CAACA,IAMDX,WAAYP,EAAMO,WAEtB"}
@@ -1,2 +1,2 @@
1
- "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("./hooks.js"),o=n.createContext(0),i=n.createContext({key:"",asc:!1,isUpdatedData:!1}),s=n.createContext({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});exports.SortProvider=function(e){var n=r.useSortReducer(e.initialCondition),u=n.state,c=n.actions,a=n.sortTiming;return t.jsx(o.Provider,{value:a,children:t.jsx(i.Provider,{value:u,children:t.jsx(s.Provider,{value:c,children:e.children})})})},exports.useSortActionContext=function(){return n.useContext(s)},exports.useSortContext=function(){return e.__assign(e.__assign(e.__assign({},n.useContext(i)),n.useContext(s)),{sortTiming:n.useContext(o)})},exports.useSortTimingContext=function(){return n.useContext(o)};
1
+ "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("./hooks.js"),o=n.createContext(0),i=n.createContext({key:"",asc:!1,isUpdatedData:!1}),s=n.createContext({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});exports.SortProvider=function(e){var n=r.useSortReducer(e.initialCondition),u=n.state,c=n.actions,a=n.sortTiming;return t.jsx(o.Provider,{value:a,children:t.jsx(i.Provider,{value:u,children:t.jsx(s.Provider,{value:c,children:e.children})})})},exports.useSortActionContext=function(){return n.useContext(s)},exports.useSortContext=function(){return e.__assign(e.__assign(e.__assign({},n.useContext(i)),n.useContext(s)),{sortTiming:n.useContext(o)})},exports.useSortStateContext=function(){return n.useContext(i)},exports.useSortTimingContext=function(){return n.useContext(o)};
2
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
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","props","_a","useSortReducer","initialCondition","state","actions","sortTiming","_jsx","Provider","value","children","useContext","__assign"],"mappings":"8JAOMA,EAAoBC,EAAAA,cAAsB,GAE1CC,EAAmBD,EAAAA,cACvB,CACEE,IAAK,GACLC,KAAK,EACLC,eAAe,IAIbC,EAAoBL,EAAAA,cAExB,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,yBAGI,SAAuBI,GAIrB,IAAAC,EAAiCC,EAAAA,eAAeF,EAAMG,kBAApDC,EAAKH,EAAAG,MAAEC,EAAOJ,EAAAI,QAAEC,eACxB,OACEC,MAACnB,EAAkBoB,SAAQ,CAACC,MAAOH,WACjCC,MAACjB,EAAiBkB,UAASC,MAAOL,EAAKM,SACrCH,MAACb,EAAkBc,SAAQ,CAACC,MAAOJ,EAAOK,SACvCV,EAAMU,cAKjB,0CAeE,OAAOC,EAAAA,WAAWjB,EACpB,oCAbE,OAAAkB,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKD,EAAAA,WAAWrB,IACXqB,EAAAA,WAAWjB,IAAkB,CAChCY,WAAYK,EAAAA,WAAWvB,IAE3B,0CAWE,OAAOuB,EAAAA,WAAWvB,EACpB"}
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","props","_a","useSortReducer","initialCondition","state","actions","sortTiming","_jsx","Provider","value","children","useContext","__assign"],"mappings":"8JAOMA,EAAoBC,EAAAA,cAAsB,GAE1CC,EAAmBD,EAAAA,cACvB,CACEE,IAAK,GACLC,KAAK,EACLC,eAAe,IAIbC,EAAoBL,EAAAA,cAExB,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,yBAGI,SAAuBI,GAIrB,IAAAC,EAAiCC,EAAAA,eAAeF,EAAMG,kBAApDC,EAAKH,EAAAG,MAAEC,EAAOJ,EAAAI,QAAEC,eACxB,OACEC,MAACnB,EAAkBoB,SAAQ,CAACC,MAAOH,WACjCC,MAACjB,EAAiBkB,UAASC,MAAOL,EAAKM,SACrCH,MAACb,EAAkBc,SAAQ,CAACC,MAAOJ,EAAOK,SACvCV,EAAMU,cAKjB,0CAeE,OAAOC,EAAAA,WAAWjB,EACpB,oCAbE,OAAAkB,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKD,EAAAA,WAAWrB,IACXqB,EAAAA,WAAWjB,IAAkB,CAChCY,WAAYK,EAAAA,WAAWvB,IAE3B,yCAGE,OAAOuB,EAAAA,WAAWrB,EACpB,0CAOE,OAAOqB,EAAAA,WAAWvB,EACpB"}
@@ -1,2 +1,2 @@
1
- "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),i=require("../header/header.js"),s=require("../pagenation/providers.js"),n=require("../pagenation/components.js");require("../filter-v2/context.js");var t=require("../filter-v2/provider.js");require("../sort/icon.js");var d=require("../sort/provider.js"),a=require("../sheet/providers.js"),l=require("../checkbox/provider.js"),c=require("../edit/provider.js"),x=require("../table-property/provider.js"),j=require("../operation/components/keyboard-setting.js"),u=require("../sheet/components.js"),h=require("../paste/provider.js"),p=require("../libs/conditional-formatting.js"),v=require("../edit/ui/editor.js"),m=require("../range/provider.js"),g=require("../copy/provider.js"),b=require("../copy/components.js"),q=require("../id/provider.js"),w=require("../header/header-v2.js");require("../header/columns-width/context.js");var P=require("../header/columns-width/provider.js");require("../header/x-scroll-position/context.js");var C=require("../header/x-scroll-position/provider.js"),k=require("../frame/frame.js"),y=require("./component-provider/provider.js"),S=require("../../select-box/provider.js");function f(e){var s=o.useTable(e),t=s.cols,d=s.rowMaps,a=s.pageRowIds,l=q.useTableIdGenerator(),c=y.useGenerateSortButton();return r.jsxs("div",{className:"w-full max-w-full max-h-full",children:[r.jsxs("div",{children:[r.jsx(w.TableHeader,{cols:t,checkbox:!!e.checkbox,rows:e.rows,maxWidth:e.maxWidth,generateSortButton:c}),r.jsx(P.ColumnsWidthStyle,{scopeId:l.getTableId()}),r.jsx(S.SelectBoxProvider,{children:r.jsxs(k.Frame,{id:l.getTableId(),maxHeight:e.maxHeight,maxWidth:e.maxWidth,displayScroll:!1,children:[r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[e.checkbox&&r.jsx("th",{className:"p-px"}),t.map((function(e){return r.jsx(i.TableHeaderElement,{keyname:e.key.toString()},e.key.toString())}))]})}),r.jsxs("tbody",{children:[0===a.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:t.length+(e.checkbox?1:0),className:"px-px py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),a.map((function(o,i){return r.jsx(u.Row,{existCheckbox:!!e.checkbox,rowIndex:i,row:d[o].data,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:p.generateFormattingString(d[o].data,t,e.conditionalFormattings)},o)}))]})]}),r.jsx(m.TestRange,{}),r.jsx(v.Editor,{rowMaps:d,pageRowIds:a})]})})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(n.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(n.Pagenation,{})})]})]})}module.exports=function(o){var i,n,u,p,v,w;return r.jsx(y.ComponentProvider,{children:r.jsx(q.TableIdGeneratorProvider,{id:o.id,children:r.jsx(P.ColumnsWidthProvider,{cols:o.cols,children:r.jsx(t.FilterProvider,{initialConditions:[],children:r.jsx(d.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(s.PagenationProvider,{rowCount:o.rows.length,perPage:null===(v=null!==(u=null===(n=o.initialCondition)||void 0===n?void 0:n.pagination)&&void 0!==u?u:null===(p=o.initialCondition)||void 0===p?void 0:p.pagenation)||void 0===v?void 0:v.rowCountPerPage,children:r.jsx(l.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(l.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(a.ColumnsProvider,{cols:o.cols,errorHandler:o.errorHandler,children:r.jsx(c.EditProvider,{children:r.jsx(x.TablePropertyProvider,{children:r.jsx(m.RangeProvider,{children:r.jsxs(g.CopyProvider,{rows:o.rows,cols:o.cols,children:[r.jsx(b.CopiedMessage,{}),r.jsxs(h.PasteProvider,{rows:o.rows,cols:o.cols,onUpdateRowFunction:o.onUpdateRow,onPasteError:o.onPasteError,children:[r.jsx(j.KeyboardSetting,{enableDeprecatedCopy:null===(w=o.deprecatedOptions)||void 0===w?void 0:w.enableDeprecatedCopy}),r.jsx(C.ScrollXPositionProvider,{children:r.jsx(f,e.__assign({},o))})]})]})})})})})})})})})})})})})};
1
+ "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),i=require("../header/header.js"),s=require("../pagenation/providers.js"),n=require("../pagenation/components.js");require("../filter-v2/context.js");var t=require("../filter-v2/provider.js");require("../sort/icon.js");var d=require("../sort/provider.js"),l=require("../sheet/providers.js"),a=require("../checkbox/provider.js"),c=require("../edit/provider.js"),x=require("../table-property/provider.js"),j=require("../operation/components/keyboard-setting.js"),h=require("../operation/components/key-catcher.js"),u=require("../sheet/components.js"),p=require("../paste/provider.js"),v=require("../libs/conditional-formatting.js"),m=require("../edit/ui/editor.js"),g=require("../range/provider.js"),b=require("../copy/provider.js"),q=require("../copy/components.js"),w=require("../id/provider.js"),P=require("../header/header-v2.js");require("../header/columns-width/context.js");var C=require("../header/columns-width/provider.js");require("../header/x-scroll-position/context.js");var y=require("../header/x-scroll-position/provider.js"),k=require("../frame/frame.js"),S=require("./component-provider/provider.js"),f=require("../../select-box/provider.js"),R=require("../locale/provider.js");function T(e){var s=o.useTable(e),t=s.cols,d=s.rowMaps,l=s.pageRowIds,a=w.useTableIdGenerator(),c=S.useGenerateSortButton();return r.jsxs("div",{className:"w-full max-w-full max-h-full",children:[r.jsxs("div",{children:[r.jsx(P.TableHeader,{cols:t,checkbox:!!e.checkbox,rows:e.rows,maxWidth:e.maxWidth,generateSortButton:c}),r.jsx(C.ColumnsWidthStyle,{scopeId:a.getTableId()}),r.jsx(f.SelectBoxProvider,{children:r.jsxs(k.Frame,{id:a.getTableId(),maxHeight:e.maxHeight,maxWidth:e.maxWidth,displayScroll:!1,children:[r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[e.checkbox&&r.jsx("th",{className:"p-px"}),t.map((function(e){return r.jsx(i.TableHeaderElement,{keyname:e.key.toString()},e.key.toString())}))]})}),r.jsxs("tbody",{children:[0===l.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:t.length+(e.checkbox?1:0),className:"px-px py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),l.map((function(o,i){return r.jsx(u.Row,{existCheckbox:!!e.checkbox,rowIndex:i,row:d[o].data,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:v.generateFormattingString(d[o].data,t,e.conditionalFormattings)},o)}))]})]}),r.jsx(g.TestRange,{}),r.jsx(h.KeyCatcher,{}),r.jsx(m.Editor,{rowMaps:d,pageRowIds:l})]})})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(n.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(n.Pagenation,{})})]})]})}module.exports=function(o){var i,n,h,u,v,m;return r.jsx(R.LocaleProvider,{locale:o.locale,children:r.jsx(S.ComponentProvider,{children:r.jsx(w.TableIdGeneratorProvider,{id:o.id,children:r.jsx(C.ColumnsWidthProvider,{cols:o.cols,children:r.jsx(t.FilterProvider,{initialConditions:[],children:r.jsx(d.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(s.PagenationProvider,{rowCount:o.rows.length,perPage:null===(v=null!==(h=null===(n=o.initialCondition)||void 0===n?void 0:n.pagination)&&void 0!==h?h:null===(u=o.initialCondition)||void 0===u?void 0:u.pagenation)||void 0===v?void 0:v.rowCountPerPage,children:r.jsx(a.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(a.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(l.ColumnsProvider,{cols:o.cols,errorHandler:o.errorHandler,children:r.jsx(c.EditProvider,{children:r.jsx(x.TablePropertyProvider,{children:r.jsx(g.RangeProvider,{children:r.jsxs(b.CopyProvider,{rows:o.rows,cols:o.cols,children:[r.jsx(q.CopiedMessage,{}),r.jsxs(p.PasteProvider,{rows:o.rows,cols:o.cols,onUpdateRowFunction:o.onUpdateRow,onPasteError:o.onPasteError,children:[r.jsx(j.KeyboardSetting,{enableDeprecatedCopy:null===(m=o.deprecatedOptions)||void 0===m?void 0:m.enableDeprecatedCopy}),r.jsx(y.ScrollXPositionProvider,{children:r.jsx(T,e.__assign({},o))})]})]})})})})})})})})})})})})})})};
2
2
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
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={\n (\n props.initialCondition?.pagination ??\n props.initialCondition?.pagenation\n )?.rowCountPerPage\n }\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":["BaseTable","props","_a","useTable","cols","rowMaps","pageRowIds","IdGenerator","useTableIdGenerator","generateSortButton","useGenerateSortButton","_jsxs","className","children","_jsx","TableHeader","checkbox","rows","maxWidth","ColumnsWidthStyle","scopeId","getTableId","SelectBoxProvider","Frame","id","maxHeight","displayScroll","map","col","TableHeaderElement","keyname","key","toString","length","colSpan","rowId","i","Row","existCheckbox","rowIndex","row","data","onClickRow","applyRowFormatting","conditionalFormattingString","generateFormattingString","conditionalFormattings","TestRange","Editor","DisplayRange","Pagenation","ComponentProvider","TableIdGeneratorProvider","ColumnsWidthProvider","FilterProvider","initialConditions","SortProvider","initialCondition","sort","PagenationProvider","rowCount","perPage","_e","_c","_b","pagination","_d","pagenation","rowCountPerPage","CheckboxProvider","CheckboxStatusProvider","checkboxCount","ColumnsProvider","errorHandler","EditProvider","TablePropertyProvider","RangeProvider","CopyProvider","CopiedMessage","PasteProvider","onUpdateRowFunction","onUpdateRow","onPasteError","KeyboardSetting","enableDeprecatedCopy","_f","deprecatedOptions","ScrollXPositionProvider","__assign"],"mappings":"2tCAgGA,SAASA,EAAgCC,GACjC,IAAAC,EAAgCC,EAAAA,SAAYF,GAA1CG,EAAIF,EAAAE,KAAEC,EAAOH,EAAAG,QAAEC,eACjBC,EAAcC,EAAAA,sBACdC,EAAqBC,EAAAA,wBAE3B,OACEC,OAAA,MAAA,CAAKC,UAAU,+BAA8BC,SAAA,CAC3CF,EAAAA,KAAA,MAAA,CAAAE,SAAA,CACEC,EAAAA,IAACC,EAAAA,YAAW,CACVX,KAAMA,EACNY,WAAYf,EAAMe,SAClBC,KAAMhB,EAAMgB,KACZC,SAAUjB,EAAMiB,SAChBT,mBAAoBA,IAGtBK,MAACK,EAAAA,mBAAkBC,QAASb,EAAYc,eACxCP,EAAAA,IAACQ,EAAAA,kBAAiB,CAAAT,SAChBF,EAAAA,KAACY,QAAK,CACJC,GAAIjB,EAAYc,aAChBI,UAAWxB,EAAMwB,UACjBP,SAAUjB,EAAMiB,SAChBQ,eAAe,YAEff,EAAAA,KAAA,QAAA,CAAOC,UAAW,QAAOC,SAAA,CACvBC,EAAAA,IAAA,QAAA,CAAAD,SACEF,EAAAA,KAAA,KAAA,CAAAE,SAAA,CACGZ,EAAMe,UAAYF,EAAAA,IAAA,KAAA,CAAIF,UAAU,SAChCR,EAAKuB,KAAI,SAACC,GAAQ,OACjBd,MAACe,EAAAA,mBAAkB,CAEjBC,QAASF,EAAIG,IAAIC,YADZJ,EAAIG,IAAIC,WAFE,SAQvBrB,EAAAA,KAAA,QAAA,CAAAE,SAAA,CACyB,IAAtBP,EAAW2B,QACVnB,EAAAA,mBACEA,MAAA,KAAA,CACEoB,QAAS9B,EAAK6B,QAAUhC,EAAMe,SAAW,EAAI,GAC7CJ,UAAU,aAAYC,SAEtBC,MAAA,IAAA,CAAGF,UAAU,gCAA+BC,SAAA,gBAIjDP,EAAWqB,KAAI,SAACQ,EAAOC,GAAM,OAC5BtB,EAAAA,IAACuB,EAAAA,IAAG,CAEFC,gBAAiBrC,EAAMe,SACvBuB,SAAUH,EACVI,IAAKnC,EAAQ8B,GAAOM,KACpBrC,KAAMH,EAAMG,KACZsC,WAAYzC,EAAMyC,WAClBC,mBAAoB1C,EAAM0C,mBAC1BC,4BAA6BC,EAAAA,yBAC3BxC,EAAQ8B,GAAOM,KACfrC,EACAH,EAAM6C,yBAVHX,EAFqB,UAkBlCrB,EAAAA,IAACiC,EAAAA,UAAS,CAAA,GACVjC,EAAAA,IAACkC,EAAAA,OAAM,CAAC3C,QAASA,EAASC,WAAYA,YAI5CK,EAAAA,KAAA,MAAA,CAAKC,UAAU,OAAMC,SAAA,CACnBC,EAAAA,IAACmC,EAAAA,aAAY,CAAA,GACbnC,EAAAA,IAAA,MAAA,CAAKF,UAAU,OAAMC,SACnBC,EAAAA,IAACoC,EAAAA,WAAU,CAAA,UAKrB,gBAzIc,SAAsCjD,mBAClD,OACEa,EAAAA,IAACqC,oBAAiB,CAAAtC,SAChBC,EAAAA,IAACsC,EAAAA,yBAAwB,CAAC5B,GAAIvB,EAAMuB,GAAEX,SACpCC,EAAAA,IAACuC,EAAAA,qBAAoB,CAACjD,KAAMH,EAAMG,KAAkCS,SAClEC,MAACwC,EAAAA,eAAc,CAACC,kBAAmB,GAAE1C,SACnCC,MAAC0C,EAAAA,aAAY,CAACC,iBAAwC,QAAtBvD,EAAAD,EAAMwD,wBAAgB,IAAAvD,OAAA,EAAAA,EAAEwD,KAAI7C,SAC1DC,MAAC6C,EAAAA,mBAAkB,CACjBC,SAAU3D,EAAMgB,KAAKgB,OACrB4B,QAIG,QAHDC,EACoC,QAAlCC,UAAAC,EAAA/D,EAAMwD,uCAAkBQ,kBAAU,IAAAF,EAAAA,EACZ,UAAtB9D,EAAMwD,wBAAgB,IAAAS,OAAA,EAAAA,EAAEC,kBACzB,IAAAL,OAAA,EAAAA,EAAEM,gBAAevD,SAGpBC,EAAAA,IAACuD,EAAAA,iBAAgB,CAACrD,SAAUf,EAAMe,SAAQH,SACxCC,EAAAA,IAACwD,yBAAsB,CAACC,cAAetE,EAAMgB,KAAKgB,gBAChDnB,EAAAA,IAAC0D,EAAAA,gBAAe,CACdpE,KAAMH,EAAMG,KACZqE,aAAcxE,EAAMwE,aAAY5D,SAEhCC,EAAAA,IAAC4D,EAAAA,aAAY,CAAA7D,SACXC,MAAC6D,EAAAA,sBAAqB,CAAA9D,SACpBC,EAAAA,IAAC8D,gBAAa,CAAA/D,SACZF,EAAAA,KAACkE,EAAAA,aAAY,CAAC5D,KAAMhB,EAAMgB,KAAMb,KAAMH,EAAMG,KAAIS,SAAA,CAC9CC,EAAAA,IAACgE,EAAAA,cAAa,CAAA,GACdnE,EAAAA,KAACoE,gBAAa,CACZ9D,KAAMhB,EAAMgB,KACZb,KAAMH,EAAMG,KACZ4E,oBAAqB/E,EAAMgF,YAC3BC,aAAcjF,EAAMiF,aAAYrE,SAAA,CAEhCC,EAAAA,IAACqE,EAAAA,gBAAe,CACdC,qBACyB,QAAvBC,EAAApF,EAAMqF,yBAAiB,IAAAD,OAAA,EAAAA,EACnBD,uBAGRtE,EAAAA,IAACyE,0BAAuB,CAAA1E,SACtBC,MAACd,EAASwF,EAAAA,SAAA,GAAKvF,mCAiBjD"}
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 { KeyCatcher } from \"../operation/components/key-catcher\";\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\";\nimport { LocaleProvider } from \"../locale/provider\";\n\nexport default function Table<T extends DataRecord>(props: TPropsTable<T>) {\n return (\n <LocaleProvider locale={props.locale}>\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={\n (\n props.initialCondition?.pagination ??\n props.initialCondition?.pagenation\n )?.rowCountPerPage\n }\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 </LocaleProvider>\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 <KeyCatcher />\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":["BaseTable","props","_a","useTable","cols","rowMaps","pageRowIds","IdGenerator","useTableIdGenerator","generateSortButton","useGenerateSortButton","_jsxs","className","children","_jsx","TableHeader","checkbox","rows","maxWidth","ColumnsWidthStyle","scopeId","getTableId","SelectBoxProvider","Frame","id","maxHeight","displayScroll","map","col","TableHeaderElement","keyname","key","toString","length","colSpan","rowId","i","Row","existCheckbox","rowIndex","row","data","onClickRow","applyRowFormatting","conditionalFormattingString","generateFormattingString","conditionalFormattings","TestRange","KeyCatcher","Editor","DisplayRange","Pagenation","LocaleProvider","locale","ComponentProvider","TableIdGeneratorProvider","ColumnsWidthProvider","FilterProvider","initialConditions","SortProvider","initialCondition","sort","PagenationProvider","rowCount","perPage","_e","_c","_b","pagination","_d","pagenation","rowCountPerPage","CheckboxProvider","CheckboxStatusProvider","checkboxCount","ColumnsProvider","errorHandler","EditProvider","TablePropertyProvider","RangeProvider","CopyProvider","CopiedMessage","PasteProvider","onUpdateRowFunction","onUpdateRow","onPasteError","KeyboardSetting","enableDeprecatedCopy","_f","deprecatedOptions","ScrollXPositionProvider","__assign"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("../pagenation/providers.js"),r=require("../checkbox/provider.js"),o=require("../sort/provider.js"),n=require("../table-property/provider.js"),u=require("../paste/provider.js"),s=require("../copy/provider.js"),i=require("../filter-v2/context.js");exports.useTable=function(c){var a=i.useFilterFunctions().filter,f=o.useSortActionContext(),p=f.sort,l=f.updatedData,d=o.useSortTimingContext(),x=t.usePageContext(),h=x.setRowCount,v=x.pageFilter,w=r.useCheckboxStatusContext().dispatchCheckboxStatus,C=u.usePasteActionContext().setRows,g=s.useCopyActionContext().setRows,m=n.useTablePropertyActionContext(),M=m.setMaxDisplayColCount,b=m.setMaxDisplayRowCount,y=e.useMemo((function(){return JSON.stringify(c.rows.map((function(e){return e.id})))}),[c.rows]),k=e.useMemo((function(){return a(c.rows)}),[a,d,y]);e.useEffect((function(){h(k.length)}),[k.length]);var q=e.useMemo((function(){return c.checkbox?c.rows.filter((function(e){var t;return null===(t=c.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[c.checkbox,c.rows]);e.useEffect((function(){w({type:"SET",payload:{checkedRecords:q}})}),[q]);var j=e.useMemo((function(){return p(k)}),[k,d]);e.useEffect((function(){l()}),[c.rows]);var E=e.useMemo((function(){return v(j)}),[v,j]),S=e.useMemo((function(){return E.map((function(e){return e.id}))}),[E]),R=e.useMemo((function(){return new Set(S)}),[S]),A=e.useMemo((function(){return c.rows.filter((function(e){return R.has(e.id)})).reduce((function(e,t){return e[t.id]={data:t},e}),{})}),[c.rows,R]);return e.useEffect((function(){M(c.cols.length)}),[c.cols.length]),e.useEffect((function(){b(S.length)}),[S.length]),e.useEffect((function(){var e=S.map((function(e){return A[e].data}));g(e),C(e)}),[A]),{cols:c.cols,rowMaps:A,pageRowIds:S}};
1
+ "use strict";var e=require("react"),t=require("../pagenation/providers.js"),r=require("../checkbox/provider.js"),n=require("../sort/provider.js"),o=require("../table-property/provider.js"),u=require("../paste/provider.js"),s=require("../copy/provider.js"),i=require("../filter-v2/context.js");exports.useTable=function(c){var a=i.useFilterFunctions().filter,f=n.useSortActionContext(),l=f.sort,p=f.updatedData,d=n.useSortTimingContext(),v=n.useSortStateContext().key,x=t.usePageContext(),h=x.setRowCount,w=x.pageFilter,C=r.useCheckboxStatusContext().dispatchCheckboxStatus,g=u.usePasteActionContext().setRows,m=s.useCopyActionContext().setRows,y=o.useTablePropertyActionContext(),M=y.setMaxDisplayColCount,S=y.setMaxDisplayRowCount,b=e.useMemo((function(){return JSON.stringify(c.rows.map((function(e){return e.id})))}),[c.rows]),k=e.useMemo((function(){return a(c.rows)}),[a,d,b]);e.useEffect((function(){h(k.length)}),[k.length]);var q=e.useMemo((function(){return c.checkbox?c.rows.filter((function(e){var t;return null===(t=c.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[c.checkbox,c.rows]);e.useEffect((function(){C({type:"SET",payload:{checkedRecords:q}})}),[q]);var j=c.cols.find((function(e){return e.key===v})),E="select"===(null==j?void 0:j.type)?JSON.stringify(j.options.map((function(e){return[e.value,e.label]}))):"",R=e.useMemo((function(){if(""!==E){var e=new Map(JSON.parse(E));return function(t){var r,n=t[v];return null!==(r=e.get(n))&&void 0!==r?r:n}}}),[v,E]),A=e.useMemo((function(){return l(k,R)}),[k,d,R]);e.useEffect((function(){p()}),[c.rows]);var T=e.useMemo((function(){return w(A)}),[w,A]),D=e.useMemo((function(){return T.map((function(e){return e.id}))}),[T]),F=e.useMemo((function(){return new Set(D)}),[D]),J=e.useMemo((function(){return c.rows.filter((function(e){return F.has(e.id)})).reduce((function(e,t){return e[t.id]={data:t},e}),{})}),[c.rows,F]);return e.useEffect((function(){M(c.cols.length)}),[c.cols.length]),e.useEffect((function(){S(D.length)}),[D.length]),e.useEffect((function(){var e=D.map((function(e){return J[e].data}));m(e),g(e)}),[J]),{cols:c.cols,rowMaps:J,pageRowIds:D}};
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 // 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":["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":"sTAUM,SAAyCA,GACrC,IAAAC,EAAWC,EAAAA,4BACbC,EAAwBC,EAAAA,uBAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,EAAAA,uBACbC,EAA8BC,EAAAA,iBAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,EAAAA,kDAClBC,EAAoBC,EAAAA,gCACpBC,EAAmBC,EAAAA,+BAC9BC,EACJC,EAAAA,gCADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAK9CC,EAAYC,WAChB,WAAM,OAAAC,KAAKC,UAAU1B,EAAM2B,KAAKC,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,IAAvC,GACN,CAAC9B,EAAM2B,OAGHI,EAAeP,EAAAA,SACnB,WAAM,OAAAvB,EAAOD,EAAM2B,KAAb,GACN,CAAC1B,EAAQM,EAAYgB,IAGvBS,EAAAA,WAAU,WACRrB,EAAYoB,EAAaE,OAC3B,GAAG,CAACF,EAAaE,SAEjB,IAAMC,EAAaV,EAAAA,SAAQ,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,EAAAA,WAAU,WACRnB,EAAuB,CACrBwB,KAAM,MACNC,QAAS,CAAEC,eAAgBL,IAE/B,GAAG,CAACA,IAEJ,IAAMM,EAAahB,EAAAA,SACjB,WAAM,OAAAnB,EAAK0B,EAAL,GACN,CAACA,EAAcxB,IAGjByB,EAAAA,WAAU,WACR1B,GACF,GAAG,CAACN,EAAM2B,OAEV,IAAMc,EAAWjB,EAAAA,SACf,WAAM,OAAAZ,EAAW4B,EAAX,GACN,CAAC5B,EAAY4B,IAGTE,EAAalB,EAAAA,SAAQ,WAAM,OAAAiB,EAASb,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,GAAtB,GAA+B,CAACW,IAC3DE,EAAgBnB,EAAAA,SAAQ,WAAM,OAAA,IAAIoB,IAAIF,EAAR,GAAqB,CAACA,IAIpDG,EAAUrB,EAAAA,SACd,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,EAAAA,WAAU,WACRX,EAAsBrB,EAAMkD,KAAKjB,OACnC,GAAG,CAACjC,EAAMkD,KAAKjB,SAEfD,EAAAA,WAAU,WACRV,EAAsBoB,EAAWT,OACnC,GAAG,CAACS,EAAWT,SAEfD,EAAAA,WAAU,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"}
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 {\n useSortActionContext,\n useSortStateContext,\n useSortTimingContext,\n} 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 { key: sortKey } = useSortStateContext();\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 // Select columns are sorted by the labels shown, not the stored values.\n // Keyed on the options' content so that a new cols array with the same\n // options (e.g. defined inline) does not re-sort on every render.\n const sortCol = props.cols.find((c) => c.key === sortKey);\n const sortLabelsKey =\n sortCol?.type === \"select\"\n ? JSON.stringify(sortCol.options.map((o) => [o.value, o.label]))\n : \"\";\n const getSortValue = useMemo(() => {\n if (sortLabelsKey === \"\") return undefined;\n\n const labels = new Map<unknown, string>(JSON.parse(sortLabelsKey));\n return (row: DataObject<T>) => {\n const value = row[sortKey as keyof T];\n return labels.get(value) ?? value;\n };\n }, [sortKey, sortLabelsKey]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows, getSortValue),\n [filteredRows, sortTiming, getSortValue]\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":["props","filter","useFilterFunctions","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","sortKey","useSortStateContext","_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","sortCol","cols","find","c","key","sortLabelsKey","options","o","value","label","getSortValue","labels","Map","parse","get","sortedRows","pageRows","pageRowIds","pageRowIdSets","Set","rowMaps","has","reduce","acc","data"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useState as i,useRef as o,useEffect as r}from"react";import{SelectBox as a}from"../../select-box/index.js";import{useConditionInputState as u,useConditionInputAction as l}from"./condition-input-management/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useIdGenerator as p}from"../id-generator/context.js";import{TiDeleteOutline as c}from"../../../node_modules/react-icons/ti/index.js";function s(t){switch(u().status){case"waiting for input":return e(d,{});case"inputted target":return e(g,{});case"inputted operator":return e(f,{size:t.size})}}function d(){var t=p().generateId,n=u().targets,i=l().inputTarget;return e(a,{id:t("TargetInput"),onSelect:function(e){i(e)},options:n.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function g(){var i=p().generateId,o=u(),r=l(),c=r.inputOperator,s=r.removeInputedTarget;if("inputted target"!==o.status)return null;var d=o.inputtingCondition.target,g=o.useableOperators;return t(n,{children:[e(T,{label:d.label,onClickDelete:function(){s()}}),e("div",{className:"w-full min-w-64",children:e(a,{id:i("OperatorInput"),onSelect:function(e){c(e),setTimeout((function(){var e=document.getElementById(i("ValueInput"));e&&e.focus()}),10)},options:g.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function f(i){var o=u(),r=l(),a=r.removeInputedOperator,p=r.removeInputedTarget;if("inputted operator"!==o.status)return null;var c=o.inputtingCondition.target,s=o.inputtingCondition.operator;return t(n,{children:[e(T,{label:c.label,onClickDelete:function(){p()}}),e(T,{label:s.label,onClickDelete:function(){a()}}),"single string"===o.inputtingCondition.operator.inputType?e(m,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single number"===o.inputtingCondition.operator.inputType?e(y,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"select"===o.inputtingCondition.operator.inputType?e(v,{inputType:o.inputtingCondition.operator.inputType,options:"select"===o.inputtingCondition.target.type?o.inputtingCondition.target.options:[]}):"single datetime"===o.inputtingCondition.operator.inputType?e(b,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single date"===o.inputtingCondition.operator.inputType?e(w,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):console.error("Not implemented")]})}function m(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:r}}),a(""))}})}function y(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:Number(r)}}),a(""))}})}function v(t){var n=l().inputValue,i=p().generateId;return e("div",{className:"w-full min-w-64",children:e(a,{id:i("ValueInput"),onSelect:function(e){n({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function b(t){var n=p().generateId,i=l().inputValue,a=o(null);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var n,o;if("Enter"===e.key){var r=new Date(null!==(o=null===(n=a.current)||void 0===n?void 0:n.value)&&void 0!==o?o:"");if(isNaN(r.getTime()))return;i({type:t.inputType,payload:{value:r}})}},onClick:function(e){e.currentTarget.showPicker()}})}function w(t){var n=p().generateId,i=l().inputValue,a=o(null),u=o(!1);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var n;if("Enter"===e.key){if(!(null===(n=a.current)||void 0===n?void 0:n.value))return;var o=a.current.value.split("-"),r=o[0],u=o[1],l=o[2],p=new Date(Number(r),Number(u)-1,Number(l));if(isNaN(p.getTime()))return;i({type:t.inputType,payload:{value:p}})}},onClick:function(e){u.current||(e.currentTarget.showPicker(),u.current=!0)}})}function T(n){return t("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e("div",{children:e(c,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}export{s as SearchBarInputForm};
1
+ "use client";import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useState as i,useRef as o,useEffect as r}from"react";import{SelectBox as a}from"../../select-box/index.js";import{useConditionInputState as u,useConditionInputAction as l}from"./condition-input-management/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useIdGenerator as p}from"../id-generator/context.js";import{TiDeleteOutline as c}from"../../../node_modules/react-icons/ti/index.js";import{parseNumberText as s}from"../../share/text/normalize.js";import{isComposingKey as d}from"../../table/operation/event-target.js";function f(t){switch(u().status){case"waiting for input":return e(g,{});case"inputted target":return e(m,{});case"inputted operator":return e(v,{size:t.size})}}function g(){var t=p().generateId,n=u().targets,i=l().inputTarget;return e(a,{id:t("TargetInput"),onSelect:function(e){i(e)},options:n.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function m(){var i=p().generateId,o=u(),r=l(),c=r.inputOperator,s=r.removeInputedTarget;if("inputted target"!==o.status)return null;var d=o.inputtingCondition.target,f=o.useableOperators;return t(n,{children:[e(h,{label:d.label,onClickDelete:function(){s()}}),e("div",{className:"w-full min-w-64",children:e(a,{id:i("OperatorInput"),onSelect:function(e){c(e),setTimeout((function(){var e=document.getElementById(i("ValueInput"));e&&e.focus()}),10)},options:f.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function v(i){var o=u(),r=l(),a=r.removeInputedOperator,p=r.removeInputedTarget;if("inputted operator"!==o.status)return null;var c=o.inputtingCondition.target,s=o.inputtingCondition.operator;return t(n,{children:[e(h,{label:c.label,onClickDelete:function(){p()}}),e(h,{label:s.label,onClickDelete:function(){a()}}),"single string"===o.inputtingCondition.operator.inputType?e(y,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single number"===o.inputtingCondition.operator.inputType?e(b,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"select"===o.inputtingCondition.operator.inputType?e(w,{inputType:o.inputtingCondition.operator.inputType,options:"select"===o.inputtingCondition.target.type?o.inputtingCondition.target.options:[]}):"single datetime"===o.inputtingCondition.operator.inputType?e(T,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single date"===o.inputtingCondition.operator.inputType?e(x,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):console.error("Not implemented")]})}function y(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"!==e.key||d(e.nativeEvent)||(u({type:t.inputType,payload:{value:r}}),a(""))}})}function b(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=i(!1),c=u[0],f=u[1],g=l().inputValue;return e("input",{id:n("ValueInput"),"aria-invalid":c,className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat(c?"text-red-600 underline decoration-wavy":""," ").concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value),f(!1)},onKeyDown:function(e){if("Enter"===e.key&&!d(e.nativeEvent)){var n=s(r);if(null===n)return void f(!0);g({type:t.inputType,payload:{value:n}}),a("")}}})}function w(t){var n=l().inputValue,i=p().generateId;return e("div",{className:"w-full min-w-64",children:e(a,{id:i("ValueInput"),onSelect:function(e){n({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function T(t){var n=p().generateId,i=l().inputValue,a=o(null);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var n,o;if("Enter"===e.key){var r=new Date(null!==(o=null===(n=a.current)||void 0===n?void 0:n.value)&&void 0!==o?o:"");if(isNaN(r.getTime()))return;i({type:t.inputType,payload:{value:r}})}},onClick:function(e){e.currentTarget.showPicker()}})}function x(t){var n=p().generateId,i=l().inputValue,a=o(null),u=o(!1);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var n;if("Enter"===e.key){if(!(null===(n=a.current)||void 0===n?void 0:n.value))return;var o=a.current.value.split("-"),r=o[0],u=o[1],l=o[2],p=new Date(Number(r),Number(u)-1,Number(l));if(isNaN(p.getTime()))return;i({type:t.inputType,payload:{value:p}})}},onClick:function(e){u.current||(e.currentTarget.showPicker(),u.current=!0)}})}function h(n){return t("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e("div",{children:e(c,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}export{f as SearchBarInputForm};
2
2
  //# sourceMappingURL=input-form.js.map