@teppen/react-ui 1.10.2 → 2.0.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 (185) hide show
  1. package/README.md +73 -6
  2. package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -1
  3. package/dist/cjs/node_modules/react-icons/lib/iconBase.js.map +1 -1
  4. package/dist/cjs/node_modules/react-icons/lib/iconContext.js.map +1 -1
  5. package/dist/cjs/node_modules/react-icons/lu/index.js.map +1 -1
  6. package/dist/cjs/node_modules/react-icons/md/index.js.map +1 -1
  7. package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -1
  8. package/dist/cjs/node_modules/tslib/tslib.es6.js +1 -1
  9. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  10. package/dist/cjs/src/file-uploader/hook.js +1 -1
  11. package/dist/cjs/src/file-uploader/hook.js.map +1 -1
  12. package/dist/cjs/src/search-bar/condition-search-bar/base.js +1 -2
  13. package/dist/cjs/src/search-bar/condition-search-bar/base.js.map +1 -1
  14. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +1 -2
  15. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
  16. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +1 -2
  17. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  18. package/dist/cjs/src/search-bar/id-generator/provider.js +1 -2
  19. package/dist/cjs/src/search-bar/id-generator/provider.js.map +1 -1
  20. package/dist/cjs/src/select-box/index.js +1 -2
  21. package/dist/cjs/src/select-box/index.js.map +1 -1
  22. package/dist/cjs/src/select-box/parts/input-area.js +1 -2
  23. package/dist/cjs/src/select-box/parts/input-area.js.map +1 -1
  24. package/dist/cjs/src/select-box/provider.js +1 -2
  25. package/dist/cjs/src/select-box/provider.js.map +1 -1
  26. package/dist/cjs/src/table/cell/ui/cell.js +1 -2
  27. package/dist/cjs/src/table/cell/ui/cell.js.map +1 -1
  28. package/dist/cjs/src/table/checkbox/components.js +1 -2
  29. package/dist/cjs/src/table/checkbox/components.js.map +1 -1
  30. package/dist/cjs/src/table/copy/format.js +2 -0
  31. package/dist/cjs/src/table/copy/format.js.map +1 -0
  32. package/dist/cjs/src/table/copy/hooks.js +1 -1
  33. package/dist/cjs/src/table/copy/hooks.js.map +1 -1
  34. package/dist/cjs/src/table/edit/provider.js +1 -2
  35. package/dist/cjs/src/table/edit/provider.js.map +1 -1
  36. package/dist/cjs/src/table/edit/ui/base-input.js +1 -2
  37. package/dist/cjs/src/table/edit/ui/base-input.js.map +1 -1
  38. package/dist/cjs/src/table/edit/ui/editor.js.map +1 -1
  39. package/dist/cjs/src/table/edit/ui/number-input.js +1 -2
  40. package/dist/cjs/src/table/edit/ui/number-input.js.map +1 -1
  41. package/dist/cjs/src/table/edit/ui/select-input.js +1 -2
  42. package/dist/cjs/src/table/edit/ui/select-input.js.map +1 -1
  43. package/dist/cjs/src/table/edit/ui/string-input.js +1 -2
  44. package/dist/cjs/src/table/edit/ui/string-input.js.map +1 -1
  45. package/dist/cjs/src/table/filter-v2/hook.js +1 -1
  46. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
  47. package/dist/cjs/src/table/frame/frame.js +1 -2
  48. package/dist/cjs/src/table/frame/frame.js.map +1 -1
  49. package/dist/cjs/src/table/header/columns-width/provider.js +1 -2
  50. package/dist/cjs/src/table/header/columns-width/provider.js.map +1 -1
  51. package/dist/cjs/src/table/header/columns-width/reducer.js +1 -1
  52. package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -1
  53. package/dist/cjs/src/table/header/header-v2-hook.js +1 -1
  54. package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -1
  55. package/dist/cjs/src/table/header/header-v2.js +1 -1
  56. package/dist/cjs/src/table/header/header-v2.js.map +1 -1
  57. package/dist/cjs/src/table/header/header.js +1 -2
  58. package/dist/cjs/src/table/header/header.js.map +1 -1
  59. package/dist/cjs/src/table/id/provider.js +1 -1
  60. package/dist/cjs/src/table/id/provider.js.map +1 -1
  61. package/dist/cjs/src/table/operation/components/keyboard-setting.js +1 -2
  62. package/dist/cjs/src/table/operation/components/keyboard-setting.js.map +1 -1
  63. package/dist/cjs/src/table/operation/event-target.js +2 -0
  64. package/dist/cjs/src/table/operation/event-target.js.map +1 -0
  65. package/dist/cjs/src/table/pagenation/components.js +1 -2
  66. package/dist/cjs/src/table/pagenation/components.js.map +1 -1
  67. package/dist/cjs/src/table/pagenation/hooks.js +1 -1
  68. package/dist/cjs/src/table/pagenation/hooks.js.map +1 -1
  69. package/dist/cjs/src/table/pagenation/providers.js +1 -2
  70. package/dist/cjs/src/table/pagenation/providers.js.map +1 -1
  71. package/dist/cjs/src/table/paste/hooks.js +1 -1
  72. package/dist/cjs/src/table/paste/hooks.js.map +1 -1
  73. package/dist/cjs/src/table/paste/logic.js +1 -1
  74. package/dist/cjs/src/table/paste/logic.js.map +1 -1
  75. package/dist/cjs/src/table/paste/parse.js +2 -0
  76. package/dist/cjs/src/table/paste/parse.js.map +1 -0
  77. package/dist/cjs/src/table/paste/provider.js +1 -1
  78. package/dist/cjs/src/table/paste/provider.js.map +1 -1
  79. package/dist/cjs/src/table/sheet/components.js +1 -1
  80. package/dist/cjs/src/table/sheet/components.js.map +1 -1
  81. package/dist/cjs/src/table/sheet/providers.js +1 -2
  82. package/dist/cjs/src/table/sheet/providers.js.map +1 -1
  83. package/dist/cjs/src/table/sort/components.js +1 -2
  84. package/dist/cjs/src/table/sort/components.js.map +1 -1
  85. package/dist/cjs/src/table/sort/provider.js +1 -2
  86. package/dist/cjs/src/table/sort/provider.js.map +1 -1
  87. package/dist/cjs/src/table/table/base.js +1 -2
  88. package/dist/cjs/src/table/table/base.js.map +1 -1
  89. package/dist/cjs/src/table/table/component-provider/provider.js +1 -2
  90. package/dist/cjs/src/table/table/component-provider/provider.js.map +1 -1
  91. package/dist/cjs/src/table/table/hook.js +1 -1
  92. package/dist/cjs/src/table/table/hook.js.map +1 -1
  93. package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -1
  94. package/dist/esm/node_modules/react-icons/lib/iconBase.js.map +1 -1
  95. package/dist/esm/node_modules/react-icons/lib/iconContext.js.map +1 -1
  96. package/dist/esm/node_modules/react-icons/lu/index.js.map +1 -1
  97. package/dist/esm/node_modules/react-icons/md/index.js.map +1 -1
  98. package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -1
  99. package/dist/esm/node_modules/tslib/tslib.es6.js +1 -1
  100. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  101. package/dist/esm/src/file-uploader/hook.js +1 -1
  102. package/dist/esm/src/file-uploader/hook.js.map +1 -1
  103. package/dist/esm/src/search-bar/condition-search-bar/base.js +1 -2
  104. package/dist/esm/src/search-bar/condition-search-bar/base.js.map +1 -1
  105. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +1 -2
  106. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
  107. package/dist/esm/src/search-bar/condition-search-bar/input-form.js +1 -2
  108. package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  109. package/dist/esm/src/search-bar/id-generator/provider.js +1 -2
  110. package/dist/esm/src/search-bar/id-generator/provider.js.map +1 -1
  111. package/dist/esm/src/select-box/index.js +1 -2
  112. package/dist/esm/src/select-box/index.js.map +1 -1
  113. package/dist/esm/src/select-box/parts/input-area.js +1 -2
  114. package/dist/esm/src/select-box/parts/input-area.js.map +1 -1
  115. package/dist/esm/src/select-box/provider.js +1 -2
  116. package/dist/esm/src/select-box/provider.js.map +1 -1
  117. package/dist/esm/src/table/cell/ui/cell.js +1 -2
  118. package/dist/esm/src/table/cell/ui/cell.js.map +1 -1
  119. package/dist/esm/src/table/checkbox/components.js +1 -2
  120. package/dist/esm/src/table/checkbox/components.js.map +1 -1
  121. package/dist/esm/src/table/copy/format.js +2 -0
  122. package/dist/esm/src/table/copy/format.js.map +1 -0
  123. package/dist/esm/src/table/copy/hooks.js +1 -1
  124. package/dist/esm/src/table/copy/hooks.js.map +1 -1
  125. package/dist/esm/src/table/edit/provider.js +1 -2
  126. package/dist/esm/src/table/edit/provider.js.map +1 -1
  127. package/dist/esm/src/table/edit/ui/base-input.js +1 -2
  128. package/dist/esm/src/table/edit/ui/base-input.js.map +1 -1
  129. package/dist/esm/src/table/edit/ui/editor.js.map +1 -1
  130. package/dist/esm/src/table/edit/ui/number-input.js +1 -2
  131. package/dist/esm/src/table/edit/ui/number-input.js.map +1 -1
  132. package/dist/esm/src/table/edit/ui/select-input.js +1 -2
  133. package/dist/esm/src/table/edit/ui/select-input.js.map +1 -1
  134. package/dist/esm/src/table/edit/ui/string-input.js +1 -2
  135. package/dist/esm/src/table/edit/ui/string-input.js.map +1 -1
  136. package/dist/esm/src/table/filter-v2/hook.js +1 -1
  137. package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
  138. package/dist/esm/src/table/frame/frame.js +1 -2
  139. package/dist/esm/src/table/frame/frame.js.map +1 -1
  140. package/dist/esm/src/table/header/columns-width/provider.js +1 -2
  141. package/dist/esm/src/table/header/columns-width/provider.js.map +1 -1
  142. package/dist/esm/src/table/header/columns-width/reducer.js +1 -1
  143. package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -1
  144. package/dist/esm/src/table/header/header-v2-hook.js +1 -1
  145. package/dist/esm/src/table/header/header-v2-hook.js.map +1 -1
  146. package/dist/esm/src/table/header/header-v2.js +1 -1
  147. package/dist/esm/src/table/header/header-v2.js.map +1 -1
  148. package/dist/esm/src/table/header/header.js +1 -2
  149. package/dist/esm/src/table/header/header.js.map +1 -1
  150. package/dist/esm/src/table/id/provider.js +1 -1
  151. package/dist/esm/src/table/id/provider.js.map +1 -1
  152. package/dist/esm/src/table/operation/components/keyboard-setting.js +1 -2
  153. package/dist/esm/src/table/operation/components/keyboard-setting.js.map +1 -1
  154. package/dist/esm/src/table/operation/event-target.js +2 -0
  155. package/dist/esm/src/table/operation/event-target.js.map +1 -0
  156. package/dist/esm/src/table/pagenation/components.js +1 -2
  157. package/dist/esm/src/table/pagenation/components.js.map +1 -1
  158. package/dist/esm/src/table/pagenation/hooks.js +1 -1
  159. package/dist/esm/src/table/pagenation/hooks.js.map +1 -1
  160. package/dist/esm/src/table/pagenation/providers.js +1 -2
  161. package/dist/esm/src/table/pagenation/providers.js.map +1 -1
  162. package/dist/esm/src/table/paste/hooks.js +1 -1
  163. package/dist/esm/src/table/paste/hooks.js.map +1 -1
  164. package/dist/esm/src/table/paste/logic.js +1 -1
  165. package/dist/esm/src/table/paste/logic.js.map +1 -1
  166. package/dist/esm/src/table/paste/parse.js +2 -0
  167. package/dist/esm/src/table/paste/parse.js.map +1 -0
  168. package/dist/esm/src/table/paste/provider.js +1 -1
  169. package/dist/esm/src/table/paste/provider.js.map +1 -1
  170. package/dist/esm/src/table/sheet/components.js +1 -1
  171. package/dist/esm/src/table/sheet/components.js.map +1 -1
  172. package/dist/esm/src/table/sheet/providers.js +1 -2
  173. package/dist/esm/src/table/sheet/providers.js.map +1 -1
  174. package/dist/esm/src/table/sort/components.js +1 -2
  175. package/dist/esm/src/table/sort/components.js.map +1 -1
  176. package/dist/esm/src/table/sort/provider.js +1 -2
  177. package/dist/esm/src/table/sort/provider.js.map +1 -1
  178. package/dist/esm/src/table/table/base.js +1 -2
  179. package/dist/esm/src/table/table/base.js.map +1 -1
  180. package/dist/esm/src/table/table/component-provider/provider.js +1 -2
  181. package/dist/esm/src/table/table/component-provider/provider.js.map +1 -1
  182. package/dist/esm/src/table/table/hook.js +1 -1
  183. package/dist/esm/src/table/table/hook.js.map +1 -1
  184. package/dist/index.d.ts +13 -1
  185. package/package.json +1 -3
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { DataObject, DataRecord } from \"../../table/type\";\nimport { useRangeStateContext } from \"../../range/provider\";\nimport { useTableIdGenerator } from \"../../id\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n stringValue: string;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const IdGenerator = useTableIdGenerator();\n const range = useRangeStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (range.isSelecting && !cols[range.start.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, range]);\n\n if (!edit.isEditing) return <></>;\n if (!range.isSelecting) return <></>;\n\n const col = cols[range.start.colIndex];\n const row = props.rowMaps[props.pageRowIds[range.start.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId({\n rowIndex: range.start.rowIndex,\n columnIndex: range.start.colIndex,\n });\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(IdGenerator.getTableId());\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop;\n size.left -= rectTable.left - tableElement.scrollLeft;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["props","IdGenerator","useTableIdGenerator","range","useRangeStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isSelecting","start","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","getTableCellId","columnIndex","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","getTableId","rectTable","scrollTop","scrollLeft","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"wTAwBM,SAAiBA,GACrB,IAAMC,EAAcC,EAAAA,sBACdC,EAAQC,EAAAA,uBACRC,EAAOC,EAAAA,sBACPC,EAAcC,EAAAA,uBACdC,EAAOC,EAAAA,oBAQb,GANAC,EAAAA,WAAU,WACJR,EAAMS,cAAgBH,EAAKN,EAAMU,MAAMC,UAAUC,UACnDR,EAAYS,YAEhB,GAAG,CAACX,EAAMF,KAELE,EAAKY,UAAW,OAAOC,EAAAA,mBAC5B,IAAKf,EAAMS,YAAa,OAAOM,EAAAA,mBAE/B,IAAMC,EAAMV,EAAKN,EAAMU,MAAMC,UACvBM,EAAMpB,EAAMqB,QAAQrB,EAAMsB,WAAWnB,EAAMU,MAAMU,WAAWC,KAElE,IAAKL,EAAIJ,SAAU,OAAOG,EAAAA,mBAE1B,IAAMO,EAAKxB,EAAYyB,eAAe,CACpCH,SAAUpB,EAAMU,MAAMU,SACtBI,YAAaxB,EAAMU,MAAMC,WAErBc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,EAAAA,mBAElB,IAAMqB,EAAeV,SAASC,eAAe7B,EAAYuC,cACzD,IAAKD,EAAc,OAAOrB,EAAAA,mBAC1B,IAAMuB,EAAYF,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOK,EAAUL,IAAMG,EAAaG,UACzCT,EAAKI,MAAQI,EAAUJ,KAAOE,EAAaI,WAGzCC,EAAAA,YACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EACAC,MAAO,CACLhB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MACZc,SAAA,CAEa,WAAbhC,EAAIiC,MAAqBlC,EAAAA,IAACmC,EAAAA,gBAAe,CAAClC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAIiC,MAAqBlC,MAACoC,EAAAA,gBAAe,CAACnC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAIiC,MAAqBlC,EAAAA,IAACqC,EAAAA,gBAAe,CAACpC,IAAKA,EAAKC,IAAKA,MAGhE"}
1
+ {"version":3,"file":"editor.js","sources":["../../../../../../src/table/edit/ui/editor.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useEditActionContext, useEditStateContext } from \"../provider\";\nimport { NumberCellInput } from \"./number-input\";\nimport { SelectCellInput } from \"./select-input\";\nimport { StringCellInput } from \"./string-input\";\nimport { DataObject, DataRecord } from \"../../table/type\";\nimport { useRangeStateContext } from \"../../range/provider\";\nimport { useTableIdGenerator } from \"../../id\";\n\ntype TPropsEditor = {\n pageRowIds: (string | number)[];\n rowMaps: {\n [id: string]: {\n data: DataObject<DataRecord>;\n };\n [id: number]: {\n data: DataObject<DataRecord>;\n };\n };\n};\n\nexport function Editor(props: TPropsEditor) {\n const IdGenerator = useTableIdGenerator();\n const range = useRangeStateContext();\n const edit = useEditStateContext();\n const editActions = useEditActionContext();\n const cols = useColumnsContext();\n\n useEffect(() => {\n if (range.isSelecting && !cols[range.start.colIndex].editable) {\n editActions.endEditing();\n }\n }, [edit, range]);\n\n if (!edit.isEditing) return <></>;\n if (!range.isSelecting) return <></>;\n\n const col = cols[range.start.colIndex];\n const row = props.rowMaps[props.pageRowIds[range.start.rowIndex]].data;\n\n if (!col.editable) return <></>;\n\n const id = IdGenerator.getTableCellId({\n rowIndex: range.start.rowIndex,\n columnIndex: range.start.colIndex,\n });\n const cellElement = document.getElementById(id);\n const rect = cellElement?.getBoundingClientRect();\n\n const size = rect\n ? {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n }\n : undefined;\n\n if (!size) return <></>;\n\n const tableElement = document.getElementById(IdGenerator.getTableId());\n if (!tableElement) return <></>;\n const rectTable = tableElement.getBoundingClientRect();\n\n size.top -= rectTable.top - tableElement.scrollTop;\n size.left -= rectTable.left - tableElement.scrollLeft;\n\n return (\n <div\n className=\"absolute top-0 left-0 grid place-items-center z-10 pr-2\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n style={{\n width: size.width,\n height: size.height,\n top: size.top - 1,\n left: size.left,\n }}\n >\n {col.type === \"string\" && <StringCellInput col={col} row={row} />}\n {col.type === \"number\" && <NumberCellInput col={col} row={row} />}\n {col.type === \"select\" && <SelectCellInput col={col} row={row} />}\n </div>\n );\n}\n"],"names":["props","IdGenerator","useTableIdGenerator","range","useRangeStateContext","edit","useEditStateContext","editActions","useEditActionContext","cols","useColumnsContext","useEffect","isSelecting","start","colIndex","editable","endEditing","isEditing","_jsx","col","row","rowMaps","pageRowIds","rowIndex","data","id","getTableCellId","columnIndex","cellElement","document","getElementById","rect","getBoundingClientRect","size","width","height","top","left","undefined","tableElement","getTableId","rectTable","scrollTop","scrollLeft","_jsxs","className","onClick","e","preventDefault","stopPropagation","style","children","type","StringCellInput","NumberCellInput","SelectCellInput"],"mappings":"wTAsBM,SAAiBA,GACrB,IAAMC,EAAcC,EAAAA,sBACdC,EAAQC,EAAAA,uBACRC,EAAOC,EAAAA,sBACPC,EAAcC,EAAAA,uBACdC,EAAOC,EAAAA,oBAQb,GANAC,EAAAA,WAAU,WACJR,EAAMS,cAAgBH,EAAKN,EAAMU,MAAMC,UAAUC,UACnDR,EAAYS,YAEhB,GAAG,CAACX,EAAMF,KAELE,EAAKY,UAAW,OAAOC,EAAAA,mBAC5B,IAAKf,EAAMS,YAAa,OAAOM,EAAAA,mBAE/B,IAAMC,EAAMV,EAAKN,EAAMU,MAAMC,UACvBM,EAAMpB,EAAMqB,QAAQrB,EAAMsB,WAAWnB,EAAMU,MAAMU,WAAWC,KAElE,IAAKL,EAAIJ,SAAU,OAAOG,EAAAA,mBAE1B,IAAMO,EAAKxB,EAAYyB,eAAe,CACpCH,SAAUpB,EAAMU,MAAMU,SACtBI,YAAaxB,EAAMU,MAAMC,WAErBc,EAAcC,SAASC,eAAeL,GACtCM,EAAOH,eAAAA,EAAaI,wBAEpBC,EAAOF,EACT,CACEG,MAAOH,EAAKG,MACZC,OAAQJ,EAAKI,OACbC,IAAKL,EAAKK,IACVC,KAAMN,EAAKM,WAEbC,EAEJ,IAAKL,EAAM,OAAOf,EAAAA,mBAElB,IAAMqB,EAAeV,SAASC,eAAe7B,EAAYuC,cACzD,IAAKD,EAAc,OAAOrB,EAAAA,mBAC1B,IAAMuB,EAAYF,EAAaP,wBAK/B,OAHAC,EAAKG,KAAOK,EAAUL,IAAMG,EAAaG,UACzCT,EAAKI,MAAQI,EAAUJ,KAAOE,EAAaI,WAGzCC,EAAAA,YACEC,UAAU,0DACVC,QAAS,SAACC,GACRA,EAAEC,iBACFD,EAAEE,iBACJ,EACAC,MAAO,CACLhB,MAAOD,EAAKC,MACZC,OAAQF,EAAKE,OACbC,IAAKH,EAAKG,IAAM,EAChBC,KAAMJ,EAAKI,MACZc,SAAA,CAEa,WAAbhC,EAAIiC,MAAqBlC,EAAAA,IAACmC,EAAAA,gBAAe,CAAClC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAIiC,MAAqBlC,MAACoC,EAAAA,gBAAe,CAACnC,IAAKA,EAAKC,IAAKA,IAC5C,WAAbD,EAAIiC,MAAqBlC,EAAAA,IAACqC,EAAAA,gBAAe,CAACpC,IAAKA,EAAKC,IAAKA,MAGhE"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../../sheet/providers.js"),u=require("./base-input.js"),n=require("../provider.js");exports.NumberCellInput=function(a){var i=a.col,o=r.useColumnValidateContext(i.key),l=n.useEditActionContext().endEditing,s=a.row[i.key],g=t.useState(s.toString()),v=g[0],c=g[1];return e.jsx(u.CellInput,{value:v,onChange:function(e){e.preventDefault(),""!==e.target.value?"-"!==e.target.value&&"0-"!==e.target.value?e.target.value.match(/^-?[0-9]+\.$/)?c(e.target.value):isNaN(Number(e.target.value))||c(Number(e.target.value).toString()):c("-0"):c("0")},onBlur:function(e){e.preventDefault(),Number(v)!==s?o(v)?function(e){i.editable&&i.onCellBlur(i.key,Number(e),a.row,l)}(v):setTimeout((function(){e.target.focus()}),100):l()},reset:function(){return c(s.toString())},endEditing:l})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../../sheet/providers.js"),n=require("./base-input.js"),u=require("../provider.js"),i=/^-?[0-9]*\.?[0-9]*$/;exports.NumberCellInput=function(o){var a=o.col,s=r.useColumnValidateContext(a.key),c=u.useEditActionContext().endEditing,l=o.row[a.key],d=t.useState(l.toString()),f=d[0],g=d[1];return e.jsx(n.CellInput,{value:f,onChange:function(e){e.preventDefault();var t=e.target.value.replace(/[0-9]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-65248)})).replace(/[.。]/g,".").replace(/[-ー−]/g,"-");i.test(t)&&g(t)},onBlur:function(e){e.preventDefault();var t,r,n,u=(r=(t=f).startsWith("-"),(n=r?t.slice(1):t).endsWith(".")&&(n=n.slice(0,-1)),n.startsWith(".")&&(n="0".concat(n)),""===n?"0":r?"-".concat(n):n);Number(u)!==l?s(u)?function(e){a.editable&&a.onCellBlur(a.key,Number(e),o.row,c)}(u):setTimeout((function(){e.target.focus()}),100):c()},reset:function(){return g(l.toString())},endEditing:c})};
3
2
  //# sourceMappingURL=number-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"number-input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"number-input.js","sources":["../../../../../../src/table/edit/ui/number-input.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { useColumnValidateContext } from \"../../sheet/providers\";\nimport { CellInput } from \"./base-input\";\nimport { useEditActionContext } from \"../provider\";\nimport {\n DataObject,\n DataRecord,\n TColumnProperty,\n TNumberCellEditingCondition,\n} from \"../../table/type\";\n\ntype TPropsCellInput = {\n col: TColumnProperty<DataRecord> & TNumberCellEditingCondition<DataRecord>;\n row: DataObject<DataRecord>;\n};\n\n// Text that can still become a number while typing, e.g. \"\", \"-\", \"1.\", \".5\".\nconst EDITING_NUMBER_PATTERN = /^-?[0-9]*\\.?[0-9]*$/;\n\n// Converts full-width digits and signs (typed with a Japanese IME) to ASCII.\nfunction toHalfWidth(text: string) {\n return text\n .replace(/[0-9]/g, (ch) => String.fromCharCode(ch.charCodeAt(0) - 0xfee0))\n .replace(/[.。]/g, \".\")\n .replace(/[-ー−]/g, \"-\");\n}\n\n// Turns in-progress text into a complete number string: \"\" and \"-\" become\n// \"0\", \".5\" becomes \"0.5\" and \"3.\" becomes \"3\".\nfunction normalizeNumberText(text: string) {\n const negative = text.startsWith(\"-\");\n let body = negative ? text.slice(1) : text;\n\n if (body.endsWith(\".\")) body = body.slice(0, -1);\n if (body.startsWith(\".\")) body = `0${body}`;\n if (body === \"\") return \"0\";\n\n return negative ? `-${body}` : body;\n}\n\nexport function NumberCellInput(props: TPropsCellInput) {\n const col = props.col;\n const validate = useColumnValidateContext(col.key);\n const { endEditing } = useEditActionContext();\n const prevValue = props.row[col.key] as number;\n const [value, setValue] = useState(prevValue.toString());\n\n const updateCellValue = (value: string) => {\n if (col.editable) {\n col.onCellBlur(col.key, Number(value), props.row, endEditing);\n }\n };\n\n return (\n <CellInput\n value={value}\n onChange={(e) => {\n e.preventDefault();\n\n const next = toHalfWidth(e.target.value);\n\n // Keep the raw text while typing so values like \"1.0\" or \"-\" are not\n // collapsed before the user finishes. It becomes a number on blur.\n if (!EDITING_NUMBER_PATTERN.test(next)) {\n return;\n }\n\n setValue(next);\n }}\n onBlur={(e) => {\n e.preventDefault();\n\n const normalized = normalizeNumberText(value);\n\n if (Number(normalized) === prevValue) {\n endEditing();\n return;\n }\n\n if (!validate(normalized)) {\n setTimeout(() => {\n e.target.focus();\n }, 100);\n return;\n }\n\n updateCellValue(normalized);\n }}\n reset={() => setValue(prevValue.toString())}\n endEditing={endEditing}\n />\n );\n}\n"],"names":["EDITING_NUMBER_PATTERN","props","col","validate","useColumnValidateContext","key","endEditing","useEditActionContext","prevValue","row","_a","useState","toString","value","setValue","_jsx","CellInput","onChange","e","preventDefault","next","target","replace","ch","String","fromCharCode","charCodeAt","test","onBlur","text","negative","body","normalized","startsWith","slice","endsWith","concat","Number","editable","onCellBlur","updateCellValue","setTimeout","focus","reset"],"mappings":"+KAmBMA,EAAyB,8CAuBzB,SAA0BC,GAC9B,IAAMC,EAAMD,EAAMC,IACZC,EAAWC,EAAAA,yBAAyBF,EAAIG,KACtCC,EAAeC,EAAAA,kCACjBC,EAAYP,EAAMQ,IAAIP,EAAIG,KAC1BK,EAAoBC,EAAAA,SAASH,EAAUI,YAAtCC,EAAKH,EAAA,GAAEI,OAQd,OACEC,EAAAA,IAACC,EAAAA,UAAS,CACRH,MAAOA,EACPI,SAAU,SAACC,GACTA,EAAEC,iBAEF,IAAMC,EAAmBF,EAAEG,OAAOR,MArCrCS,QAAQ,UAAU,SAACC,GAAO,OAAAC,OAAOC,aAAaF,EAAGG,WAAW,GAAK,MAAvC,IAC1BJ,QAAQ,QAAS,KACjBA,QAAQ,SAAU,KAuCVtB,EAAuB2B,KAAKP,IAIjCN,EAASM,EACX,EACAQ,OAAQ,SAACV,GACPA,EAAEC,iBAEF,IA3CqBU,EACrBC,EACFC,EAyCQC,GA1CNF,GADqBD,EA2CkBhB,GA1CvBoB,WAAW,MAC7BF,EAAOD,EAAWD,EAAKK,MAAM,GAAKL,GAE7BM,SAAS,OAAMJ,EAAOA,EAAKG,MAAM,GAAG,IACzCH,EAAKE,WAAW,OAAMF,EAAO,IAAAK,OAAIL,IACxB,KAATA,EAAoB,IAEjBD,EAAW,IAAAM,OAAIL,GAASA,GAqCrBM,OAAOL,KAAgBxB,EAKtBL,EAAS6B,GAhCI,SAACnB,GACnBX,EAAIoC,UACNpC,EAAIqC,WAAWrC,EAAIG,IAAKgC,OAAOxB,GAAQZ,EAAMQ,IAAKH,EAEtD,CAmCMkC,CAAgBR,GANdS,YAAW,WACTvB,EAAEG,OAAOqB,OACX,GAAG,KAPHpC,GAYJ,EACAqC,MAAO,WAAM,OAAA7B,EAASN,EAAUI,WAAnB,EACbN,WAAYA,GAGlB"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("../../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("../provider.js"),o=require("../../../icon/cancel-icon.js"),u=require("../../../select-box/index.js"),i=require("../../id/provider.js");exports.SelectCellInput=function(s){var c=i.useTableIdGenerator(),l=s.col,a=r.useEditActionContext().endEditing,d=s.row[l.key],f=n.useState(d),p=f[0],v=f[1],m=n.useRef(null),j=n.useRef(null);n.useEffect((function(){j.current&&j.current.focus()}),[j]);var x=function(e){l.editable&&l.onCellBlur(l.key,e,s.row,a)};if(!l.editable)return t.jsx(t.Fragment,{});n.useEffect((function(){var e=function(e){var t=m.current,n=e.target;n instanceof Node&&(null==t?void 0:t.contains(n))||(p!==d?x(p):a())};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[p,x,a,d]);var b=n.useMemo((function(){return l.allowEmpty?e.__spreadArray([{value:"",label:""===d?"-- 未選択 --":"-- 選択解除 --"}],l.options,!0):l.options}),[l.options,l.allowEmpty,d]);return t.jsxs("div",{ref:m,className:"flex justify-between gap-1 w-full items-center",children:[t.jsx(u.SelectBox,{id:c.getEditorId(),inputRef:j,value:p,defaultIsOpen:!0,options:b,onSelect:function(e){v(e),x(e)}}),t.jsx("button",{className:"cursor-pointer",onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){v(d),a()}),300)},children:t.jsx(o.CancelIcon,{size:16})})]})};
