@teppen/react-ui 1.10.1 → 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":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"sHAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,WAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WARzBF,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,WAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,cAAgBI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAClDR,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,wBAEM,SAAyBY,GACvB,IAAAC,EAAoBC,EAAAA,WACxBf,EACAa,QAAAA,EAAgBG,EAAAA,oBAFXf,OAAOgB,OAKRC,EAAOC,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDG,EAAOD,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDI,EAAOF,EAAAA,aACX,SAACP,GAAuB,OAAAK,EAAS,CAAEd,KAAM,OAAQK,QAAS,CAAEI,WAAUA,IAA9C,GACxB,CAACK,IAGGK,EAAcH,eAClB,SAACZ,GACC,OAAAU,EAAS,CAAEd,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACU,IAGGM,EAAOC,EAAAA,SAAQ,WACnB,OAAKvB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEwB,EAAKD,EAAAA,SAAQ,WACjB,OAAKvB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEEyB,EAAaP,eACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLrB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CsB,QAAS5B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBuB,UAAW7B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEc,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/pagenation/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TPageAction, TPageState } from \"./types\";\nimport { INITIAL_PAGE_STATE } from \"./constants\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nfunction pagenationReducer(state: TPageState, action: TPageAction): TPageState {\n switch (action.type) {\n case \"setRowCount\":\n if (!state.enable) {\n return {\n ...state,\n rowCount: action.payload.rowCount,\n };\n }\n return {\n ...state,\n currentPage: 1,\n rowCount: action.payload.rowCount,\n };\n case \"setPerPage\":\n if (action.payload.perPage === \"all\") {\n return {\n rowCount: state.rowCount,\n enable: false,\n };\n }\n\n if (!state.enable) {\n return {\n rowCount: state.rowCount,\n enable: true,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n }\n\n return {\n ...state,\n currentPage: 1,\n perPage: action.payload.perPage,\n };\n case \"next\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage >= Math.ceil(state.rowCount / state.perPage)) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage + 1,\n };\n case \"prev\":\n if (!state.enable) {\n return state;\n }\n\n if (state.currentPage === 1) {\n return state;\n }\n\n return {\n ...state,\n currentPage: state.currentPage - 1,\n };\n case \"jump\":\n if (!state.enable) {\n return state;\n }\n\n if (\n action.payload.pageNumber < 1 ||\n action.payload.pageNumber > Math.ceil(state.rowCount / state.perPage) ||\n state.currentPage === action.payload.pageNumber\n ) {\n return state;\n }\n\n return {\n ...state,\n currentPage: action.payload.pageNumber,\n };\n default:\n return state;\n }\n}\n\nexport function usePageReducer(initialState?: TPageState) {\n const [state, dispatch] = useReducer(\n pagenationReducer,\n initialState ?? INITIAL_PAGE_STATE\n );\n\n const next = useCallback(() => dispatch({ type: \"next\" }), [dispatch]);\n const prev = useCallback(() => dispatch({ type: \"prev\" }), [dispatch]);\n const jump = useCallback(\n (pageNumber: number) => dispatch({ type: \"jump\", payload: { pageNumber } }),\n [dispatch]\n );\n\n const setRowCount = useCallback(\n (rowCount: number) =>\n dispatch({ type: \"setRowCount\", payload: { rowCount } }),\n [dispatch]\n );\n\n const from = useMemo(() => {\n if (!state.enable) {\n return 0;\n }\n return (state.currentPage - 1) * state.perPage;\n }, [state]);\n\n const to = useMemo(() => {\n if (!state.enable) {\n return state.rowCount;\n }\n return state.currentPage * state.perPage;\n }, [state]);\n\n const pageFilter = useCallback(\n <U extends DataRecord>(data: DataObject<U>[]): DataObject<U>[] => {\n return data.slice(from, to);\n },\n [from, to]\n );\n\n return {\n enable: state.enable,\n perPage: state.enable ? state.perPage : state.rowCount,\n current: state.enable ? state.currentPage : 1,\n rowCount: state.rowCount,\n pageCount: state.enable ? Math.ceil(state.rowCount / state.perPage) : 1,\n from,\n to,\n next,\n prev,\n jump,\n setRowCount,\n pageFilter,\n };\n}\n"],"names":["pagenationReducer","state","action","type","enable","__assign","currentPage","rowCount","payload","perPage","Math","ceil","pageNumber","initialState","_a","useReducer","INITIAL_PAGE_STATE","dispatch","next","useCallback","prev","jump","setRowCount","from","useMemo","to","pageFilter","data","slice","current","pageCount"],"mappings":"sHAKA,SAASA,EAAkBC,EAAmBC,GAC5C,OAAQA,EAAOC,MACb,IAAK,cACH,OAAKF,EAAMG,OAMXC,WAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbC,SAAUL,EAAOM,QAAQD,WARzBF,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHM,SAAUL,EAAOM,QAAQD,WAQ/B,IAAK,aACH,MAA+B,QAA3BL,EAAOM,QAAQC,QACV,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,GAIPH,EAAMG,OASXC,WAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRK,YAAa,EACbG,QAASP,EAAOM,QAAQC,UAXjB,CACLF,SAAUN,EAAMM,SAChBH,QAAQ,EACRE,YAAa,EACbG,QAASP,EAAOM,QAAQC,SAS9B,IAAK,OACH,OAAKR,EAAMG,OAIPH,EAAMK,aAAeI,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SACjDR,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAIe,IAAtBH,EAAMK,YACDL,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaL,EAAMK,YAAc,IAT1BL,EAWX,IAAK,OACH,OAAKA,EAAMG,OAKTF,EAAOM,QAAQI,WAAa,GAC5BV,EAAOM,QAAQI,WAAaF,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,UAC7DR,EAAMK,cAAgBJ,EAAOM,QAAQI,WAE9BX,EAGTI,EAAAA,SAAAA,WAAA,CAAA,EACKJ,IACHK,YAAaJ,EAAOM,QAAQI,aAbrBX,EAeX,QACE,OAAOA,EAEb,wBAEM,SAAyBY,GACvB,IAAAC,EAAoBC,EAAAA,WACxBf,EACAa,QAAAA,EAAgBG,EAAAA,oBAFXf,OAAOgB,OAKRC,EAAOC,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDG,EAAOD,EAAAA,aAAY,WAAM,OAAAF,EAAS,CAAEd,KAAM,QAAjB,GAA4B,CAACc,IACtDI,EAAOF,EAAAA,aACX,SAACP,GAAuB,OAAAK,EAAS,CAAEd,KAAM,OAAQK,QAAS,CAAEI,WAAUA,IAA9C,GACxB,CAACK,IAGGK,EAAcH,eAClB,SAACZ,GACC,OAAAU,EAAS,CAAEd,KAAM,cAAeK,QAAS,CAAED,SAAQA,IAAnD,GACF,CAACU,IAGGM,EAAOC,EAAAA,SAAQ,WACnB,OAAKvB,EAAMG,QAGHH,EAAMK,YAAc,GAAKL,EAAMQ,QAF9B,CAGX,GAAG,CAACR,IAEEwB,EAAKD,EAAAA,SAAQ,WACjB,OAAKvB,EAAMG,OAGJH,EAAMK,YAAcL,EAAMQ,QAFxBR,EAAMM,QAGjB,GAAG,CAACN,IAEEyB,EAAaP,eACjB,SAAuBQ,GACrB,OAAOA,EAAKC,MAAML,EAAME,EAC1B,GACA,CAACF,EAAME,IAGT,MAAO,CACLrB,OAAQH,EAAMG,OACdK,QAASR,EAAMG,OAASH,EAAMQ,QAAUR,EAAMM,SAC9CsB,QAAS5B,EAAMG,OAASH,EAAMK,YAAc,EAC5CC,SAAUN,EAAMM,SAChBuB,UAAW7B,EAAMG,OAASM,KAAKC,KAAKV,EAAMM,SAAWN,EAAMQ,SAAW,EACtEc,KAAIA,EACJE,GAAEA,EACFP,KAAIA,EACJE,KAAIA,EACJC,KAAIA,EACJC,YAAWA,EACXI,WAAUA,EAEd"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),n=require("./hooks.js"),t=r.createContext({enable:!0,perPage:0,current:0,pageCount:0,from:0,to:0,rowCount:0,next:function(){throw new Error("Function not implemented.")},prev:function(){throw new Error("Function not implemented.")},jump:function(){throw new Error("Function not implemented.")},setRowCount:function(){throw new Error("Function not implemented.")},pageFilter:function(){return[]}});exports.PagenationProvider=function(r){var o,u,i="all"===r.perPage?{enable:!1,rowCount:r.rowCount}:{enable:!0,rowCount:r.rowCount,perPage:null!==(o=r.perPage)&&void 0!==o?o:50,currentPage:null!==(u=r.currentPage)&&void 0!==u?u:1};return e.jsx(t.Provider,{value:n.usePageReducer(i),children:r.children})},exports.usePageContext=function(){return r.useContext(t)};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),n=require("react"),r=require("./hooks.js"),t=n.createContext({enable:!0,perPage:0,current:0,pageCount:0,from:0,to:0,rowCount:0,next:function(){throw new Error("Function not implemented.")},prev:function(){throw new Error("Function not implemented.")},jump:function(){throw new Error("Function not implemented.")},setRowCount:function(){throw new Error("Function not implemented.")},pageFilter:function(){return[]}});exports.PagenationProvider=function(n){var o,u,i="all"===n.perPage?{enable:!1,rowCount:n.rowCount}:{enable:!0,rowCount:n.rowCount,perPage:null!==(o=n.perPage)&&void 0!==o?o:50,currentPage:null!==(u=n.currentPage)&&void 0!==u?u:1};return e.jsx(t.Provider,{value:r.usePageReducer(i),children:n.children})},exports.usePageContext=function(){return n.useContext(t)};
3
2
  //# sourceMappingURL=providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"providers.js","sources":["../../../../../src/table/pagenation/providers.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport { TPageContext, TPageState } from \"./types\";\nimport { usePageReducer } from \"./hooks\";\n\nconst PageContext = createContext<TPageContext>({\n enable: true,\n perPage: 0,\n current: 0,\n pageCount: 0,\n from: 0,\n to: 0,\n rowCount: 0,\n next: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n prev: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n jump: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n setRowCount: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n pageFilter: () => [],\n});\n\nexport function PagenationProvider(props: {\n children: React.ReactNode;\n rowCount: number;\n perPage?: number | \"all\";\n currentPage?: number;\n}) {\n const pagenationParams: TPageState =\n props.perPage === \"all\"\n ? { enable: false, rowCount: props.rowCount }\n : {\n enable: true,\n rowCount: props.rowCount,\n perPage: props.perPage ?? 50,\n currentPage: props.currentPage ?? 1,\n };\n\n return (\n <PageContext.Provider value={usePageReducer(pagenationParams)}>\n {props.children}\n </PageContext.Provider>\n );\n}\n\nexport function usePageContext() {\n return useContext(PageContext);\n}\n"],"names":["PageContext","createContext","enable","perPage","current","pageCount","from","to","rowCount","next","Error","prev","jump","setRowCount","pageFilter","props","pagenationParams","_a","currentPage","_b","_jsx","Provider","value","usePageReducer","children","useContext"],"mappings":"wGAMMA,EAAcC,EAAAA,cAA4B,CAC9CC,QAAQ,EACRC,QAAS,EACTC,QAAS,EACTC,UAAW,EACXC,KAAM,EACNC,GAAI,EACJC,SAAU,EACVC,KAAM,WACJ,MAAM,IAAIC,MAAM,4BAClB,EACAC,KAAM,WACJ,MAAM,IAAID,MAAM,4BAClB,EACAE,KAAM,WACJ,MAAM,IAAIF,MAAM,4BAClB,EACAG,YAAa,WACX,MAAM,IAAIH,MAAM,4BAClB,EACAI,WAAY,WAAM,MAAA,EAAA,+BAGd,SAA6BC,WAM3BC,EACc,QAAlBD,EAAMZ,QACF,CAAED,QAAQ,EAAOM,SAAUO,EAAMP,UACjC,CACEN,QAAQ,EACRM,SAAUO,EAAMP,SAChBL,gBAASc,EAAAF,EAAMZ,uBAAW,GAC1Be,oBAAaC,EAAAJ,EAAMG,2BAAe,GAG1C,OACEE,MAACpB,EAAYqB,SAAQ,CAACC,MAAOC,iBAAeP,GAAiBQ,SAC1DT,EAAMS,UAGb,oCAGE,OAAOC,EAAAA,WAAWzB,EACpB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),a=require("../sheet/providers.js"),s=require("../range/provider.js"),n=require("./logic.js"),o=function(t,a){switch(a.type){case"setRows":return e.__assign(e.__assign({},t),{rows:a.payload.rows});case"setCols":return e.__assign(e.__assign({},t),{cols:a.payload.cols});case"setColValidators":return e.__assign(e.__assign({},t),{colValidators:a.payload.colValidators});case"setOnUpdateRowFunction":return e.__assign(e.__assign({},t),{onUpdateRowFunction:a.payload.onUpdateRowFunction});case"onPaste":if(!t.isFocused)return t;var s=a.payload.pasteData,o=t.rows,r=t.cols,i=t.colValidators,u=t.start,c=t.end;if(!t.onUpdateRowFunction)return t;var l=n.paste({pasteData:s,pasteArea:{start:u,end:c},currentRows:o,currentCols:r,validators:i,tableArea:{end:{rowIndex:o.length-1,colIndex:r.length-1}}});return l.isError?("ValidationError"!==l.type&&"NoPasteData"!==l.type&&alert(l.message),t):e.__assign(e.__assign({},t),{updateParameters:{arguments:l.updateArgument,pastedRange:l.pasteRange,timing:t.updateParameters.timing+1}});case"focus":return e.__assign(e.__assign({},t),{isFocused:!0,start:a.payload.start,end:a.payload.end});case"unfocus":return e.__assign(e.__assign({},t),{isFocused:!1})}};exports.usePasteReducer=function(n){var r=s.useRangeActionContext().setRange,i=t.useReducer(o,e.__assign(e.__assign({},n),{colValidators:{},isFocused:!1,updateParameters:{arguments:[],timing:0}})),u=i[0],c=i[1],l=a.useColumnValidatesContext(),d=s.useRangeStateContext();t.useEffect((function(){c({type:"setCols",payload:{cols:n.cols}})}),[n.cols]),t.useEffect((function(){d.isSelecting?c({type:"focus",payload:{start:d.start,end:d.end}}):c({type:"unfocus"})}),[d]);var p=t.useCallback((function(e){c({type:"setRows",payload:{rows:e}})}),[]),g=t.useCallback((function(e){c({type:"setCols",payload:{cols:e}})}),[]),f=t.useCallback((function(e){c({type:"setColValidators",payload:{colValidators:e}})}),[]);t.useEffect((function(){f(l)}),[l]);var _=t.useCallback((function(e){c({type:"setOnUpdateRowFunction",payload:{onUpdateRowFunction:e}})}),[]),m=t.useCallback((function(e){c({type:"onPaste",payload:{pasteData:e}})}),[]);return t.useEffect((function(){u.updateParameters.arguments.length>0&&u.updateParameters.arguments.forEach((function(e){var t,a=e.newRow,s=e.oldRow;null===(t=u.onUpdateRowFunction)||void 0===t||t.call(u,a,s)})),u.updateParameters.pastedRange&&r(u.updateParameters.pastedRange)}),[u.updateParameters.timing,u.onUpdateRowFunction]),t.useEffect((function(){var e=function(e){if(d.isSelecting&&e.clipboardData){e.preventDefault();var t=e.clipboardData.getData("Text");m(t.replace(/\t/g,",").trim().replace(/\r\n/g,"\n").split("\n").map((function(e){return e.split(",")})))}};return document.addEventListener("paste",e),function(){document.removeEventListener("paste",e)}}),[d.isSelecting]),t.useMemo((function(){return{setRows:p,setCols:g,setColValidators:f,setOnUpdateRowFunction:_,onPaste:m}}),[])};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../sheet/providers.js"),a=require("../range/provider.js"),n=require("./logic.js"),s=require("./parse.js"),o=require("../operation/event-target.js");exports.usePasteReducer=function(i){var u=a.useRangeActionContext().setRange,c=r.useColumnValidatesContext(),l=a.useRangeStateContext(),d=t.useRef(i.rows),g=t.useRef(e.__assign(e.__assign({},i),{validators:c,range:l}));t.useEffect((function(){g.current=e.__assign(e.__assign({},i),{validators:c,range:l})}));var p=t.useCallback((function(e){d.current=e}),[]),f=t.useCallback((function(e){var t=g.current,r=t.cols,a=t.validators,s=t.range,o=t.onUpdateRowFunction,i=t.onPasteError;if(s.isSelecting&&o){var c=n.paste({pasteData:e,pasteArea:{start:s.start,end:s.end},currentRows:d.current,currentCols:r,validators:a});if(c.isError){if("ValidationError"===c.type||"NoPasteData"===c.type)return;var l={type:c.type,message:c.message};i?i(l):alert(l.message)}else c.updateArgument.forEach((function(e){var t=e.newRow,r=e.oldRow;o(t,r)})),u(c.pasteRange)}}),[u]);return t.useEffect((function(){var e=function(e){var t=g.current,r=t.range,a=t.onUpdateRowFunction;r.isSelecting&&a&&(o.isTextEntryTarget(e.target)||e.clipboardData&&(e.preventDefault(),f(s.parseClipboardText(e.clipboardData.getData("Text")))))};return document.addEventListener("paste",e),function(){document.removeEventListener("paste",e)}}),[f]),t.useMemo((function(){return{setRows:p,onPaste:f}}),[p,f])};