1
+ "use client";"use strict";var e=require("../../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("../provider.js"),o=require("../../../icon/cancel-icon.js"),i=require("../../../select-box/index.js"),u=require("../../id/provider.js");exports.SelectCellInput=function(s){var c=u.useTableIdGenerator(),l=s.col,a=r.useEditActionContext().endEditing,d=s.row[l.key],f=!!l.editable&&l.allowEmpty,p=n.useState(d),v=p[0],m=p[1],j=n.useRef(null),x=n.useRef(null);n.useEffect((function(){x.current&&x.current.focus()}),[x]);var b=function(e){l.editable&&l.onCellBlur(l.key,e,s.row,a)};n.useEffect((function(){var e=function(e){var t=j.current,n=e.target;n instanceof Node&&(null==t?void 0:t.contains(n))||(v!==d?b(v):a())};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[v,b,a,d]);var w=n.useMemo((function(){return f?e.__spreadArray([{value:"",label:""===d?"-- 未選択 --":"-- 選択解除 --"}],l.options,!0):l.options}),[l.options,f,d]);return l.editable?t.jsxs("div",{ref:j,className:"flex justify-between gap-1 w-full items-center",children:[t.jsx(i.SelectBox,{id:c.getEditorId(),inputRef:x,value:v,defaultIsOpen:!0,options:w,onSelect:function(e){m(e),b(e)}}),t.jsx("button",{className:"cursor-pointer",onMouseDown:function(e){e.preventDefault(),e.stopPropagation(),setTimeout((function(){m(d),a()}),300)},children:t.jsx(o.CancelIcon,{size:16})})]}):t.jsx(t.Fragment,{})};
3
2
  //# sourceMappingURL=select-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"select-input.js","sources":["../../../../../../src/table/edit/ui/select-input.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useEditActionContext } from \"../provider\";\nimport { CancelIcon } from \"../../../icon/cancel-icon\";\nimport {\n DataObject,\n DataRecord,\n TColumnProperty,\n TSelectCellEditingCondition,\n} from \"../../table/type\";\nimport { SelectBox } from \"../../../select-box\";\nimport { useTableIdGenerator } from \"../../id\";\n\ntype TPropsCellInput = {\n col: TColumnProperty<DataRecord> & TSelectCellEditingCondition<DataRecord>;\n row: DataObject<DataRecord>;\n};\n\nexport function SelectCellInput(props: TPropsCellInput) {\n const IdGenerator = useTableIdGenerator();\n const col = props.col;\n const { endEditing } = useEditActionContext();\n const prevValue = props.row[col.key] as string;\n const allowEmpty = col.editable ? col.allowEmpty : false;\n const [value, setValue] = useState(prevValue);\n const ref = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }, [inputRef]);\n\n const updateCellValue = (value: string) => {\n if (col.editable) {\n col.onCellBlur(col.key, value, props.row, endEditing);\n }\n };\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n const selectInputElement = ref.current;\n const ele = e.target;\n\n if (ele instanceof Node && selectInputElement?.contains(ele)) return;\n\n if (value === prevValue) {\n endEditing();\n return;\n }\n\n updateCellValue(value);\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, [value, updateCellValue, endEditing, prevValue]);\n\n const options = useMemo(() => {\n if (allowEmpty) {\n return [\n {\n value: \"\",\n label: prevValue === \"\" ? \"-- 未選択 --\" : \"-- 選択解除 --\",\n },\n ...col.options,\n ];\n } else {\n return col.options;\n }\n }, [col.options, allowEmpty, prevValue]);\n\n // Return only after every hook has run, so hooks are always called in the\n // same order.\n if (!col.editable) return <></>;\n\n return (\n <div ref={ref} className=\"flex justify-between gap-1 w-full items-center\">\n <SelectBox\n id={IdGenerator.getEditorId()}\n inputRef={inputRef}\n value={value}\n defaultIsOpen={true}\n options={options}\n onSelect={(value) => {\n setValue(value);\n updateCellValue(value);\n }}\n />\n <button\n className=\"cursor-pointer\"\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setTimeout(() => {\n setValue(prevValue);\n endEditing();\n }, 300);\n }}\n >\n <CancelIcon size={16} />\n </button>\n </div>\n );\n}\n"],"names":["props","IdGenerator","useTableIdGenerator","col","endEditing","useEditActionContext","prevValue","row","key","allowEmpty","editable","_a","useState","value","setValue","ref","useRef","inputRef","useEffect","current","focus","updateCellValue","onCellBlur","onClickOutOfSelectBox","e","selectInputElement","ele","target","Node","contains","document","addEventListener","removeEventListener","options","useMemo","__spreadArray","label","_jsxs","className","children","_jsx","SelectBox","id","getEditorId","defaultIsOpen","onSelect","onMouseDown","preventDefault","stopPropagation","setTimeout","CancelIcon","size"],"mappings":"mTAmBM,SAA0BA,GAC9B,IAAMC,EAAcC,EAAAA,sBACdC,EAAMH,EAAMG,IACVC,EAAeC,EAAAA,kCACjBC,EAAYN,EAAMO,IAAIJ,EAAIK,KAC1BC,IAAaN,EAAIO,UAAWP,EAAIM,WAChCE,EAAoBC,EAAAA,SAASN,GAA5BO,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAChBI,EAAMC,EAAAA,OAAuB,MAC7BC,EAAWD,EAAAA,OAAyB,MAE1CE,EAAAA,WAAU,WACJD,EAASE,SACXF,EAASE,QAAQC,OAErB,GAAG,CAACH,IAEJ,IAAMI,EAAkB,SAACR,GACnBV,EAAIO,UACNP,EAAImB,WAAWnB,EAAIK,IAAKK,EAAOb,EAAMO,IAAKH,EAE9C,EAEAc,EAAAA,WAAU,WACR,IAAMK,EAAwB,SAACC,GAC7B,IAAMC,EAAqBV,EAAII,QACzBO,EAAMF,EAAEG,OAEVD,aAAeE,OAAQH,aAAkB,EAAlBA,EAAoBI,SAASH,MAEpDb,IAAUP,EAKde,EAAgBR,GAJdT,IAKJ,EAIA,OAFA0B,SAASC,iBAAiB,YAAaR,GAEhC,WACLO,SAASE,oBAAoB,YAAaT,EAC5C,CACF,GAAG,CAACV,EAAOQ,EAAiBjB,EAAYE,IAExC,IAAM2B,EAAUC,EAAAA,SAAQ,WACtB,OAAIzB,EACF0B,gBAAA,CACE,CACEtB,MAAO,GACPuB,MAAqB,KAAd9B,EAAmB,YAAc,eAEvCH,EAAI8B,SAAO,GAGT9B,EAAI8B,OAEf,GAAG,CAAC9B,EAAI8B,QAASxB,EAAYH,IAI7B,OAAKH,EAAIO,SAGP2B,OAAA,MAAA,CAAKtB,IAAKA,EAAKuB,UAAU,iDAAgDC,SAAA,CACvEC,MAACC,EAAAA,UAAS,CACRC,GAAIzC,EAAY0C,cAChB1B,SAAUA,EACVJ,MAAOA,EACP+B,eAAe,EACfX,QAASA,EACTY,SAAU,SAAChC,GACTC,EAASD,GACTQ,EAAgBR,EAClB,IAEF2B,EAAAA,IAAA,SAAA,CACEF,UAAU,iBACVQ,YAAa,SAACtB,GACZA,EAAEuB,iBACFvB,EAAEwB,kBACFC,YAAW,WACTnC,EAASR,GACTF,GACF,GAAG,IACL,EAACmC,SAEDC,EAAAA,IAACU,aAAU,CAACC,KAAM,UA1BEX,EAAAA,kBA8B5B"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../provider.js"),n=require("../../sheet/providers.js"),u=require("./base-input.js");exports.StringCellInput=function(i){var o=i.col,s=n.useColumnValidateContext(o.key),a=r.useEditActionContext().endEditing,l=i.row[o.key],c=t.useState(l),d=c[0],f=c[1];return e.jsx(u.CellInput,{value:d,onChange:function(e){e.preventDefault(),f(e.target.value)},onBlur:function(e){e.preventDefault(),d!==l?s(d)?function(e){o.editable&&o.onCellBlur(o.key,e,i.row,a)}(d):setTimeout((function(){e.target.focus()}),100):a()},reset:function(){return f(l.toString())},endEditing:a})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../provider.js"),n=require("../../sheet/providers.js"),u=require("./base-input.js");exports.StringCellInput=function(i){var o=i.col,s=n.useColumnValidateContext(o.key),l=r.useEditActionContext().endEditing,a=i.row[o.key],c=t.useState(a),d=c[0],f=c[1];return e.jsx(u.CellInput,{value:d,onChange:function(e){e.preventDefault(),f(e.target.value)},onBlur:function(e){e.preventDefault(),d!==a?s(d)?function(e){o.editable&&o.onCellBlur(o.key,e,i.row,l)}(d):setTimeout((function(){e.target.focus()}),100):l()},reset:function(){return f(a.toString())},endEditing:l})};
3
2
  //# sourceMappingURL=string-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string-input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"string-input.js","sources":["../../../../../../src/table/edit/ui/string-input.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { useEditActionContext } from \"../provider\";\nimport { useColumnValidateContext } from \"../../sheet/providers\";\nimport { CellInput } from \"./base-input\";\nimport {\n DataObject,\n DataRecord,\n TColumnProperty,\n TStringCellEditingCondition,\n} from \"../../table/type\";\n\ntype TPropsCellInput = {\n col: TColumnProperty<DataRecord> & TStringCellEditingCondition<DataRecord>;\n row: DataObject<DataRecord>;\n};\n\nexport function StringCellInput(props: TPropsCellInput) {\n const col = props.col;\n const validate = useColumnValidateContext(col.key);\n const { endEditing } = useEditActionContext();\n const prevValue = props.row[col.key] as string;\n const [value, setValue] = useState(prevValue);\n\n const updateCellValue = (value: string) => {\n if (col.editable) {\n col.onCellBlur(col.key, value, props.row, endEditing);\n }\n };\n\n return (\n <CellInput\n value={value}\n onChange={(e) => {\n e.preventDefault();\n setValue(e.target.value);\n }}\n onBlur={(e) => {\n e.preventDefault();\n\n if (value === prevValue) {\n endEditing();\n return;\n }\n\n if (!validate(value)) {\n setTimeout(() => {\n e.target.focus();\n }, 100);\n return;\n }\n\n updateCellValue(value);\n }}\n reset={() => setValue(prevValue.toString())}\n endEditing={endEditing}\n />\n );\n}\n"],"names":["props","col","validate","useColumnValidateContext","key","endEditing","useEditActionContext","prevValue","row","_a","useState","value","setValue","_jsx","CellInput","onChange","e","preventDefault","target","onBlur","editable","onCellBlur","updateCellValue","setTimeout","focus","reset","toString"],"mappings":"uMAkBM,SAA0BA,GAC9B,IAAMC,EAAMD,EAAMC,IACZC,EAAWC,EAAAA,yBAAyBF,EAAIG,KACtCC,EAAeC,EAAAA,kCACjBC,EAAYP,EAAMQ,IAAIP,EAAIG,KAC1BK,EAAoBC,EAAAA,SAASH,GAA5BI,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAQtB,OACEI,EAAAA,IAACC,EAAAA,UAAS,CACRH,MAAOA,EACPI,SAAU,SAACC,GACTA,EAAEC,iBACFL,EAASI,EAAEE,OAAOP,MACpB,EACAQ,OAAQ,SAACH,GACPA,EAAEC,iBAEEN,IAAUJ,EAKTL,EAASS,GArBI,SAACA,GACnBV,EAAImB,UACNnB,EAAIoB,WAAWpB,EAAIG,IAAKO,EAAOX,EAAMQ,IAAKH,EAE9C,CAwBMiB,CAAgBX,GANdY,YAAW,WACTP,EAAEE,OAAOM,OACX,GAAG,KAPHnB,GAYJ,EACAoB,MAAO,WAAM,OAAAb,EAASL,EAAUmB,WAAnB,EACbrB,WAAYA,GAGlB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("./reducer.js");exports.useFilterHook=function(r){var n=e.useReducer(t.filterReducer,{conditions:r}),a=n[0],o=n[1],i=e.useMemo((function(){return{addFilter:function(e){o({type:"add",payload:{condition:e}})},removeFilter:function(e){o({type:"remove",payload:{index:e}})},clearFilter:function(){o({type:"clear"})}}}),[a.conditions]),u=e.useMemo((function(){return{filter:function(e){return e.filter((function(e){return a.conditions.every((function(t){return function(e,t,r){switch(e.operator.type){case"number":if("single number"===e.operator.inputType){if(r.type!==e.operator.inputType)throw new Error("input type is not match");var n=r.payload.value;switch(e.operator.key){case"number:eq":return t===n;case"number:gt":return t>n;case"number:gte":return t>=n;case"number:lt":return t<n;case"number:lte":return t<=n;case"number:neq":return t!==n}}case"string":switch(e.operator.inputType){case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"string:is_not_null":return null!=t&&""!==t;case"string:is_null":return null==t||""===t}case"single string":if(r.type!==e.operator.inputType)throw new Error("input type is not match");var a=r.payload.value;switch(e.operator.key){case"string:eq":return t===a;case"string:like":return t.includes(a);case"string:neq":return t!==a;case"string:not_like":return!t.includes(a)}}case"select":switch(e.operator.inputType){case"select":if(r.type!==e.operator.inputType)throw new Error("input type is not match");a=r.payload.value;switch(e.operator.key){case"select:eq":return t===a;case"select:neq":return t!==a}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"select:is_null":return null==t||""===t;case"select:is_not_null":return null!=t&&""!==t}}case"date":switch(e.operator.inputType){case"single date":if(r.type!==e.operator.inputType)throw new Error("input type is not match");var o=r.payload.value;if(!(t instanceof Date))throw new Error("date value is not Date object");switch(e.operator.key){case"date:eq":return t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate();case"date:neq":return t.getFullYear()!==o.getFullYear()||t.getMonth()!==o.getMonth()||t.getDate()!==o.getDate();case"date:gt":return t>o;case"date:gte":return t>=o;case"date:lt":return t<o;case"date:lte":return t<=o}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"date:is_null":return null==t||""===t;case"date:is_not_null":return null!=t&&""!==t}}case"datetime":switch(e.operator.inputType){case"single datetime":if(r.type!==e.operator.inputType)throw new Error("input type is not match");o=r.payload.value;switch(e.operator.key){case"datetime:gt":return t>o;case"datetime:gte":return t>=o;case"datetime:lt":return t<o;case"datetime:lte":return t<=o}case"none":if(r.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"datetime:is_null":return null==t||""===t;case"datetime:is_not_null":return null!=t&&""!==t}}}}(t,e[t.target.key],t.input)}))}))}}}),[a.conditions]);return{state:a,actions:i,functions:u}};
1
+ "use strict";var e=require("react"),t=require("./reducer.js");function r(e){return null==e?"":String(e)}function n(e){if(null==e||""===e)return null;var t=e instanceof Date?e:new Date(e);return isNaN(t.getTime())?null:1e4*t.getFullYear()+100*(t.getMonth()+1)+t.getDate()}function a(e,t,a){switch(e.operator.type){case"number":if("single number"===e.operator.inputType){if(a.type!==e.operator.inputType)throw new Error("input type is not match");var i=a.payload.value;switch(e.operator.key){case"number:eq":return t===i;case"number:gt":return t>i;case"number:gte":return t>=i;case"number:lt":return t<i;case"number:lte":return t<=i;case"number:neq":return t!==i}}case"string":switch(e.operator.inputType){case"none":if(a.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"string:is_not_null":return null!=t&&""!==t;case"string:is_null":return null==t||""===t}case"single string":if(a.type!==e.operator.inputType)throw new Error("input type is not match");var o=a.payload.value;switch(e.operator.key){case"string:eq":return t===o;case"string:like":return r(t).includes(o);case"string:neq":return t!==o;case"string:not_like":return!r(t).includes(o)}}case"select":switch(e.operator.inputType){case"select":if(a.type!==e.operator.inputType)throw new Error("input type is not match");o=a.payload.value;switch(e.operator.key){case"select:eq":return t===o;case"select:neq":return t!==o}case"none":if(a.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"select:is_null":return null==t||""===t;case"select:is_not_null":return null!=t&&""!==t}}case"date":switch(e.operator.inputType){case"single date":if(a.type!==e.operator.inputType)throw new Error("input type is not match");var u=n(t),s=n(a.payload.value);if(null===u||null===s)return!1;switch(e.operator.key){case"date:eq":return u===s;case"date:neq":return u!==s;case"date:gt":return u>s;case"date:gte":return u>=s;case"date:lt":return u<s;case"date:lte":return u<=s}case"none":if(a.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"date:is_null":return null==t||""===t;case"date:is_not_null":return null!=t&&""!==t}}case"datetime":switch(e.operator.inputType){case"single datetime":if(a.type!==e.operator.inputType)throw new Error("input type is not match");var c=a.payload.value;switch(e.operator.key){case"datetime:gt":return t>c;case"datetime:gte":return t>=c;case"datetime:lt":return t<c;case"datetime:lte":return t<=c}case"none":if(a.type!==e.operator.inputType)throw new Error("input type is not match");switch(e.operator.key){case"datetime:is_null":return null==t||""===t;case"datetime:is_not_null":return null!=t&&""!==t}}}}exports.isMatchCondition=a,exports.useFilterHook=function(r){var n=e.useReducer(t.filterReducer,{conditions:r}),i=n[0],o=n[1],u=e.useMemo((function(){return{addFilter:function(e){o({type:"add",payload:{condition:e}})},removeFilter:function(e){o({type:"remove",payload:{index:e}})},clearFilter:function(){o({type:"clear"})}}}),[i.conditions]),s=e.useMemo((function(){return{filter:function(e){return e.filter((function(e){return i.conditions.every((function(t){return a(t,e[t.target.key],t.input)}))}))}}}),[i.conditions]);return{state:i,actions:u,functions:s}};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/filter-v2/hook.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilterHook } from \"./type\";\nimport { filterReducer } from \"./reducer\";\nimport { Condition } from \"../../search-bar\";\nimport { DataObject, DataRecord } from \"../table/type\";\nimport { SearchInput } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\nexport const useFilterHook: TFilterHook = (initialConditions) => {\n const [state, dispatch] = useReducer(filterReducer, {\n conditions: initialConditions,\n });\n\n const actions = useMemo(\n () => ({\n addFilter: (condition: Condition) => {\n dispatch({ type: \"add\", payload: { condition } });\n },\n removeFilter: (index: number) => {\n dispatch({ type: \"remove\", payload: { index } });\n },\n clearFilter: () => {\n dispatch({ type: \"clear\" });\n },\n }),\n [state.conditions]\n );\n\n const functions = useMemo(\n () => ({\n filter: <T extends DataRecord>(rows: DataObject<T>[]) => {\n return rows.filter((row) => {\n return state.conditions.every((condition) => {\n const value = row[condition.target.key];\n return isMatchCondition(condition, value, condition.input);\n });\n });\n },\n }),\n [state.conditions]\n );\n\n return {\n state,\n actions,\n functions,\n };\n};\n\nfunction isMatchCondition(\n condition: Condition,\n targetValue: any,\n input: SearchInput\n): boolean {\n switch (condition.operator.type) {\n case \"number\":\n switch (condition.operator.inputType) {\n case \"single number\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const numValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"number:eq\":\n return targetValue === numValue;\n case \"number:gt\":\n return targetValue > numValue;\n case \"number:gte\":\n return targetValue >= numValue;\n case \"number:lt\":\n return targetValue < numValue;\n case \"number:lte\":\n return targetValue <= numValue;\n case \"number:neq\":\n return targetValue !== numValue;\n }\n }\n\n case \"string\":\n switch (condition.operator.inputType) {\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"string:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n case \"string:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n }\n case \"single string\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"string:eq\":\n return targetValue === value;\n case \"string:like\":\n return targetValue.includes(value);\n case \"string:neq\":\n return targetValue !== value;\n case \"string:not_like\":\n return !targetValue.includes(value);\n }\n }\n\n case \"select\":\n switch (condition.operator.inputType) {\n case \"select\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"select:eq\":\n return targetValue === value;\n case \"select:neq\":\n return targetValue !== value;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"select:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"select:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"date\":\n switch (condition.operator.inputType) {\n case \"single date\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const dateValue = input.payload.value;\n\n if (!(targetValue instanceof Date)) {\n throw new Error(\"date value is not Date object\");\n }\n\n switch (condition.operator.key) {\n case \"date:eq\":\n return (\n targetValue.getFullYear() === dateValue.getFullYear() &&\n targetValue.getMonth() === dateValue.getMonth() &&\n targetValue.getDate() === dateValue.getDate()\n );\n case \"date:neq\":\n return (\n targetValue.getFullYear() !== dateValue.getFullYear() ||\n targetValue.getMonth() !== dateValue.getMonth() ||\n targetValue.getDate() !== dateValue.getDate()\n );\n case \"date:gt\":\n return targetValue > dateValue;\n case \"date:gte\":\n return targetValue >= dateValue;\n case \"date:lt\":\n return targetValue < dateValue;\n case \"date:lte\":\n return targetValue <= dateValue;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"date:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"date:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"datetime\":\n switch (condition.operator.inputType) {\n case \"single datetime\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const dateValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"datetime:gt\":\n return targetValue > dateValue;\n case \"datetime:gte\":\n return targetValue >= dateValue;\n case \"datetime:lt\":\n return targetValue < dateValue;\n case \"datetime:lte\":\n return targetValue <= dateValue;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"datetime:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"datetime:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n }\n}\n"],"names":["initialConditions","_a","useReducer","filterReducer","conditions","state","dispatch","actions","useMemo","addFilter","condition","type","payload","removeFilter","index","clearFilter","functions","filter","rows","row","every","targetValue","input","operator","inputType","Error","numValue","value","key","includes","dateValue","Date","getFullYear","getMonth","getDate","isMatchCondition","target"],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/filter-v2/hook.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TFilterHook } from \"./type\";\nimport { filterReducer } from \"./reducer\";\nimport { Condition } from \"../../search-bar\";\nimport { DataObject, DataRecord } from \"../table/type\";\nimport { SearchInput } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\nexport const useFilterHook: TFilterHook = (initialConditions) => {\n const [state, dispatch] = useReducer(filterReducer, {\n conditions: initialConditions,\n });\n\n const actions = useMemo(\n () => ({\n addFilter: (condition: Condition) => {\n dispatch({ type: \"add\", payload: { condition } });\n },\n removeFilter: (index: number) => {\n dispatch({ type: \"remove\", payload: { index } });\n },\n clearFilter: () => {\n dispatch({ type: \"clear\" });\n },\n }),\n [state.conditions]\n );\n\n const functions = useMemo(\n () => ({\n filter: <T extends DataRecord>(rows: DataObject<T>[]) => {\n return rows.filter((row) => {\n return state.conditions.every((condition) => {\n const value = row[condition.target.key];\n return isMatchCondition(condition, value, condition.input);\n });\n });\n },\n }),\n [state.conditions]\n );\n\n return {\n state,\n actions,\n functions,\n };\n};\n\nfunction toText(value: unknown): string {\n return value === null || value === undefined ? \"\" : String(value);\n}\n\n/** Returns a number like 20240101 for the local calendar day, or null. */\nfunction toDayNumber(value: unknown): number | null {\n if (value === null || value === undefined || value === \"\") return null;\n\n const date = value instanceof Date ? value : new Date(value as string);\n if (isNaN(date.getTime())) return null;\n\n return (\n date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate()\n );\n}\n\n/** Exported for tests. */\nexport function isMatchCondition(\n condition: Condition,\n targetValue: any,\n input: SearchInput\n): boolean {\n switch (condition.operator.type) {\n case \"number\":\n switch (condition.operator.inputType) {\n case \"single number\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const numValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"number:eq\":\n return targetValue === numValue;\n case \"number:gt\":\n return targetValue > numValue;\n case \"number:gte\":\n return targetValue >= numValue;\n case \"number:lt\":\n return targetValue < numValue;\n case \"number:lte\":\n return targetValue <= numValue;\n case \"number:neq\":\n return targetValue !== numValue;\n }\n }\n\n case \"string\":\n switch (condition.operator.inputType) {\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"string:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n case \"string:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n }\n case \"single string\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"string:eq\":\n return targetValue === value;\n case \"string:like\":\n return toText(targetValue).includes(value);\n case \"string:neq\":\n return targetValue !== value;\n case \"string:not_like\":\n return !toText(targetValue).includes(value);\n }\n }\n\n case \"select\":\n switch (condition.operator.inputType) {\n case \"select\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const value = input.payload.value;\n\n switch (condition.operator.key) {\n case \"select:eq\":\n return targetValue === value;\n case \"select:neq\":\n return targetValue !== value;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"select:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"select:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"date\":\n switch (condition.operator.inputType) {\n case \"single date\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n // Compare by calendar day, so a row at 10:30 on Jan 1 counts as\n // \"Jan 1\" for every operator, not only for \"=\".\n const targetDay = toDayNumber(targetValue);\n const inputDay = toDayNumber(input.payload.value);\n\n if (targetDay === null || inputDay === null) {\n return false;\n }\n\n switch (condition.operator.key) {\n case \"date:eq\":\n return targetDay === inputDay;\n case \"date:neq\":\n return targetDay !== inputDay;\n case \"date:gt\":\n return targetDay > inputDay;\n case \"date:gte\":\n return targetDay >= inputDay;\n case \"date:lt\":\n return targetDay < inputDay;\n case \"date:lte\":\n return targetDay <= inputDay;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"date:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"date:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n case \"datetime\":\n switch (condition.operator.inputType) {\n case \"single datetime\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n const dateValue = input.payload.value;\n\n switch (condition.operator.key) {\n case \"datetime:gt\":\n return targetValue > dateValue;\n case \"datetime:gte\":\n return targetValue >= dateValue;\n case \"datetime:lt\":\n return targetValue < dateValue;\n case \"datetime:lte\":\n return targetValue <= dateValue;\n }\n case \"none\":\n if (input.type !== condition.operator.inputType) {\n throw new Error(\"input type is not match\");\n }\n\n switch (condition.operator.key) {\n case \"datetime:is_null\":\n return (\n targetValue === null ||\n targetValue === undefined ||\n targetValue === \"\"\n );\n case \"datetime:is_not_null\":\n return (\n targetValue !== null &&\n targetValue !== undefined &&\n targetValue !== \"\"\n );\n }\n }\n }\n}\n"],"names":["toText","value","String","toDayNumber","date","Date","isNaN","getTime","getFullYear","getMonth","getDate","isMatchCondition","condition","targetValue","input","operator","type","inputType","Error","numValue","payload","key","includes","targetDay","inputDay","dateValue","initialConditions","_a","useReducer","filterReducer","conditions","state","dispatch","actions","useMemo","addFilter","removeFilter","index","clearFilter","functions","filter","rows","row","every","target"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../header/columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var n=require("../header/x-scroll-position/context.js");exports.Frame=function(o){var l=n.useScrollXPosition(),s=l.x,c=l.setScrollX,i=r.useRef(null),u=r.useState({scrollX:0,scrollY:0,barYHeight:0,barXWidth:0}),a=u[0],d=u[1],v=t.useColumnsWidthState();return r.useEffect((function(){var e=function(){if(i.current){c(i.current.scrollLeft);var e=i.current.scrollLeft/i.current.scrollWidth*100,r=i.current.scrollTop/i.current.scrollHeight*100,t=i.current.clientHeight/i.current.scrollHeight*100,n=i.current.clientWidth/i.current.scrollWidth*100;d({scrollX:e>100?100:e,scrollY:r>100?100:r,barYHeight:t>100?100:t,barXWidth:n>100?100:n})}};return e(),i.current&&i.current.addEventListener("scroll",e),function(){i.current&&i.current.removeEventListener("scroll",e)}}),[c,v]),r.useEffect((function(){i.current&&(i.current.scrollLeft=s)}),[s]),e.jsxs("div",{className:"relative",style:{maxWidth:o.maxWidth},children:[e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:i,id:o.id,className:"relative w-full h-full max-w-full border border-gray-200 bg-white rounded-b-md overflow-auto ".concat(o.displayScroll?"":"teppen-no-scrollbar"),style:{maxHeight:o.maxHeight},children:o.children}),a.barYHeight<100&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute top-0 right-0 h-full w-2 bg-slate-200 opacity-30 pointer-events-none"}),e.jsx("div",{className:"absolute right-0 w-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{top:"".concat(a.scrollY,"%"),height:"".concat(a.barYHeight,"%")},onMouseDown:function(e){var r,t=e.clientY,n=(null===(r=i.current)||void 0===r?void 0:r.scrollTop)||0,o=function(e){if(i.current){var r=(e.clientY-t)/a.barYHeight*100;i.current.scrollTop=n+r}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]}),a.barXWidth<100&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-2 bg-slate-200 opacity-30 pointer-events-none"}),e.jsx("div",{className:"absolute bottom-0 h-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{left:"".concat(a.scrollX,"%"),width:"".concat(a.barXWidth,"%")},onMouseDown:function(e){var r;e.preventDefault(),e.stopPropagation();var t=e.clientX,n=(null===(r=i.current)||void 0===r?void 0:r.scrollLeft)||0,o=function(r){if(i.current){e.preventDefault(),e.stopPropagation();var o=(r.clientX-t)/a.barXWidth*100;i.current.scrollLeft=n+o}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]})]})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../header/columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var n=require("../header/x-scroll-position/context.js");exports.Frame=function(o){var l=n.useScrollXPosition(),s=l.x,c=l.setScrollX,i=r.useRef(null),u=r.useState({scrollX:0,scrollY:0,barYHeight:0,barXWidth:0}),a=u[0],d=u[1],v=t.useColumnsWidthState();return r.useEffect((function(){var e=function(){if(i.current){c(i.current.scrollLeft);var e=i.current.scrollLeft/i.current.scrollWidth*100,r=i.current.scrollTop/i.current.scrollHeight*100,t=i.current.clientHeight/i.current.scrollHeight*100,n=i.current.clientWidth/i.current.scrollWidth*100;d({scrollX:e>100?100:e,scrollY:r>100?100:r,barYHeight:t>100?100:t,barXWidth:n>100?100:n})}};return e(),i.current&&i.current.addEventListener("scroll",e),function(){i.current&&i.current.removeEventListener("scroll",e)}}),[c,v]),r.useEffect((function(){i.current&&(i.current.scrollLeft=s)}),[s]),e.jsxs("div",{className:"relative",style:{maxWidth:o.maxWidth},children:[e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:i,id:o.id,className:"relative w-full h-full max-w-full border border-gray-200 bg-white rounded-b-md overflow-auto ".concat(o.displayScroll?"":"teppen-no-scrollbar"),style:{maxHeight:o.maxHeight},children:o.children}),a.barYHeight<100&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute top-0 right-0 h-full w-2 bg-slate-200 opacity-30 pointer-events-none"}),e.jsx("div",{className:"absolute right-0 w-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{top:"".concat(a.scrollY,"%"),height:"".concat(a.barYHeight,"%")},onMouseDown:function(e){var r,t=e.clientY,n=(null===(r=i.current)||void 0===r?void 0:r.scrollTop)||0,o=function(e){if(i.current){var r=(e.clientY-t)/a.barYHeight*100;i.current.scrollTop=n+r}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]}),a.barXWidth<100&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute bottom-0 left-0 w-full h-2 bg-slate-200 opacity-30 pointer-events-none"}),e.jsx("div",{className:"absolute bottom-0 h-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing",style:{left:"".concat(a.scrollX,"%"),width:"".concat(a.barXWidth,"%")},onMouseDown:function(e){var r;e.preventDefault(),e.stopPropagation();var t=e.clientX,n=(null===(r=i.current)||void 0===r?void 0:r.scrollLeft)||0,o=function(r){if(i.current){e.preventDefault(),e.stopPropagation();var o=(r.clientX-t)/a.barXWidth*100;i.current.scrollLeft=n+o}},l=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",l)};document.addEventListener("mousemove",o),document.addEventListener("mouseup",l)}})]})]})};
3
2
  //# sourceMappingURL=frame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"frame.js","sources":["../../../../../src/table/frame/frame.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { useColumnsWidthState, useScrollXPosition } from \"../header\";\n\ninterface IPropsFrameDesign {\n maxHeight?: string;\n maxWidth?: string;\n displayScroll?: boolean;\n}\n\ninterface IPropsFrame extends IPropsFrameDesign {\n id?: string;\n children: React.ReactNode;\n}\n\nexport function Frame(props: IPropsFrame) {\n const { x, setScrollX } = useScrollXPosition();\n const ref = useRef<HTMLDivElement>(null);\n // refのdiv内でのスクロール割合を保持\n const [scrollInfo, setScrollInfo] = useState({\n scrollX: 0,\n scrollY: 0,\n barYHeight: 0,\n barXWidth: 0,\n });\n const columnsWidhtState = useColumnsWidthState();\n\n useEffect(() => {\n const handleBodyScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft);\n\n const scrollX =\n (ref.current.scrollLeft / ref.current.scrollWidth) * 100;\n const scrollY =\n (ref.current.scrollTop / ref.current.scrollHeight) * 100;\n const barYHeight =\n (ref.current.clientHeight / ref.current.scrollHeight) * 100;\n const barXWidth =\n (ref.current.clientWidth / ref.current.scrollWidth) * 100;\n\n setScrollInfo({\n scrollX: scrollX > 100 ? 100 : scrollX,\n scrollY: scrollY > 100 ? 100 : scrollY,\n barYHeight: barYHeight > 100 ? 100 : barYHeight,\n barXWidth: barXWidth > 100 ? 100 : barXWidth,\n });\n }\n };\n\n handleBodyScroll();\n\n if (ref.current) {\n ref.current.addEventListener(\"scroll\", handleBodyScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleBodyScroll);\n }\n };\n }, [setScrollX, columnsWidhtState]);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.scrollLeft = x;\n }\n }, [x]);\n\n return (\n <div className=\"relative\" style={{ maxWidth: props.maxWidth }}>\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <div\n ref={ref}\n id={props.id}\n className={`relative w-full h-full max-w-full border border-gray-200 bg-white rounded-b-md overflow-auto ${\n props.displayScroll ? \"\" : \"teppen-no-scrollbar\"\n }`}\n style={{ maxHeight: props.maxHeight }}\n >\n {props.children}\n </div>\n\n {scrollInfo.barYHeight < 100 && (\n <>\n <div className=\"absolute top-0 right-0 h-full w-2 bg-slate-200 opacity-30 pointer-events-none\" />\n\n <div\n className={`absolute right-0 w-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing`}\n style={{\n top: `${scrollInfo.scrollY}%`,\n height: `${scrollInfo.barYHeight}%`,\n }}\n onMouseDown={(e) => {\n const startY = e.clientY;\n const startScrollY = ref.current?.scrollTop || 0;\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (ref.current) {\n const deltaY =\n ((moveEvent.clientY - startY) / scrollInfo.barYHeight) *\n 100;\n ref.current.scrollTop = startScrollY + deltaY;\n }\n };\n\n const onMouseUp = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n }}\n />\n </>\n )}\n\n {scrollInfo.barXWidth < 100 && (\n <>\n <div className=\"absolute bottom-0 left-0 w-full h-2 bg-slate-200 opacity-30 pointer-events-none\" />\n\n <div\n className={`absolute bottom-0 h-2 bg-slate-500 rounded-full cursor-grab active:cursor-grabbing`}\n style={{\n left: `${scrollInfo.scrollX}%`,\n width: `${scrollInfo.barXWidth}%`,\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const startX = e.clientX;\n const startScrollX = ref.current?.scrollLeft || 0;\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (ref.current) {\n e.preventDefault();\n e.stopPropagation();\n\n const deltaX =\n ((moveEvent.clientX - startX) / scrollInfo.barXWidth) * 100;\n ref.current.scrollLeft = startScrollX + deltaX;\n }\n };\n\n const onMouseUp = () => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n }}\n />\n </>\n )}\n </div>\n );\n}\n"],"names":["props","_a","useScrollXPosition","x","setScrollX","ref","useRef","_b","useState","scrollX","scrollY","barYHeight","barXWidth","scrollInfo","setScrollInfo","columnsWidhtState","useColumnsWidthState","useEffect","handleBodyScroll","current","scrollLeft","scrollX_1","scrollWidth","scrollY_1","scrollTop","scrollHeight","clientHeight","clientWidth","addEventListener","removeEventListener","_jsxs","className","style","maxWidth","children","_jsx","id","concat","displayScroll","maxHeight","_Fragment","top","height","onMouseDown","e","startY","clientY","startScrollY","onMouseMove","moveEvent","deltaY","onMouseUp","document","left","width","preventDefault","stopPropagation","startX","clientX","startScrollX","deltaX"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("../../constant.js"),i=require("./context.js"),r=require("./reducer.js");var n=function(e){return e.reduce((function(e,i,r){return e[i.key]={colWidth:i.initialWidth||t.DEFAULT_COL_WIDTH,minWidth:i.minWidth||t.DEFAULT_MIN_COL_WIDTH,index:r},e}),{})};exports.ColumnsWidthProvider=function(t){var u=r.useColumnsWidthReducer(n(t.initialState)),d=u.state,o=u.action;return e.jsx(i.ColumnsWidthStateContext.Provider,{value:d,children:e.jsx(i.ColumnsWidthActionContext.Provider,{value:o,children:t.children})})};
1
+ "use client";"use strict";var t=require("react/jsx-runtime"),e=require("react"),n=require("./context.js"),i=require("./reducer.js");exports.ColumnsWidthProvider=function(r){var c=e.useMemo((function(){return r.cols.map((function(t){return{key:t.key.toString(),initialWidth:t.initialWidth,minWidth:t.minWidth}}))}),[r.cols]),o=i.useColumnsWidthReducer(c),u=o.state,a=o.action;return t.jsx(n.ColumnsWidthStateContext.Provider,{value:u,children:t.jsx(n.ColumnsWidthActionContext.Provider,{value:a,children:r.children})})},exports.ColumnsWidthStyle=function(e){var i=n.useColumnsWidthState().columns,r='[id="'.concat(e.scopeId.replace(/["\\]/g,"\\$&").replace(/\n/g,"\\a "),'"]'),c=i.map((function(t){var e=t.index,n=t.colWidth;return"".concat(r," .table-col-").concat(e,"{width:").concat(n,"px;min-width:").concat(n,"px;max-width:").concat(n,"px;}")})).join("\n");return t.jsx("style",{children:c})};
3
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../../src/table/header/columns-width/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { DataRecord, TTableColumn } from \"../../table/type\";\nimport {\n ColumnsWidthActionContext,\n ColumnsWidthStateContext,\n useColumnsWidthState,\n} from \"./context\";\nimport { useColumnsWidthReducer } from \"./reducer\";\n\nexport function ColumnsWidthProvider(props: {\n children: React.ReactNode;\n cols: TTableColumn<DataRecord>[];\n}) {\n const cols = useMemo(\n () =>\n props.cols.map((col) => ({\n key: col.key.toString(),\n initialWidth: col.initialWidth,\n minWidth: col.minWidth,\n })),\n [props.cols]\n );\n const { state, action } = useColumnsWidthReducer(cols);\n\n return (\n <ColumnsWidthStateContext.Provider value={state}>\n <ColumnsWidthActionContext.Provider value={action}>\n {props.children}\n </ColumnsWidthActionContext.Provider>\n </ColumnsWidthStateContext.Provider>\n );\n}\n\n// Escapes a value for use inside a double-quoted CSS attribute selector.\nfunction escapeCssString(value: string) {\n return value.replace(/[\"\\\\]/g, \"\\\\$&\").replace(/\\n/g, \"\\\\a \");\n}\n\n/**\n * Applies the column widths to the body cells (`.table-col-N`) of one table.\n * The rules are scoped to the element with `scopeId`, so several tables on\n * the same page do not affect each other, and cells rendered later (e.g.\n * after changing pages) get their width automatically.\n */\nexport function ColumnsWidthStyle(props: { scopeId: string }) {\n const { columns } = useColumnsWidthState();\n const scope = `[id=\"${escapeCssString(props.scopeId)}\"]`;\n\n const css = columns\n .map(\n ({ index, colWidth }) =>\n `${scope} .table-col-${index}{width:${colWidth}px;min-width:${colWidth}px;max-width:${colWidth}px;}`\n )\n .join(\"\\n\");\n\n return <style>{css}</style>;\n}\n"],"names":["props","cols","useMemo","map","col","key","toString","initialWidth","minWidth","_a","useColumnsWidthReducer","state","action","_jsx","ColumnsWidthStateContext","Provider","value","children","ColumnsWidthActionContext","columns","useColumnsWidthState","scope","concat","scopeId","replace","css","index","colWidth","join"],"mappings":"iKAWM,SAA+BA,GAInC,IAAMC,EAAOC,EAAAA,SACX,WACE,OAAAF,EAAMC,KAAKE,KAAI,SAACC,GAAQ,MAAA,CACtBC,IAAKD,EAAIC,IAAIC,WACbC,aAAcH,EAAIG,aAClBC,SAAUJ,EAAII,SAHQ,GAAxB,GAKF,CAACR,EAAMC,OAEHQ,EAAoBC,yBAAuBT,GAAzCU,EAAKF,EAAAE,MAAEC,EAAMH,EAAAG,OAErB,OACEC,EAAAA,IAACC,EAAAA,yBAAyBC,UAASC,MAAOL,EAAKM,SAC7CJ,EAAAA,IAACK,EAAAA,0BAA0BH,SAAQ,CAACC,MAAOJ,EAAMK,SAC9CjB,EAAMiB,YAIf,4BAaM,SAA4BjB,GACxB,IAAAmB,EAAYC,EAAAA,+BACdC,EAAQ,QAAAC,OAAwBtB,EAAMuB,QAX/BC,QAAQ,SAAU,QAAQA,QAAQ,MAAO,QAWF,MAE9CC,EAAMN,EACThB,KACC,SAACM,OAAEiB,EAAKjB,EAAAiB,MAAEC,EAAQlB,EAAAkB,SAChB,MAAA,GAAAL,OAAGD,EAAK,gBAAAC,OAAeI,EAAK,WAAAJ,OAAUK,EAAQ,iBAAAL,OAAgBK,EAAQ,iBAAAL,OAAgBK,EAAQ,OAA9F,IAEHC,KAAK,MAER,OAAOf,EAAAA,IAAA,QAAA,CAAAI,SAAQQ,GACjB"}
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("../../../../node_modules/tslib/tslib.es6.js"),n=require("react"),e=require("../../constant.js"),o=function(n,e){var o,c;switch(e.type){case"init":return e.payload.columnsWidth;case"setMinWidth":return t.__assign(t.__assign({},n),((o={})[e.payload.key]=t.__assign(t.__assign({},n[e.payload.key]),{minWidth:e.payload.minWidth}),o));case"set":return t.__assign(t.__assign({},n),((c={})[e.payload.key]=t.__assign(t.__assign({},n[e.payload.key]),{colWidth:e.payload.colWidth}),c));default:return n}};exports.columnsWidthReducer=o,exports.useColumnsWidthReducer=function(t){var c=n.useReducer(o,t),i=c[0],a=c[1],u=n.useRef(null),r=n.useMemo((function(){return{getColumnWidth:function(t){var n=i[t];return n?n.colWidth:(console.warn("Column width state not found: ".concat(t)),e.DEFAULT_COL_WIDTH)},getColumnMinWidth:function(t){var n=i[t];return n?n.minWidth:(console.warn("Column width state not found: ".concat(t)),e.DEFAULT_MIN_COL_WIDTH)}}}),[i]),s=n.useMemo((function(){return{setColWidth:function(t,n){u.current=t,a({type:"set",payload:{key:t,colWidth:n}})}}}),[]);return n.useLayoutEffect((function(){if(u.current){var t=u.current,n=setTimeout((function(){var n,e,o;n=i[t].colWidth,e=i[t].index,o="table-col-".concat(e),document.querySelectorAll(".".concat(o)).forEach((function(t){t.setAttribute("style","width: ".concat(n,"px; min-width: ").concat(n,"px; max-width: ").concat(n,"px;"))}))}),200);return function(){clearTimeout(n)}}Object.keys(i).forEach((function(t){var n=i[t].colWidth,e=i[t].index,o="table-col-".concat(e);document.querySelectorAll(".".concat(o)).forEach((function(t){t.setAttribute("style","width: ".concat(n,"px; min-width: ").concat(n,"px; max-width: ").concat(n,"px;"))}))}))}),[i]),{state:r,action:s}};
1
+ "use strict";var t=require("../../../../node_modules/tslib/tslib.es6.js"),n=require("react"),e=require("../../constant.js"),o=function(n,e){var o;return"set"===e.type?n[e.payload.key]===e.payload.colWidth?n:t.__assign(t.__assign({},n),((o={})[e.payload.key]=e.payload.colWidth,o)):n};exports.columnsWidthReducer=o,exports.useColumnsWidthReducer=function(t){var i=n.useReducer(o,{}),u=i[0],r=i[1],a=n.useMemo((function(){return t.map((function(t,n){var o,i=t.minWidth||e.DEFAULT_MIN_COL_WIDTH,r=null!==(o=u[t.key])&&void 0!==o?o:t.initialWidth||e.DEFAULT_COL_WIDTH;return{key:t.key,colWidth:Math.max(r,i),minWidth:i,index:n}}))}),[t,u]);return{state:n.useMemo((function(){var t=new Map(a.map((function(t){return[t.key,t]})));return{columns:a,getColumnWidth:function(n){var o=t.get(n);return o?o.colWidth:(console.warn("Column width state not found: ".concat(n)),e.DEFAULT_COL_WIDTH)},getColumnMinWidth:function(n){var o=t.get(n);return o?o.minWidth:(console.warn("Column width state not found: ".concat(n)),e.DEFAULT_MIN_COL_WIDTH)}}}),[a]),action:n.useMemo((function(){return{setColWidth:function(t,n){r({type:"set",payload:{key:t,colWidth:n}})}}}),[])}};
2
2
  //# sourceMappingURL=reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../../../src/table/header/columns-width/reducer.ts"],"sourcesContent":["import { useMemo, useReducer, useRef, useLayoutEffect } from \"react\";\nimport { TColumnsWidthHook, TColumnsWidthReducer } from \"./type\";\nimport { DEFAULT_COL_WIDTH, DEFAULT_MIN_COL_WIDTH } from \"../../constant\";\n\nexport const columnsWidthReducer: TColumnsWidthReducer = (state, action) => {\n switch (action.type) {\n case \"init\":\n return action.payload.columnsWidth;\n case \"setMinWidth\":\n return {\n ...state,\n [action.payload.key]: {\n ...state[action.payload.key],\n minWidth: action.payload.minWidth,\n },\n };\n case \"set\":\n return {\n ...state,\n [action.payload.key]: {\n ...state[action.payload.key],\n colWidth: action.payload.colWidth,\n },\n };\n default:\n return state;\n }\n};\n\nexport const useColumnsWidthReducer: TColumnsWidthHook = (initialState) => {\n const [state, dispatch] = useReducer(columnsWidthReducer, initialState);\n const updateKeyRef = useRef<string | null>(null);\n\n const stateActions = useMemo(\n () => ({\n getColumnWidth: (key: string) => {\n const s = state[key];\n\n if (!s) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_COL_WIDTH;\n }\n\n return s.colWidth;\n },\n getColumnMinWidth: (key: string) => {\n const s = state[key];\n\n if (!s) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_MIN_COL_WIDTH;\n }\n\n return s.minWidth;\n },\n }),\n [state]\n );\n\n const action = useMemo(\n () => ({\n setColWidth: (key: string, colWidth: number) => {\n updateKeyRef.current = key;\n dispatch({ type: \"set\", payload: { key, colWidth } });\n },\n }),\n []\n );\n\n useLayoutEffect(() => {\n if (updateKeyRef.current) {\n const key = updateKeyRef.current;\n\n const updateColWidth = () => {\n const colWidth = state[key].colWidth;\n const index = state[key].index;\n\n const className = `table-col-${index}`;\n const colElements = document.querySelectorAll(`.${className}`);\n colElements.forEach((colElement) => {\n colElement.setAttribute(\n \"style\",\n `width: ${colWidth}px; min-width: ${colWidth}px; max-width: ${colWidth}px;`\n );\n });\n };\n\n const timer = setTimeout(() => {\n updateColWidth();\n }, 200);\n\n return () => {\n clearTimeout(timer);\n };\n } else {\n Object.keys(state).forEach((key) => {\n const colWidth = state[key].colWidth;\n const index = state[key].index;\n\n const className = `table-col-${index}`;\n const colElements = document.querySelectorAll(`.${className}`);\n colElements.forEach((colElement) => {\n colElement.setAttribute(\n \"style\",\n `width: ${colWidth}px; min-width: ${colWidth}px; max-width: ${colWidth}px;`\n );\n });\n });\n }\n }, [state]);\n\n return { state: stateActions, action };\n};\n"],"names":["columnsWidthReducer","state","action","type","payload","columnsWidth","__assign","_a","key","minWidth","_b","colWidth","initialState","useReducer","dispatch","updateKeyRef","useRef","stateActions","useMemo","getColumnWidth","s","console","warn","DEFAULT_COL_WIDTH","getColumnMinWidth","DEFAULT_MIN_COL_WIDTH","setColWidth","current","useLayoutEffect","key_1","timer_1","setTimeout","index","className","concat","document","querySelectorAll","forEach","colElement","setAttribute","clearTimeout","Object","keys"],"mappings":"4HAIaA,EAA4C,SAACC,EAAOC,WAC/D,OAAQA,EAAOC,MACb,IAAK,OACH,OAAOD,EAAOE,QAAQC,aACxB,IAAK,cACH,OAAAC,WAAAA,EAAAA,SAAA,CAAA,EACKL,KAAKM,EAAA,CAAA,GACPL,EAAOE,QAAQI,KAAGF,EAAAA,SAAAA,WAAA,CAAA,EACdL,EAAMC,EAAOE,QAAQI,MAAI,CAC5BC,SAAUP,EAAOE,QAAQK,WAAQF,IAGvC,IAAK,MACH,OAAAD,WAAAA,EAAAA,SAAA,CAAA,EACKL,KAAKS,EAAA,CAAA,GACPR,EAAOE,QAAQI,KAAGF,EAAAA,SAAAA,WAAA,CAAA,EACdL,EAAMC,EAAOE,QAAQI,MAAI,CAC5BG,SAAUT,EAAOE,QAAQO,WAAQD,IAGvC,QACE,OAAOT,EAEb,+DAEyD,SAACW,GAClD,IAAAL,EAAoBM,EAAAA,WAAWb,EAAqBY,GAAnDX,EAAKM,EAAA,GAAEO,OACRC,EAAeC,EAAAA,OAAsB,MAErCC,EAAeC,WACnB,WAAM,MAAA,CACJC,eAAgB,SAACX,GACf,IAAMY,EAAInB,EAAMO,GAEhB,OAAKY,EAKEA,EAAET,UAJPU,QAAQC,KAAK,wCAAiCd,IACvCe,EAAAA,kBAIX,EACAC,kBAAmB,SAAChB,GAClB,IAAMY,EAAInB,EAAMO,GAEhB,OAAKY,EAKEA,EAAEX,UAJPY,QAAQC,KAAK,wCAAiCd,IACvCiB,EAAAA,sBAIX,EApBI,GAsBN,CAACxB,IAGGC,EAASgB,WACb,WAAM,MAAA,CACJQ,YAAa,SAAClB,EAAaG,GACzBI,EAAaY,QAAUnB,EACvBM,EAAS,CAAEX,KAAM,MAAOC,QAAS,CAAEI,MAAKG,aAC1C,EAJI,GAMN,IA6CF,OA1CAiB,EAAAA,iBAAgB,WACd,GAAIb,EAAaY,QAAS,CACxB,IAAME,EAAMd,EAAaY,QAgBnBG,EAAQC,YAAW,WAdF,IACfpB,EACAqB,EAEAC,EAHAtB,EAAWV,EAAM4B,GAAKlB,SACtBqB,EAAQ/B,EAAM4B,GAAKG,MAEnBC,EAAY,aAAAC,OAAaF,GACXG,SAASC,iBAAiB,IAAAF,OAAID,IACtCI,SAAQ,SAACC,GACnBA,EAAWC,aACT,QACA,UAAAL,OAAUvB,EAAQ,mBAAAuB,OAAkBvB,EAAQ,mBAAAuB,OAAkBvB,EAAQ,OAE1E,GAKF,GAAG,KAEH,OAAO,WACL6B,aAAaV,EACf,CACF,CACEW,OAAOC,KAAKzC,GAAOoC,SAAQ,SAAC7B,GAC1B,IAAMG,EAAWV,EAAMO,GAAKG,SACtBqB,EAAQ/B,EAAMO,GAAKwB,MAEnBC,EAAY,aAAAC,OAAaF,GACXG,SAASC,iBAAiB,IAAAF,OAAID,IACtCI,SAAQ,SAACC,GACnBA,EAAWC,aACT,QACA,UAAAL,OAAUvB,EAAQ,mBAAAuB,OAAkBvB,EAAQ,mBAAAuB,OAAkBvB,EAAQ,OAE1E,GACF,GAEJ,GAAG,CAACV,IAEG,CAAEA,MAAOgB,EAAcf,OAAMA,EACtC"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../../../src/table/header/columns-width/reducer.ts"],"sourcesContent":["import { useMemo, useReducer } from \"react\";\nimport { TColumnsWidthHook, TColumnsWidthReducer } from \"./type\";\nimport { DEFAULT_COL_WIDTH, DEFAULT_MIN_COL_WIDTH } from \"../../constant\";\n\nexport const columnsWidthReducer: TColumnsWidthReducer = (state, action) => {\n switch (action.type) {\n case \"set\":\n if (state[action.payload.key] === action.payload.colWidth) {\n return state;\n }\n return { ...state, [action.payload.key]: action.payload.colWidth };\n default:\n return state;\n }\n};\n\nexport const useColumnsWidthReducer: TColumnsWidthHook = (cols) => {\n const [overrides, dispatch] = useReducer(columnsWidthReducer, {});\n\n // Widths are derived from the current columns on every change, so added,\n // removed or reordered columns always have a width. Widths the user set by\n // dragging are kept for columns that still exist.\n const columns = useMemo(\n () =>\n cols.map((col, index) => {\n const minWidth = col.minWidth || DEFAULT_MIN_COL_WIDTH;\n const colWidth =\n overrides[col.key] ?? (col.initialWidth || DEFAULT_COL_WIDTH);\n\n return {\n key: col.key,\n colWidth: Math.max(colWidth, minWidth),\n minWidth,\n index,\n };\n }),\n [cols, overrides]\n );\n\n const state = useMemo(() => {\n const byKey = new Map(columns.map((column) => [column.key, column]));\n\n return {\n columns,\n getColumnWidth: (key: string) => {\n const column = byKey.get(key);\n\n if (!column) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_COL_WIDTH;\n }\n\n return column.colWidth;\n },\n getColumnMinWidth: (key: string) => {\n const column = byKey.get(key);\n\n if (!column) {\n console.warn(`Column width state not found: ${key}`);\n return DEFAULT_MIN_COL_WIDTH;\n }\n\n return column.minWidth;\n },\n };\n }, [columns]);\n\n const action = useMemo(\n () => ({\n setColWidth: (key: string, colWidth: number) => {\n dispatch({ type: \"set\", payload: { key, colWidth } });\n },\n }),\n []\n );\n\n return { state, action };\n};\n"],"names":["columnsWidthReducer","state","action","type","payload","key","colWidth","__assign","_a","cols","useReducer","overrides","dispatch","columns","useMemo","map","col","index","minWidth","DEFAULT_MIN_COL_WIDTH","initialWidth","DEFAULT_COL_WIDTH","Math","max","byKey","Map","column","getColumnWidth","get","console","warn","getColumnMinWidth","setColWidth"],"mappings":"4HAIaA,EAA4C,SAACC,EAAOC,SAC/D,MACO,QADCA,EAAOC,KAEPF,EAAMC,EAAOE,QAAQC,OAASH,EAAOE,QAAQE,SACxCL,EAETM,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYN,KAAKO,EAAA,IAAGN,EAAOE,QAAQC,KAAMH,EAAOE,QAAQE,SAAQE,IAEzDP,CAEb,+DAEyD,SAACQ,GAClD,IAAAD,EAAwBE,EAAAA,WAAWV,EAAqB,CAAA,GAAvDW,EAASH,EAAA,GAAEI,OAKZC,EAAUC,EAAAA,SACd,WACE,OAAAL,EAAKM,KAAI,SAACC,EAAKC,SACPC,EAAWF,EAAIE,UAAYC,EAAAA,sBAC3Bb,EACc,QAAlBE,EAAAG,EAAUK,EAAIX,YAAI,IAAAG,EAAAA,EAAKQ,EAAII,cAAgBC,EAAAA,kBAE7C,MAAO,CACLhB,IAAKW,EAAIX,IACTC,SAAUgB,KAAKC,IAAIjB,EAAUY,GAC7BA,SAAQA,EACRD,MAAKA,EAET,GAXA,GAYF,CAACR,EAAME,IAwCT,MAAO,CAAEV,MArCKa,EAAAA,SAAQ,WACpB,IAAMU,EAAQ,IAAIC,IAAIZ,EAAQE,KAAI,SAACW,GAAW,MAAA,CAACA,EAAOrB,IAAKqB,EAAb,KAE9C,MAAO,CACLb,QAAOA,EACPc,eAAgB,SAACtB,GACf,IAAMqB,EAASF,EAAMI,IAAIvB,GAEzB,OAAKqB,EAKEA,EAAOpB,UAJZuB,QAAQC,KAAK,wCAAiCzB,IACvCgB,EAAAA,kBAIX,EACAU,kBAAmB,SAAC1B,GAClB,IAAMqB,EAASF,EAAMI,IAAIvB,GAEzB,OAAKqB,EAKEA,EAAOR,UAJZW,QAAQC,KAAK,wCAAiCzB,IACvCc,EAAAA,sBAIX,EAEJ,GAAG,CAACN,IAWYX,OATDY,WACb,WAAM,MAAA,CACJkB,YAAa,SAAC3B,EAAaC,GACzBM,EAAS,CAAET,KAAM,MAAOC,QAAS,CAAEC,MAAKC,aAC1C,EAHI,GAKN,IAIJ"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("./columns-width/context.js");require("react/jsx-runtime"),require("../../../node_modules/tslib/tslib.es6.js");var r=require("./x-scroll-position/context.js");exports.useResizeColWidthHook=function(r){var n=t.useColumnsWidth(),o=n.getColumnWidth,u=n.getColumnMinWidth,s=n.setColWidth,c=e.useState(!1),i=c[0],l=c[1],d=o(r),m=u(r);return{onMouseDownResizeWidth:e.useCallback((function(e){if(!i){var t=e.clientX,n=d;document.body.style.cursor="col-resize",document.body.style.userSelect="none";var o=function(e){l(!0);var o=n+(e.clientX-t);s(r,o>m?o:m)},u=function(){l(!1),document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",u),document.body.style.cursor="default",document.body.style.userSelect="auto"};document.addEventListener("mousemove",o),document.addEventListener("mouseup",u)}}),[i,m])}},exports.useScrollXRef=function(){var t=r.useScrollXPosition(),n=t.x,o=t.setScrollX,u=e.useRef(null);return e.useEffect((function(){var e=function(){u.current&&o(u.current.scrollLeft)};return u.current&&u.current.addEventListener("scroll",e),function(){u.current&&u.current.removeEventListener("scroll",e)}}),[]),e.useEffect((function(){u.current&&(u.current.scrollLeft=n)}),[n]),u};
1
+ "use strict";var e=require("react"),t=require("./columns-width/context.js");require("react/jsx-runtime"),require("../../../node_modules/tslib/tslib.es6.js");var r=require("./x-scroll-position/context.js");exports.useResizeColWidthHook=function(r){var n=t.useColumnsWidth(),o=n.getColumnWidth,u=n.getColumnMinWidth,s=n.setColWidth,c=e.useState(!1),i=c[0],l=c[1],d=o(r),m=u(r);return{onMouseDownResizeWidth:e.useCallback((function(e){if(!i){var t=e.clientX,n=d;document.body.style.cursor="col-resize",document.body.style.userSelect="none";var o=function(e){l(!0);var o=n+(e.clientX-t);s(r,o>m?o:m)},u=function(){l(!1),document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",u),document.body.style.cursor="default",document.body.style.userSelect="auto"};document.addEventListener("mousemove",o),document.addEventListener("mouseup",u)}}),[i,m,d,r,s])}},exports.useScrollXRef=function(){var t=r.useScrollXPosition(),n=t.x,o=t.setScrollX,u=e.useRef(null);return e.useEffect((function(){var e=function(){u.current&&o(u.current.scrollLeft)};return u.current&&u.current.addEventListener("scroll",e),function(){u.current&&u.current.removeEventListener("scroll",e)}}),[]),e.useEffect((function(){u.current&&(u.current.scrollLeft=n)}),[n]),u};
2
2
  //# sourceMappingURL=header-v2-hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-v2-hook.js","sources":["../../../../../src/table/header/header-v2-hook.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useColumnsWidth } from \"./columns-width\";\nimport { useScrollXPosition } from \"./x-scroll-position\";\n\nexport function useResizeColWidthHook(keyName: string) {\n const { getColumnWidth, getColumnMinWidth, setColWidth } = useColumnsWidth();\n const [isDragging, setIsDragging] = useState(false);\n\n const colWidth = getColumnWidth(keyName);\n const minWidth = getColumnMinWidth(keyName);\n\n const cursorStyle = \"col-resize\";\n\n const onMouseDownResizeWidth: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n if (isDragging) return;\n\n const startX = e.clientX;\n const startWidth = colWidth;\n\n document.body.style.cursor = cursorStyle;\n document.body.style.userSelect = \"none\";\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n setIsDragging(true);\n const newWidth = startWidth + (moveEvent.clientX - startX);\n setColWidth(keyName, newWidth > minWidth ? newWidth : minWidth);\n };\n\n const onMouseUp = () => {\n setIsDragging(false);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n document.body.style.cursor = \"default\";\n document.body.style.userSelect = \"auto\";\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n },\n [isDragging, minWidth]\n );\n\n return {\n onMouseDownResizeWidth,\n };\n}\n\nexport function useScrollXRef() {\n const { x, setScrollX } = useScrollXPosition();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleHeaderScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft);\n }\n };\n\n if (ref.current) {\n ref.current.addEventListener(\"scroll\", handleHeaderScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleHeaderScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.scrollLeft = x;\n }\n }, [x]);\n\n return ref;\n}\n"],"names":["keyName","_a","useColumnsWidth","getColumnWidth","getColumnMinWidth","setColWidth","_b","useState","isDragging","setIsDragging","colWidth","minWidth","onMouseDownResizeWidth","useCallback","e","startX","clientX","startWidth","document","body","style","cursor","userSelect","onMouseMove","moveEvent","newWidth","onMouseUp","removeEventListener","addEventListener","useScrollXPosition","x","setScrollX","ref","useRef","useEffect","handleHeaderScroll","current","scrollLeft"],"mappings":"2OAIM,SAAgCA,GAC9B,IAAAC,EAAqDC,EAAAA,kBAAnDC,EAAcF,EAAAE,eAAEC,EAAiBH,EAAAG,kBAAEC,EAAWJ,EAAAI,YAChDC,EAA8BC,EAAAA,UAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAE1BI,EAAWP,EAAeH,GAC1BW,EAAWP,EAAkBJ,GAmCnC,MAAO,CACLY,uBA/BAC,eACE,SAACC,GACC,IAAIN,EAAJ,CAEA,IAAMO,EAASD,EAAEE,QACXC,EAAaP,EAEnBQ,SAASC,KAAKC,MAAMC,OAVN,aAWdH,SAASC,KAAKC,MAAME,WAAa,OAEjC,IAAMC,EAAc,SAACC,GACnBf,GAAc,GACd,IAAMgB,EAAWR,GAAcO,EAAUR,QAAUD,GACnDV,EAAYL,EAASyB,EAAWd,EAAWc,EAAWd,EACxD,EAEMe,EAAY,WAChBjB,GAAc,GACdS,SAASS,oBAAoB,YAAaJ,GAC1CL,SAASS,oBAAoB,UAAWD,GACxCR,SAASC,KAAKC,MAAMC,OAAS,UAC7BH,SAASC,KAAKC,MAAME,WAAa,MACnC,EAEAJ,SAASU,iBAAiB,YAAaL,GACvCL,SAASU,iBAAiB,UAAWF,EAvBrB,CAwBlB,GACA,CAAClB,EAAYG,IAMnB,mCAGQ,IAAAV,EAAoB4B,EAAAA,qBAAlBC,EAAC7B,EAAA6B,EAAEC,EAAU9B,EAAA8B,WACfC,EAAMC,EAAAA,OAAuB,MA0BnC,OAxBAC,EAAAA,WAAU,WACR,IAAMC,EAAqB,WACrBH,EAAII,SACNL,EAAWC,EAAII,QAAQC,WAE3B,EAMA,OAJIL,EAAII,SACNJ,EAAII,QAAQR,iBAAiB,SAAUO,GAGlC,WACDH,EAAII,SACNJ,EAAII,QAAQT,oBAAoB,SAAUQ,EAE9C,CACF,GAAG,IAEHD,EAAAA,WAAU,WACJF,EAAII,UACNJ,EAAII,QAAQC,WAAaP,EAE7B,GAAG,CAACA,IAEGE,CACT"}
1
+ {"version":3,"file":"header-v2-hook.js","sources":["../../../../../src/table/header/header-v2-hook.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useColumnsWidth } from \"./columns-width\";\nimport { useScrollXPosition } from \"./x-scroll-position\";\n\nexport function useResizeColWidthHook(keyName: string) {\n const { getColumnWidth, getColumnMinWidth, setColWidth } = useColumnsWidth();\n const [isDragging, setIsDragging] = useState(false);\n\n const colWidth = getColumnWidth(keyName);\n const minWidth = getColumnMinWidth(keyName);\n\n const cursorStyle = \"col-resize\";\n\n const onMouseDownResizeWidth: React.MouseEventHandler<HTMLDivElement> =\n useCallback(\n (e) => {\n if (isDragging) return;\n\n const startX = e.clientX;\n const startWidth = colWidth;\n\n document.body.style.cursor = cursorStyle;\n document.body.style.userSelect = \"none\";\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n setIsDragging(true);\n const newWidth = startWidth + (moveEvent.clientX - startX);\n setColWidth(keyName, newWidth > minWidth ? newWidth : minWidth);\n };\n\n const onMouseUp = () => {\n setIsDragging(false);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n document.body.style.cursor = \"default\";\n document.body.style.userSelect = \"auto\";\n };\n\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n },\n [isDragging, minWidth, colWidth, keyName, setColWidth]\n );\n\n return {\n onMouseDownResizeWidth,\n };\n}\n\nexport function useScrollXRef() {\n const { x, setScrollX } = useScrollXPosition();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleHeaderScroll = () => {\n if (ref.current) {\n setScrollX(ref.current.scrollLeft);\n }\n };\n\n if (ref.current) {\n ref.current.addEventListener(\"scroll\", handleHeaderScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleHeaderScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n ref.current.scrollLeft = x;\n }\n }, [x]);\n\n return ref;\n}\n"],"names":["keyName","_a","useColumnsWidth","getColumnWidth","getColumnMinWidth","setColWidth","_b","useState","isDragging","setIsDragging","colWidth","minWidth","onMouseDownResizeWidth","useCallback","e","startX","clientX","startWidth","document","body","style","cursor","userSelect","onMouseMove","moveEvent","newWidth","onMouseUp","removeEventListener","addEventListener","useScrollXPosition","x","setScrollX","ref","useRef","useEffect","handleHeaderScroll","current","scrollLeft"],"mappings":"2OAIM,SAAgCA,GAC9B,IAAAC,EAAqDC,EAAAA,kBAAnDC,EAAcF,EAAAE,eAAEC,EAAiBH,EAAAG,kBAAEC,EAAWJ,EAAAI,YAChDC,EAA8BC,EAAAA,UAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAE1BI,EAAWP,EAAeH,GAC1BW,EAAWP,EAAkBJ,GAmCnC,MAAO,CACLY,uBA/BAC,eACE,SAACC,GACC,IAAIN,EAAJ,CAEA,IAAMO,EAASD,EAAEE,QACXC,EAAaP,EAEnBQ,SAASC,KAAKC,MAAMC,OAVN,aAWdH,SAASC,KAAKC,MAAME,WAAa,OAEjC,IAAMC,EAAc,SAACC,GACnBf,GAAc,GACd,IAAMgB,EAAWR,GAAcO,EAAUR,QAAUD,GACnDV,EAAYL,EAASyB,EAAWd,EAAWc,EAAWd,EACxD,EAEMe,EAAY,WAChBjB,GAAc,GACdS,SAASS,oBAAoB,YAAaJ,GAC1CL,SAASS,oBAAoB,UAAWD,GACxCR,SAASC,KAAKC,MAAMC,OAAS,UAC7BH,SAASC,KAAKC,MAAME,WAAa,MACnC,EAEAJ,SAASU,iBAAiB,YAAaL,GACvCL,SAASU,iBAAiB,UAAWF,EAvBrB,CAwBlB,GACA,CAAClB,EAAYG,EAAUD,EAAUV,EAASK,IAMhD,mCAGQ,IAAAJ,EAAoB4B,EAAAA,qBAAlBC,EAAC7B,EAAA6B,EAAEC,EAAU9B,EAAA8B,WACfC,EAAMC,EAAAA,OAAuB,MA0BnC,OAxBAC,EAAAA,WAAU,WACR,IAAMC,EAAqB,WACrBH,EAAII,SACNL,EAAWC,EAAII,QAAQC,WAE3B,EAMA,OAJIL,EAAII,SACNJ,EAAII,QAAQR,iBAAiB,SAAUO,GAGlC,WACDH,EAAII,SACNJ,EAAII,QAAQT,oBAAoB,SAAUQ,EAE9C,CACF,GAAG,IAEHD,EAAAA,WAAU,WACJF,EAAII,UACNJ,EAAII,QAAQC,WAAaP,EAE7B,GAAG,CAACA,IAEGE,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var l=require("./header-v2-hook.js"),i=require("../checkbox/components.js"),s=require("../../search-bar/condition-search-bar/base.js"),n=require("../id/provider.js"),a=require("../filter-v2/context.js");var o=t.memo((function(r){var i=t.useRef(null),s=l.useResizeColWidthHook(r.keyName).onMouseDownResizeWidth,n=i.current?r.colWidth-i.current.clientWidth:r.colWidth;return e.jsxs("div",{className:"relative",style:{width:r.colWidth,maxWidth:r.colWidth,minWidth:r.colWidth},children:[e.jsxs("div",{className:"flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]",children:[e.jsx("div",{className:"px-2",style:{maxWidth:n},children:r.label&&e.jsx("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),e.jsx("div",{ref:i,className:"flex items-center w-fit shrink-0 gap-1 px-1",children:!r.disableSort&&r.generateSortButton&&r.generateSortButton(r.keyName)})]}),e.jsx("div",{className:"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize",onMouseDown:s,children:e.jsx("div",{className:"w-[1px] h-full bg-white"})})]})}));exports.TableHeader=function(c){var d=n.useTableIdGenerator(),u=r.useColumnsWidthState().getColumnWidth,h=a.useFilter(),m=h.conditions,x=h.addFilter,b=h.removeFilter,p=l.useScrollXRef();t.useEffect((function(){if(p.current){var e=p.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[p]);var f=t.useCallback((function(e){switch(e.type){case"add":x(e.payload.condition);break;case"remove":b(e.payload.index)}}),[]),y=t.useMemo((function(){return c.cols.filter((function(e){return!e.disableFilter})).filter((function(e){return!!e.label&&("datetime"===e.type||"date"===e.type||e.editable)})).map((function(e){switch(e.type){case"string":case"number":case"date":case"datetime":return{key:e.key.toString(),label:e.label,type:e.type};case"select":return{key:e.key.toString(),label:e.label,type:e.type,options:e.options}}}))}),[c.cols]);return e.jsxs("div",{className:"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md",style:{maxWidth:c.maxWidth},children:[e.jsx("div",{className:"py-2 px-2",children:e.jsx(s.ConditionSearchBar,{id:d.getTableHeaderId(),targets:y,conditions:m,onChangeCondition:f,size:"small"})}),e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:p,className:"relative max-w-full overflow-x-auto teppen-no-scrollbar",children:e.jsxs("div",{className:"flex h-[32px]",children:[c.checkbox&&e.jsx("div",{className:"w-8 h-full",children:e.jsx(i.AllCheckbox,{rows:c.rows})}),c.cols.map((function(t){return e.jsx(o,{keyName:t.key.toString(),label:t.label,colWidth:u(t.key),disableSort:t.disableSort||"datetime"!==t.type&&"date"!==t.type&&!t.editable,generateSortButton:c.generateSortButton},t.key.toString())}))]})})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var l=require("./header-v2-hook.js"),n=require("../checkbox/components.js"),s=require("../../search-bar/condition-search-bar/base.js"),i=require("../id/provider.js"),a=require("../filter-v2/context.js");function o(e){return!("date"!==e.type&&"datetime"!==e.type&&!e.editable)||!e.render}var c=t.memo((function(r){var n=t.useRef(null),s=l.useResizeColWidthHook(r.keyName).onMouseDownResizeWidth,i=n.current?r.colWidth-n.current.clientWidth:r.colWidth;return e.jsxs("div",{className:"relative",style:{width:r.colWidth,maxWidth:r.colWidth,minWidth:r.colWidth},children:[e.jsxs("div",{className:"flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]",children:[e.jsx("div",{className:"px-2",style:{maxWidth:i},children:r.label&&e.jsx("p",{className:"text-left font-bold text-nowrap overflow-hidden text-ellipsis",children:r.label})}),e.jsx("div",{ref:n,className:"flex items-center w-fit shrink-0 gap-1 px-1",children:!r.disableSort&&r.generateSortButton&&r.generateSortButton(r.keyName)})]}),e.jsx("div",{className:"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize",onMouseDown:s,children:e.jsx("div",{className:"w-[1px] h-full bg-white"})})]})}));exports.TableHeader=function(d){var u=i.useTableIdGenerator(),h=r.useColumnsWidthState().getColumnWidth,x=a.useFilter(),m=x.conditions,b=x.addFilter,p=x.removeFilter,f=l.useScrollXRef();t.useEffect((function(){if(f.current){var e=f.current,t=function(t){0!==t.deltaY&&(t.preventDefault(),e.scrollLeft+=t.deltaY)};return e.addEventListener("wheel",t),function(){e.removeEventListener("wheel",t)}}}),[f]);var y=t.useCallback((function(e){switch(e.type){case"add":b(e.payload.condition);break;case"remove":p(e.payload.index)}}),[]),v=t.useMemo((function(){return d.cols.filter((function(e){return!e.disableFilter})).filter((function(e){return!!e.label&&o(e)})).map((function(e){switch(e.type){case"string":case"number":case"date":case"datetime":return{key:e.key.toString(),label:e.label,type:e.type};case"select":return{key:e.key.toString(),label:e.label,type:e.type,options:e.options}}}))}),[d.cols]);return e.jsxs("div",{className:"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md",style:{maxWidth:d.maxWidth},children:[e.jsx("div",{className:"py-2 px-2",children:e.jsx(s.ConditionSearchBar,{id:u.getTableHeaderId(),targets:v,conditions:m,onChangeCondition:y,size:"small"})}),e.jsx("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e.jsx("div",{ref:f,className:"relative max-w-full overflow-x-auto teppen-no-scrollbar",children:e.jsxs("div",{className:"flex h-[32px]",children:[d.checkbox&&e.jsx("div",{className:"w-8 h-full",children:e.jsx(n.AllCheckbox,{rows:d.rows})}),d.cols.map((function(t){return e.jsx(c,{keyName:t.key.toString(),label:t.label,colWidth:h(t.key),disableSort:t.disableSort||!o(t),generateSortButton:d.generateSortButton},t.key.toString())}))]})})]})},exports.hasComparableValue=o;
2
2
  //# sourceMappingURL=header-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-v2.js","sources":["../../../../../src/table/header/header-v2.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { useColumnsWidthState } from \"./columns-width\";\nimport { useResizeColWidthHook, useScrollXRef } from \"./header-v2-hook\";\nimport { AllCheckbox } from \"../checkbox/components\";\nimport { ConditionSearchBar } from \"../../search-bar\";\nimport { useTableIdGenerator } from \"../id\";\nimport { useFilter } from \"../filter-v2\";\nimport { TConditionChangeAction } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\ninterface IPropsTableHeader<T extends DataRecord> {\n cols: TTableColumn<T>[];\n checkbox?: boolean;\n rows: DataObject<T>[];\n maxWidth?: string;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nexport function TableHeader<T extends DataRecord>(props: IPropsTableHeader<T>) {\n const idGenerator = useTableIdGenerator();\n const { getColumnWidth } = useColumnsWidthState();\n const { conditions, addFilter, removeFilter } = useFilter();\n const ref = useScrollXRef();\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n const onChangeCondition = useCallback((action: TConditionChangeAction) => {\n switch (action.type) {\n case \"add\":\n addFilter(action.payload.condition);\n break;\n case \"remove\":\n removeFilter(action.payload.index);\n break;\n }\n }, []);\n\n const targets = useMemo(() => {\n return props.cols\n .filter((col) => !col.disableFilter)\n .filter(\n (col) =>\n !!col.label &&\n (col.type === \"datetime\" || col.type === \"date\" || col.editable)\n )\n .map((col) => {\n switch (col.type) {\n case \"string\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"number\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"select\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n options: col.options,\n };\n case \"date\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"datetime\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n }\n });\n }, [props.cols]);\n\n return (\n <div\n className=\"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md\"\n style={{ maxWidth: props.maxWidth }}\n >\n <div className=\"py-2 px-2\">\n <ConditionSearchBar\n id={idGenerator.getTableHeaderId()}\n targets={targets}\n conditions={conditions}\n onChangeCondition={onChangeCondition}\n size=\"small\"\n />\n </div>\n\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <div\n ref={ref}\n className=\"relative max-w-full overflow-x-auto teppen-no-scrollbar\"\n >\n <div className=\"flex h-[32px]\">\n {props.checkbox && (\n <div className=\"w-8 h-full\">\n <AllCheckbox rows={props.rows} />\n </div>\n )}\n {props.cols.map((col) => {\n return (\n <HeaderElement\n key={col.key.toString()}\n keyName={col.key.toString()}\n label={col.label}\n colWidth={getColumnWidth(col.key as string)}\n disableSort={\n col.disableSort ||\n (col.type !== \"datetime\" &&\n col.type !== \"date\" &&\n !col.editable)\n }\n generateSortButton={props.generateSortButton}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\ninterface IPropsHeaderElement {\n keyName: string;\n label?: string;\n colWidth: number;\n disableSort?: boolean;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nconst HeaderElement = memo(function HE(props: IPropsHeaderElement) {\n const ref = useRef<HTMLDivElement>(null);\n const { onMouseDownResizeWidth } = useResizeColWidthHook(props.keyName);\n\n const maxWidthLabel = ref.current\n ? props.colWidth - ref.current.clientWidth\n : props.colWidth;\n\n return (\n <div\n className=\"relative\"\n style={{\n width: props.colWidth,\n maxWidth: props.colWidth,\n minWidth: props.colWidth,\n }}\n >\n <div\n className={`flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]`}\n >\n <div className=\"px-2\" style={{ maxWidth: maxWidthLabel }}>\n {props.label && (\n <p\n className={`text-left font-bold text-nowrap overflow-hidden text-ellipsis`}\n >\n {props.label}\n </p>\n )}\n </div>\n\n <div ref={ref} className=\"flex items-center w-fit shrink-0 gap-1 px-1\">\n {!props.disableSort &&\n props.generateSortButton &&\n props.generateSortButton(props.keyName)}\n </div>\n </div>\n <div\n className=\"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize\"\n onMouseDown={onMouseDownResizeWidth}\n >\n <div className={`w-[1px] h-full bg-white`} />\n </div>\n </div>\n );\n});\n"],"names":["HeaderElement","memo","props","ref","useRef","onMouseDownResizeWidth","useResizeColWidthHook","keyName","maxWidthLabel","current","colWidth","clientWidth","_jsxs","className","style","width","maxWidth","minWidth","children","_jsx","label","disableSort","generateSortButton","onMouseDown","idGenerator","useTableIdGenerator","getColumnWidth","useColumnsWidthState","_a","useFilter","conditions","addFilter","removeFilter","useScrollXRef","useEffect","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","onChangeCondition","useCallback","action","type","payload","condition","index","targets","useMemo","cols","filter","col","disableFilter","editable","map","key","toString","options","ConditionSearchBar","id","getTableHeaderId","size","checkbox","AllCheckbox","rows"],"mappings":"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"}
1
+ {"version":3,"file":"header-v2.js","sources":["../../../../../src/table/header/header-v2.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { useColumnsWidthState } from \"./columns-width\";\nimport { useResizeColWidthHook, useScrollXRef } from \"./header-v2-hook\";\nimport { AllCheckbox } from \"../checkbox/components\";\nimport { ConditionSearchBar } from \"../../search-bar\";\nimport { useTableIdGenerator } from \"../id\";\nimport { useFilter } from \"../filter-v2\";\nimport { TConditionChangeAction } from \"../../search-bar/condition-search-bar/condition-input-management/type\";\n\n/**\n * Whether the column shows its value as is, so it can be sorted and\n * filtered. Read-only columns that render their own component are excluded,\n * because what the user sees may not match the underlying value.\n */\nexport function hasComparableValue<T extends DataRecord>(\n col: TTableColumn<T>\n): boolean {\n if (col.type === \"date\" || col.type === \"datetime\" || col.editable) {\n return true;\n }\n\n return !col.render;\n}\n\ninterface IPropsTableHeader<T extends DataRecord> {\n cols: TTableColumn<T>[];\n checkbox?: boolean;\n rows: DataObject<T>[];\n maxWidth?: string;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nexport function TableHeader<T extends DataRecord>(props: IPropsTableHeader<T>) {\n const idGenerator = useTableIdGenerator();\n const { getColumnWidth } = useColumnsWidthState();\n const { conditions, addFilter, removeFilter } = useFilter();\n const ref = useScrollXRef();\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n const onChangeCondition = useCallback((action: TConditionChangeAction) => {\n switch (action.type) {\n case \"add\":\n addFilter(action.payload.condition);\n break;\n case \"remove\":\n removeFilter(action.payload.index);\n break;\n }\n }, []);\n\n const targets = useMemo(() => {\n return props.cols\n .filter((col) => !col.disableFilter)\n .filter((col) => !!col.label && hasComparableValue(col))\n .map((col) => {\n switch (col.type) {\n case \"string\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"number\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"select\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n options: col.options,\n };\n case \"date\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n case \"datetime\":\n return {\n key: col.key.toString(),\n label: col.label as string,\n type: col.type,\n };\n }\n });\n }, [props.cols]);\n\n return (\n <div\n className=\"border-gray-200 bg-gray-200 text-gray-600 rounded-t-md\"\n style={{ maxWidth: props.maxWidth }}\n >\n <div className=\"py-2 px-2\">\n <ConditionSearchBar\n id={idGenerator.getTableHeaderId()}\n targets={targets}\n conditions={conditions}\n onChangeCondition={onChangeCondition}\n size=\"small\"\n />\n </div>\n\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <div\n ref={ref}\n className=\"relative max-w-full overflow-x-auto teppen-no-scrollbar\"\n >\n <div className=\"flex h-[32px]\">\n {props.checkbox && (\n <div className=\"w-8 h-full\">\n <AllCheckbox rows={props.rows} />\n </div>\n )}\n {props.cols.map((col) => {\n return (\n <HeaderElement\n key={col.key.toString()}\n keyName={col.key.toString()}\n label={col.label}\n colWidth={getColumnWidth(col.key as string)}\n disableSort={col.disableSort || !hasComparableValue(col)}\n generateSortButton={props.generateSortButton}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\ninterface IPropsHeaderElement {\n keyName: string;\n label?: string;\n colWidth: number;\n disableSort?: boolean;\n generateSortButton?: (columnKey: string) => React.ReactNode;\n}\n\nconst HeaderElement = memo(function HE(props: IPropsHeaderElement) {\n const ref = useRef<HTMLDivElement>(null);\n const { onMouseDownResizeWidth } = useResizeColWidthHook(props.keyName);\n\n const maxWidthLabel = ref.current\n ? props.colWidth - ref.current.clientWidth\n : props.colWidth;\n\n return (\n <div\n className=\"relative\"\n style={{\n width: props.colWidth,\n maxWidth: props.colWidth,\n minWidth: props.colWidth,\n }}\n >\n <div\n className={`flex justify-between items-center bg-gray-200 text-gray-600 h-[32px]`}\n >\n <div className=\"px-2\" style={{ maxWidth: maxWidthLabel }}>\n {props.label && (\n <p\n className={`text-left font-bold text-nowrap overflow-hidden text-ellipsis`}\n >\n {props.label}\n </p>\n )}\n </div>\n\n <div ref={ref} className=\"flex items-center w-fit shrink-0 gap-1 px-1\">\n {!props.disableSort &&\n props.generateSortButton &&\n props.generateSortButton(props.keyName)}\n </div>\n </div>\n <div\n className=\"absolute top-0 right-0 grid place-items-end py-1 w-[4px] h-full cursor-col-resize\"\n onMouseDown={onMouseDownResizeWidth}\n >\n <div className={`w-[1px] h-full bg-white`} />\n </div>\n </div>\n );\n});\n"],"names":["hasComparableValue","col","type","editable","render","HeaderElement","memo","props","ref","useRef","onMouseDownResizeWidth","useResizeColWidthHook","keyName","maxWidthLabel","current","colWidth","clientWidth","_jsxs","className","style","width","maxWidth","minWidth","children","_jsx","label","disableSort","generateSortButton","onMouseDown","idGenerator","useTableIdGenerator","getColumnWidth","useColumnsWidthState","_a","useFilter","conditions","addFilter","removeFilter","useScrollXRef","useEffect","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","onChangeCondition","useCallback","action","payload","condition","index","targets","useMemo","cols","filter","disableFilter","map","key","toString","options","ConditionSearchBar","id","getTableHeaderId","size","checkbox","AllCheckbox","rows"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var s=t.memo((function(t){var s=(0,r.useColumnsWidthState().getColumnWidth)(t.keyname);return e.jsx("th",{className:"p-px",style:{width:s,maxWidth:s,minWidth:s}})}));exports.TableHeaderElement=s;
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("./columns-width/context.js");require("../../../node_modules/tslib/tslib.es6.js");var s=t.memo((function(t){var s=(0,r.useColumnsWidthState().getColumnWidth)(t.keyname);return e.jsx("th",{className:"p-px",style:{width:s,maxWidth:s,minWidth:s}})}));exports.TableHeaderElement=s;
3
2
  //# sourceMappingURL=header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"header.js","sources":["../../../../../src/table/header/header.tsx"],"sourcesContent":["\"use client\";\n\nimport { memo } from \"react\";\nimport { useColumnsWidthState } from \"./columns-width\";\n\ntype TPropsTableHeader = {\n keyname: string;\n};\n\nexport const TableHeaderElement = memo(function THE(props: TPropsTableHeader) {\n const { getColumnWidth } = useColumnsWidthState();\n const colWidth = getColumnWidth(props.keyname);\n\n return (\n <th\n className=\"p-px\"\n style={{ width: colWidth, maxWidth: colWidth, minWidth: colWidth }}\n ></th>\n );\n});\n"],"names":["TableHeaderElement","memo","props","colWidth","getColumnWidth","useColumnsWidthState","keyname","_jsx","className","style","width","maxWidth","minWidth"],"mappings":"gLASaA,EAAqBC,EAAAA,MAAK,SAAaC,GAC1C,IACFC,GAAWC,EADUC,EAAAA,uCACKH,EAAMI,SAEtC,OACEC,EAAAA,UACEC,UAAU,OACVC,MAAO,CAAEC,MAAOP,EAAUQ,SAAUR,EAAUS,SAAUT,IAG9D"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./id-generator.js"),n=r.createContext(null);exports.TableIdGeneratorProvider=function(r){return e.jsx(n.Provider,{value:new t.IdGenerator(r.id),children:r.children})},exports.useTableIdGenerator=function(){var e=r.useContext(n);if(!e)throw new Error("useTableIdGenerator must be used within TableIdGeneratorProvider");return e};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./id-generator.js"),n=r.createContext(null);exports.TableIdGeneratorProvider=function(u){var o,i=r.useId(),a=null!==(o=u.id)&&void 0!==o?o:i,d=r.useMemo((function(){return new t.IdGenerator(a)}),[a]);return e.jsx(n.Provider,{value:d,children:u.children})},exports.useTableIdGenerator=function(){var e=r.useContext(n);if(!e)throw new Error("useTableIdGenerator must be used within TableIdGeneratorProvider");return e};
2
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/id/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { ITableIdGenerator } from \"./interface\";\nimport { IdGenerator } from \"./id-generator\";\n\nconst TableIdContext = createContext<ITableIdGenerator | null>(null);\n\nexport function TableIdGeneratorProvider(props: {\n id?: string;\n children: React.ReactNode;\n}) {\n return (\n <TableIdContext.Provider value={new IdGenerator(props.id)}>\n {props.children}\n </TableIdContext.Provider>\n );\n}\n\nexport function useTableIdGenerator() {\n const context = useContext(TableIdContext);\n\n if (!context) {\n throw new Error(\n \"useTableIdGenerator must be used within TableIdGeneratorProvider\"\n );\n }\n\n return context;\n}\n"],"names":["TableIdContext","createContext","props","_jsx","Provider","value","IdGenerator","id","children","context","useContext","Error"],"mappings":"kGAIMA,EAAiBC,EAAAA,cAAwC,uCAEzD,SAAmCC,GAIvC,OACEC,EAAAA,IAACH,EAAeI,SAAQ,CAACC,MAAO,IAAIC,EAAAA,YAAYJ,EAAMK,IAAGC,SACtDN,EAAMM,UAGb,yCAGE,IAAMC,EAAUC,EAAAA,WAAWV,GAE3B,IAAKS,EACH,MAAM,IAAIE,MACR,oEAIJ,OAAOF,CACT"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/id/provider.tsx"],"sourcesContent":["import { createContext, useContext, useId, useMemo } from \"react\";\nimport { ITableIdGenerator } from \"./interface\";\nimport { IdGenerator } from \"./id-generator\";\n\nconst TableIdContext = createContext<ITableIdGenerator | null>(null);\n\nexport function TableIdGeneratorProvider(props: {\n id?: string;\n children: React.ReactNode;\n}) {\n // Without an id, each table still needs unique element ids so that several\n // tables on one page do not find each other's cells.\n const autoId = useId();\n const id = props.id ?? autoId;\n const generator = useMemo(() => new IdGenerator(id), [id]);\n\n return (\n <TableIdContext.Provider value={generator}>\n {props.children}\n </TableIdContext.Provider>\n );\n}\n\nexport function useTableIdGenerator() {\n const context = useContext(TableIdContext);\n\n if (!context) {\n throw new Error(\n \"useTableIdGenerator must be used within TableIdGeneratorProvider\"\n );\n }\n\n return context;\n}\n"],"names":["TableIdContext","createContext","props","autoId","useId","id","_a","generator","useMemo","IdGenerator","_jsx","Provider","value","children","context","useContext","Error"],"mappings":"kGAIMA,EAAiBC,EAAAA,cAAwC,uCAEzD,SAAmCC,SAMjCC,EAASC,EAAAA,QACTC,EAAa,QAARC,EAAAJ,EAAMG,UAAE,IAAAC,EAAAA,EAAIH,EACjBI,EAAYC,EAAAA,SAAQ,WAAM,OAAA,IAAIC,EAAAA,YAAYJ,EAAhB,GAAqB,CAACA,IAEtD,OACEK,EAAAA,IAACV,EAAeW,SAAQ,CAACC,MAAOL,WAC7BL,EAAMW,UAGb,yCAGE,IAAMC,EAAUC,EAAAA,WAAWf,GAE3B,IAAKc,EACH,MAAM,IAAIE,MACR,oEAIJ,OAAOF,CACT"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../edit/provider.js"),r=require("../../sheet/providers.js"),i=require("../../range/provider.js"),o=require("../../copy/provider.js"),d=require("../../id/provider.js"),s=function(e,t){var n,r=document.getElementById(t);if(r){var i=null===(n=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===n?void 0:n.set;i&&i.call(r,e);var o=new Event("input",{bubbles:!0});r.dispatchEvent(o)}};exports.KeyboardSetting=function(a){var u=d.useTableIdGenerator(),c=n.useEditContext(),p=i.useRangeContext(),y=o.useCopyActionContext().copy,l=r.useColumnsContext()[p.isSelecting?p.start.colIndex:0];return t.useEffect((function(){var e=function(e){c.isEditing?"Escape"===e.key&&(e.preventDefault(),c.endEditing()):p.isSelecting&&("Enter"===e.key?(e.preventDefault(),p.moveDown()):"Escape"===e.key?(e.preventDefault(),p.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendRightEnd():e.ctrlKey?p.moveRightEnd():e.shiftKey?p.extendRight():p.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendLeftEnd():e.ctrlKey?p.moveLeftEnd():e.shiftKey?p.extendLeft():p.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendTop():e.ctrlKey?p.moveTop():e.shiftKey?p.extendUp():p.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendBottom():e.ctrlKey?p.moveBottom():e.shiftKey?p.extendDown():p.moveDown()):"F2"===e.key?(e.preventDefault(),c.startEditing()):e.ctrlKey&&"c"===e.key.toLowerCase()?(e.preventDefault(),y({enableDeprecatedCopy:null==a?void 0:a.enableDeprecatedCopy})):e.altKey||e.ctrlKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){s("",u.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){s(e.key,u.getEditorId())}),10)))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[p,c.isEditing]),t.useEffect((function(){c.isEditing&&!l.editable&&c.endEditing()}),[c,l]),e.jsx(e.Fragment,{})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../../edit/provider.js"),n=require("../../sheet/providers.js"),i=require("../../range/provider.js"),o=require("../../copy/provider.js"),s=require("../../id/provider.js"),a=require("../event-target.js"),d=function(e,t){var r,n=document.getElementById(t);if(n){var i=null===(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))||void 0===r?void 0:r.set;i&&i.call(n,e);var o=new Event("input",{bubbles:!0});n.dispatchEvent(o)}};exports.KeyboardSetting=function(u){var y=s.useTableIdGenerator(),c=r.useEditContext(),p=i.useRangeContext(),l=o.useCopyActionContext().copy,v=n.useColumnsContext()[p.isSelecting?p.start.colIndex:0];return t.useEffect((function(){var e=function(e){a.isComposingKey(e)||(c.isEditing?"Escape"===e.key&&(e.preventDefault(),c.endEditing()):p.isSelecting&&!a.isTextEntryTarget(e.target)&&("Enter"===e.key?(e.preventDefault(),p.moveDown()):"Escape"===e.key?(e.preventDefault(),p.reset()):"ArrowRight"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendRightEnd():e.ctrlKey?p.moveRightEnd():e.shiftKey?p.extendRight():p.moveRight()):"ArrowLeft"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendLeftEnd():e.ctrlKey?p.moveLeftEnd():e.shiftKey?p.extendLeft():p.moveLeft()):"ArrowUp"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendTop():e.ctrlKey?p.moveTop():e.shiftKey?p.extendUp():p.moveUp()):"ArrowDown"===e.key?(e.preventDefault(),e.ctrlKey&&e.shiftKey?p.extendBottom():e.ctrlKey?p.moveBottom():e.shiftKey?p.extendDown():p.moveDown()):"F2"===e.key?(e.preventDefault(),c.startEditing()):(e.ctrlKey||e.metaKey)&&"c"===e.key.toLowerCase()?(e.preventDefault(),l({enableDeprecatedCopy:null==u?void 0:u.enableDeprecatedCopy})):e.altKey||e.ctrlKey||e.metaKey||!/^[a-zA-Z0-9]$/.test(e.key)?"Backspace"!==e.key&&"Delete"!==e.key||(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){d("",y.getEditorId())}),10)):(e.preventDefault(),e.stopPropagation(),c.startEditing(),setTimeout((function(){d(e.key,y.getEditorId())}),10))))};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}),[p,c.isEditing]),t.useEffect((function(){c.isEditing&&!v.editable&&c.endEditing()}),[c,v]),e.jsx(e.Fragment,{})};
3
2
  //# sourceMappingURL=keyboard-setting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-setting.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"keyboard-setting.js","sources":["../../../../../../src/table/operation/components/keyboard-setting.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useEditContext } from \"../../edit/provider\";\nimport { useColumnsContext } from \"../../sheet/providers\";\nimport { useRangeContext } from \"../../range/provider\";\nimport { useCopyActionContext } from \"../../copy/provider\";\nimport { useTableIdGenerator } from \"../../id\";\nimport { isComposingKey, isTextEntryTarget } from \"../event-target\";\n\nconst setInitialValueToInputForm = (key: string, id: string) => {\n const inputElement = document.getElementById(id);\n if (inputElement) {\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set;\n\n if (nativeInputValueSetter) {\n nativeInputValueSetter.call(inputElement, key);\n }\n\n const ev = new Event(\"input\", { bubbles: true });\n inputElement.dispatchEvent(ev);\n }\n};\n\nexport function KeyboardSetting(options?: { enableDeprecatedCopy?: boolean }) {\n const IdGenerator = useTableIdGenerator();\n const edit = useEditContext();\n const range = useRangeContext();\n const { copy } = useCopyActionContext();\n const col = useColumnsContext()[range.isSelecting ? range.start.colIndex : 0];\n\n useEffect(() => {\n const listener = (e: KeyboardEvent) => {\n if (isComposingKey(e)) {\n return;\n }\n\n if (edit.isEditing) {\n if (e.key === \"Escape\") {\n e.preventDefault();\n edit.endEditing();\n }\n } else if (range.isSelecting && !isTextEntryTarget(e.target)) {\n if (e.key === \"Enter\") {\n e.preventDefault();\n range.moveDown();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n range.reset();\n } else if (e.key === \"ArrowRight\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendRightEnd();\n } else if (e.ctrlKey) {\n range.moveRightEnd();\n } else if (e.shiftKey) {\n range.extendRight();\n } else {\n range.moveRight();\n }\n } else if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendLeftEnd();\n } else if (e.ctrlKey) {\n range.moveLeftEnd();\n } else if (e.shiftKey) {\n range.extendLeft();\n } else {\n range.moveLeft();\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendTop();\n } else if (e.ctrlKey) {\n range.moveTop();\n } else if (e.shiftKey) {\n range.extendUp();\n } else {\n range.moveUp();\n }\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n\n if (e.ctrlKey && e.shiftKey) {\n range.extendBottom();\n } else if (e.ctrlKey) {\n range.moveBottom();\n } else if (e.shiftKey) {\n range.extendDown();\n } else {\n range.moveDown();\n }\n } else if (e.key === \"F2\") {\n e.preventDefault();\n edit.startEditing();\n } else if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === \"c\") {\n e.preventDefault();\n copy({ enableDeprecatedCopy: options?.enableDeprecatedCopy });\n } else if (\n !e.altKey &&\n !e.ctrlKey &&\n !e.metaKey &&\n /^[a-zA-Z0-9]$/.test(e.key)\n ) {\n e.preventDefault();\n e.stopPropagation();\n edit.startEditing();\n\n setTimeout(() => {\n setInitialValueToInputForm(e.key, IdGenerator.getEditorId());\n }, 10);\n } else if (e.key === \"Backspace\" || e.key === \"Delete\") {\n e.preventDefault();\n e.stopPropagation();\n edit.startEditing();\n\n setTimeout(() => {\n setInitialValueToInputForm(\"\", IdGenerator.getEditorId());\n }, 10);\n }\n }\n };\n\n document.addEventListener(\"keydown\", listener);\n\n return () => {\n document.removeEventListener(\"keydown\", listener);\n };\n }, [range, edit.isEditing]);\n\n useEffect(() => {\n if (edit.isEditing && !col.editable) {\n edit.endEditing();\n }\n }, [edit, col]);\n\n return <></>;\n}\n"],"names":["setInitialValueToInputForm","key","id","inputElement","document","getElementById","nativeInputValueSetter","_a","Object","getOwnPropertyDescriptor","window","HTMLInputElement","prototype","set","call","ev","Event","bubbles","dispatchEvent","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"}
@@ -0,0 +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))};
2
+ //# sourceMappingURL=event-target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-target.js","sources":["../../../../../src/table/operation/event-target.ts"],"sourcesContent":["/**\n * Returns true when the event comes from an element where the user types\n * text (input, textarea, select or contenteditable). The table must not take\n * over keys or pastes aimed at such elements.\n */\nexport function isTextEntryTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n if (target.isContentEditable) {\n return true;\n }\n\n return (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement\n );\n}\n\n/** True while an IME (e.g. Japanese input) is composing text. */\nexport function isComposingKey(e: KeyboardEvent): boolean {\n return e.isComposing || e.keyCode === 229;\n}\n"],"names":["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,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("./providers.js");exports.DisplayRange=function(){var r=t.usePageContext(),n=r.enable,s=r.from,u=r.to,o=r.rowCount;return n?e.jsxs("p",{className:"text-center text-sm text-gray-600",children:[s+1," - ",u<o?u:o," of ",o]}):e.jsx(e.Fragment,{})},exports.Pagenation=function(){var r=t.usePageContext(),n=r.enable,s=r.current,u=r.pageCount,o=r.jump,a=r.prev,c=r.next;return n?e.jsxs("div",{className:"flex justify-center gap-2",children:[e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return o(1)},disabled:1===s,children:"≪"}),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return a()},disabled:1===s,children:"<"}),Array.from({length:u},(function(e,t){return t+1})).filter((function(e){return s-2<=e&&e<=s+2})).map((function(t){return e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default ".concat(s===t?"text-blue-600":""),onClick:function(){return o(t)},children:t},t)})),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return c()},disabled:s===u,children:">"}),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return o(u)},disabled:s===u,children:"≫"})]}):e.jsx(e.Fragment,{})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("./providers.js");exports.DisplayRange=function(){var r=t.usePageContext(),n=r.enable,s=r.from,u=r.to,o=r.rowCount;return n?e.jsxs("p",{className:"text-center text-sm text-gray-600",children:[0===o?0:s+1," - ",u<o?u:o," of"," ",o]}):e.jsx(e.Fragment,{})},exports.Pagenation=function(){var r=t.usePageContext(),n=r.enable,s=r.current,u=r.pageCount,o=r.jump,a=r.prev,c=r.next;return n?e.jsxs("div",{className:"flex justify-center gap-2",children:[e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return o(1)},disabled:1===s,children:"≪"}),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return a()},disabled:1===s,children:"<"}),Array.from({length:u},(function(e,t){return t+1})).filter((function(e){return s-2<=e&&e<=s+2})).map((function(t){return e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default ".concat(s===t?"text-blue-600":""),onClick:function(){return o(t)},children:t},t)})),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return c()},disabled:s>=u,children:">"}),e.jsx("button",{className:"text-sm cursor-pointer disabled:cursor-default",onClick:function(){return o(u)},disabled:s>=u,children:"≫"})]}):e.jsx(e.Fragment,{})};
3
2
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/pagenation/components.tsx"],"sourcesContent":["\"use client\";\n\nimport { usePageContext } from \"./providers\";\n\nexport function Pagenation() {\n const { enable, current, pageCount, jump, prev, next } = usePageContext();\n\n if (!enable) {\n return <></>;\n }\n\n return (\n <div className=\"flex justify-center gap-2\">\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => jump(1)}\n disabled={current === 1}\n >\n &#x226A;\n </button>\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => prev()}\n disabled={current === 1}\n >\n &lt;\n </button>\n {Array.from({ length: pageCount }, (_, i) => i + 1)\n .filter((i) => current - 2 <= i && i <= current + 2)\n .map((i) => (\n <button\n key={i}\n className={`text-sm cursor-pointer disabled:cursor-default ${current === i ? \"text-blue-600\" : \"\"}`}\n onClick={() => jump(i)}\n >\n {i}\n </button>\n ))}\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => next()}\n disabled={current >= pageCount}\n >\n &gt;\n </button>\n <button\n className=\"text-sm cursor-pointer disabled:cursor-default\"\n onClick={() => jump(pageCount)}\n disabled={current >= pageCount}\n >\n &#x226B;\n </button>\n </div>\n );\n}\n\nexport function DisplayRange() {\n const { enable, from, to, rowCount } = usePageContext();\n\n if (!enable) {\n return <></>;\n }\n\n return (\n <p className=\"text-center text-sm text-gray-600\">\n {rowCount === 0 ? 0 : from + 1} - {to < rowCount ? to : rowCount} of{\" \"}\n {rowCount}\n </p>\n );\n}\n"],"names":["_a","usePageContext","enable","from","to","rowCount","_jsxs","className","_jsx","current","pageCount","jump","prev","next","children","onClick","disabled","Array","length","_","i","filter","map"],"mappings":"yHAyDQ,IAAAA,EAAiCC,EAAAA,iBAA/BC,EAAMF,EAAAE,OAAEC,EAAIH,EAAAG,KAAEC,EAAEJ,EAAAI,GAAEC,aAE1B,OAAKH,EAKHI,EAAAA,KAAA,IAAA,CAAGC,UAAU,8CACG,IAAbF,EAAiB,EAAIF,EAAO,EAAC,MAAKC,EAAKC,EAAWD,EAAKC,EAAQ,MAAK,IACpEA,KANIG,EAAAA,kBASX,gCAhEQ,IAAAR,EAAmDC,mBAAjDC,EAAMF,EAAAE,OAAEO,EAAOT,EAAAS,QAAEC,EAASV,EAAAU,UAAEC,EAAIX,EAAAW,KAAEC,EAAIZ,EAAAY,KAAEC,EAAIb,EAAAa,KAEpD,OAAKX,EAKHI,OAAA,MAAA,CAAKC,UAAU,4BAA2BO,SAAA,CACxCN,EAAAA,IAAA,SAAA,CACED,UAAU,iDACVQ,QAAS,WAAM,OAAAJ,EAAK,EAAL,EACfK,SAAsB,IAAZP,iBAIZD,EAAAA,IAAA,SAAA,CACED,UAAU,iDACVQ,QAAS,WAAM,OAAAH,GAAA,EACfI,SAAsB,IAAZP,EAAaK,SAAA,MAIxBG,MAAMd,KAAK,CAAEe,OAAQR,IAAa,SAACS,EAAGC,GAAM,OAAAA,EAAI,CAAJ,IAC1CC,QAAO,SAACD,GAAM,OAAAX,EAAU,GAAKW,GAAKA,GAAKX,EAAU,CAAnC,IACda,KAAI,SAACF,GAAM,OACVZ,EAAAA,cAEED,UAAW,yDAAkDE,IAAYW,EAAI,gBAAkB,IAC/FL,QAAS,WAAM,OAAAJ,EAAKS,EAAL,EAAON,SAErBM,GAJIA,EAFG,IASdZ,EAAAA,IAAA,SAAA,CACED,UAAU,iDACVQ,QAAS,WAAM,OAAAF,GAAA,EACfG,SAAUP,GAAWC,EAASI,SAAA,MAIhCN,EAAAA,cACED,UAAU,iDACVQ,QAAS,WAAM,OAAAJ,EAAKD,EAAL,EACfM,SAAUP,GAAWC,EAASI,SAAA,SAxC3BN,EAAAA,kBA8CX"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react"),a=require("./constants.js");function n(r,a){switch(a.type){case"setRowCount":return r.enable?e.__assign(e.__assign({},r),{currentPage:1,rowCount:a.payload.rowCount}):e.__assign(e.__assign({},r),{rowCount:a.payload.rowCount});case"setPerPage":return"all"===a.payload.perPage?{rowCount:r.rowCount,enable:!1}:r.enable?e.__assign(e.__assign({},r),{currentPage:1,perPage:a.payload.perPage}):{rowCount:r.rowCount,enable:!0,currentPage:1,perPage:a.payload.perPage};case"next":return r.enable?r.currentPage===Math.ceil(r.rowCount/r.perPage)?r:e.__assign(e.__assign({},r),{currentPage:r.currentPage+1}):r;case"prev":return r.enable?1===r.currentPage?r:e.__assign(e.__assign({},r),{currentPage:r.currentPage-1}):r;case"jump":return r.enable?a.payload.pageNumber<1||a.payload.pageNumber>Math.ceil(r.rowCount/r.perPage)||r.currentPage===a.payload.pageNumber?r:e.__assign(e.__assign({},r),{currentPage:a.payload.pageNumber}):r;default:return r}}exports.usePageReducer=function(e){var t=r.useReducer(n,null!=e?e:a.INITIAL_PAGE_STATE),u=t[0],o=t[1],s=r.useCallback((function(){return o({type:"next"})}),[o]),l=r.useCallback((function(){return o({type:"prev"})}),[o]),g=r.useCallback((function(e){return o({type:"jump",payload:{pageNumber:e}})}),[o]),c=r.useCallback((function(e){return o({type:"setRowCount",payload:{rowCount:e}})}),[o]),p=r.useMemo((function(){return u.enable?(u.currentPage-1)*u.perPage:0}),[u]),i=r.useMemo((function(){return u.enable?u.currentPage*u.perPage:u.rowCount}),[u]),P=r.useCallback((function(e){return e.slice(p,i)}),[p,i]);return{enable:u.enable,perPage:u.enable?u.perPage:u.rowCount,current:u.enable?u.currentPage:1,rowCount:u.rowCount,pageCount:u.enable?Math.ceil(u.rowCount/u.perPage):1,from:p,to:i,next:s,prev:l,jump:g,setRowCount:c,pageFilter:P}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react"),a=require("./constants.js");function n(r,a){switch(a.type){case"setRowCount":return r.enable?e.__assign(e.__assign({},r),{currentPage:1,rowCount:a.payload.rowCount}):e.__assign(e.__assign({},r),{rowCount:a.payload.rowCount});case"setPerPage":return"all"===a.payload.perPage?{rowCount:r.rowCount,enable:!1}:r.enable?e.__assign(e.__assign({},r),{currentPage:1,perPage:a.payload.perPage}):{rowCount:r.rowCount,enable:!0,currentPage:1,perPage:a.payload.perPage};case"next":return r.enable?r.currentPage>=Math.ceil(r.rowCount/r.perPage)?r:e.__assign(e.__assign({},r),{currentPage:r.currentPage+1}):r;case"prev":return r.enable?1===r.currentPage?r:e.__assign(e.__assign({},r),{currentPage:r.currentPage-1}):r;case"jump":return r.enable?a.payload.pageNumber<1||a.payload.pageNumber>Math.ceil(r.rowCount/r.perPage)||r.currentPage===a.payload.pageNumber?r:e.__assign(e.__assign({},r),{currentPage:a.payload.pageNumber}):r;default:return r}}exports.usePageReducer=function(e){var t=r.useReducer(n,null!=e?e:a.INITIAL_PAGE_STATE),u=t[0],o=t[1],s=r.useCallback((function(){return o({type:"next"})}),[o]),l=r.useCallback((function(){return o({type:"prev"})}),[o]),g=r.useCallback((function(e){return o({type:"jump",payload:{pageNumber:e}})}),[o]),c=r.useCallback((function(e){return o({type:"setRowCount",payload:{rowCount:e}})}),[o]),p=r.useMemo((function(){return u.enable?(u.currentPage-1)*u.perPage:0}),[u]),i=r.useMemo((function(){return u.enable?u.currentPage*u.perPage:u.rowCount}),[u]),P=r.useCallback((function(e){return e.slice(p,i)}),[p,i]);return{enable:u.enable,perPage:u.enable?u.perPage:u.rowCount,current:u.enable?u.currentPage:1,rowCount:u.rowCount,pageCount:u.enable?Math.ceil(u.rowCount/u.perPage):1,from:p,to:i,next:s,prev:l,jump:g,setRowCount:c,pageFilter:P}};
2
2
  //# sourceMappingURL=hooks.js.map