2
2
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useReducer } from \"react\";\nimport { TPasteReducer, TPasteReducerReturn } from \"./types\";\nimport { useColumnValidatesContext } from \"../sheet/providers\";\nimport { useRangeActionContext, useRangeStateContext } from \"../range/provider\";\nimport { paste } from \"./logic\";\n\nconst reducer: TPasteReducer = (state, action) => {\n switch (action.type) {\n case \"setRows\":\n return { ...state, rows: action.payload.rows };\n case \"setCols\":\n return { ...state, cols: action.payload.cols };\n case \"setColValidators\":\n return { ...state, colValidators: action.payload.colValidators };\n case \"setOnUpdateRowFunction\":\n return {\n ...state,\n onUpdateRowFunction: action.payload.onUpdateRowFunction,\n };\n case \"onPaste\":\n if (!state.isFocused) {\n return state;\n }\n\n const { pasteData } = action.payload;\n const { rows, cols, colValidators, start, end, onUpdateRowFunction } =\n state;\n\n if (!onUpdateRowFunction) {\n return state;\n }\n\n const res = paste({\n pasteData,\n pasteArea: { start, end },\n currentRows: rows,\n currentCols: cols,\n validators: colValidators,\n tableArea: {\n start: {\n rowIndex: 0,\n colIndex: 0,\n },\n end: {\n rowIndex: rows.length - 1,\n colIndex: cols.length - 1,\n },\n },\n });\n\n if (res.isError) {\n if (res.type !== \"ValidationError\" && res.type !== \"NoPasteData\") {\n alert(res.message);\n }\n return state;\n }\n\n return {\n ...state,\n updateParameters: {\n arguments: res.updateArgument,\n pastedRange: res.pasteRange,\n timing: state.updateParameters.timing + 1,\n },\n };\n case \"focus\":\n return {\n ...state,\n isFocused: true,\n start: action.payload.start,\n end: action.payload.end,\n };\n case \"unfocus\":\n return { ...state, isFocused: false };\n }\n};\n\nexport function usePasteReducer(initial: {\n rows: any[];\n cols: any[];\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}): TPasteReducerReturn {\n const { setRange } = useRangeActionContext();\n const [state, dispatch] = useReducer(reducer, {\n ...initial,\n colValidators: {},\n isFocused: false,\n updateParameters: { arguments: [], timing: 0 },\n });\n const validators = useColumnValidatesContext();\n const range = useRangeStateContext();\n\n useEffect(() => {\n dispatch({ type: \"setCols\", payload: { cols: initial.cols } });\n }, [initial.cols]);\n\n useEffect(() => {\n if (range.isSelecting) {\n dispatch({\n type: \"focus\",\n payload: {\n start: range.start,\n end: range.end,\n },\n });\n } else {\n dispatch({ type: \"unfocus\" });\n }\n }, [range]);\n\n const setRows = useCallback((rows: any[]) => {\n dispatch({ type: \"setRows\", payload: { rows } });\n }, []);\n\n const setCols = useCallback((cols: any[]) => {\n dispatch({ type: \"setCols\", payload: { cols } });\n }, []);\n\n const setColValidators = useCallback(\n (colValidators: { [key: string]: (value: any) => boolean }) => {\n dispatch({ type: \"setColValidators\", payload: { colValidators } });\n },\n []\n );\n\n useEffect(() => {\n setColValidators(validators);\n }, [validators]);\n\n const setOnUpdateRowFunction = useCallback(\n (onUpdateRowFunction?: (newRow: any, oldRow: any) => void) => {\n dispatch({\n type: \"setOnUpdateRowFunction\",\n payload: { onUpdateRowFunction },\n });\n },\n []\n );\n\n const onPaste = useCallback((pasteData: string[][]) => {\n dispatch({ type: \"onPaste\", payload: { pasteData } });\n }, []);\n\n useEffect(() => {\n if (state.updateParameters.arguments.length > 0) {\n state.updateParameters.arguments.forEach(({ newRow, oldRow }) => {\n state.onUpdateRowFunction?.(newRow, oldRow);\n });\n }\n\n if (state.updateParameters.pastedRange) {\n setRange(state.updateParameters.pastedRange);\n }\n }, [state.updateParameters.timing, state.onUpdateRowFunction]);\n\n useEffect(() => {\n const paste = (e: ClipboardEvent) => {\n if (!range.isSelecting) {\n return;\n }\n\n if (e.clipboardData) {\n e.preventDefault();\n const pastedData = e.clipboardData.getData(\"Text\");\n\n onPaste(\n pastedData\n .replace(/\\t/g, \",\")\n .trim()\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((row) => row.split(\",\"))\n );\n }\n };\n\n document.addEventListener(\"paste\", paste);\n\n return () => {\n document.removeEventListener(\"paste\", paste);\n };\n }, [range.isSelecting]);\n\n const actions: TPasteReducerReturn = useMemo(\n () => ({\n setRows,\n setCols,\n setColValidators,\n setOnUpdateRowFunction,\n onPaste,\n }),\n []\n );\n\n return actions;\n}\n"],"names":["reducer","state","action","type","__assign","rows","payload","cols","colValidators","onUpdateRowFunction","isFocused","pasteData","start","end","res","paste","pasteArea","currentRows","currentCols","validators","tableArea","rowIndex","length","colIndex","isError","alert","message","updateParameters","arguments","updateArgument","pastedRange","pasteRange","timing","initial","setRange","useRangeActionContext","_a","useReducer","dispatch","useColumnValidatesContext","range","useRangeStateContext","useEffect","isSelecting","setRows","useCallback","setCols","setColValidators","setOnUpdateRowFunction","onPaste","forEach","newRow","oldRow","_b","call","e","clipboardData","preventDefault","pastedData","getData","replace","trim","split","map","row","document","addEventListener","removeEventListener","useMemo"],"mappings":"uLAMMA,EAAyB,SAACC,EAAOC,GACrC,OAAQA,EAAOC,MACb,IAAK,UACH,OAAAC,EAAAA,SAAAA,WAAA,CAAA,EAAYH,IAAOI,KAAMH,EAAOI,QAAQD,OAC1C,IAAK,UACH,OAAAD,EAAAA,SAAAA,WAAA,CAAA,EAAYH,IAAOM,KAAML,EAAOI,QAAQC,OAC1C,IAAK,mBACH,OAAAH,EAAAA,SAAAA,WAAA,CAAA,EAAYH,IAAOO,cAAeN,EAAOI,QAAQE,gBACnD,IAAK,yBACH,OAAAJ,EAAAA,SAAAA,WAAA,CAAA,EACKH,IACHQ,oBAAqBP,EAAOI,QAAQG,sBAExC,IAAK,UACH,IAAKR,EAAMS,UACT,OAAOT,EAGD,IAAAU,EAAcT,EAAOI,kBACrBD,EACNJ,EAAKI,KADOE,EACZN,EAAKM,KADaC,EAClBP,EAAKO,cAD4BI,EACjCX,EAAKW,MADmCC,EACxCZ,EAAKY,IAEP,IAFEZ,sBAGA,OAAOA,EAGT,IAAMa,EAAMC,EAAAA,MAAM,CAChBJ,UAASA,EACTK,UAAW,CAAEJ,QAAOC,OACpBI,YAAaZ,EACba,YAAaX,EACbY,WAAYX,EACZY,UAAW,CAKTP,IAAK,CACHQ,SAAUhB,EAAKiB,OAAS,EACxBC,SAAUhB,EAAKe,OAAS,MAK9B,OAAIR,EAAIU,SACW,oBAAbV,EAAIX,MAA2C,gBAAbW,EAAIX,MACxCsB,MAAMX,EAAIY,SAELzB,GAGTG,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKH,GAAK,CACR0B,iBAAkB,CAChBC,UAAWd,EAAIe,eACfC,YAAahB,EAAIiB,WACjBC,OAAQ/B,EAAM0B,iBAAiBK,OAAS,KAG9C,IAAK,QACH,OAAA5B,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKH,IACHS,WAAW,EACXE,MAAOV,EAAOI,QAAQM,MACtBC,IAAKX,EAAOI,QAAQO,MAExB,IAAK,UACH,OAAAT,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAYH,GAAK,CAAES,WAAW,IAEpC,0BAEM,SAA0BuB,GAKtB,IAAAC,EAAaC,EAAAA,iCACfC,EAAoBC,EAAAA,WAAWrC,2BAChCiC,GAAO,CACVzB,cAAe,GACfE,WAAW,EACXiB,iBAAkB,CAAEC,UAAW,GAAII,OAAQ,MAJtC/B,EAAKmC,EAAA,GAAEE,OAMRnB,EAAaoB,EAAAA,4BACbC,EAAQC,EAAAA,uBAEdC,EAAAA,WAAU,WACRJ,EAAS,CAAEnC,KAAM,UAAWG,QAAS,CAAEC,KAAM0B,EAAQ1B,OACvD,GAAG,CAAC0B,EAAQ1B,OAEZmC,EAAAA,WAAU,WACJF,EAAMG,YACRL,EAAS,CACPnC,KAAM,QACNG,QAAS,CACPM,MAAO4B,EAAM5B,MACbC,IAAK2B,EAAM3B,OAIfyB,EAAS,CAAEnC,KAAM,WAErB,GAAG,CAACqC,IAEJ,IAAMI,EAAUC,eAAY,SAACxC,GAC3BiC,EAAS,CAAEnC,KAAM,UAAWG,QAAS,CAAED,KAAIA,IAC7C,GAAG,IAEGyC,EAAUD,eAAY,SAACtC,GAC3B+B,EAAS,CAAEnC,KAAM,UAAWG,QAAS,CAAEC,KAAIA,IAC7C,GAAG,IAEGwC,EAAmBF,eACvB,SAACrC,GACC8B,EAAS,CAAEnC,KAAM,mBAAoBG,QAAS,CAAEE,cAAaA,IAC/D,GACA,IAGFkC,EAAAA,WAAU,WACRK,EAAiB5B,EACnB,GAAG,CAACA,IAEJ,IAAM6B,EAAyBH,eAC7B,SAACpC,GACC6B,EAAS,CACPnC,KAAM,yBACNG,QAAS,CAAEG,oBAAmBA,IAElC,GACA,IAGIwC,EAAUJ,eAAY,SAAClC,GAC3B2B,EAAS,CAAEnC,KAAM,UAAWG,QAAS,CAAEK,UAASA,IAClD,GAAG,IAqDH,OAnDA+B,EAAAA,WAAU,WACJzC,EAAM0B,iBAAiBC,UAAUN,OAAS,GAC5CrB,EAAM0B,iBAAiBC,UAAUsB,SAAQ,SAACd,SAAEe,EAAMf,EAAAe,OAAEC,EAAMhB,EAAAgB,OAC/B,QAAzBC,EAAApD,EAAMQ,2BAAmB,IAAA4C,GAAAA,EAAAC,KAAArD,EAAGkD,EAAQC,EACtC,IAGEnD,EAAM0B,iBAAiBG,aACzBI,EAASjC,EAAM0B,iBAAiBG,YAEpC,GAAG,CAAC7B,EAAM0B,iBAAiBK,OAAQ/B,EAAMQ,sBAEzCiC,EAAAA,WAAU,WACR,IAAM3B,EAAQ,SAACwC,GACb,GAAKf,EAAMG,aAIPY,EAAEC,cAAe,CACnBD,EAAEE,iBACF,IAAMC,EAAaH,EAAEC,cAAcG,QAAQ,QAE3CV,EACES,EACGE,QAAQ,MAAO,KACfC,OACAD,QAAQ,QAAS,MACjBE,MAAM,MACNC,KAAI,SAACC,GAAQ,OAAAA,EAAIF,MAAM,IAAV,IAEpB,CACF,EAIA,OAFAG,SAASC,iBAAiB,QAASnD,GAE5B,WACLkD,SAASE,oBAAoB,QAASpD,EACxC,CACF,GAAG,CAACyB,EAAMG,cAE2ByB,WACnC,WAAM,MAAA,CACJxB,QAAOA,EACPE,QAAOA,EACPC,iBAAgBA,EAChBC,uBAAsBA,EACtBC,QAAOA,EALH,GAON,GAIJ"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/paste/hooks.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { TPasteHookArguments, TPasteReducerReturn } from \"./types\";\nimport { useColumnValidatesContext } from \"../sheet/providers\";\nimport { useRangeActionContext, useRangeStateContext } from \"../range/provider\";\nimport { paste } from \"./logic\";\nimport { parseClipboardText } from \"./parse\";\nimport { isTextEntryTarget } from \"../operation/event-target\";\n\nexport function usePasteReducer(args: TPasteHookArguments): TPasteReducerReturn {\n const { setRange } = useRangeActionContext();\n const validators = useColumnValidatesContext();\n const range = useRangeStateContext();\n const rowsRef = useRef(args.rows);\n\n // Read the latest props when a paste happens, so callbacks passed in later\n // renders are the ones that get called.\n const latest = useRef({ ...args, validators, range });\n useEffect(() => {\n latest.current = { ...args, validators, range };\n });\n\n const setRows = useCallback((rows: any[]) => {\n rowsRef.current = rows;\n }, []);\n\n const onPaste = useCallback(\n (pasteData: string[][]) => {\n const { cols, validators, range, onUpdateRowFunction, onPasteError } =\n latest.current;\n\n if (!range.isSelecting || !onUpdateRowFunction) {\n return;\n }\n\n const res = paste({\n pasteData,\n pasteArea: { start: range.start, end: range.end },\n currentRows: rowsRef.current,\n currentCols: cols,\n validators,\n });\n\n if (res.isError) {\n // Validation errors are already reported by the column validators.\n if (res.type === \"ValidationError\" || res.type === \"NoPasteData\") {\n return;\n }\n\n const error = { type: res.type, message: res.message };\n if (onPasteError) {\n onPasteError(error);\n } else {\n alert(error.message);\n }\n return;\n }\n\n res.updateArgument.forEach(({ newRow, oldRow }) => {\n onUpdateRowFunction(newRow, oldRow);\n });\n setRange(res.pasteRange);\n },\n [setRange]\n );\n\n useEffect(() => {\n const listener = (e: ClipboardEvent) => {\n const { range, onUpdateRowFunction } = latest.current;\n\n if (!range.isSelecting || !onUpdateRowFunction) {\n return;\n }\n\n // Leave pastes into text fields (including the cell editor) to them.\n if (isTextEntryTarget(e.target)) {\n return;\n }\n\n if (e.clipboardData) {\n e.preventDefault();\n onPaste(parseClipboardText(e.clipboardData.getData(\"Text\")));\n }\n };\n\n document.addEventListener(\"paste\", listener);\n\n return () => {\n document.removeEventListener(\"paste\", listener);\n };\n }, [onPaste]);\n\n return useMemo(() => ({ setRows, onPaste }), [setRows, onPaste]);\n}\n"],"names":["args","setRange","useRangeActionContext","validators","useColumnValidatesContext","range","useRangeStateContext","rowsRef","useRef","rows","latest","__assign","useEffect","current","setRows","useCallback","onPaste","pasteData","_a","cols","onUpdateRowFunction","onPasteError","isSelecting","res","paste","pasteArea","start","end","currentRows","currentCols","isError","type","error","message","alert","updateArgument","forEach","newRow","oldRow","pasteRange","listener","e","isTextEntryTarget","target","clipboardData","preventDefault","parseClipboardText","getData","document","addEventListener","removeEventListener","useMemo"],"mappings":"iRAQM,SAA0BA,GACtB,IAAAC,EAAaC,EAAAA,iCACfC,EAAaC,EAAAA,4BACbC,EAAQC,EAAAA,uBACRC,EAAUC,EAAAA,OAAOR,EAAKS,MAItBC,EAASF,EAAAA,OAAMG,WAAAA,EAAAA,SAAA,CAAA,EAAMX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,KAClDO,EAAAA,WAAU,WACRF,EAAOG,QAAOF,WAAAA,EAAAA,SAAA,CAAA,EAAQX,GAAI,CAAEG,WAAUA,EAAEE,MAAKA,GAC/C,IAEA,IAAMS,EAAUC,eAAY,SAACN,GAC3BF,EAAQM,QAAUJ,CACpB,GAAG,IAEGO,EAAUD,eACd,SAACE,GACO,IAAAC,EACJR,EAAOG,QADDM,SAAMhB,eAAYE,UAAOe,wBAAqBC,iBAGtD,GAAKhB,EAAMiB,aAAgBF,EAA3B,CAIA,IAAMG,EAAMC,EAAAA,MAAM,CAChBP,UAASA,EACTQ,UAAW,CAAEC,MAAOrB,EAAMqB,MAAOC,IAAKtB,EAAMsB,KAC5CC,YAAarB,EAAQM,QACrBgB,YAAaV,EACbhB,WAAUA,IAGZ,GAAIoB,EAAIO,QAAR,CAEE,GAAiB,oBAAbP,EAAIQ,MAA2C,gBAAbR,EAAIQ,KACxC,OAGF,IAAMC,EAAQ,CAAED,KAAMR,EAAIQ,KAAME,QAASV,EAAIU,SACzCZ,EACFA,EAAaW,GAEbE,MAAMF,EAAMC,QAGhB,MAEAV,EAAIY,eAAeC,SAAQ,SAAClB,OAAEmB,EAAMnB,EAAAmB,OAAEC,EAAMpB,EAAAoB,OAC1ClB,EAAoBiB,EAAQC,EAC9B,IACArC,EAASsB,EAAIgB,WA5Bb,CA6BF,GACA,CAACtC,IA6BH,OA1BAW,EAAAA,WAAU,WACR,IAAM4B,EAAW,SAACC,GACV,IAAAvB,EAAiCR,EAAOG,QAAtCR,EAAKa,EAAAb,MAAEe,EAAmBF,EAAAE,oBAE7Bf,EAAMiB,aAAgBF,IAKvBsB,EAAAA,kBAAkBD,EAAEE,SAIpBF,EAAEG,gBACJH,EAAEI,iBACF7B,EAAQ8B,EAAAA,mBAAmBL,EAAEG,cAAcG,QAAQ,WAEvD,EAIA,OAFAC,SAASC,iBAAiB,QAAST,GAE5B,WACLQ,SAASE,oBAAoB,QAASV,EACxC,CACF,GAAG,CAACxB,IAEGmC,EAAAA,SAAQ,WAAM,OAAGrC,QAAOA,EAAEE,QAAOA,EAAnB,GAAwB,CAACF,EAASE,GACzD"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js");exports.paste=function(r){var t,a=r.pasteData.length,s=Math.max.apply(Math,r.pasteData.map((function(e){return e.length})));if(0===a||0===s)return{isError:!0,type:"NoPasteData",message:"ペーストデータがありません。"};var n=r.pasteArea.end.rowIndex-r.pasteArea.start.rowIndex+1,o=r.pasteArea.end.colIndex-r.pasteArea.start.colIndex+1,l=n<a?a:n,p=o<s?s:o;if(l+r.pasteArea.start.rowIndex>r.currentRows.length)return{isError:!0,type:"OtherError",message:"貼り付け先の行数が足りません。"};if(p+r.pasteArea.start.colIndex>r.currentCols.length)return{isError:!0,type:"OtherError",message:"貼り付け先の列数が足りません。"};for(var d=0;d<p;d++){if(!(I=r.currentCols[r.pasteArea.start.colIndex+d]).editable)return{isError:!0,type:"OtherError",message:"編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(t=I.label)&&void 0!==t?t:I.key)}}for(d=0;d<a;d++)for(var u=r.pasteData[d],c=0;c<p;c++){var i=c%u.length,x=u[i],I=r.currentCols[r.pasteArea.start.colIndex+c];if(!(0,r.validators[I.key])(x))return{isError:!0,type:"ValidationError",message:"バリデーションエラー: ".concat(x)}}var A=[];for(d=0;d<l;d++){u=r.pasteData[d%a];var f=e.__assign({},r.currentRows[r.pasteArea.start.rowIndex+d]),w=!1,g=function(e){var t=u[e%u.length],a=r.currentCols[r.pasteArea.start.colIndex+e],s="number"===a.type?Number(t):"select"===a.type?""===t?"":a.options.find((function(e){return e.label===t})).value:t;f[a.key]!==s&&(w=!0,f[a.key]=s)};for(c=0;c<p;c++)g(c);w&&A.push({newRow:f,oldRow:r.currentRows[r.pasteArea.start.rowIndex+d]})}return{isError:!1,updateArgument:A,pasteRange:{start:{rowIndex:r.pasteArea.start.rowIndex,colIndex:r.pasteArea.start.colIndex},end:{rowIndex:r.pasteArea.start.rowIndex+l-1,colIndex:r.pasteArea.start.colIndex+p-1}}}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=/^-?\d{1,3}(,\d{3})+(\.\d+)?$/;function t(e,t){if("number"!==e.type)return t;var a=t.trim();return r.test(a)?a.replace(/,/g,""):a}exports.paste=function(r){var a,s=r.pasteData.length,n=Math.max.apply(Math,r.pasteData.map((function(e){return e.length})));if(0===s||0===n)return{isError:!0,type:"NoPasteData",message:"ペーストデータがありません。"};var o=r.pasteArea.end.rowIndex-r.pasteArea.start.rowIndex+1,l=r.pasteArea.end.colIndex-r.pasteArea.start.colIndex+1,p=o<s?s:o,d=l<n?n:l;if(p+r.pasteArea.start.rowIndex>r.currentRows.length)return{isError:!0,type:"NOT_ENOUGH_ROWS",message:"貼り付け先の行数が足りません。"};if(d+r.pasteArea.start.colIndex>r.currentCols.length)return{isError:!0,type:"NOT_ENOUGH_COLUMNS",message:"貼り付け先の列数が足りません。"};for(var u=0;u<d;u++){if(!(x=r.currentCols[r.pasteArea.start.colIndex+u]).editable)return{isError:!0,type:"NOT_EDITABLE_COLUMN",message:"編集できない列にデータを貼り付けることはできません。\n\n編集不可列: ".concat(null!==(a=x.label)&&void 0!==a?a:x.key)}}for(u=0;u<s;u++)for(var i=r.pasteData[u],c=0;c<d;c++){var x,I=c%i.length,f=t(x=r.currentCols[r.pasteArea.start.colIndex+c],i[I]);if(!(0,r.validators[x.key])(f))return{isError:!0,type:"ValidationError",message:"バリデーションエラー: ".concat(f)}}var A=[];for(u=0;u<p;u++){i=r.pasteData[u%s];var g=e.__assign({},r.currentRows[r.pasteArea.start.rowIndex+u]),w=!1,m=function(e){var a=r.currentCols[r.pasteArea.start.colIndex+e],s=t(a,i[e%i.length]),n="number"===a.type?Number(s):"select"===a.type?""===s?"":a.options.find((function(e){return e.label===s})).value:s;g[a.key]!==n&&(w=!0,g[a.key]=n)};for(c=0;c<d;c++)m(c);w&&A.push({newRow:g,oldRow:r.currentRows[r.pasteArea.start.rowIndex+u]})}return{isError:!1,updateArgument:A,pasteRange:{start:{rowIndex:r.pasteArea.start.rowIndex,colIndex:r.pasteArea.start.colIndex},end:{rowIndex:r.pasteArea.start.rowIndex+p-1,colIndex:r.pasteArea.start.colIndex+d-1}}}};
2
2
  //# sourceMappingURL=logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logic.js","sources":["../../../../../src/table/paste/logic.ts"],"sourcesContent":["import { TTableColumn } from \"../table/type\";\n\ntype TPasteArgument = {\n pasteData: string[][];\n currentRows: any[];\n currentCols: TTableColumn<any>[];\n tableArea: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n pasteArea: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n validators: {\n [key: string]: (value: any) => boolean;\n };\n};\n\ntype TPasteResult =\n | {\n isError: true;\n type: \"ValidationError\" | \"NoPasteData\" | \"OtherError\";\n message: string;\n }\n | {\n isError: false;\n updateArgument: {\n newRow: any;\n oldRow: any;\n }[];\n pasteRange: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n };\n\nexport function paste(args: TPasteArgument): TPasteResult {\n // ペーストデータの行数と列数を取得\n const pasteDataRowLength = args.pasteData.length;\n const pasteDataColLength = Math.max(\n ...args.pasteData.map((row) => row.length)\n );\n\n // ペーストデータが空の場合は何もしない\n if (pasteDataRowLength === 0 || pasteDataColLength === 0) {\n return {\n isError: true,\n type: \"NoPasteData\",\n message: \"ペーストデータがありません。\",\n };\n }\n\n // Rangeの種類を取得\n const rangeRowLength =\n args.pasteArea.end.rowIndex - args.pasteArea.start.rowIndex + 1;\n const rangeColLength =\n args.pasteArea.end.colIndex - args.pasteArea.start.colIndex + 1;\n\n const pasteRowLength =\n rangeRowLength < pasteDataRowLength ? pasteDataRowLength : rangeRowLength;\n const pasteColLength =\n rangeColLength < pasteDataColLength ? pasteDataColLength : rangeColLength;\n\n // ペースト先の行数が足りない場合はエラー\n if (\n pasteRowLength + args.pasteArea.start.rowIndex >\n args.currentRows.length\n ) {\n return {\n isError: true,\n type: \"OtherError\",\n message: \"貼り付け先の行数が足りません。\",\n };\n }\n // ペースト先の列数が足りない場合はエラー\n if (\n pasteColLength + args.pasteArea.start.colIndex >\n args.currentCols.length\n ) {\n return {\n isError: true,\n type: \"OtherError\",\n message: \"貼り付け先の列数が足りません。\",\n };\n }\n\n // ペースト先の列に編集不可列が含まれている場合はエラー\n for (let i = 0; i < pasteColLength; i++) {\n const col = args.currentCols[args.pasteArea.start.colIndex + i];\n\n if (!col.editable) {\n return {\n isError: true,\n type: \"OtherError\",\n message: `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? (col.key as string)\n }`,\n };\n }\n }\n\n // ペーストデータのバリデーション\n for (let i = 0; i < pasteDataRowLength; i++) {\n const pasteRow = args.pasteData[i];\n\n for (let j = 0; j < pasteColLength; j++) {\n const colIndexForData = j % pasteRow.length;\n const pasteValue = pasteRow[colIndexForData];\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const validate = args.validators[col.key as string];\n\n if (!validate(pasteValue)) {\n return {\n isError: true,\n type: \"ValidationError\",\n message: `バリデーションエラー: ${pasteValue}`,\n };\n }\n }\n }\n\n const updateArguments: { newRow: any; oldRow: any }[] = [];\n\n // ペーストデータを反映\n for (let i = 0; i < pasteRowLength; i++) {\n const pasteRow = args.pasteData[i % pasteDataRowLength];\n const newRow = { ...args.currentRows[args.pasteArea.start.rowIndex + i] };\n let checkUpdatedRow = false;\n\n for (let j = 0; j < pasteColLength; j++) {\n const pasteValue = pasteRow[j % pasteRow.length];\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const value =\n col.type === \"number\"\n ? Number(pasteValue)\n : col.type === \"select\"\n ? pasteValue === \"\"\n ? \"\"\n : col.options.find((option) => option.label === pasteValue)!.value\n : pasteValue;\n if (newRow[col.key] !== value) {\n checkUpdatedRow = true;\n newRow[col.key] = value;\n }\n }\n\n if (checkUpdatedRow) {\n updateArguments.push({\n newRow,\n oldRow: args.currentRows[args.pasteArea.start.rowIndex + i],\n });\n }\n }\n\n return {\n isError: false,\n updateArgument: updateArguments,\n pasteRange: {\n start: {\n rowIndex: args.pasteArea.start.rowIndex,\n colIndex: args.pasteArea.start.colIndex,\n },\n end: {\n rowIndex: args.pasteArea.start.rowIndex + pasteRowLength - 1,\n colIndex: args.pasteArea.start.colIndex + pasteColLength - 1,\n },\n },\n };\n}\n"],"names":["args","pasteDataRowLength","pasteData","length","pasteDataColLength","Math","max","map","row","isError","type","message","rangeRowLength","pasteArea","end","rowIndex","start","rangeColLength","colIndex","pasteRowLength","pasteColLength","currentRows","currentCols","i","col","editable","concat","_a","label","key","pasteRow","j","colIndexForData","pasteValue","validate","validators","updateArguments","newRow","__assign","checkUpdatedRow","value","Number","options","find","option","push","oldRow","updateArgument","pasteRange"],"mappings":"qFAuDM,SAAgBA,SAEdC,EAAqBD,EAAKE,UAAUC,OACpCC,EAAqBC,KAAKC,UAALD,KACtBL,EAAKE,UAAUK,KAAI,SAACC,GAAQ,OAAAA,EAAIL,MAAJ,KAIjC,GAA2B,IAAvBF,GAAmD,IAAvBG,EAC9B,MAAO,CACLK,SAAS,EACTC,KAAM,cACNC,QAAS,kBAKb,IAAMC,EACJZ,EAAKa,UAAUC,IAAIC,SAAWf,EAAKa,UAAUG,MAAMD,SAAW,EAC1DE,EACJjB,EAAKa,UAAUC,IAAII,SAAWlB,EAAKa,UAAUG,MAAME,SAAW,EAE1DC,EACJP,EAAiBX,EAAqBA,EAAqBW,EACvDQ,EACJH,EAAiBb,EAAqBA,EAAqBa,EAG7D,GACEE,EAAiBnB,EAAKa,UAAUG,MAAMD,SACtCf,EAAKqB,YAAYlB,OAEjB,MAAO,CACLM,SAAS,EACTC,KAAM,aACNC,QAAS,mBAIb,GACES,EAAiBpB,EAAKa,UAAUG,MAAME,SACtClB,EAAKsB,YAAYnB,OAEjB,MAAO,CACLM,SAAS,EACTC,KAAM,aACNC,QAAS,mBAKb,IAAK,IAAIY,EAAI,EAAGA,EAAIH,EAAgBG,IAAK,CAGvC,KAFMC,EAAMxB,EAAKsB,YAAYtB,EAAKa,UAAUG,MAAME,SAAWK,IAEpDE,SACP,MAAO,CACLhB,SAAS,EACTC,KAAM,aACNC,QAAS,wCAAAe,OACE,QAATC,EAAAH,EAAII,aAAK,IAAAD,EAAAA,EAAKH,EAAIK,KAI1B,CAGA,IAASN,EAAI,EAAGA,EAAItB,EAAoBsB,IAGtC,IAFA,IAAMO,EAAW9B,EAAKE,UAAUqB,GAEvBQ,EAAI,EAAGA,EAAIX,EAAgBW,IAAK,CACvC,IAAMC,EAAkBD,EAAID,EAAS3B,OAC/B8B,EAAaH,EAASE,GACtBR,EAAMxB,EAAKsB,YAAYtB,EAAKa,UAAUG,MAAME,SAAWa,GAG7D,KAAKG,EAFYlC,EAAKmC,WAAWX,EAAIK,MAEvBI,GACZ,MAAO,CACLxB,SAAS,EACTC,KAAM,kBACNC,QAAS,eAAAe,OAAeO,GAG9B,CAGF,IAAMG,EAAkD,GAGxD,IAASb,EAAI,EAAGA,EAAIJ,EAAgBI,IAAK,CACjCO,EAAW9B,EAAKE,UAAUqB,EAAItB,GAApC,IACMoC,EAAMC,EAAAA,SAAA,CAAA,EAAQtC,EAAKqB,YAAYrB,EAAKa,UAAUG,MAAMD,SAAWQ,IACjEgB,GAAkB,aAEbR,GACP,IAAME,EAAaH,EAASC,EAAID,EAAS3B,QACnCqB,EAAMxB,EAAKsB,YAAYtB,EAAKa,UAAUG,MAAME,SAAWa,GACvDS,EACS,WAAbhB,EAAId,KACA+B,OAAOR,GACM,WAAbT,EAAId,KACW,KAAfuB,EACE,GACAT,EAAIkB,QAAQC,MAAK,SAACC,GAAW,OAAAA,EAAOhB,QAAUK,CAAjB,IAA8BO,MAC7DP,EACFI,EAAOb,EAAIK,OAASW,IACtBD,GAAkB,EAClBF,EAAOb,EAAIK,KAAOW,IAbtB,IAAST,EAAI,EAAGA,EAAIX,EAAgBW,MAA3BA,GAiBLQ,GACFH,EAAgBS,KAAK,CACnBR,OAAMA,EACNS,OAAQ9C,EAAKqB,YAAYrB,EAAKa,UAAUG,MAAMD,SAAWQ,IAG/D,CAEA,MAAO,CACLd,SAAS,EACTsC,eAAgBX,EAChBY,WAAY,CACVhC,MAAO,CACLD,SAAUf,EAAKa,UAAUG,MAAMD,SAC/BG,SAAUlB,EAAKa,UAAUG,MAAME,UAEjCJ,IAAK,CACHC,SAAUf,EAAKa,UAAUG,MAAMD,SAAWI,EAAiB,EAC3DD,SAAUlB,EAAKa,UAAUG,MAAME,SAAWE,EAAiB,IAInE"}
1
+ {"version":3,"file":"logic.js","sources":["../../../../../src/table/paste/logic.ts"],"sourcesContent":["import { TTableColumn } from \"../table/type\";\n\ntype TPasteArgument = {\n pasteData: string[][];\n currentRows: any[];\n currentCols: TTableColumn<any>[];\n tableArea?: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n pasteArea: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n validators: {\n [key: string]: (value: any) => boolean;\n };\n};\n\ntype TPasteResult =\n | {\n isError: true;\n type:\n | \"ValidationError\"\n | \"NoPasteData\"\n | \"NOT_ENOUGH_ROWS\"\n | \"NOT_ENOUGH_COLUMNS\"\n | \"NOT_EDITABLE_COLUMN\";\n message: string;\n }\n | {\n isError: false;\n updateArgument: {\n newRow: any;\n oldRow: any;\n }[];\n pasteRange: {\n start: {\n rowIndex: number;\n colIndex: number;\n };\n end: {\n rowIndex: number;\n colIndex: number;\n };\n };\n };\n\n// A number with thousands separators, as Excel copies formatted numbers.\nconst GROUPED_NUMBER = /^-?\\d{1,3}(,\\d{3})+(\\.\\d+)?$/;\n\n/**\n * Turns pasted text into the form the column's validator expects. For number\n * columns, surrounding spaces and thousands separators (\"1,000\") are removed.\n */\nfunction normalizePastedValue(col: TTableColumn<any>, value: string): string {\n if (col.type !== \"number\") {\n return value;\n }\n\n const trimmed = value.trim();\n return GROUPED_NUMBER.test(trimmed) ? trimmed.replace(/,/g, \"\") : trimmed;\n}\n\nexport function paste(args: TPasteArgument): TPasteResult {\n // ペーストデータの行数と列数を取得\n const pasteDataRowLength = args.pasteData.length;\n const pasteDataColLength = Math.max(\n ...args.pasteData.map((row) => row.length)\n );\n\n // ペーストデータが空の場合は何もしない\n if (pasteDataRowLength === 0 || pasteDataColLength === 0) {\n return {\n isError: true,\n type: \"NoPasteData\",\n message: \"ペーストデータがありません。\",\n };\n }\n\n // Rangeの種類を取得\n const rangeRowLength =\n args.pasteArea.end.rowIndex - args.pasteArea.start.rowIndex + 1;\n const rangeColLength =\n args.pasteArea.end.colIndex - args.pasteArea.start.colIndex + 1;\n\n const pasteRowLength =\n rangeRowLength < pasteDataRowLength ? pasteDataRowLength : rangeRowLength;\n const pasteColLength =\n rangeColLength < pasteDataColLength ? pasteDataColLength : rangeColLength;\n\n // ペースト先の行数が足りない場合はエラー\n if (\n pasteRowLength + args.pasteArea.start.rowIndex >\n args.currentRows.length\n ) {\n return {\n isError: true,\n type: \"NOT_ENOUGH_ROWS\",\n message: \"貼り付け先の行数が足りません。\",\n };\n }\n // ペースト先の列数が足りない場合はエラー\n if (\n pasteColLength + args.pasteArea.start.colIndex >\n args.currentCols.length\n ) {\n return {\n isError: true,\n type: \"NOT_ENOUGH_COLUMNS\",\n message: \"貼り付け先の列数が足りません。\",\n };\n }\n\n // ペースト先の列に編集不可列が含まれている場合はエラー\n for (let i = 0; i < pasteColLength; i++) {\n const col = args.currentCols[args.pasteArea.start.colIndex + i];\n\n if (!col.editable) {\n return {\n isError: true,\n type: \"NOT_EDITABLE_COLUMN\",\n message: `編集できない列にデータを貼り付けることはできません。\\n\\n編集不可列: ${\n col.label ?? (col.key as string)\n }`,\n };\n }\n }\n\n // ペーストデータのバリデーション\n for (let i = 0; i < pasteDataRowLength; i++) {\n const pasteRow = args.pasteData[i];\n\n for (let j = 0; j < pasteColLength; j++) {\n const colIndexForData = j % pasteRow.length;\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const pasteValue = normalizePastedValue(col, pasteRow[colIndexForData]);\n const validate = args.validators[col.key as string];\n\n if (!validate(pasteValue)) {\n return {\n isError: true,\n type: \"ValidationError\",\n message: `バリデーションエラー: ${pasteValue}`,\n };\n }\n }\n }\n\n const updateArguments: { newRow: any; oldRow: any }[] = [];\n\n // ペーストデータを反映\n for (let i = 0; i < pasteRowLength; i++) {\n const pasteRow = args.pasteData[i % pasteDataRowLength];\n const newRow = { ...args.currentRows[args.pasteArea.start.rowIndex + i] };\n let checkUpdatedRow = false;\n\n for (let j = 0; j < pasteColLength; j++) {\n const col = args.currentCols[args.pasteArea.start.colIndex + j];\n const pasteValue = normalizePastedValue(col, pasteRow[j % pasteRow.length]);\n const value =\n col.type === \"number\"\n ? Number(pasteValue)\n : col.type === \"select\"\n ? pasteValue === \"\"\n ? \"\"\n : col.options.find((option) => option.label === pasteValue)!.value\n : pasteValue;\n if (newRow[col.key] !== value) {\n checkUpdatedRow = true;\n newRow[col.key] = value;\n }\n }\n\n if (checkUpdatedRow) {\n updateArguments.push({\n newRow,\n oldRow: args.currentRows[args.pasteArea.start.rowIndex + i],\n });\n }\n }\n\n return {\n isError: false,\n updateArgument: updateArguments,\n pasteRange: {\n start: {\n rowIndex: args.pasteArea.start.rowIndex,\n colIndex: args.pasteArea.start.colIndex,\n },\n end: {\n rowIndex: args.pasteArea.start.rowIndex + pasteRowLength - 1,\n colIndex: args.pasteArea.start.colIndex + pasteColLength - 1,\n },\n },\n };\n}\n"],"names":["GROUPED_NUMBER","normalizePastedValue","col","value","type","trimmed","trim","test","replace","args","pasteDataRowLength","pasteData","length","pasteDataColLength","Math","max","map","row","isError","message","rangeRowLength","pasteArea","end","rowIndex","start","rangeColLength","colIndex","pasteRowLength","pasteColLength","currentRows","currentCols","i","editable","concat","_a","label","key","pasteRow","j","colIndexForData","pasteValue","validate","validators","updateArguments","newRow","__assign","checkUpdatedRow","Number","options","find","option","push","oldRow","updateArgument","pasteRange"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";function n(n,r){for(var e="",t=r+1;t<n.length;){if('"'===n[t]){if('"'===n[t+1]){e+='"',t+=2;continue}var l=n[t+1];return void 0===l||"\t"===l||"\n"===l?{value:e,next:t+1}:null}e+=n[t],t++}return null}exports.parseClipboardText=function(r){var e=r.replace(/\r\n?/g,"\n").replace(/\n$/,"");if(""===e)return[];for(var t=[],l=[],u=0;;){var i='"'===e[u]?n(e,u):null,a=void 0;if(i)a=i.value,u=i.next;else{for(var f=u;f<e.length&&"\t"!==e[f]&&"\n"!==e[f];)f++;a=e.slice(u,f),u=f}if(l.push(a),u>=e.length)return t.push(l),t;"\n"===e[u]&&(t.push(l),l=[]),u++}};
2
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sources":["../../../../../src/table/paste/parse.ts"],"sourcesContent":["/**\n * Parses clipboard text copied from a spreadsheet (Excel, Google Sheets)\n * into rows of cells.\n *\n * - Cells are separated by tabs and rows by line breaks.\n * - A cell wrapped in double quotes may contain tabs and line breaks, and\n * `\"\"` inside it stands for one `\"` (this is how Excel copies such cells).\n * - Commas are kept as part of the value, so \"1,000\" stays one cell.\n * - Only the final line break is dropped; empty cells are kept.\n */\nexport function parseClipboardText(text: string): string[][] {\n const source = text.replace(/\\r\\n?/g, \"\\n\").replace(/\\n$/, \"\");\n\n if (source === \"\") {\n return [];\n }\n\n const rows: string[][] = [];\n let row: string[] = [];\n let i = 0;\n\n while (true) {\n const quoted = source[i] === '\"' ? readQuotedCell(source, i) : null;\n let cell: string;\n\n if (quoted) {\n cell = quoted.value;\n i = quoted.next;\n } else {\n let end = i;\n while (end < source.length && source[end] !== \"\\t\" && source[end] !== \"\\n\") {\n end++;\n }\n cell = source.slice(i, end);\n i = end;\n }\n\n row.push(cell);\n\n if (i >= source.length) {\n rows.push(row);\n return rows;\n }\n\n if (source[i] === \"\\n\") {\n rows.push(row);\n row = [];\n }\n i++;\n }\n}\n\n/**\n * Reads a quoted cell starting at `start`. Returns null if the text is not a\n * properly closed quoted cell, in which case it is read as plain text.\n */\nfunction readQuotedCell(\n source: string,\n start: number\n): { value: string; next: number } | null {\n let value = \"\";\n let i = start + 1;\n\n while (i < source.length) {\n if (source[i] === '\"') {\n if (source[i + 1] === '\"') {\n value += '\"';\n i += 2;\n continue;\n }\n\n const after = source[i + 1];\n if (after === undefined || after === \"\\t\" || after === \"\\n\") {\n return { value, next: i + 1 };\n }\n return null;\n }\n\n value += source[i];\n i++;\n }\n\n return null;\n}\n"],"names":["readQuotedCell","source","start","value","i","length","after","undefined","next","text","replace","rows","row","quoted","cell","end","slice","push"],"mappings":"aAwDA,SAASA,EACPC,EACAC,GAKA,IAHA,IAAIC,EAAQ,GACRC,EAAIF,EAAQ,EAETE,EAAIH,EAAOI,QAAQ,CACxB,GAAkB,MAAdJ,EAAOG,GAAY,CACrB,GAAsB,MAAlBH,EAAOG,EAAI,GAAY,CACzBD,GAAS,IACTC,GAAK,EACL,QACF,CAEA,IAAME,EAAQL,EAAOG,EAAI,GACzB,YAAcG,IAAVD,GAAiC,OAAVA,GAA4B,OAAVA,EACpC,CAAEH,MAAKA,EAAEK,KAAMJ,EAAI,GAErB,IACT,CAEAD,GAASF,EAAOG,GAChBA,GACF,CAEA,OAAO,IACT,4BAzEM,SAA6BK,GACjC,IAAMR,EAASQ,EAAKC,QAAQ,SAAU,MAAMA,QAAQ,MAAO,IAE3D,GAAe,KAAXT,EACF,MAAO,GAOT,IAJA,IAAMU,EAAmB,GACrBC,EAAgB,GAChBR,EAAI,IAEK,CACX,IAAMS,EAAuB,MAAdZ,EAAOG,GAAaJ,EAAeC,EAAQG,GAAK,KAC3DU,SAEJ,GAAID,EACFC,EAAOD,EAAOV,MACdC,EAAIS,EAAOL,SACN,CAEL,IADA,IAAIO,EAAMX,EACHW,EAAMd,EAAOI,QAA0B,OAAhBJ,EAAOc,IAAiC,OAAhBd,EAAOc,IAC3DA,IAEFD,EAAOb,EAAOe,MAAMZ,EAAGW,GACvBX,EAAIW,CACN,CAIA,GAFAH,EAAIK,KAAKH,GAELV,GAAKH,EAAOI,OAEd,OADAM,EAAKM,KAAKL,GACHD,EAGS,OAAdV,EAAOG,KACTO,EAAKM,KAAKL,GACVA,EAAM,IAERR,GACF,CACF"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),o=require("./hooks.js"),n=t.createContext({setRows:function(){},setCols:function(){},setColValidators:function(){},setOnUpdateRowFunction:function(){},onPaste:function(){}});exports.PasteProvider=function(t){var r=t.children,s=t.rows,i=t.cols,u=t.onUpdateRowFunction,c=void 0===u?function(){}:u;return e.jsx(n.Provider,{value:o.usePasteReducer({rows:s,cols:i,onUpdateRowFunction:c}),children:r})},exports.usePasteActionContext=function(){return t.useContext(n)};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),t=require("react"),s=require("./hooks.js"),n=t.createContext({setRows:function(){},onPaste:function(){}});exports.PasteProvider=function(t){var i=t.children,o=e.__rest(t,["children"]);return r.jsx(n.Provider,{value:s.usePasteReducer(o),children:i})},exports.usePasteActionContext=function(){return t.useContext(n)};
2
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/paste/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TPasteReducerReturn } from \"./types\";\nimport { usePasteReducer } from \"./hooks\";\n\nconst PasteContext = createContext<TPasteReducerReturn>({\n setRows: () => {},\n setCols: () => {},\n setColValidators: () => {},\n setOnUpdateRowFunction: () => {},\n onPaste: () => {},\n});\n\nexport function PasteProvider({\n children,\n rows,\n cols,\n onUpdateRowFunction = () => {},\n}: {\n children: React.JSX.Element | React.JSX.Element[];\n rows: any[];\n cols: any[];\n onUpdateRowFunction?: (newRow: any, oldRow: any) => void;\n}) {\n return (\n <PasteContext.Provider\n value={usePasteReducer({\n rows,\n cols,\n onUpdateRowFunction,\n })}\n >\n {children}\n </PasteContext.Provider>\n );\n}\n\nexport function usePasteActionContext() {\n return useContext(PasteContext);\n}\n"],"names":["PasteContext","createContext","setRows","setCols","setColValidators","setOnUpdateRowFunction","onPaste","_a","children","rows","cols","_b","onUpdateRowFunction","_jsx","Provider","value","usePasteReducer","useContext"],"mappings":"2FAIMA,EAAeC,EAAAA,cAAmC,CACtDC,QAAS,WAAO,EAChBC,QAAS,WAAO,EAChBC,iBAAkB,WAAO,EACzBC,uBAAwB,WAAO,EAC/BC,QAAS,WAAO,0BAGZ,SAAwBC,GAC5B,IAAAC,EAAQD,EAAAC,SACRC,EAAIF,EAAAE,KACJC,EAAIH,EAAAG,KACJC,EAAAJ,EAAAK,oBAAAA,OAAmB,IAAAD,EAAG,WAAO,EAACA,EAO9B,OACEE,EAAAA,IAACb,EAAac,SAAQ,CACpBC,MAAOC,EAAAA,gBAAgB,CACrBP,KAAIA,EACJC,KAAIA,EACJE,oBAAmBA,IACnBJ,SAEDA,GAGP,2CAGE,OAAOS,EAAAA,WAAWjB,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/paste/provider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { TPasteHookArguments, TPasteReducerReturn } from \"./types\";\nimport { usePasteReducer } from \"./hooks\";\n\nconst PasteContext = createContext<TPasteReducerReturn>({\n setRows: () => {},\n onPaste: () => {},\n});\n\nexport function PasteProvider({\n children,\n ...args\n}: TPasteHookArguments & {\n children: React.JSX.Element | React.JSX.Element[];\n}) {\n return (\n <PasteContext.Provider value={usePasteReducer(args)}>\n {children}\n </PasteContext.Provider>\n );\n}\n\nexport function usePasteActionContext() {\n return useContext(PasteContext);\n}\n"],"names":["PasteContext","createContext","setRows","onPaste","_a","children","args","__rest","_jsx","Provider","value","usePasteReducer","useContext"],"mappings":"iJAIMA,EAAeC,EAAAA,cAAmC,CACtDC,QAAS,WAAO,EAChBC,QAAS,WAAO,0BAGZ,SAAwBC,GAC5B,IAAAC,EAAQD,EAAAC,SACLC,EAAIC,EAAAA,OAAAH,EAFqB,cAM5B,OACEI,EAAAA,IAACR,EAAaS,UAASC,MAAOC,EAAAA,gBAAgBL,GAAKD,SAChDA,GAGP,2CAGE,OAAOO,EAAAA,WAAWZ,EACpB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../checkbox/components.js"),o=require("../cell/ui/cell.js"),a=require("../range/provider.js"),n=require("../id/provider.js"),i=r.memo((function(r){var i=n.useTableIdGenerator(),l=a.useRangeActionContext().reset,c=JSON.parse(r.dataString),s=r.conditionalFormattingString.split(",");return e.jsxs("tr",{className:"relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none hover:after:bg-gray-500/10 ".concat(r.onClickRow?"hover:cursor-pointer":""," ").concat(r.applyRowFormatting?r.applyRowFormatting(c):""),onClick:function(e){e.preventDefault(),r.onClickRow&&(r.onClickRow(c),l())},"data-testid":c.id,children:[r.existCheckbox&&e.jsx("td",{className:"w-8 h-full p-px",onClick:function(e){e.stopPropagation()},children:e.jsx(t.Checkbox,{row:c})}),r.cols.map((function(t,a){var n;return e.jsx(o.TableCell,{id:i.getTableCellId({rowIndex:r.rowIndex,columnIndex:a}),row:c,isExistOnClickRow:!!r.onClickRow,cellFormatClassName:s[a],editable:null!==(n=t.editable)&&void 0!==n&&n},t.key)}))]})}));exports.Row=i;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),o=require("../checkbox/components.js"),t=require("../cell/ui/cell.js"),n=require("../range/provider.js"),i=require("../id/provider.js"),a=r.memo((function(r){var a=i.useTableIdGenerator(),l=n.useRangeActionContext().reset,c=r.row,s=r.conditionalFormattingString.split(",");return e.jsxs("tr",{className:"relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none hover:after:bg-gray-500/10 ".concat(r.onClickRow?"hover:cursor-pointer":""," ").concat(r.applyRowFormatting?r.applyRowFormatting(c):""),onClick:function(e){e.preventDefault(),r.onClickRow&&(r.onClickRow(c),l())},"data-testid":c.id,children:[r.existCheckbox&&e.jsx("td",{className:"w-8 h-full p-px",onClick:function(e){e.stopPropagation()},children:e.jsx(o.Checkbox,{row:c})}),r.cols.map((function(o,n){var i;return e.jsx(t.TableCell,{id:a.getTableCellId({rowIndex:r.rowIndex,columnIndex:n}),row:c,isExistOnClickRow:!!r.onClickRow,cellFormatClassName:s[n],editable:null!==(i=o.editable)&&void 0!==i&&i},o.key)}))]})}));exports.Row=a;
2
2
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\ninterface TPropsRow<T extends DataRecord> {\n dataString: string;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const IdGenerator = useTableIdGenerator();\n const { reset } = useRangeActionContext();\n const row = JSON.parse(props.dataString);\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none hover:after:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n reset();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td\n className=\"w-8 h-full p-px\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n id={IdGenerator.getTableCellId({\n rowIndex: props.rowIndex,\n columnIndex: j,\n })}\n row={row}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","IdGenerator","useTableIdGenerator","reset","useRangeActionContext","row","JSON","parse","dataString","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","stopPropagation","Checkbox","cols","map","col","j","TableCell","getTableCellId","rowIndex","columnIndex","isExistOnClickRow","cellFormatClassName","editable","_a","key"],"mappings":"2MAiBaA,EAAMC,EAAAA,MAAK,SAAiCC,GACvD,IAAMC,EAAcC,EAAAA,sBACZC,EAAUC,EAAAA,8BACZC,EAAMC,KAAKC,MAAMP,EAAMQ,YACvBC,EAAwBT,EAAMU,4BAA4BC,MAAM,KAEtE,OACEC,OAAA,KAAA,CACEC,UAAW,0JAAAC,OACPd,EAAMe,WAAa,uBAAyB,GAAE,KAAAD,OAC9Cd,EAAMgB,mBAAqBhB,EAAMgB,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEInB,EAAMe,aACVf,EAAMe,WAAWV,GACjBF,IAEJ,gBACaE,EAAIe,GAAEC,SAAA,CAElBrB,EAAMsB,eACLC,EAAAA,IAAA,KAAA,CACEV,UAAU,kBACVI,QAAS,SAACC,GACRA,EAAEM,iBACJ,EAACH,SAEDE,EAAAA,IAACE,EAAAA,SAAQ,CAACpB,IAAKA,MAGlBL,EAAM0B,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAAAA,IAACO,EAAAA,UAAS,CAERV,GAAInB,EAAY8B,eAAe,CAC7BC,SAAUhC,EAAMgC,SAChBC,YAAaJ,IAEfxB,IAAKA,EACL6B,oBAAqBlC,EAAMe,WAC3BoB,oBAAqB1B,EAAsBoB,GAC3CO,SAAsB,QAAZC,EAAAT,EAAIQ,gBAAQ,IAAAC,GAAAA,GARjBT,EAAIU,IAWf,MAGN"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sheet/components.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport { DataObject, DataRecord, TTableColumn } from \"../table/type\";\nimport { Checkbox } from \"../checkbox/components\";\nimport { TableCell } from \"../cell/ui/cell\";\nimport { useRangeActionContext } from \"../range/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\ninterface TPropsRow<T extends DataRecord> {\n row: DataObject<DataRecord>;\n cols: TTableColumn<T>[];\n existCheckbox?: boolean;\n rowIndex: number;\n conditionalFormattingString: string;\n onClickRow?: (row: any) => void;\n applyRowFormatting?: (row: any) => string;\n}\n\nexport const Row = memo(function R<T extends DataRecord>(props: TPropsRow<T>) {\n const IdGenerator = useTableIdGenerator();\n const { reset } = useRangeActionContext();\n const row = props.row;\n const conditionalFormatting = props.conditionalFormattingString.split(\",\");\n\n return (\n <tr\n className={`relative border border-gray-200 after:absolute after:w-full after:h-full after:top-0 after:left-0 after:pointer-events-none hover:after:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n reset();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td\n className=\"w-8 h-full p-px\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n <Checkbox row={row} />\n </td>\n )}\n {props.cols.map((col, j) => {\n return (\n <TableCell\n key={col.key as string}\n id={IdGenerator.getTableCellId({\n rowIndex: props.rowIndex,\n columnIndex: j,\n })}\n row={row}\n isExistOnClickRow={!!props.onClickRow}\n cellFormatClassName={conditionalFormatting[j]}\n editable={col.editable ?? false}\n />\n );\n })}\n </tr>\n );\n});\n"],"names":["Row","memo","props","IdGenerator","useTableIdGenerator","reset","useRangeActionContext","row","conditionalFormatting","conditionalFormattingString","split","_jsxs","className","concat","onClickRow","applyRowFormatting","onClick","e","preventDefault","id","children","existCheckbox","_jsx","stopPropagation","Checkbox","cols","map","col","j","TableCell","getTableCellId","rowIndex","columnIndex","isExistOnClickRow","cellFormatClassName","editable","_a","key"],"mappings":"2MAiBaA,EAAMC,EAAAA,MAAK,SAAiCC,GACvD,IAAMC,EAAcC,EAAAA,sBACZC,EAAUC,EAAAA,8BACZC,EAAML,EAAMK,IACZC,EAAwBN,EAAMO,4BAA4BC,MAAM,KAEtE,OACEC,OAAA,KAAA,CACEC,UAAW,0JAAAC,OACPX,EAAMY,WAAa,uBAAyB,GAAE,KAAAD,OAC9CX,EAAMa,mBAAqBb,EAAMa,mBAAmBR,GAAO,IAC/DS,QAAS,SAACC,GACRA,EAAEC,iBAEIhB,EAAMY,aACVZ,EAAMY,WAAWP,GACjBF,IAEJ,gBACaE,EAAIY,GAAEC,SAAA,CAElBlB,EAAMmB,eACLC,EAAAA,IAAA,KAAA,CACEV,UAAU,kBACVI,QAAS,SAACC,GACRA,EAAEM,iBACJ,EAACH,SAEDE,EAAAA,IAACE,EAAAA,SAAQ,CAACjB,IAAKA,MAGlBL,EAAMuB,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAAAA,IAACO,EAAAA,UAAS,CAERV,GAAIhB,EAAY2B,eAAe,CAC7BC,SAAU7B,EAAM6B,SAChBC,YAAaJ,IAEfrB,IAAKA,EACL0B,oBAAqB/B,EAAMY,WAC3BoB,oBAAqB1B,EAAsBoB,GAC3CO,SAAsB,QAAZC,EAAAT,EAAIQ,gBAAQ,IAAAC,GAAAA,GARjBT,EAAIU,IAWf,MAGN"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../libs/generate-validate-function.js"),n=t.createContext({cols:[],validates:{}});exports.ColumnsProvider=function(u){var o=u.children,s=u.cols,i=u.errorHandler,a=t.useMemo((function(){return s.reduce((function(e,t){return e[t.key]=r.generateValidateFunction(t,i),e}),{})}),[s]),l=t.useMemo((function(){return{cols:s,validates:a}}),[s]);return e.jsx(n.Provider,{value:l,children:o})},exports.useColumnValidateContext=function(e){return t.useContext(n).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(n).validates},exports.useColumnsContext=function(){return t.useContext(n).cols};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("../libs/generate-validate-function.js"),n=t.createContext({cols:[],validates:{}});exports.ColumnsProvider=function(u){var o=u.children,s=u.cols,i=u.errorHandler,a=t.useMemo((function(){return s.reduce((function(e,t){return e[t.key]=r.generateValidateFunction(t,i),e}),{})}),[s]),l=t.useMemo((function(){return{cols:s,validates:a}}),[s]);return e.jsx(n.Provider,{value:l,children:o})},exports.useColumnValidateContext=function(e){return t.useContext(n).validates[e]},exports.useColumnValidatesContext=function(){return t.useContext(n).validates},exports.useColumnsContext=function(){return t.useContext(n).cols};
3
2
  //# sourceMappingURL=providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"providers.js","sources":["../../../../../src/table/sheet/providers.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport { DataRecord, TTableColumn } from \"../table/type\";\nimport {\n generateValidateFunction,\n TErrorValidation,\n} from \"../libs/generate-validate-function\";\n\nconst ColsContext = createContext<{\n cols: TTableColumn<DataRecord>[];\n validates: { [key: string]: (value: any) => boolean };\n}>({\n cols: [],\n validates: {},\n});\n\nexport function ColumnsProvider<T extends DataRecord>({\n children,\n cols,\n errorHandler,\n}: {\n children: React.ReactNode;\n cols: TTableColumn<T>[];\n errorHandler?: (errors: TErrorValidation[]) => void;\n}) {\n const validates = useMemo(\n () =>\n cols.reduce((acc, col) => {\n const { key } = col;\n\n acc[key] = generateValidateFunction(col as any, errorHandler);\n\n return acc;\n }, {} as { [key in keyof T]: (value: any) => boolean }),\n [cols]\n );\n\n const state = useMemo(() => ({ cols, validates }), [cols]);\n\n return (\n <ColsContext.Provider\n value={\n state as {\n cols: TTableColumn<DataRecord>[];\n validates: { [key: string]: (value: any) => boolean };\n }\n }\n >\n {children}\n </ColsContext.Provider>\n );\n}\n\nexport function useColumnsContext() {\n return useContext(ColsContext).cols;\n}\n\nexport function useColumnValidateContext(key: string) {\n return useContext(ColsContext).validates[key];\n}\n\nexport function useColumnValidatesContext() {\n return useContext(ColsContext).validates;\n}\n"],"names":["ColsContext","createContext","cols","validates","_a","children","errorHandler","useMemo","reduce","acc","col","key","generateValidateFunction","state","_jsx","Provider","value","useContext"],"mappings":"mIASMA,EAAcC,EAAAA,cAGjB,CACDC,KAAM,GACNC,UAAW,CAAA,4BAGP,SAAgDC,GACpD,IAAAC,aACAH,EAAIE,EAAAF,KACJI,EAAYF,EAAAE,aAMNH,EAAYI,EAAAA,SAChB,WACE,OAAAL,EAAKM,QAAO,SAACC,EAAKC,GAKhB,OAFAD,EAFgBC,EAAGC,KAERC,2BAAyBF,EAAYJ,GAEzCG,CACT,GAAG,CAAA,EANH,GAOF,CAACP,IAGGW,EAAQN,EAAAA,SAAQ,WAAM,MAAA,CAAGL,KAAIA,EAAEC,UAASA,EAAlB,GAAuB,CAACD,IAEpD,OACEY,EAAAA,IAACd,EAAYe,SAAQ,CACnBC,MACEH,EAGCR,SAGFA,GAGP,mCAMM,SAAmCM,GACvC,OAAOM,aAAWjB,GAAaG,UAAUQ,EAC3C,+CAGE,OAAOM,EAAAA,WAAWjB,GAAaG,SACjC,uCATE,OAAOc,EAAAA,WAAWjB,GAAaE,IACjC"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var r=require("react/jsx-runtime"),e=require("./icon.js"),t=require("./provider.js");exports.SortButton=function(n){var o=t.useSortContext(),c=o.key,i=o.asc,s=o.changeKey,u=o.changeOrder,a=c===n.columnKey;return r.jsx("div",{onClick:function(r){r.preventDefault(),a?u():s(n.columnKey)},className:"cursor-pointer",children:r.jsx(e.SortIcon,{sortOrder:a?i?"ASC":"DESC":"ASC",isSortActive:a})})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("./icon.js"),t=require("./provider.js");exports.SortButton=function(n){var o=t.useSortContext(),c=o.key,i=o.asc,s=o.changeKey,u=o.changeOrder,a=c===n.columnKey;return e.jsx("div",{onClick:function(e){e.preventDefault(),a?u():s(n.columnKey)},className:"cursor-pointer",children:e.jsx(r.SortIcon,{sortOrder:a?i?"ASC":"DESC":"ASC",isSortActive:a})})};
3
2
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/sort/components.tsx"],"sourcesContent":["\"use client\";\n\nimport { SortIcon } from \"./icon\";\nimport { useSortContext } from \"./provider\";\n\ntype TPropsSort = {\n columnKey: string;\n};\n\nexport function SortButton(props: TPropsSort) {\n const { key, asc, changeKey, changeOrder } = useSortContext();\n\n const isActive = key === props.columnKey;\n\n return (\n <div\n onClick={(e) => {\n e.preventDefault();\n if (isActive) {\n changeOrder();\n } else {\n changeKey(props.columnKey);\n }\n }}\n className=\"cursor-pointer\"\n >\n <SortIcon\n sortOrder={isActive ? (asc ? \"ASC\" : \"DESC\") : \"ASC\"}\n isSortActive={isActive}\n />\n </div>\n );\n}\n"],"names":["props","_a","useSortContext","key","asc","changeKey","changeOrder","isActive","columnKey","_jsx","onClick","e","preventDefault","className","children","SortIcon","sortOrder","isSortActive"],"mappings":"kIASM,SAAqBA,GACnB,IAAAC,EAAuCC,EAAAA,iBAArCC,EAAGF,EAAAE,IAAEC,EAAGH,EAAAG,IAAEC,EAASJ,EAAAI,UAAEC,gBAEvBC,EAAWJ,IAAQH,EAAMQ,UAE/B,OACEC,EAAAA,IAAA,MAAA,CACEC,QAAS,SAACC,GACRA,EAAEC,iBACEL,EACFD,IAEAD,EAAUL,EAAMQ,UAEpB,EACAK,UAAU,iBAAgBC,SAE1BL,EAAAA,IAACM,EAAAA,SAAQ,CACPC,UAAWT,EAAYH,EAAM,MAAQ,OAAU,MAC/Ca,aAAcV,KAItB"}
@@ -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("./hooks.js"),o=n.createContext(0),i=n.createContext({key:"",asc:!1,isUpdatedData:!1}),s=n.createContext({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});exports.SortProvider=function(e){var n=r.useSortReducer(e.initialCondition),u=n.state,c=n.actions,a=n.sortTiming;return t.jsx(o.Provider,{value:a,children:t.jsx(i.Provider,{value:u,children:t.jsx(s.Provider,{value:c,children:e.children})})})},exports.useSortActionContext=function(){return n.useContext(s)},exports.useSortContext=function(){return e.__assign(e.__assign(e.__assign({},n.useContext(i)),n.useContext(s)),{sortTiming:n.useContext(o)})},exports.useSortTimingContext=function(){return n.useContext(o)};
1
+ "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react/jsx-runtime"),n=require("react"),r=require("./hooks.js"),o=n.createContext(0),i=n.createContext({key:"",asc:!1,isUpdatedData:!1}),s=n.createContext({changeKey:function(){throw new Error("Function not implemented.")},changeOrder:function(){throw new Error("Function not implemented.")},sort:function(){return[]},updatedData:function(){throw new Error("Function not implemented.")}});exports.SortProvider=function(e){var n=r.useSortReducer(e.initialCondition),u=n.state,c=n.actions,a=n.sortTiming;return t.jsx(o.Provider,{value:a,children:t.jsx(i.Provider,{value:u,children:t.jsx(s.Provider,{value:c,children:e.children})})})},exports.useSortActionContext=function(){return n.useContext(s)},exports.useSortContext=function(){return e.__assign(e.__assign(e.__assign({},n.useContext(i)),n.useContext(s)),{sortTiming:n.useContext(o)})},exports.useSortTimingContext=function(){return n.useContext(o)};
3
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/sort/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport { TReturnSortReducer } from \"./types\";\nimport { useSortReducer } from \"./hooks\";\nimport { DataRecord } from \"../table/type\";\n\nconst SortTimingContext = createContext<number>(0);\n\nconst SortStateContext = createContext<TReturnSortReducer<DataRecord>[\"state\"]>(\n {\n key: \"\",\n asc: false,\n isUpdatedData: false,\n }\n);\n\nconst SortActionContext = createContext<\n TReturnSortReducer<DataRecord>[\"actions\"]\n>({\n changeKey: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n changeOrder: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n sort: () => [],\n updatedData: function (): void {\n throw new Error(\"Function not implemented.\");\n },\n});\n\nexport function SortProvider(props: {\n children: React.ReactNode;\n initialCondition?: { key: string; asc?: boolean };\n}) {\n const { state, actions, sortTiming } = useSortReducer(props.initialCondition);\n return (\n <SortTimingContext.Provider value={sortTiming}>\n <SortStateContext.Provider value={state}>\n <SortActionContext.Provider value={actions}>\n {props.children}\n </SortActionContext.Provider>\n </SortStateContext.Provider>\n </SortTimingContext.Provider>\n );\n}\n\nexport function useSortContext() {\n return {\n ...useContext(SortStateContext),\n ...useContext(SortActionContext),\n sortTiming: useContext(SortTimingContext),\n };\n}\n\nexport function useSortStateContext() {\n return useContext(SortStateContext);\n}\n\nexport function useSortActionContext() {\n return useContext(SortActionContext);\n}\n\nexport function useSortTimingContext() {\n return useContext(SortTimingContext);\n}\n"],"names":["SortTimingContext","createContext","SortStateContext","key","asc","isUpdatedData","SortActionContext","changeKey","Error","changeOrder","sort","updatedData","props","_a","useSortReducer","initialCondition","state","actions","sortTiming","_jsx","Provider","value","children","useContext","__assign"],"mappings":"8JAOMA,EAAoBC,EAAAA,cAAsB,GAE1CC,EAAmBD,EAAAA,cACvB,CACEE,IAAK,GACLC,KAAK,EACLC,eAAe,IAIbC,EAAoBL,EAAAA,cAExB,CACAM,UAAW,WACT,MAAM,IAAIC,MAAM,4BAClB,EACAC,YAAa,WACX,MAAM,IAAID,MAAM,4BAClB,EACAE,KAAM,WAAM,MAAA,EAAA,EACZC,YAAa,WACX,MAAM,IAAIH,MAAM,4BAClB,yBAGI,SAAuBI,GAIrB,IAAAC,EAAiCC,EAAAA,eAAeF,EAAMG,kBAApDC,EAAKH,EAAAG,MAAEC,EAAOJ,EAAAI,QAAEC,eACxB,OACEC,MAACnB,EAAkBoB,SAAQ,CAACC,MAAOH,WACjCC,MAACjB,EAAiBkB,UAASC,MAAOL,EAAKM,SACrCH,MAACb,EAAkBc,SAAQ,CAACC,MAAOJ,EAAOK,SACvCV,EAAMU,cAKjB,0CAeE,OAAOC,EAAAA,WAAWjB,EACpB,oCAbE,OAAAkB,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKD,EAAAA,WAAWrB,IACXqB,EAAAA,WAAWjB,IAAkB,CAChCY,WAAYK,EAAAA,WAAWvB,IAE3B,0CAWE,OAAOuB,EAAAA,WAAWvB,EACpB"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),i=require("./hook.js"),o=require("../header/header.js"),s=require("../pagenation/providers.js"),t=require("../pagenation/components.js");require("../filter-v2/context.js");var n=require("../filter-v2/provider.js");require("../sort/icon.js");var d=require("../sort/provider.js"),a=require("../sheet/providers.js"),l=require("../checkbox/provider.js"),c=require("../edit/provider.js"),x=require("../table-property/provider.js"),j=require("../operation/components/keyboard-setting.js"),h=require("../sheet/components.js"),u=require("../paste/provider.js"),p=require("../libs/conditional-formatting.js"),v=require("../edit/ui/editor.js"),m=require("../range/provider.js"),g=require("../copy/provider.js"),b=require("../copy/components.js"),q=require("../id/provider.js"),w=require("../header/header-v2.js");require("../header/columns-width/context.js");var P=require("../header/columns-width/provider.js");require("../header/x-scroll-position/context.js");var C=require("../header/x-scroll-position/provider.js"),k=require("../frame/frame.js"),y=require("./component-provider/provider.js"),S=require("../../select-box/provider.js");function f(e){var s=i.useTable(e),n=s.cols,d=s.rowMaps,a=s.pageRowIds,l=q.useTableIdGenerator(),c=y.useGenerateSortButton();return r.jsxs("div",{className:"w-full max-w-full max-h-full",children:[r.jsxs("div",{children:[r.jsx(w.TableHeader,{cols:n,checkbox:!!e.checkbox,rows:e.rows,maxWidth:e.maxWidth,generateSortButton:c}),r.jsx(S.SelectBoxProvider,{children:r.jsxs(k.Frame,{id:l.getTableId(),maxHeight:e.maxHeight,maxWidth:e.maxWidth,displayScroll:!1,children:[r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[e.checkbox&&r.jsx("th",{className:"p-px"}),n.map((function(e){return r.jsx(o.TableHeaderElement,{keyname:e.key.toString()},e.key.toString())}))]})}),r.jsxs("tbody",{children:[0===a.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length,className:"px-px py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),a.map((function(i,o){return r.jsx(h.Row,{existCheckbox:!!e.checkbox,rowIndex:o,dataString:d[i].stringValue,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:p.generateFormattingString(d[i].data,n,e.conditionalFormattings)},i)}))]})]}),r.jsx(m.TestRange,{}),r.jsx(v.Editor,{rowMaps:d,pageRowIds:a})]})})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(t.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(t.Pagenation,{})})]})]})}module.exports=function(i){var o,t,h,p;return r.jsx(y.ComponentProvider,{children:r.jsx(q.TableIdGeneratorProvider,{id:i.id,children:r.jsx(P.ColumnsWidthProvider,{initialState:i.cols,children:r.jsx(n.FilterProvider,{initialConditions:[],children:r.jsx(d.SortProvider,{initialCondition:null===(o=i.initialCondition)||void 0===o?void 0:o.sort,children:r.jsx(s.PagenationProvider,{rowCount:i.rows.length,perPage:null===(h=null===(t=i.initialCondition)||void 0===t?void 0:t.pagenation)||void 0===h?void 0:h.rowCountPerPage,children:r.jsx(l.CheckboxProvider,{checkbox:i.checkbox,children:r.jsx(l.CheckboxStatusProvider,{checkboxCount:i.rows.length,children:r.jsx(a.ColumnsProvider,{cols:i.cols,errorHandler:i.errorHandler,children:r.jsx(c.EditProvider,{children:r.jsx(x.TablePropertyProvider,{children:r.jsx(m.RangeProvider,{children:r.jsxs(g.CopyProvider,{rows:i.rows,cols:i.cols,children:[r.jsx(b.CopiedMessage,{}),r.jsxs(u.PasteProvider,{rows:i.rows,cols:i.cols,onUpdateRowFunction:i.onUpdateRow,children:[r.jsx(j.KeyboardSetting,{enableDeprecatedCopy:null===(p=i.deprecatedOptions)||void 0===p?void 0:p.enableDeprecatedCopy}),r.jsx(C.ScrollXPositionProvider,{children:r.jsx(f,e.__assign({},i))})]})]})})})})})})})})})})})})})};
1
+ "use client";"use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),o=require("./hook.js"),i=require("../header/header.js"),s=require("../pagenation/providers.js"),t=require("../pagenation/components.js");require("../filter-v2/context.js");var n=require("../filter-v2/provider.js");require("../sort/icon.js");var d=require("../sort/provider.js"),a=require("../sheet/providers.js"),l=require("../checkbox/provider.js"),c=require("../edit/provider.js"),x=require("../table-property/provider.js"),j=require("../operation/components/keyboard-setting.js"),h=require("../sheet/components.js"),u=require("../paste/provider.js"),p=require("../libs/conditional-formatting.js"),v=require("../edit/ui/editor.js"),m=require("../range/provider.js"),g=require("../copy/provider.js"),b=require("../copy/components.js"),q=require("../id/provider.js"),w=require("../header/header-v2.js");require("../header/columns-width/context.js");var P=require("../header/columns-width/provider.js");require("../header/x-scroll-position/context.js");var C=require("../header/x-scroll-position/provider.js"),k=require("../frame/frame.js"),y=require("./component-provider/provider.js"),S=require("../../select-box/provider.js");function f(e){var s=o.useTable(e),n=s.cols,d=s.rowMaps,a=s.pageRowIds,l=q.useTableIdGenerator(),c=y.useGenerateSortButton();return r.jsxs("div",{className:"w-full max-w-full max-h-full",children:[r.jsxs("div",{children:[r.jsx(w.TableHeader,{cols:n,checkbox:!!e.checkbox,rows:e.rows,maxWidth:e.maxWidth,generateSortButton:c}),r.jsx(P.ColumnsWidthStyle,{scopeId:l.getTableId()}),r.jsx(S.SelectBoxProvider,{children:r.jsxs(k.Frame,{id:l.getTableId(),maxHeight:e.maxHeight,maxWidth:e.maxWidth,displayScroll:!1,children:[r.jsxs("table",{className:"table",children:[r.jsx("thead",{children:r.jsxs("tr",{children:[e.checkbox&&r.jsx("th",{className:"p-px"}),n.map((function(e){return r.jsx(i.TableHeaderElement,{keyname:e.key.toString()},e.key.toString())}))]})}),r.jsxs("tbody",{children:[0===a.length&&r.jsx("tr",{children:r.jsx("td",{colSpan:n.length+(e.checkbox?1:0),className:"px-px py-5",children:r.jsx("p",{className:"text-center font-bold text-lg",children:"NO DATA"})})}),a.map((function(o,i){return r.jsx(h.Row,{existCheckbox:!!e.checkbox,rowIndex:i,row:d[o].data,cols:e.cols,onClickRow:e.onClickRow,applyRowFormatting:e.applyRowFormatting,conditionalFormattingString:p.generateFormattingString(d[o].data,n,e.conditionalFormattings)},o)}))]})]}),r.jsx(m.TestRange,{}),r.jsx(v.Editor,{rowMaps:d,pageRowIds:a})]})})]}),r.jsxs("div",{className:"mt-1",children:[r.jsx(t.DisplayRange,{}),r.jsx("div",{className:"mt-2",children:r.jsx(t.Pagenation,{})})]})]})}module.exports=function(o){var i,t,h,p;return r.jsx(y.ComponentProvider,{children:r.jsx(q.TableIdGeneratorProvider,{id:o.id,children:r.jsx(P.ColumnsWidthProvider,{cols:o.cols,children:r.jsx(n.FilterProvider,{initialConditions:[],children:r.jsx(d.SortProvider,{initialCondition:null===(i=o.initialCondition)||void 0===i?void 0:i.sort,children:r.jsx(s.PagenationProvider,{rowCount:o.rows.length,perPage:null===(h=null===(t=o.initialCondition)||void 0===t?void 0:t.pagenation)||void 0===h?void 0:h.rowCountPerPage,children:r.jsx(l.CheckboxProvider,{checkbox:o.checkbox,children:r.jsx(l.CheckboxStatusProvider,{checkboxCount:o.rows.length,children:r.jsx(a.ColumnsProvider,{cols:o.cols,errorHandler:o.errorHandler,children:r.jsx(c.EditProvider,{children:r.jsx(x.TablePropertyProvider,{children:r.jsx(m.RangeProvider,{children:r.jsxs(g.CopyProvider,{rows:o.rows,cols:o.cols,children:[r.jsx(b.CopiedMessage,{}),r.jsxs(u.PasteProvider,{rows:o.rows,cols:o.cols,onUpdateRowFunction:o.onUpdateRow,onPasteError:o.onPasteError,children:[r.jsx(j.KeyboardSetting,{enableDeprecatedCopy:null===(p=o.deprecatedOptions)||void 0===p?void 0:p.enableDeprecatedCopy}),r.jsx(C.ScrollXPositionProvider,{children:r.jsx(f,e.__assign({},o))})]})]})})})})})})})})})})})})})};
3
2
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"base.js","sources":["../../../../../src/table/table/base.tsx"],"sourcesContent":["\"use client\";\n\nimport { useTable } from \"./hook\";\nimport { TableHeaderElement } from \"../header/header\";\nimport {\n DataRecord,\n TConditionalFormatting,\n TPropsTable,\n TTableColumn,\n} from \"./type\";\nimport { PagenationProvider, DisplayRange, Pagenation } from \"../pagenation\";\nimport { FilterProvider } from \"../filter-v2\";\nimport { SortProvider } from \"../sort\";\nimport { ColumnsProvider } from \"../sheet/providers\";\nimport { CheckboxProvider, CheckboxStatusProvider } from \"../checkbox/provider\";\nimport { EditProvider } from \"../edit/provider\";\nimport { TablePropertyProvider } from \"../table-property/provider\";\nimport { KeyboardSetting } from \"../operation/components/keyboard-setting\";\nimport { Row } from \"../sheet/components\";\nimport { PasteProvider } from \"../paste/provider\";\nimport { generateFormattingString } from \"../libs/conditional-formatting\";\nimport { Editor } from \"../edit/ui/editor\";\nimport { RangeProvider, TestRange } from \"../range/provider\";\nimport { CopyProvider } from \"../copy/provider\";\nimport { CopiedMessage } from \"../copy/components\";\nimport { TableIdGeneratorProvider, useTableIdGenerator } from \"../id\";\nimport { TableHeader } from \"../header/header-v2\";\nimport {\n ColumnsWidthProvider,\n ColumnsWidthStyle,\n ScrollXPositionProvider,\n} from \"../header\";\nimport { Frame } from \"../frame\";\nimport { ComponentProvider } from \"./component-provider\";\nimport { useGenerateSortButton } from \"./component-provider/provider\";\nimport { SelectBoxProvider } from \"../../select-box/provider\";\n\nexport default function Table<T extends DataRecord>(props: TPropsTable<T>) {\n return (\n <ComponentProvider>\n <TableIdGeneratorProvider id={props.id}>\n <ColumnsWidthProvider cols={props.cols as TTableColumn<DataRecord>[]}>\n <FilterProvider initialConditions={[]}>\n <SortProvider initialCondition={props.initialCondition?.sort}>\n <PagenationProvider\n rowCount={props.rows.length}\n perPage={props.initialCondition?.pagenation?.rowCountPerPage}\n >\n <CheckboxProvider checkbox={props.checkbox}>\n <CheckboxStatusProvider checkboxCount={props.rows.length}>\n <ColumnsProvider\n cols={props.cols}\n errorHandler={props.errorHandler}\n >\n <EditProvider>\n <TablePropertyProvider>\n <RangeProvider>\n <CopyProvider rows={props.rows} cols={props.cols}>\n <CopiedMessage />\n <PasteProvider\n rows={props.rows}\n cols={props.cols}\n onUpdateRowFunction={props.onUpdateRow}\n onPasteError={props.onPasteError}\n >\n <KeyboardSetting\n enableDeprecatedCopy={\n props.deprecatedOptions\n ?.enableDeprecatedCopy\n }\n />\n <ScrollXPositionProvider>\n <BaseTable {...props} />\n </ScrollXPositionProvider>\n </PasteProvider>\n </CopyProvider>\n </RangeProvider>\n </TablePropertyProvider>\n </EditProvider>\n </ColumnsProvider>\n </CheckboxStatusProvider>\n </CheckboxProvider>\n </PagenationProvider>\n </SortProvider>\n </FilterProvider>\n </ColumnsWidthProvider>\n </TableIdGeneratorProvider>\n </ComponentProvider>\n );\n}\n\nfunction BaseTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { cols, rowMaps, pageRowIds } = useTable<T>(props);\n const IdGenerator = useTableIdGenerator();\n const generateSortButton = useGenerateSortButton();\n\n return (\n <div className=\"w-full max-w-full max-h-full\">\n <div>\n <TableHeader\n cols={cols}\n checkbox={!!props.checkbox}\n rows={props.rows}\n maxWidth={props.maxWidth}\n generateSortButton={generateSortButton}\n />\n\n <ColumnsWidthStyle scopeId={IdGenerator.getTableId()} />\n <SelectBoxProvider>\n <Frame\n id={IdGenerator.getTableId()}\n maxHeight={props.maxHeight}\n maxWidth={props.maxWidth}\n displayScroll={false}\n >\n <table className={`table`}>\n <thead>\n <tr>\n {props.checkbox && <th className=\"p-px\"></th>}\n {cols.map((col) => (\n <TableHeaderElement\n key={col.key.toString()}\n keyname={col.key.toString()}\n />\n ))}\n </tr>\n </thead>\n <tbody>\n {pageRowIds.length === 0 && (\n <tr>\n <td\n colSpan={cols.length + (props.checkbox ? 1 : 0)}\n className=\"px-px py-5\"\n >\n <p className=\"text-center font-bold text-lg\">NO DATA</p>\n </td>\n </tr>\n )}\n {pageRowIds.map((rowId, i) => (\n <Row\n key={rowId}\n existCheckbox={!!props.checkbox}\n rowIndex={i}\n row={rowMaps[rowId].data}\n cols={props.cols as TTableColumn<DataRecord>[]}\n onClickRow={props.onClickRow}\n applyRowFormatting={props.applyRowFormatting}\n conditionalFormattingString={generateFormattingString(\n rowMaps[rowId].data,\n cols as TTableColumn<DataRecord>[],\n props.conditionalFormattings as TConditionalFormatting<DataRecord>[]\n )}\n />\n ))}\n </tbody>\n </table>\n <TestRange />\n <Editor rowMaps={rowMaps} pageRowIds={pageRowIds} />\n </Frame>\n </SelectBoxProvider>\n </div>\n <div className=\"mt-1\">\n <DisplayRange />\n <div className=\"mt-2\">\n <Pagenation />\n </div>\n </div>\n </div>\n );\n}\n"],"names":["BaseTable","props","_a","useTable","cols","rowMaps","pageRowIds","IdGenerator","useTableIdGenerator","generateSortButton","useGenerateSortButton","_jsxs","className","children","_jsx","TableHeader","checkbox","rows","maxWidth","ColumnsWidthStyle","scopeId","getTableId","SelectBoxProvider","Frame","id","maxHeight","displayScroll","map","col","TableHeaderElement","keyname","key","toString","length","colSpan","rowId","i","Row","existCheckbox","rowIndex","row","data","onClickRow","applyRowFormatting","conditionalFormattingString","generateFormattingString","conditionalFormattings","TestRange","Editor","DisplayRange","Pagenation","ComponentProvider","TableIdGeneratorProvider","ColumnsWidthProvider","FilterProvider","initialConditions","SortProvider","initialCondition","sort","PagenationProvider","rowCount","perPage","_c","_b","pagenation","rowCountPerPage","CheckboxProvider","CheckboxStatusProvider","checkboxCount","ColumnsProvider","errorHandler","EditProvider","TablePropertyProvider","RangeProvider","CopyProvider","CopiedMessage","PasteProvider","onUpdateRowFunction","onUpdateRow","onPasteError","KeyboardSetting","enableDeprecatedCopy","deprecatedOptions","_d","ScrollXPositionProvider","__assign"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var r=require("react/jsx-runtime"),e=require("react"),t=require("../../sort/components.js");require("../../sort/provider.js");var n=e.createContext((function(){return r.jsx(r.Fragment,{})}));exports.ComponentProvider=function(o){var u=e.useCallback((function(e){return r.jsx(t.SortButton,{columnKey:e})}),[]);return r.jsx(n.Provider,{value:u,children:o.children})},exports.useGenerateSortButton=function(){return e.useContext(n)};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("../../sort/components.js");require("../../sort/provider.js");var n=r.createContext((function(){return e.jsx(e.Fragment,{})}));exports.ComponentProvider=function(o){var u=r.useCallback((function(r){return e.jsx(t.SortButton,{columnKey:r})}),[]);return e.jsx(n.Provider,{value:u,children:o.children})},exports.useGenerateSortButton=function(){return r.useContext(n)};
3
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../../src/table/table/component-provider/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useCallback, useContext } from \"react\";\nimport { SortButton } from \"../../sort\";\n\nconst GenerateSortButtonContext = createContext<\n (columnKey: string) => React.JSX.Element\n>(() => <></>);\n\nexport function ComponentProvider(props: { children: React.ReactNode }) {\n const generateSortButton = useCallback((columnKey: string) => {\n return <SortButton columnKey={columnKey} />;\n }, []);\n\n return (\n <GenerateSortButtonContext.Provider value={generateSortButton}>\n {props.children}\n </GenerateSortButtonContext.Provider>\n );\n}\n\nexport function useGenerateSortButton() {\n return useContext(GenerateSortButtonContext);\n}\n"],"names":["GenerateSortButtonContext","createContext","_jsx","_Fragment","props","generateSortButton","useCallback","columnKey","SortButton","Provider","value","children","useContext"],"mappings":"wJAKA,IAAMA,EAA4BC,EAAAA,eAEhC,WAAM,OAAAC,EAAAA,IAAAC,EAAAA,SAAA,CAAA,EAAA,8BAEF,SAA4BC,GAChC,IAAMC,EAAqBC,eAAY,SAACC,GACtC,OAAOL,EAAAA,IAACM,EAAAA,WAAU,CAACD,UAAWA,GAChC,GAAG,IAEH,OACEL,EAAAA,IAACF,EAA0BS,SAAQ,CAACC,MAAOL,WACxCD,EAAMO,UAGb,2CAGE,OAAOC,EAAAA,WAAWZ,EACpB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),t=require("../pagenation/providers.js"),r=require("../checkbox/provider.js"),o=require("../sort/provider.js"),n=require("../table-property/provider.js"),u=require("../paste/provider.js"),s=require("../copy/provider.js"),i=require("../filter-v2/context.js");exports.useTable=function(c){var a=i.useFilterFunctions().filter,f=o.useSortActionContext(),l=f.sort,p=f.updatedData,d=o.useSortTimingContext(),h=t.usePageContext(),v=h.setRowCount,x=h.pageFilter,g=r.useCheckboxStatusContext().dispatchCheckboxStatus,w=u.usePasteActionContext().setRows,C=s.useCopyActionContext().setRows,b=n.useTablePropertyActionContext(),m=b.setMaxDisplayColCount,y=b.setMaxDisplayRowCount,M=e.useMemo((function(){return a(c.rows)}),[a,d,c.rows.length]);e.useEffect((function(){v(M.length)}),[M.length]);var k=e.useMemo((function(){return c.checkbox?c.rows.filter((function(e){var t;return null===(t=c.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[c.checkbox,c.rows]);e.useEffect((function(){g({type:"SET",payload:{checkedRecords:k}})}),[k]);var j=e.useMemo((function(){return l(M)}),[M,d]);e.useEffect((function(){p()}),[c.rows]);var q=e.useMemo((function(){return x(j)}),[x,j]),E=e.useMemo((function(){return q.map((function(e){return e.id}))}),[q]),S=e.useMemo((function(){return new Set(E)}),[E]),R=e.useMemo((function(){return c.rows.filter((function(e){return S.has(e.id)})).reduce((function(e,t){var r=Object.keys(t).sort().reduce((function(e,r){return e[r]=t[r],e}),{});return e[t.id]={data:r,stringValue:JSON.stringify(r)},e}),{})}),[c.rows,S]);return e.useEffect((function(){m(c.cols.length)}),[c.cols.length]),e.useEffect((function(){y(E.length)}),[E.length]),e.useEffect((function(){var e=E.map((function(e){return R[e].data}));C(e),w(e)}),[R]),{cols:c.cols,rowMaps:R,pageRowIds:E}};
1
+ "use strict";var e=require("react"),t=require("../pagenation/providers.js"),r=require("../checkbox/provider.js"),o=require("../sort/provider.js"),n=require("../table-property/provider.js"),u=require("../paste/provider.js"),s=require("../copy/provider.js"),i=require("../filter-v2/context.js");exports.useTable=function(c){var a=i.useFilterFunctions().filter,f=o.useSortActionContext(),p=f.sort,l=f.updatedData,d=o.useSortTimingContext(),x=t.usePageContext(),h=x.setRowCount,v=x.pageFilter,w=r.useCheckboxStatusContext().dispatchCheckboxStatus,C=u.usePasteActionContext().setRows,g=s.useCopyActionContext().setRows,m=n.useTablePropertyActionContext(),M=m.setMaxDisplayColCount,b=m.setMaxDisplayRowCount,y=e.useMemo((function(){return JSON.stringify(c.rows.map((function(e){return e.id})))}),[c.rows]),k=e.useMemo((function(){return a(c.rows)}),[a,d,y]);e.useEffect((function(){h(k.length)}),[k.length]);var q=e.useMemo((function(){return c.checkbox?c.rows.filter((function(e){var t;return null===(t=c.checkbox)||void 0===t?void 0:t.checked(e)})):[]}),[c.checkbox,c.rows]);e.useEffect((function(){w({type:"SET",payload:{checkedRecords:q}})}),[q]);var j=e.useMemo((function(){return p(k)}),[k,d]);e.useEffect((function(){l()}),[c.rows]);var E=e.useMemo((function(){return v(j)}),[v,j]),S=e.useMemo((function(){return E.map((function(e){return e.id}))}),[E]),R=e.useMemo((function(){return new Set(S)}),[S]),A=e.useMemo((function(){return c.rows.filter((function(e){return R.has(e.id)})).reduce((function(e,t){return e[t.id]={data:t},e}),{})}),[c.rows,R]);return e.useEffect((function(){M(c.cols.length)}),[c.cols.length]),e.useEffect((function(){b(S.length)}),[S.length]),e.useEffect((function(){var e=S.map((function(e){return A[e].data}));g(e),C(e)}),[A]),{cols:c.cols,rowMaps:A,pageRowIds:S}};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\nimport { useCopyActionContext } from \"../copy/provider\";\nimport { useFilterFunctions } from \"../filter-v2/context\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterFunctions();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows: setRowsForPaste } = usePasteActionContext();\n const { setRows: setRowsForCopy } = useCopyActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, props.rows.length]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n const rowSortedByKey = Object.keys(row)\n .sort()\n .reduce((acc, key) => {\n acc[key] = row[key];\n return acc;\n }, {} as { [key: string]: string | number | Date });\n\n acc[row.id] = {\n data: rowSortedByKey,\n stringValue: JSON.stringify(rowSortedByKey),\n };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any>; stringValue: string } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n const rows = pageRowIds.map((id) => rowMaps[id].data);\n setRowsForCopy(rows);\n setRowsForPaste(rows);\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n"],"names":["props","filter","useFilterFunctions","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRowsForPaste","usePasteActionContext","setRowsForCopy","useCopyActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","filteredRows","useMemo","rows","length","useEffect","checkBoxes","checkbox","row","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","map","id","pageRowIdSets","Set","rowMaps","has","reduce","acc","rowSortedByKey","Object","keys","key","data","stringValue","JSON","stringify","cols"],"mappings":"sTAUM,SAAyCA,GACrC,IAAAC,EAAWC,EAAAA,4BACbC,EAAwBC,EAAAA,uBAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,EAAAA,uBACbC,EAA8BC,EAAAA,iBAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,EAAAA,kDAClBC,EAAoBC,EAAAA,gCACpBC,EAAmBC,EAAAA,+BAC9BC,EACJC,EAAAA,gCADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,EAAAA,SACnB,WAAM,OAAAvB,EAAOD,EAAMyB,KAAb,GACN,CAACxB,EAAQM,EAAYP,EAAMyB,KAAKC,SAGlCC,EAAAA,WAAU,WACRhB,EAAYY,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,EAAAA,SAAQ,WACzB,OAAKxB,EAAM6B,SAIJ7B,EAAMyB,KAAKxB,QAAO,SAAC6B,GAAG,IAAA3B,EAAK,eAAAA,EAAAH,EAAM6B,+BAAUE,QAAQD,EAAI,IAHrD,EAIX,GAAG,CAAC9B,EAAM6B,SAAU7B,EAAMyB,OAE1BE,EAAAA,WAAU,WACRd,EAAuB,CACrBmB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,EAAAA,SACjB,WAAM,OAAAnB,EAAKkB,EAAL,GACN,CAACA,EAAchB,IAGjBoB,EAAAA,WAAU,WACRrB,GACF,GAAG,CAACN,EAAMyB,OAEV,IAAMW,EAAWZ,EAAAA,SACf,WAAM,OAAAZ,EAAWuB,EAAX,GACN,CAACvB,EAAYuB,IAGTE,EAAab,EAAAA,SAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAJ,GAAtB,GAA+B,CAACH,IAC3DI,EAAgBhB,EAAAA,SAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAR,GAAqB,CAACA,IAEpDK,EAAUlB,EAAAA,SACd,WACE,OAAAxB,EAAMyB,KACHxB,QAAO,SAAC6B,GAAQ,OAAAU,EAAcG,IAAIb,EAAIS,GAAtB,IAChBK,QAAO,SAACC,EAAKf,GACZ,IAAMgB,EAAiBC,OAAOC,KAAKlB,GAChCzB,OACAuC,QAAO,SAACC,EAAKI,GAEZ,OADAJ,EAAII,GAAOnB,EAAImB,GACRJ,CACT,GAAG,CAAA,GAML,OAJAA,EAAIf,EAAIS,IAAM,CACZW,KAAMJ,EACNK,YAAaC,KAAKC,UAAUP,IAEvBD,CACT,GAAG,CAAA,EAfL,GAgBF,CAAC7C,EAAMyB,KAAMe,IAiBf,OAdAb,EAAAA,WAAU,WACRN,EAAsBrB,EAAMsD,KAAK5B,OACnC,GAAG,CAAC1B,EAAMsD,KAAK5B,SAEfC,EAAAA,WAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,EAAAA,WAAU,WACR,IAAMF,EAAOY,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIW,IAAZ,IACpCjC,EAAeQ,GACfV,EAAgBU,EAClB,GAAG,CAACiB,IAEG,CACLY,KAAMtD,EAAMsD,KACZZ,QAAOA,EACPL,WAAUA,EAEd"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table/hook.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport { DataObject, DataRecord, TPropsTable } from \"./type\";\nimport { usePageContext } from \"../pagenation/providers\";\nimport { useCheckboxStatusContext } from \"../checkbox/provider\";\nimport { useSortActionContext, useSortTimingContext } from \"../sort/provider\";\nimport { useTablePropertyActionContext } from \"../table-property/provider\";\nimport { usePasteActionContext } from \"../paste/provider\";\nimport { useCopyActionContext } from \"../copy/provider\";\nimport { useFilterFunctions } from \"../filter-v2/context\";\n\nexport function useTable<T extends DataRecord>(props: TPropsTable<T>) {\n const { filter } = useFilterFunctions();\n const { sort, updatedData } = useSortActionContext();\n const sortTiming = useSortTimingContext();\n const { setRowCount, pageFilter } = usePageContext();\n const { dispatchCheckboxStatus } = useCheckboxStatusContext();\n const { setRows: setRowsForPaste } = usePasteActionContext();\n const { setRows: setRowsForCopy } = useCopyActionContext();\n const { setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyActionContext();\n\n // Re-run filter/sort only when the set of rows changes (rows added, removed\n // or replaced). Edits that keep the same ids keep the current order.\n const rowIdsKey = useMemo(\n () => JSON.stringify(props.rows.map((row) => row.id)),\n [props.rows]\n );\n\n const filteredRows = useMemo(\n () => filter(props.rows),\n [filter, sortTiming, rowIdsKey]\n );\n\n useEffect(() => {\n setRowCount(filteredRows.length);\n }, [filteredRows.length]);\n\n const checkBoxes = useMemo(() => {\n if (!props.checkbox) {\n return [];\n }\n\n return props.rows.filter((row) => props.checkbox?.checked(row));\n }, [props.checkbox, props.rows]);\n\n useEffect(() => {\n dispatchCheckboxStatus({\n type: \"SET\",\n payload: { checkedRecords: checkBoxes },\n });\n }, [checkBoxes]);\n\n const sortedRows = useMemo(\n () => sort(filteredRows),\n [filteredRows, sortTiming]\n );\n\n useEffect(() => {\n updatedData();\n }, [props.rows]);\n\n const pageRows = useMemo(\n () => pageFilter(sortedRows),\n [pageFilter, sortedRows]\n );\n\n const pageRowIds = useMemo(() => pageRows.map((row) => row.id), [pageRows]);\n const pageRowIdSets = useMemo(() => new Set(pageRowIds), [pageRowIds]);\n\n // Rows on the current page by id. `data` is the row object passed in\n // through props, so callbacks receive it unchanged (Date values stay Date).\n const rowMaps = useMemo(\n () =>\n props.rows\n .filter((row) => pageRowIdSets.has(row.id))\n .reduce((acc, row) => {\n acc[row.id] = { data: row };\n return acc;\n }, {} as { [id: string | number]: { data: DataObject<any> } }),\n [props.rows, pageRowIdSets]\n );\n\n useEffect(() => {\n setMaxDisplayColCount(props.cols.length);\n }, [props.cols.length]);\n\n useEffect(() => {\n setMaxDisplayRowCount(pageRowIds.length);\n }, [pageRowIds.length]);\n\n useEffect(() => {\n const rows = pageRowIds.map((id) => rowMaps[id].data);\n setRowsForCopy(rows);\n setRowsForPaste(rows);\n }, [rowMaps]);\n\n return {\n cols: props.cols,\n rowMaps,\n pageRowIds,\n };\n}\n"],"names":["props","filter","useFilterFunctions","_a","useSortActionContext","sort","updatedData","sortTiming","useSortTimingContext","_b","usePageContext","setRowCount","pageFilter","dispatchCheckboxStatus","useCheckboxStatusContext","setRowsForPaste","usePasteActionContext","setRowsForCopy","useCopyActionContext","_c","useTablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","rowIdsKey","useMemo","JSON","stringify","rows","map","row","id","filteredRows","useEffect","length","checkBoxes","checkbox","checked","type","payload","checkedRecords","sortedRows","pageRows","pageRowIds","pageRowIdSets","Set","rowMaps","has","reduce","acc","data","cols"],"mappings":"sTAUM,SAAyCA,GACrC,IAAAC,EAAWC,EAAAA,4BACbC,EAAwBC,EAAAA,uBAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,EAAAA,uBACbC,EAA8BC,EAAAA,iBAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,EAAAA,kDAClBC,EAAoBC,EAAAA,gCACpBC,EAAmBC,EAAAA,+BAC9BC,EACJC,EAAAA,gCADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAK9CC,EAAYC,WAChB,WAAM,OAAAC,KAAKC,UAAU1B,EAAM2B,KAAKC,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,IAAvC,GACN,CAAC9B,EAAM2B,OAGHI,EAAeP,EAAAA,SACnB,WAAM,OAAAvB,EAAOD,EAAM2B,KAAb,GACN,CAAC1B,EAAQM,EAAYgB,IAGvBS,EAAAA,WAAU,WACRrB,EAAYoB,EAAaE,OAC3B,GAAG,CAACF,EAAaE,SAEjB,IAAMC,EAAaV,EAAAA,SAAQ,WACzB,OAAKxB,EAAMmC,SAIJnC,EAAM2B,KAAK1B,QAAO,SAAC4B,GAAG,IAAA1B,EAAK,eAAAA,EAAAH,EAAMmC,+BAAUC,QAAQP,EAAI,IAHrD,EAIX,GAAG,CAAC7B,EAAMmC,SAAUnC,EAAM2B,OAE1BK,EAAAA,WAAU,WACRnB,EAAuB,CACrBwB,KAAM,MACNC,QAAS,CAAEC,eAAgBL,IAE/B,GAAG,CAACA,IAEJ,IAAMM,EAAahB,EAAAA,SACjB,WAAM,OAAAnB,EAAK0B,EAAL,GACN,CAACA,EAAcxB,IAGjByB,EAAAA,WAAU,WACR1B,GACF,GAAG,CAACN,EAAM2B,OAEV,IAAMc,EAAWjB,EAAAA,SACf,WAAM,OAAAZ,EAAW4B,EAAX,GACN,CAAC5B,EAAY4B,IAGTE,EAAalB,EAAAA,SAAQ,WAAM,OAAAiB,EAASb,KAAI,SAACC,GAAQ,OAAAA,EAAIC,EAAJ,GAAtB,GAA+B,CAACW,IAC3DE,EAAgBnB,EAAAA,SAAQ,WAAM,OAAA,IAAIoB,IAAIF,EAAR,GAAqB,CAACA,IAIpDG,EAAUrB,EAAAA,SACd,WACE,OAAAxB,EAAM2B,KACH1B,QAAO,SAAC4B,GAAQ,OAAAc,EAAcG,IAAIjB,EAAIC,GAAtB,IAChBiB,QAAO,SAACC,EAAKnB,GAEZ,OADAmB,EAAInB,EAAIC,IAAM,CAAEmB,KAAMpB,GACfmB,CACT,GAAG,CAAA,EALL,GAMF,CAAChD,EAAM2B,KAAMgB,IAiBf,OAdAX,EAAAA,WAAU,WACRX,EAAsBrB,EAAMkD,KAAKjB,OACnC,GAAG,CAACjC,EAAMkD,KAAKjB,SAEfD,EAAAA,WAAU,WACRV,EAAsBoB,EAAWT,OACnC,GAAG,CAACS,EAAWT,SAEfD,EAAAA,WAAU,WACR,IAAML,EAAOe,EAAWd,KAAI,SAACE,GAAO,OAAAe,EAAQf,GAAImB,IAAZ,IACpChC,EAAeU,GACfZ,EAAgBY,EAClB,GAAG,CAACkB,IAEG,CACLK,KAAMlD,EAAMkD,KACZL,QAAOA,EACPH,WAAUA,EAEd"}