@teppen/react-ui 1.8.14 → 1.9.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 (131) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/node_modules/react-icons/bi/index.js +1 -1
  3. package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -1
  4. package/dist/cjs/node_modules/react-icons/lib/iconBase.js +1 -1
  5. package/dist/cjs/node_modules/react-icons/lib/iconBase.js.map +1 -1
  6. package/dist/cjs/node_modules/react-icons/lu/index.js +1 -1
  7. package/dist/cjs/node_modules/react-icons/lu/index.js.map +1 -1
  8. package/dist/cjs/node_modules/react-icons/md/index.js +1 -1
  9. package/dist/cjs/node_modules/react-icons/md/index.js.map +1 -1
  10. package/dist/cjs/node_modules/react-icons/ti/index.js +1 -1
  11. package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -1
  12. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  13. package/dist/cjs/src/file-uploader/component.js.map +1 -1
  14. package/dist/cjs/src/file-uploader/hook.js.map +1 -1
  15. package/dist/cjs/src/icon/cancel-icon.js.map +1 -1
  16. package/dist/cjs/src/lib/errors.js.map +1 -1
  17. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/context.js.map +1 -1
  18. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -1
  19. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/provider.js.map +1 -1
  20. package/dist/cjs/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -1
  21. package/dist/cjs/src/search-bar/id-generator/context.js.map +1 -1
  22. package/dist/cjs/src/select-box/id/provider.js.map +1 -1
  23. package/dist/cjs/src/select-box/lib/id-generator.js.map +1 -1
  24. package/dist/cjs/src/select-box/options-window/component.js.map +1 -1
  25. package/dist/cjs/src/select-box/options-window/context.js.map +1 -1
  26. package/dist/cjs/src/select-box/options-window/hook.js.map +1 -1
  27. package/dist/cjs/src/select-box/options-window/provider.js.map +1 -1
  28. package/dist/cjs/src/select-box/options-window/reducer.js.map +1 -1
  29. package/dist/cjs/src/select-box/parts/frame.js.map +1 -1
  30. package/dist/cjs/src/table/cell/hooks.js.map +1 -1
  31. package/dist/cjs/src/table/checkbox/hooks.js.map +1 -1
  32. package/dist/cjs/src/table/checkbox/provider.js.map +1 -1
  33. package/dist/cjs/src/table/copy/components.js.map +1 -1
  34. package/dist/cjs/src/table/copy/hooks.js.map +1 -1
  35. package/dist/cjs/src/table/copy/provider.js.map +1 -1
  36. package/dist/cjs/src/table/edit/hooks.js.map +1 -1
  37. package/dist/cjs/src/table/edit/ui/editor.js.map +1 -1
  38. package/dist/cjs/src/table/filter-v2/context.js.map +1 -1
  39. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
  40. package/dist/cjs/src/table/filter-v2/provider.js.map +1 -1
  41. package/dist/cjs/src/table/filter-v2/reducer.js.map +1 -1
  42. package/dist/cjs/src/table/header/columns-width/context.js.map +1 -1
  43. package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -1
  44. package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -1
  45. package/dist/cjs/src/table/header/header-v2.js +1 -1
  46. package/dist/cjs/src/table/header/header-v2.js.map +1 -1
  47. package/dist/cjs/src/table/header/x-scroll-position/context.js.map +1 -1
  48. package/dist/cjs/src/table/header/x-scroll-position/provider.js.map +1 -1
  49. package/dist/cjs/src/table/header/x-scroll-position/reducer.js.map +1 -1
  50. package/dist/cjs/src/table/id/id-generator.js.map +1 -1
  51. package/dist/cjs/src/table/id/provider.js.map +1 -1
  52. package/dist/cjs/src/table/lib/errors.js.map +1 -1
  53. package/dist/cjs/src/table/libs/conditional-formatting.js.map +1 -1
  54. package/dist/cjs/src/table/libs/generate-validate-function.js.map +1 -1
  55. package/dist/cjs/src/table/pagenation/hooks.js.map +1 -1
  56. package/dist/cjs/src/table/paste/hooks.js +1 -1
  57. package/dist/cjs/src/table/paste/hooks.js.map +1 -1
  58. package/dist/cjs/src/table/paste/logic.js.map +1 -1
  59. package/dist/cjs/src/table/paste/provider.js.map +1 -1
  60. package/dist/cjs/src/table/range/hooks.js.map +1 -1
  61. package/dist/cjs/src/table/range/provider.js.map +1 -1
  62. package/dist/cjs/src/table/sheet/components.js.map +1 -1
  63. package/dist/cjs/src/table/sort/hooks.js.map +1 -1
  64. package/dist/cjs/src/table/sort/icon.js.map +1 -1
  65. package/dist/cjs/src/table/table/hook.js.map +1 -1
  66. package/dist/cjs/src/table/table-property/hook.js.map +1 -1
  67. package/dist/cjs/src/table/table-property/provider.js.map +1 -1
  68. package/dist/esm/node_modules/react-icons/bi/index.js +1 -1
  69. package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -1
  70. package/dist/esm/node_modules/react-icons/lib/iconBase.js +1 -1
  71. package/dist/esm/node_modules/react-icons/lib/iconBase.js.map +1 -1
  72. package/dist/esm/node_modules/react-icons/lu/index.js +1 -1
  73. package/dist/esm/node_modules/react-icons/lu/index.js.map +1 -1
  74. package/dist/esm/node_modules/react-icons/md/index.js +1 -1
  75. package/dist/esm/node_modules/react-icons/md/index.js.map +1 -1
  76. package/dist/esm/node_modules/react-icons/ti/index.js +1 -1
  77. package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -1
  78. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  79. package/dist/esm/src/file-uploader/component.js +1 -1
  80. package/dist/esm/src/file-uploader/component.js.map +1 -1
  81. package/dist/esm/src/file-uploader/hook.js.map +1 -1
  82. package/dist/esm/src/icon/cancel-icon.js.map +1 -1
  83. package/dist/esm/src/lib/errors.js.map +1 -1
  84. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/hook.js.map +1 -1
  85. package/dist/esm/src/search-bar/condition-search-bar/condition-input-management/reducer.js.map +1 -1
  86. package/dist/esm/src/select-box/lib/id-generator.js.map +1 -1
  87. package/dist/esm/src/select-box/options-window/component.js.map +1 -1
  88. package/dist/esm/src/select-box/options-window/hook.js.map +1 -1
  89. package/dist/esm/src/select-box/options-window/reducer.js.map +1 -1
  90. package/dist/esm/src/select-box/parts/frame.js.map +1 -1
  91. package/dist/esm/src/table/cell/hooks.js.map +1 -1
  92. package/dist/esm/src/table/checkbox/provider.js.map +1 -1
  93. package/dist/esm/src/table/copy/components.js.map +1 -1
  94. package/dist/esm/src/table/copy/hooks.js.map +1 -1
  95. package/dist/esm/src/table/copy/provider.js.map +1 -1
  96. package/dist/esm/src/table/edit/hooks.js.map +1 -1
  97. package/dist/esm/src/table/edit/provider.js +1 -1
  98. package/dist/esm/src/table/edit/ui/editor.js.map +1 -1
  99. package/dist/esm/src/table/filter-v2/context.js.map +1 -1
  100. package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
  101. package/dist/esm/src/table/filter-v2/provider.js.map +1 -1
  102. package/dist/esm/src/table/filter-v2/reducer.js.map +1 -1
  103. package/dist/esm/src/table/header/columns-width/provider.js +1 -1
  104. package/dist/esm/src/table/header/columns-width/reducer.js +1 -1
  105. package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -1
  106. package/dist/esm/src/table/header/header-v2-hook.js.map +1 -1
  107. package/dist/esm/src/table/header/header-v2.js +1 -1
  108. package/dist/esm/src/table/header/header-v2.js.map +1 -1
  109. package/dist/esm/src/table/header/x-scroll-position/reducer.js.map +1 -1
  110. package/dist/esm/src/table/id/id-generator.js.map +1 -1
  111. package/dist/esm/src/table/id/provider.js.map +1 -1
  112. package/dist/esm/src/table/lib/errors.js.map +1 -1
  113. package/dist/esm/src/table/libs/conditional-formatting.js.map +1 -1
  114. package/dist/esm/src/table/libs/generate-validate-function.js.map +1 -1
  115. package/dist/esm/src/table/pagenation/constants.js.map +1 -1
  116. package/dist/esm/src/table/pagenation/hooks.js.map +1 -1
  117. package/dist/esm/src/table/paste/hooks.js +1 -1
  118. package/dist/esm/src/table/paste/hooks.js.map +1 -1
  119. package/dist/esm/src/table/paste/logic.js.map +1 -1
  120. package/dist/esm/src/table/paste/provider.js.map +1 -1
  121. package/dist/esm/src/table/range/hooks.js.map +1 -1
  122. package/dist/esm/src/table/range/provider.js.map +1 -1
  123. package/dist/esm/src/table/sheet/components.js.map +1 -1
  124. package/dist/esm/src/table/sheet/providers.js +1 -1
  125. package/dist/esm/src/table/sort/hooks.js.map +1 -1
  126. package/dist/esm/src/table/sort/icon.js.map +1 -1
  127. package/dist/esm/src/table/table/hook.js.map +1 -1
  128. package/dist/esm/src/table/table-property/hook.js.map +1 -1
  129. package/dist/esm/src/table/table-property/provider.js.map +1 -1
  130. package/dist/index.d.ts +11 -10
  131. package/package.json +22 -14
@@ -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: JSX.Element | 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","PasteProvider","_a","children","rows","cols","_b","onUpdateRowFunction","_jsx","Provider","value","usePasteReducer","usePasteActionContext","useContext"],"mappings":"2IAIA,IAAMA,EAAeC,EAAmC,CACtDC,QAAS,WAAQ,EACjBC,QAAS,WAAQ,EACjBC,iBAAkB,WAAQ,EAC1BC,uBAAwB,WAAQ,EAChCC,QAAS,WAAQ,IAGb,SAAUC,EAAcC,GAC5B,IAAAC,EAAQD,EAAAC,SACRC,EAAIF,EAAAE,KACJC,EAAIH,EAAAG,KACJC,EAAAJ,EAAAK,oBAAAA,OAAsB,IAAAD,EAAA,WAAQ,EAAAA,EAO9B,OACEE,EAACd,EAAae,SACZ,CAAAC,MAAOC,EAAgB,CACrBP,KAAIA,EACJC,KAAIA,EACJE,oBAAmBA,IAGpBJ,SAAAA,GAGP,UAEgBS,IACd,OAAOC,EAAWnB,EACpB"}
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","PasteProvider","_a","children","rows","cols","_b","onUpdateRowFunction","_jsx","Provider","value","usePasteReducer","usePasteActionContext","useContext"],"mappings":"2IAIA,IAAMA,EAAeC,EAAmC,CACtDC,QAAS,WAAO,EAChBC,QAAS,WAAO,EAChBC,iBAAkB,WAAO,EACzBC,uBAAwB,WAAO,EAC/BC,QAAS,WAAO,IAGZ,SAAUC,EAAcC,GAC5B,IAAAC,EAAQD,EAAAC,SACRC,EAAIF,EAAAE,KACJC,EAAIH,EAAAG,KACJC,EAAAJ,EAAAK,oBAAAA,OAAmB,IAAAD,EAAG,WAAO,EAACA,EAO9B,OACEE,EAACd,EAAae,SAAQ,CACpBC,MAAOC,EAAgB,CACrBP,KAAIA,EACJC,KAAIA,EACJE,oBAAmBA,IACnBJ,SAEDA,GAGP,UAEgBS,IACd,OAAOC,EAAWnB,EACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/range/hooks.ts"],"sourcesContent":["import { useEffect, useMemo, useReducer } from \"react\";\nimport {\n IIndex,\n TRangeReducer,\n IRangeConstraint,\n TReturnRangeReducer,\n} from \"./type\";\nimport { useTableIdGenerator } from \"../id\";\n\nfunction newRangeConstraint(props: {\n maxColIndex: number;\n maxRowIndex: number;\n}): IRangeConstraint {\n return {\n maxColIndex: props.maxColIndex < -1 ? -1 : props.maxColIndex,\n maxRowIndex: props.maxRowIndex < -1 ? -1 : props.maxRowIndex,\n };\n}\n\nfunction newIndex(props: {\n rowIndex: number;\n colIndex: number;\n constraint: IRangeConstraint;\n}): IIndex {\n let rowIndex = props.rowIndex;\n let colIndex = props.colIndex;\n\n if (rowIndex < 0) {\n rowIndex = 0;\n } else if (props.constraint.maxRowIndex < rowIndex) {\n rowIndex = props.constraint.maxRowIndex;\n }\n\n if (colIndex < 0) {\n colIndex = 0;\n } else if (props.constraint.maxColIndex < colIndex) {\n colIndex = props.constraint.maxColIndex;\n }\n\n return { rowIndex, colIndex };\n}\n\nfunction equalIndex(a: IIndex, b: IIndex): boolean {\n return a.rowIndex === b.rowIndex && a.colIndex === b.colIndex;\n}\n\nconst MOVE_ACTION = {\n UP: { deltaRow: -1, deltaCol: 0 },\n DOWN: { deltaRow: 1, deltaCol: 0 },\n LEFT: { deltaRow: 0, deltaCol: -1 },\n RIGHT: { deltaRow: 0, deltaCol: 1 },\n} as const;\n\ntype TMoveAction = keyof typeof MOVE_ACTION;\n\nfunction moveIndex({\n index,\n direction,\n constraint,\n}: {\n index: IIndex;\n direction: TMoveAction;\n constraint: IRangeConstraint;\n}): IIndex {\n const { deltaRow, deltaCol } = MOVE_ACTION[direction];\n\n const newRow = index.rowIndex + deltaRow;\n const newCol = index.colIndex + deltaCol;\n\n return newIndex({\n rowIndex: newRow,\n colIndex: newCol,\n constraint,\n });\n}\n\nexport const rangeReducer: TRangeReducer = (state, action) => {\n switch (action.type) {\n /**\n * Actionが\"setMax\"の場合の説明:\n * - Actionのtypeが\"setMax\"の場合、選択範囲の最大値を設定します。\n * - payloadのmaxRowIndexとmaxColIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、constraintを新しい範囲制約に設定します。\n */\n case \"setMax\":\n return {\n ...state,\n constraint: newRangeConstraint(action.payload),\n };\n\n /**\n * Actionが\"start\"の場合の説明:\n * - Actionのtypeが\"start\"の場合、選択範囲の開始位置を設定します。\n * - payloadのrowIndexとcolIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、isSelectingをtrueに設定し、startとendの位置をpayloadの位置に設定します。\n */\n case \"startSelectRange\": {\n const startIndex = newIndex({\n rowIndex: action.payload.rowIndex,\n colIndex: action.payload.colIndex,\n constraint: state.constraint,\n });\n\n if (\n state.isSelecting &&\n equalIndex(state.start, startIndex) &&\n equalIndex(state.end, startIndex) &&\n state.inProgress\n ) {\n return state;\n }\n\n return {\n ...state,\n isSelecting: true,\n inProgress: true,\n start: startIndex,\n end: startIndex,\n };\n }\n\n case \"moveSelectRange\": {\n if (!state.isSelecting || !state.inProgress) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: action.payload.rowIndex,\n colIndex: action.payload.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(state.end, endIndex)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"end\"の場合の説明:\n * - Actionのtypeが\"end\"の場合、選択範囲の終了位置を設定します。\n * - payloadのrowIndexとcolIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、endの位置をpayloadの位置に設定します。\n * - この場合、isSelectingはtrueのままです。\n */\n case \"endSelectRange\": {\n if (!state.isSelecting || !state.inProgress) {\n return state;\n }\n\n return {\n ...state,\n inProgress: false,\n };\n }\n\n /**\n * Actionが\"moveUp\"の場合の説明:\n * - Actionのtypeが\"moveUp\"の場合、選択範囲を上に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ上に移動します。\n */\n case \"moveUp\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"UP\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveDown\"の場合の説明:\n * - Actionのtypeが\"moveDown\"の場合、選択範囲を下に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ下に移動します。\n */\n case \"moveDown\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"DOWN\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveLeft\"の場合の説明:\n * - Actionのtypeが\"moveLeft\"の場合、選択範囲を左に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ左に移動します。\n */\n case \"moveLeft\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"LEFT\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRight\"の場合の説明:\n * - Actionのtypeが\"moveRight\"の場合、選択範囲を右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ右に移動します。\n */\n case \"moveRight\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"RIGHT\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveTop\"の場合の説明:\n * - Actionのtypeが\"moveTop\"の場合、選択範囲を一番上に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番上に設定します。\n */\n case \"moveTop\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: 0,\n colIndex: state.start.colIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveBottom\"の場合の説明:\n * - Actionのtypeが\"moveBottom\"の場合、選択範囲を一番下に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番下に設定します。\n */\n case \"moveBottom\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.constraint.maxRowIndex,\n colIndex: state.start.colIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRightEnd\"の場合の説明:\n * - Actionのtypeが\"moveRightEnd\"の場合、選択範囲を一番右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番右に設定します。\n */\n case \"moveLeftEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.start.rowIndex,\n colIndex: 0,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRightEnd\"の場合の説明:\n * - Actionのtypeが\"moveRightEnd\"の場合、選択範囲を一番右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番右に設定します。\n */\n case \"moveRightEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.start.rowIndex,\n colIndex: state.constraint.maxColIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"extendUp\"の場合の説明:\n * - Actionのtypeが\"extendUp\"の場合、選択範囲を上に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ上に拡張します。\n */\n case \"extendUp\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"UP\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendDown\"の場合の説明:\n * - Actionのtypeが\"extendDown\"の場合、選択範囲を下に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ下に拡張します。\n */\n case \"extendDown\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"DOWN\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendLeft\"の場合の説明:\n * - Actionのtypeが\"extendLeft\"の場合、選択範囲を左に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ左に拡張します。\n */\n case \"extendLeft\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"LEFT\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRight\"の場合の説明:\n * - Actionのtypeが\"extendRight\"の場合、選択範囲を右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ右に拡張します。\n */\n case \"extendRight\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"RIGHT\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendTop\"の場合の説明:\n * - Actionのtypeが\"extendTop\"の場合、選択範囲を一番上に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番上に拡張します。\n */\n case \"extendTop\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: 0,\n colIndex: state.end.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendBottom\"の場合の説明:\n * - Actionのtypeが\"extendBottom\"の場合、選択範囲を一番下に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番下に拡張します。\n */\n case \"extendBottom\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.constraint.maxRowIndex,\n colIndex: state.end.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRightEnd\"の場合の説明:\n * - Actionのtypeが\"extendRightEnd\"の場合、選択範囲を一番右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番右に拡張します。\n */\n case \"extendLeftEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.end.rowIndex,\n colIndex: 0,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRightEnd\"の場合の説明:\n * - Actionのtypeが\"extendRightEnd\"の場合、選択範囲を一番右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番右に拡張します。\n */\n case \"extendRightEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.end.rowIndex,\n colIndex: state.constraint.maxColIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"reset\"の場合の説明:\n * - Actionのtypeが\"reset\"の場合、選択範囲をリセットします。\n * - isSelectingをfalseに設定します。\n */\n case \"reset\":\n return {\n constraint: state.constraint,\n isSelecting: false,\n };\n\n /**\n * Actionが\"setRange\"の場合の説明:\n * - Actionのtypeが\"setRange\"の場合、選択範囲を設定します。\n * - payloadのstartとendの位置を設定します。\n */\n case \"setRange\":\n return {\n ...state,\n isSelecting: true,\n inProgress: false,\n start: action.payload.start,\n end: action.payload.end,\n };\n }\n};\n\nexport function useRangeReducer(): TReturnRangeReducer {\n const IdGenerator = useTableIdGenerator();\n const [state, dispatch] = useReducer(rangeReducer, {\n constraint: newRangeConstraint({ maxColIndex: 0, maxRowIndex: 0 }),\n isSelecting: false,\n });\n\n const actions = useMemo(\n () => ({\n setMax: (payload: { maxRowIndex: number; maxColIndex: number }) => {\n dispatch({ type: \"setMax\", payload });\n },\n startSelectRange: (payload: { rowIndex: number; colIndex: number }) => {\n dispatch({ type: \"startSelectRange\", payload });\n },\n moveSelectRange: (payload: { rowIndex: number; colIndex: number }) => {\n dispatch({ type: \"moveSelectRange\", payload });\n },\n endSelectRange: () => {\n dispatch({ type: \"endSelectRange\" });\n },\n moveUp: () => {\n dispatch({ type: \"moveUp\" });\n },\n moveDown: () => {\n dispatch({ type: \"moveDown\" });\n },\n moveLeft: () => {\n dispatch({ type: \"moveLeft\" });\n },\n moveRight: () => {\n dispatch({ type: \"moveRight\" });\n },\n moveTop: () => {\n dispatch({ type: \"moveTop\" });\n },\n moveBottom: () => {\n dispatch({ type: \"moveBottom\" });\n },\n moveRightEnd: () => {\n dispatch({ type: \"moveRightEnd\" });\n },\n moveLeftEnd: () => {\n dispatch({ type: \"moveLeftEnd\" });\n },\n extendUp: () => {\n dispatch({ type: \"extendUp\" });\n },\n extendDown: () => {\n dispatch({ type: \"extendDown\" });\n },\n extendLeft: () => {\n dispatch({ type: \"extendLeft\" });\n },\n extendRight: () => {\n dispatch({ type: \"extendRight\" });\n },\n extendTop: () => {\n dispatch({ type: \"extendTop\" });\n },\n extendBottom: () => {\n dispatch({ type: \"extendBottom\" });\n },\n extendRightEnd: () => {\n dispatch({ type: \"extendRightEnd\" });\n },\n extendLeftEnd: () => {\n dispatch({ type: \"extendLeftEnd\" });\n },\n reset: () => {\n dispatch({ type: \"reset\" });\n },\n setRange: (payload: { start: IIndex; end: IIndex }) => {\n dispatch({ type: \"setRange\", payload });\n },\n }),\n []\n );\n\n useEffect(() => {\n const onClickOutOfTable = (e: MouseEvent) => {\n const element = document.getElementById(IdGenerator.getTableId());\n const ele = e.target;\n if (ele instanceof Node && element?.contains(ele)) return;\n dispatch({ type: \"reset\" });\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfTable);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfTable);\n };\n }, []);\n\n const exState = useMemo<TReturnRangeReducer[\"state\"]>(() => {\n if (!state.isSelecting) {\n return state;\n }\n\n const startElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.start.rowIndex,\n columnIndex: state.start.colIndex,\n })\n );\n const endElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.end.rowIndex,\n columnIndex: state.end.colIndex,\n })\n );\n const tableElement = document.getElementById(IdGenerator.getTableId());\n\n if (!startElement || !endElement || !tableElement) {\n dispatch({ type: \"reset\" });\n return { isSelecting: false };\n }\n\n const startRect = startElement.getBoundingClientRect();\n const endRect = endElement.getBoundingClientRect();\n const rectTable = tableElement.getBoundingClientRect();\n\n const adjustSize = {\n y: rectTable.top - tableElement.scrollTop,\n x: rectTable.left - tableElement.scrollLeft,\n };\n\n const startDivProps = {\n top: startRect.top - adjustSize.y,\n left: startRect.left - adjustSize.x,\n width: startRect.width,\n height: startRect.height,\n };\n\n const endDivProps = {\n top: endRect.top - adjustSize.y,\n left: endRect.left - adjustSize.x,\n width: endRect.width,\n height: endRect.height,\n };\n\n return {\n isSelecting: true,\n start: {\n ...state.start,\n xStart: startDivProps.left,\n xEnd: startDivProps.left + startDivProps.width,\n yStart: startDivProps.top,\n yEnd: startDivProps.top + startDivProps.height,\n },\n end: {\n ...state.end,\n xStart: endDivProps.left,\n xEnd: endDivProps.left + endDivProps.width,\n yStart: endDivProps.top,\n yEnd: endDivProps.top + endDivProps.height,\n },\n rangeBox: {\n top: Math.min(startDivProps.top, endDivProps.top),\n left: Math.min(startDivProps.left, endDivProps.left),\n width:\n Math.abs(startDivProps.left - endDivProps.left) +\n (startDivProps.left <= endDivProps.left\n ? endDivProps.width\n : startDivProps.width),\n height:\n Math.abs(startDivProps.top - endDivProps.top) +\n (startDivProps.top <= endDivProps.top\n ? endDivProps.height\n : startDivProps.height),\n },\n };\n }, [state]);\n\n return {\n state: exState,\n actions,\n };\n}\n"],"names":["newRangeConstraint","props","maxColIndex","maxRowIndex","newIndex","rowIndex","colIndex","constraint","equalIndex","a","b","MOVE_ACTION","UP","deltaRow","deltaCol","DOWN","LEFT","RIGHT","moveIndex","_a","index","direction","_b","rangeReducer","state","action","type","__assign","payload","startIndex","isSelecting","start","end","inProgress","endIndex","useRangeReducer","IdGenerator","useTableIdGenerator","useReducer","dispatch","actions","useMemo","setMax","startSelectRange","moveSelectRange","endSelectRange","moveUp","moveDown","moveLeft","moveRight","moveTop","moveBottom","moveRightEnd","moveLeftEnd","extendUp","extendDown","extendLeft","extendRight","extendTop","extendBottom","extendRightEnd","extendLeftEnd","reset","setRange","useEffect","onClickOutOfTable","e","element","document","getElementById","getTableId","ele","target","Node","contains","addEventListener","removeEventListener","startElement","getTableCellId","columnIndex","endElement","tableElement","startRect","getBoundingClientRect","endRect","rectTable","adjustSize","top","scrollTop","left","scrollLeft","startDivProps","width","height","endDivProps","xStart","xEnd","yStart","yEnd","rangeBox","Math","min","abs"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/range/hooks.ts"],"sourcesContent":["import { useEffect, useMemo, useReducer } from \"react\";\nimport {\n IIndex,\n TRangeReducer,\n IRangeConstraint,\n TReturnRangeReducer,\n} from \"./type\";\nimport { useTableIdGenerator } from \"../id\";\n\nfunction newRangeConstraint(props: {\n maxColIndex: number;\n maxRowIndex: number;\n}): IRangeConstraint {\n return {\n maxColIndex: props.maxColIndex < -1 ? -1 : props.maxColIndex,\n maxRowIndex: props.maxRowIndex < -1 ? -1 : props.maxRowIndex,\n };\n}\n\nfunction newIndex(props: {\n rowIndex: number;\n colIndex: number;\n constraint: IRangeConstraint;\n}): IIndex {\n let rowIndex = props.rowIndex;\n let colIndex = props.colIndex;\n\n if (rowIndex < 0) {\n rowIndex = 0;\n } else if (props.constraint.maxRowIndex < rowIndex) {\n rowIndex = props.constraint.maxRowIndex;\n }\n\n if (colIndex < 0) {\n colIndex = 0;\n } else if (props.constraint.maxColIndex < colIndex) {\n colIndex = props.constraint.maxColIndex;\n }\n\n return { rowIndex, colIndex };\n}\n\nfunction equalIndex(a: IIndex, b: IIndex): boolean {\n return a.rowIndex === b.rowIndex && a.colIndex === b.colIndex;\n}\n\nconst MOVE_ACTION = {\n UP: { deltaRow: -1, deltaCol: 0 },\n DOWN: { deltaRow: 1, deltaCol: 0 },\n LEFT: { deltaRow: 0, deltaCol: -1 },\n RIGHT: { deltaRow: 0, deltaCol: 1 },\n} as const;\n\ntype TMoveAction = keyof typeof MOVE_ACTION;\n\nfunction moveIndex({\n index,\n direction,\n constraint,\n}: {\n index: IIndex;\n direction: TMoveAction;\n constraint: IRangeConstraint;\n}): IIndex {\n const { deltaRow, deltaCol } = MOVE_ACTION[direction];\n\n const newRow = index.rowIndex + deltaRow;\n const newCol = index.colIndex + deltaCol;\n\n return newIndex({\n rowIndex: newRow,\n colIndex: newCol,\n constraint,\n });\n}\n\nexport const rangeReducer: TRangeReducer = (state, action) => {\n switch (action.type) {\n /**\n * Actionが\"setMax\"の場合の説明:\n * - Actionのtypeが\"setMax\"の場合、選択範囲の最大値を設定します。\n * - payloadのmaxRowIndexとmaxColIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、constraintを新しい範囲制約に設定します。\n */\n case \"setMax\":\n return {\n ...state,\n constraint: newRangeConstraint(action.payload),\n };\n\n /**\n * Actionが\"start\"の場合の説明:\n * - Actionのtypeが\"start\"の場合、選択範囲の開始位置を設定します。\n * - payloadのrowIndexとcolIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、isSelectingをtrueに設定し、startとendの位置をpayloadの位置に設定します。\n */\n case \"startSelectRange\": {\n const startIndex = newIndex({\n rowIndex: action.payload.rowIndex,\n colIndex: action.payload.colIndex,\n constraint: state.constraint,\n });\n\n if (\n state.isSelecting &&\n equalIndex(state.start, startIndex) &&\n equalIndex(state.end, startIndex) &&\n state.inProgress\n ) {\n return state;\n }\n\n return {\n ...state,\n isSelecting: true,\n inProgress: true,\n start: startIndex,\n end: startIndex,\n };\n }\n\n case \"moveSelectRange\": {\n if (!state.isSelecting || !state.inProgress) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: action.payload.rowIndex,\n colIndex: action.payload.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(state.end, endIndex)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"end\"の場合の説明:\n * - Actionのtypeが\"end\"の場合、選択範囲の終了位置を設定します。\n * - payloadのrowIndexとcolIndexが範囲外の場合、OutOfRangeErrorをスローします。\n * - 範囲内の場合、endの位置をpayloadの位置に設定します。\n * - この場合、isSelectingはtrueのままです。\n */\n case \"endSelectRange\": {\n if (!state.isSelecting || !state.inProgress) {\n return state;\n }\n\n return {\n ...state,\n inProgress: false,\n };\n }\n\n /**\n * Actionが\"moveUp\"の場合の説明:\n * - Actionのtypeが\"moveUp\"の場合、選択範囲を上に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ上に移動します。\n */\n case \"moveUp\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"UP\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveDown\"の場合の説明:\n * - Actionのtypeが\"moveDown\"の場合、選択範囲を下に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ下に移動します。\n */\n case \"moveDown\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"DOWN\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveLeft\"の場合の説明:\n * - Actionのtypeが\"moveLeft\"の場合、選択範囲を左に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ左に移動します。\n */\n case \"moveLeft\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"LEFT\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRight\"の場合の説明:\n * - Actionのtypeが\"moveRight\"の場合、選択範囲を右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ右に移動します。\n */\n case \"moveRight\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = moveIndex({\n index: state.start,\n direction: \"RIGHT\",\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveTop\"の場合の説明:\n * - Actionのtypeが\"moveTop\"の場合、選択範囲を一番上に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番上に設定します。\n */\n case \"moveTop\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: 0,\n colIndex: state.start.colIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveBottom\"の場合の説明:\n * - Actionのtypeが\"moveBottom\"の場合、選択範囲を一番下に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番下に設定します。\n */\n case \"moveBottom\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.constraint.maxRowIndex,\n colIndex: state.start.colIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRightEnd\"の場合の説明:\n * - Actionのtypeが\"moveRightEnd\"の場合、選択範囲を一番右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番右に設定します。\n */\n case \"moveLeftEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.start.rowIndex,\n colIndex: 0,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"moveRightEnd\"の場合の説明:\n * - Actionのtypeが\"moveRightEnd\"の場合、選択範囲を一番右に移動します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、startとendの位置を一番右に設定します。\n */\n case \"moveRightEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const startIndex = newIndex({\n rowIndex: state.start.rowIndex,\n colIndex: state.constraint.maxColIndex,\n constraint: state.constraint,\n });\n\n if (\n equalIndex(startIndex, state.start) &&\n equalIndex(startIndex, state.end)\n ) {\n return state;\n }\n\n return {\n ...state,\n start: startIndex,\n end: startIndex,\n };\n }\n\n /**\n * Actionが\"extendUp\"の場合の説明:\n * - Actionのtypeが\"extendUp\"の場合、選択範囲を上に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ上に拡張します。\n */\n case \"extendUp\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"UP\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendDown\"の場合の説明:\n * - Actionのtypeが\"extendDown\"の場合、選択範囲を下に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ下に拡張します。\n */\n case \"extendDown\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"DOWN\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendLeft\"の場合の説明:\n * - Actionのtypeが\"extendLeft\"の場合、選択範囲を左に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ左に拡張します。\n */\n case \"extendLeft\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"LEFT\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRight\"の場合の説明:\n * - Actionのtypeが\"extendRight\"の場合、選択範囲を右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を1つ右に拡張します。\n */\n case \"extendRight\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = moveIndex({\n index: state.end,\n direction: \"RIGHT\",\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendTop\"の場合の説明:\n * - Actionのtypeが\"extendTop\"の場合、選択範囲を一番上に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番上に拡張します。\n */\n case \"extendTop\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: 0,\n colIndex: state.end.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendBottom\"の場合の説明:\n * - Actionのtypeが\"extendBottom\"の場合、選択範囲を一番下に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番下に拡張します。\n */\n case \"extendBottom\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.constraint.maxRowIndex,\n colIndex: state.end.colIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRightEnd\"の場合の説明:\n * - Actionのtypeが\"extendRightEnd\"の場合、選択範囲を一番右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番右に拡張します。\n */\n case \"extendLeftEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.end.rowIndex,\n colIndex: 0,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"extendRightEnd\"の場合の説明:\n * - Actionのtypeが\"extendRightEnd\"の場合、選択範囲を一番右に拡張します。\n * - isSelectingがfalseの場合、InvalidOperationErrorをスローします。\n * - 移動後の位置がstartとendが同じ場合、stateをそのまま返します。\n * - それ以外の場合、endの位置を一番右に拡張します。\n */\n case \"extendRightEnd\": {\n if (!state.isSelecting) {\n return state;\n }\n\n const endIndex = newIndex({\n rowIndex: state.end.rowIndex,\n colIndex: state.constraint.maxColIndex,\n constraint: state.constraint,\n });\n\n if (equalIndex(endIndex, state.end)) {\n return state;\n }\n\n return {\n ...state,\n end: endIndex,\n };\n }\n\n /**\n * Actionが\"reset\"の場合の説明:\n * - Actionのtypeが\"reset\"の場合、選択範囲をリセットします。\n * - isSelectingをfalseに設定します。\n */\n case \"reset\":\n return {\n constraint: state.constraint,\n isSelecting: false,\n };\n\n /**\n * Actionが\"setRange\"の場合の説明:\n * - Actionのtypeが\"setRange\"の場合、選択範囲を設定します。\n * - payloadのstartとendの位置を設定します。\n */\n case \"setRange\":\n return {\n ...state,\n isSelecting: true,\n inProgress: false,\n start: action.payload.start,\n end: action.payload.end,\n };\n }\n};\n\nexport function useRangeReducer(): TReturnRangeReducer {\n const IdGenerator = useTableIdGenerator();\n const [state, dispatch] = useReducer(rangeReducer, {\n constraint: newRangeConstraint({ maxColIndex: 0, maxRowIndex: 0 }),\n isSelecting: false,\n });\n\n const actions = useMemo(\n () => ({\n setMax: (payload: { maxRowIndex: number; maxColIndex: number }) => {\n dispatch({ type: \"setMax\", payload });\n },\n startSelectRange: (payload: { rowIndex: number; colIndex: number }) => {\n dispatch({ type: \"startSelectRange\", payload });\n },\n moveSelectRange: (payload: { rowIndex: number; colIndex: number }) => {\n dispatch({ type: \"moveSelectRange\", payload });\n },\n endSelectRange: () => {\n dispatch({ type: \"endSelectRange\" });\n },\n moveUp: () => {\n dispatch({ type: \"moveUp\" });\n },\n moveDown: () => {\n dispatch({ type: \"moveDown\" });\n },\n moveLeft: () => {\n dispatch({ type: \"moveLeft\" });\n },\n moveRight: () => {\n dispatch({ type: \"moveRight\" });\n },\n moveTop: () => {\n dispatch({ type: \"moveTop\" });\n },\n moveBottom: () => {\n dispatch({ type: \"moveBottom\" });\n },\n moveRightEnd: () => {\n dispatch({ type: \"moveRightEnd\" });\n },\n moveLeftEnd: () => {\n dispatch({ type: \"moveLeftEnd\" });\n },\n extendUp: () => {\n dispatch({ type: \"extendUp\" });\n },\n extendDown: () => {\n dispatch({ type: \"extendDown\" });\n },\n extendLeft: () => {\n dispatch({ type: \"extendLeft\" });\n },\n extendRight: () => {\n dispatch({ type: \"extendRight\" });\n },\n extendTop: () => {\n dispatch({ type: \"extendTop\" });\n },\n extendBottom: () => {\n dispatch({ type: \"extendBottom\" });\n },\n extendRightEnd: () => {\n dispatch({ type: \"extendRightEnd\" });\n },\n extendLeftEnd: () => {\n dispatch({ type: \"extendLeftEnd\" });\n },\n reset: () => {\n dispatch({ type: \"reset\" });\n },\n setRange: (payload: { start: IIndex; end: IIndex }) => {\n dispatch({ type: \"setRange\", payload });\n },\n }),\n []\n );\n\n useEffect(() => {\n const onClickOutOfTable = (e: MouseEvent) => {\n const element = document.getElementById(IdGenerator.getTableId());\n const ele = e.target;\n if (ele instanceof Node && element?.contains(ele)) return;\n dispatch({ type: \"reset\" });\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfTable);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfTable);\n };\n }, []);\n\n const exState = useMemo<TReturnRangeReducer[\"state\"]>(() => {\n if (!state.isSelecting) {\n return state;\n }\n\n const startElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.start.rowIndex,\n columnIndex: state.start.colIndex,\n })\n );\n const endElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.end.rowIndex,\n columnIndex: state.end.colIndex,\n })\n );\n const tableElement = document.getElementById(IdGenerator.getTableId());\n\n if (!startElement || !endElement || !tableElement) {\n dispatch({ type: \"reset\" });\n return { isSelecting: false };\n }\n\n const startRect = startElement.getBoundingClientRect();\n const endRect = endElement.getBoundingClientRect();\n const rectTable = tableElement.getBoundingClientRect();\n\n const adjustSize = {\n y: rectTable.top - tableElement.scrollTop,\n x: rectTable.left - tableElement.scrollLeft,\n };\n\n const startDivProps = {\n top: startRect.top - adjustSize.y,\n left: startRect.left - adjustSize.x,\n width: startRect.width,\n height: startRect.height,\n };\n\n const endDivProps = {\n top: endRect.top - adjustSize.y,\n left: endRect.left - adjustSize.x,\n width: endRect.width,\n height: endRect.height,\n };\n\n return {\n isSelecting: true,\n start: {\n ...state.start,\n xStart: startDivProps.left,\n xEnd: startDivProps.left + startDivProps.width,\n yStart: startDivProps.top,\n yEnd: startDivProps.top + startDivProps.height,\n },\n end: {\n ...state.end,\n xStart: endDivProps.left,\n xEnd: endDivProps.left + endDivProps.width,\n yStart: endDivProps.top,\n yEnd: endDivProps.top + endDivProps.height,\n },\n rangeBox: {\n top: Math.min(startDivProps.top, endDivProps.top),\n left: Math.min(startDivProps.left, endDivProps.left),\n width:\n Math.abs(startDivProps.left - endDivProps.left) +\n (startDivProps.left <= endDivProps.left\n ? endDivProps.width\n : startDivProps.width),\n height:\n Math.abs(startDivProps.top - endDivProps.top) +\n (startDivProps.top <= endDivProps.top\n ? endDivProps.height\n : startDivProps.height),\n },\n };\n }, [state]);\n\n return {\n state: exState,\n actions,\n };\n}\n"],"names":["newRangeConstraint","props","maxColIndex","maxRowIndex","newIndex","rowIndex","colIndex","constraint","equalIndex","a","b","MOVE_ACTION","UP","deltaRow","deltaCol","DOWN","LEFT","RIGHT","moveIndex","_a","index","direction","_b","rangeReducer","state","action","type","__assign","payload","startIndex","isSelecting","start","end","inProgress","endIndex","useRangeReducer","IdGenerator","useTableIdGenerator","useReducer","dispatch","actions","useMemo","setMax","startSelectRange","moveSelectRange","endSelectRange","moveUp","moveDown","moveLeft","moveRight","moveTop","moveBottom","moveRightEnd","moveLeftEnd","extendUp","extendDown","extendLeft","extendRight","extendTop","extendBottom","extendRightEnd","extendLeftEnd","reset","setRange","useEffect","onClickOutOfTable","e","element","document","getElementById","getTableId","ele","target","Node","contains","addEventListener","removeEventListener","startElement","getTableCellId","columnIndex","endElement","tableElement","startRect","getBoundingClientRect","endRect","rectTable","adjustSize","top","scrollTop","left","scrollLeft","startDivProps","width","height","endDivProps","xStart","xEnd","yStart","yEnd","rangeBox","Math","min","abs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/range/provider.tsx"],"sourcesContent":["import { createContext, useContext, useEffect } from \"react\";\nimport { TRangeActionContext, TRangeStateContext } from \"./type\";\nimport { NoImplementeFunction } from \"../lib/errors\";\nimport { useRangeReducer } from \"./hooks\";\nimport { useTablePropertyStateContext } from \"../table-property/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\nconst RangeStateContext = createContext<TRangeStateContext>({\n isSelecting: false,\n});\n\nconst RangeActionContext = createContext<TRangeActionContext>({\n setMax: NoImplementeFunction,\n startSelectRange: NoImplementeFunction,\n moveSelectRange: NoImplementeFunction,\n endSelectRange: NoImplementeFunction,\n moveUp: NoImplementeFunction,\n moveDown: NoImplementeFunction,\n moveLeft: NoImplementeFunction,\n moveRight: NoImplementeFunction,\n moveTop: NoImplementeFunction,\n moveBottom: NoImplementeFunction,\n moveRightEnd: NoImplementeFunction,\n moveLeftEnd: NoImplementeFunction,\n extendUp: NoImplementeFunction,\n extendDown: NoImplementeFunction,\n extendLeft: NoImplementeFunction,\n extendRight: NoImplementeFunction,\n extendTop: NoImplementeFunction,\n extendBottom: NoImplementeFunction,\n extendRightEnd: NoImplementeFunction,\n extendLeftEnd: NoImplementeFunction,\n reset: NoImplementeFunction,\n setRange: NoImplementeFunction,\n});\n\nexport function useRangeStateContext() {\n return useContext(RangeStateContext);\n}\n\nexport function useRangeActionContext() {\n return useContext(RangeActionContext);\n}\n\nexport function useRangeContext() {\n return { ...useRangeStateContext(), ...useRangeActionContext() };\n}\n\nfunction EffectSetMax() {\n const { setMax } = useRangeActionContext();\n const { maxDisplayRowCount, maxDisplayColCount } =\n useTablePropertyStateContext();\n\n useEffect(() => {\n setMax({\n maxRowIndex: maxDisplayRowCount - 1,\n maxColIndex: maxDisplayColCount - 1,\n });\n }, [maxDisplayRowCount, maxDisplayColCount]);\n\n return <></>;\n}\n\nexport function TestRange(props: { isCopied?: boolean }) {\n const IdGenerator = useTableIdGenerator();\n const state = useRangeStateContext();\n\n useEffect(() => {\n if (state.isSelecting) {\n const endElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.end.rowIndex,\n columnIndex: state.end.colIndex,\n })\n );\n\n if (endElement) {\n endElement.scrollIntoView({\n behavior: \"instant\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n endElement.focus();\n }\n }\n }, [state]);\n\n if (!state.isSelecting) {\n return <></>;\n }\n\n const { rangeBox, start, end } = state;\n\n const clickboxPoint = {\n x: start.xEnd < end.xEnd ? end.xEnd : start.xEnd,\n y: start.yEnd < end.yEnd ? end.yEnd : start.yEnd,\n };\n\n return (\n <>\n <div\n className={`absolute border border-gray-500 bg-gray-500 bg-opacity-10 ${\n props.isCopied ? \"border-dashed\" : \"border-solid\"\n }`}\n style={{\n top: rangeBox.top,\n left: rangeBox.left,\n width: rangeBox.width,\n height: rangeBox.height,\n pointerEvents: \"none\",\n }}\n ></div>\n {/* <div\n className=\"absolute bg-gray-700\"\n style={{\n top: clickboxPoint.y - 5,\n left: clickboxPoint.x - 5,\n width: 10,\n height: 10,\n pointerEvents: \"none\",\n }}\n /> */}\n </>\n );\n}\n\nexport function RangeProvider({\n children,\n}: {\n children: JSX.Element | JSX.Element[];\n}) {\n const { state, actions } = useRangeReducer();\n\n return (\n <RangeStateContext.Provider value={state}>\n <RangeActionContext.Provider value={actions}>\n <EffectSetMax />\n {children}\n </RangeActionContext.Provider>\n </RangeStateContext.Provider>\n );\n}\n"],"names":["RangeStateContext","createContext","isSelecting","RangeActionContext","setMax","NoImplementeFunction","startSelectRange","moveSelectRange","endSelectRange","moveUp","moveDown","moveLeft","moveRight","moveTop","moveBottom","moveRightEnd","moveLeftEnd","extendUp","extendDown","extendLeft","extendRight","extendTop","extendBottom","extendRightEnd","extendLeftEnd","reset","setRange","useRangeStateContext","useContext","useRangeActionContext","useRangeContext","__assign","EffectSetMax","_a","useTablePropertyStateContext","maxDisplayRowCount","maxDisplayColCount","useEffect","maxRowIndex","maxColIndex","_jsx","TestRange","props","IdGenerator","useTableIdGenerator","state","endElement","document","getElementById","getTableCellId","rowIndex","end","columnIndex","colIndex","scrollIntoView","behavior","block","inline","focus","rangeBox","start","xEnd","yEnd","className","concat","isCopied","style","top","left","width","height","pointerEvents","RangeProvider","children","_b","useRangeReducer","actions","Provider","value","_jsxs"],"mappings":"mbAOA,IAAMA,EAAoBC,EAAkC,CAC1DC,aAAa,IAGTC,EAAqBF,EAAmC,CAC5DG,OAAQC,EACRC,iBAAkBD,EAClBE,gBAAiBF,EACjBG,eAAgBH,EAChBI,OAAQJ,EACRK,SAAUL,EACVM,SAAUN,EACVO,UAAWP,EACXQ,QAASR,EACTS,WAAYT,EACZU,aAAcV,EACdW,YAAaX,EACbY,SAAUZ,EACVa,WAAYb,EACZc,WAAYd,EACZe,YAAaf,EACbgB,UAAWhB,EACXiB,aAAcjB,EACdkB,eAAgBlB,EAChBmB,cAAenB,EACfoB,MAAOpB,EACPqB,SAAUrB,aAGIsB,IACd,OAAOC,EAAW5B,EACpB,UAEgB6B,IACd,OAAOD,EAAWzB,EACpB,UAEgB2B,IACd,OAAAC,EAAAA,EAAA,CAAA,EAAYJ,KAA2BE,IACzC,CAEA,SAASG,IACC,IAAA5B,EAAWyB,WACbI,EACJC,IADMC,EAAkBF,EAAAE,mBAAEC,EAAkBH,EAAAG,mBAU9C,OAPAC,GAAU,WACRjC,EAAO,CACLkC,YAAaH,EAAqB,EAClCI,YAAaH,EAAqB,GAEtC,GAAG,CAACD,EAAoBC,IAEjBI,OACT,CAEM,SAAUC,EAAUC,GACxB,IAAMC,EAAcC,IACdC,EAAQlB,IAsBd,GApBAU,GAAU,WACR,GAAIQ,EAAM3C,YAAa,CACrB,IAAM4C,EAAaC,SAASC,eAC1BL,EAAYM,eAAe,CACzBC,SAAUL,EAAMM,IAAID,SACpBE,YAAaP,EAAMM,IAAIE,YAIvBP,IACFA,EAAWQ,eAAe,CACxBC,SAAU,UACVC,MAAO,UACPC,OAAQ,YAEVX,EAAWY,QAEd,CACH,GAAG,CAACb,KAECA,EAAM3C,YACT,OAAOsC,QAGD,IAAAmB,EAAyBd,EAAKc,SAApBC,EAAef,EAAKe,MAAbT,EAAQN,MAOjC,OAJKe,EAAMC,KAAOV,EAAIU,KAAOV,EAAIU,KAAOD,EAAMC,KACzCD,EAAME,KAAOX,EAAIW,KAAOX,EAAIW,KAAOF,EAAME,KAI5CtB,cACEA,EACE,MAAA,CAAAuB,UAAW,6DACTC,OAAAtB,EAAMuB,SAAW,gBAAkB,gBAErCC,MAAO,CACLC,IAAKR,EAASQ,IACdC,KAAMT,EAASS,KACfC,MAAOV,EAASU,MAChBC,OAAQX,EAASW,OACjBC,cAAe,WAezB,CAEM,SAAUC,EAAcvC,GAC5B,IAAAwC,EAAQxC,EAAAwC,SAIFC,EAAqBC,IAAnB9B,EAAK6B,EAAA7B,MAAE+B,EAAOF,EAAAE,QAEtB,OACEpC,EAACxC,EAAkB6E,SAAS,CAAAC,MAAOjC,EACjC4B,SAAAM,EAAC5E,EAAmB0E,SAAQ,CAACC,MAAOF,EAAOH,SAAA,CACzCjC,EAACR,EAAe,CAAA,GACfyC,MAIT"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/range/provider.tsx"],"sourcesContent":["import { createContext, useContext, useEffect } from \"react\";\nimport { TRangeActionContext, TRangeStateContext } from \"./type\";\nimport { NoImplementeFunction } from \"../lib/errors\";\nimport { useRangeReducer } from \"./hooks\";\nimport { useTablePropertyStateContext } from \"../table-property/provider\";\nimport { useTableIdGenerator } from \"../id\";\n\nconst RangeStateContext = createContext<TRangeStateContext>({\n isSelecting: false,\n});\n\nconst RangeActionContext = createContext<TRangeActionContext>({\n setMax: NoImplementeFunction,\n startSelectRange: NoImplementeFunction,\n moveSelectRange: NoImplementeFunction,\n endSelectRange: NoImplementeFunction,\n moveUp: NoImplementeFunction,\n moveDown: NoImplementeFunction,\n moveLeft: NoImplementeFunction,\n moveRight: NoImplementeFunction,\n moveTop: NoImplementeFunction,\n moveBottom: NoImplementeFunction,\n moveRightEnd: NoImplementeFunction,\n moveLeftEnd: NoImplementeFunction,\n extendUp: NoImplementeFunction,\n extendDown: NoImplementeFunction,\n extendLeft: NoImplementeFunction,\n extendRight: NoImplementeFunction,\n extendTop: NoImplementeFunction,\n extendBottom: NoImplementeFunction,\n extendRightEnd: NoImplementeFunction,\n extendLeftEnd: NoImplementeFunction,\n reset: NoImplementeFunction,\n setRange: NoImplementeFunction,\n});\n\nexport function useRangeStateContext() {\n return useContext(RangeStateContext);\n}\n\nexport function useRangeActionContext() {\n return useContext(RangeActionContext);\n}\n\nexport function useRangeContext() {\n return { ...useRangeStateContext(), ...useRangeActionContext() };\n}\n\nfunction EffectSetMax() {\n const { setMax } = useRangeActionContext();\n const { maxDisplayRowCount, maxDisplayColCount } =\n useTablePropertyStateContext();\n\n useEffect(() => {\n setMax({\n maxRowIndex: maxDisplayRowCount - 1,\n maxColIndex: maxDisplayColCount - 1,\n });\n }, [maxDisplayRowCount, maxDisplayColCount]);\n\n return <></>;\n}\n\nexport function TestRange(props: { isCopied?: boolean }) {\n const IdGenerator = useTableIdGenerator();\n const state = useRangeStateContext();\n\n useEffect(() => {\n if (state.isSelecting) {\n const endElement = document.getElementById(\n IdGenerator.getTableCellId({\n rowIndex: state.end.rowIndex,\n columnIndex: state.end.colIndex,\n })\n );\n\n if (endElement) {\n endElement.scrollIntoView({\n behavior: \"instant\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n endElement.focus();\n }\n }\n }, [state]);\n\n if (!state.isSelecting) {\n return <></>;\n }\n\n const { rangeBox, start, end } = state;\n\n const clickboxPoint = {\n x: start.xEnd < end.xEnd ? end.xEnd : start.xEnd,\n y: start.yEnd < end.yEnd ? end.yEnd : start.yEnd,\n };\n\n return (\n <>\n <div\n className={`absolute border border-gray-500 bg-gray-500 bg-opacity-10 ${\n props.isCopied ? \"border-dashed\" : \"border-solid\"\n }`}\n style={{\n top: rangeBox.top,\n left: rangeBox.left,\n width: rangeBox.width,\n height: rangeBox.height,\n pointerEvents: \"none\",\n }}\n ></div>\n {/* <div\n className=\"absolute bg-gray-700\"\n style={{\n top: clickboxPoint.y - 5,\n left: clickboxPoint.x - 5,\n width: 10,\n height: 10,\n pointerEvents: \"none\",\n }}\n /> */}\n </>\n );\n}\n\nexport function RangeProvider({\n children,\n}: {\n children: React.JSX.Element | React.JSX.Element[];\n}) {\n const { state, actions } = useRangeReducer();\n\n return (\n <RangeStateContext.Provider value={state}>\n <RangeActionContext.Provider value={actions}>\n <EffectSetMax />\n {children}\n </RangeActionContext.Provider>\n </RangeStateContext.Provider>\n );\n}\n"],"names":["RangeStateContext","createContext","isSelecting","RangeActionContext","setMax","NoImplementeFunction","startSelectRange","moveSelectRange","endSelectRange","moveUp","moveDown","moveLeft","moveRight","moveTop","moveBottom","moveRightEnd","moveLeftEnd","extendUp","extendDown","extendLeft","extendRight","extendTop","extendBottom","extendRightEnd","extendLeftEnd","reset","setRange","useRangeStateContext","useContext","useRangeActionContext","useRangeContext","__assign","EffectSetMax","_a","useTablePropertyStateContext","maxDisplayRowCount","maxDisplayColCount","useEffect","maxRowIndex","maxColIndex","_jsx","TestRange","props","IdGenerator","useTableIdGenerator","state","endElement","document","getElementById","getTableCellId","rowIndex","end","columnIndex","colIndex","scrollIntoView","behavior","block","inline","focus","rangeBox","start","xEnd","yEnd","className","concat","isCopied","style","top","left","width","height","pointerEvents","RangeProvider","children","_b","useRangeReducer","actions","Provider","value","_jsxs"],"mappings":"mbAOA,IAAMA,EAAoBC,EAAkC,CAC1DC,aAAa,IAGTC,EAAqBF,EAAmC,CAC5DG,OAAQC,EACRC,iBAAkBD,EAClBE,gBAAiBF,EACjBG,eAAgBH,EAChBI,OAAQJ,EACRK,SAAUL,EACVM,SAAUN,EACVO,UAAWP,EACXQ,QAASR,EACTS,WAAYT,EACZU,aAAcV,EACdW,YAAaX,EACbY,SAAUZ,EACVa,WAAYb,EACZc,WAAYd,EACZe,YAAaf,EACbgB,UAAWhB,EACXiB,aAAcjB,EACdkB,eAAgBlB,EAChBmB,cAAenB,EACfoB,MAAOpB,EACPqB,SAAUrB,aAGIsB,IACd,OAAOC,EAAW5B,EACpB,UAEgB6B,IACd,OAAOD,EAAWzB,EACpB,UAEgB2B,IACd,OAAAC,EAAAA,EAAA,CAAA,EAAYJ,KAA2BE,IACzC,CAEA,SAASG,IACC,IAAA5B,EAAWyB,WACbI,EACJC,IADMC,EAAkBF,EAAAE,mBAAEC,EAAkBH,EAAAG,mBAU9C,OAPAC,GAAU,WACRjC,EAAO,CACLkC,YAAaH,EAAqB,EAClCI,YAAaH,EAAqB,GAEtC,GAAG,CAACD,EAAoBC,IAEjBI,OACT,CAEM,SAAUC,EAAUC,GACxB,IAAMC,EAAcC,IACdC,EAAQlB,IAsBd,GApBAU,GAAU,WACR,GAAIQ,EAAM3C,YAAa,CACrB,IAAM4C,EAAaC,SAASC,eAC1BL,EAAYM,eAAe,CACzBC,SAAUL,EAAMM,IAAID,SACpBE,YAAaP,EAAMM,IAAIE,YAIvBP,IACFA,EAAWQ,eAAe,CACxBC,SAAU,UACVC,MAAO,UACPC,OAAQ,YAEVX,EAAWY,QAEf,CACF,GAAG,CAACb,KAECA,EAAM3C,YACT,OAAOsC,QAGD,IAAAmB,EAAyBd,EAAKc,SAApBC,EAAef,EAAKe,MAAbT,EAAQN,MAOjC,OAJKe,EAAMC,KAAOV,EAAIU,KAAOV,EAAIU,KAAOD,EAAMC,KACzCD,EAAME,KAAOX,EAAIW,KAAOX,EAAIW,KAAOF,EAAME,KAI5CtB,cACEA,EAAA,MAAA,CACEuB,UAAW,6DAAAC,OACTtB,EAAMuB,SAAW,gBAAkB,gBAErCC,MAAO,CACLC,IAAKR,EAASQ,IACdC,KAAMT,EAASS,KACfC,MAAOV,EAASU,MAChBC,OAAQX,EAASW,OACjBC,cAAe,WAezB,CAEM,SAAUC,EAAcvC,GAC5B,IAAAwC,EAAQxC,EAAAwC,SAIFC,EAAqBC,IAAnB9B,EAAK6B,EAAA7B,MAAE+B,EAAOF,EAAAE,QAEtB,OACEpC,EAACxC,EAAkB6E,SAAQ,CAACC,MAAOjC,EAAK4B,SACtCM,EAAC5E,EAAmB0E,SAAQ,CAACC,MAAOF,EAAOH,SAAA,CACzCjC,EAACR,EAAY,CAAA,GACZyC,MAIT"}
@@ -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 after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n reset();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td\n className=\"w-8 h-full\"\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":"4SAiBaA,EAAMC,GAAK,SAAiCC,GACvD,IAAMC,EAAcC,IACZC,EAAUC,UACZC,EAAMC,KAAKC,MAAMP,EAAMQ,YACvBC,EAAwBT,EAAMU,4BAA4BC,MAAM,KAEtE,OACEC,EACE,KAAA,CAAAC,UAAW,0JACTC,OAAEd,EAAMe,WAAa,uBAAyB,GAC5C,KAAAD,OAAAd,EAAMgB,mBAAqBhB,EAAMgB,mBAAmBX,GAAO,IAC/DY,QAAS,SAACC,GACRA,EAAEC,iBAEInB,EAAMe,aACVf,EAAMe,WAAWV,GACjBF,IAEH,gBACYE,EAAIe,GAEhBC,SAAA,CAAArB,EAAMsB,eACLC,EAAA,KAAA,CACEV,UAAU,aACVI,QAAS,SAACC,GACRA,EAAEM,iBACH,EAAAH,SAEDE,EAACE,EAAQ,CAACpB,IAAKA,MAGlBL,EAAM0B,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAACO,EAAS,CAERV,GAAInB,EAAY8B,eAAe,CAC7BC,SAAUhC,EAAMgC,SAChBC,YAAaJ,IAEfxB,IAAKA,EACL6B,oBAAqBlC,EAAMe,WAC3BoB,oBAAqB1B,EAAsBoB,GAC3CO,SAA0B,QAAhBC,EAAAT,EAAIQ,gBAAY,IAAAC,GAAAA,GARrBT,EAAIU,UAcrB"}
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 after:hover:bg-gray-500/10 ${\n !!props.onClickRow ? \"hover:cursor-pointer\" : \"\"\n } ${props.applyRowFormatting ? props.applyRowFormatting(row) : \"\"}`}\n onClick={(e) => {\n e.preventDefault();\n\n if (!!props.onClickRow) {\n props.onClickRow(row);\n reset();\n }\n }}\n data-testid={row.id}\n >\n {props.existCheckbox && (\n <td\n className=\"w-8 h-full\"\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":"4SAiBaA,EAAMC,GAAK,SAAiCC,GACvD,IAAMC,EAAcC,IACZC,EAAUC,UACZC,EAAMC,KAAKC,MAAMP,EAAMQ,YACvBC,EAAwBT,EAAMU,4BAA4BC,MAAM,KAEtE,OACEC,EAAA,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,EAAA,KAAA,CACEV,UAAU,aACVI,QAAS,SAACC,GACRA,EAAEM,iBACJ,EAACH,SAEDE,EAACE,EAAQ,CAACpB,IAAKA,MAGlBL,EAAM0B,KAAKC,KAAI,SAACC,EAAKC,SACpB,OACEN,EAACO,EAAS,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,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as r}from"react/jsx-runtime";import{createContext as e,useMemo as n,useContext as t}from"react";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var o=e({cols:[],validates:{}});function u(e){var t=e.children,u=e.cols,a=e.errorHandler,c=n((function(){return u.reduce((function(r,e){return r[e.key]=i(e,a),r}),{})}),[u]),l=n((function(){return{cols:u,validates:c}}),[u]);return r(o.Provider,{value:l,children:t})}function a(){return t(o).cols}function c(r){return t(o).validates[r]}function l(){return t(o).validates}export{u as ColumnsProvider,c as useColumnValidateContext,l as useColumnValidatesContext,a as useColumnsContext};
2
+ import{jsx as r}from"react/jsx-runtime";import{createContext as e,useContext as n,useMemo as t}from"react";import{generateValidateFunction as i}from"../libs/generate-validate-function.js";var o=e({cols:[],validates:{}});function u(e){var n=e.children,u=e.cols,a=e.errorHandler,c=t((function(){return u.reduce((function(r,e){return r[e.key]=i(e,a),r}),{})}),[u]),l=t((function(){return{cols:u,validates:c}}),[u]);return r(o.Provider,{value:l,children:n})}function a(){return n(o).cols}function c(r){return n(o).validates[r]}function l(){return n(o).validates}export{u as ColumnsProvider,c as useColumnValidateContext,l as useColumnValidatesContext,a as useColumnsContext};
3
3
  //# sourceMappingURL=providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] === \"\" && b[state.key] === \"\") {\n return 0;\n } else if (a[state.key] === \"\") {\n return 1;\n } else if (b[state.key] === \"\") {\n return -1;\n }\n\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","useSortReducer","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"wJAIA,IAAMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,EAAA,GACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,EAAA,CAAA,EAAYR,GAAO,CAAAK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,EAAA,GAAYR,GAAK,CAAEM,eAAe,IAExC,EAEM,SAAUG,EAAqCC,WAI7CC,EAAoBC,EAAWb,EAAS,CAC5CI,IAAiB,QAAZU,EAAAH,eAAAA,EAASP,WAAG,IAAAU,EAAAA,EAAI,KACrBR,IAAiB,QAAZS,EAAAJ,eAAAA,EAASL,WAAG,IAAAS,GAAAA,EACjBR,eAAe,EACfC,WAAY,IAJPP,EAAKW,EAAA,GAAEI,OAORC,EAAY,SAACb,GACjBY,EAAS,CAAEb,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMc,EAAc,WAClBF,EAAS,CAAEb,KAAM,eACnB,EAEMgB,EAAc,WAClBH,EAAS,CAAEb,KAAM,cACnB,EAEMiB,EAAOC,GACX,SAAuBC,GACrB,OAAAC,EAAA,GAAID,GAAM,GAAAF,MAAK,SAACI,EAAGC,GACjB,MAAqB,KAAjBD,EAAEvB,EAAMG,MAAgC,KAAjBqB,EAAExB,EAAMG,KAC1B,EACmB,KAAjBoB,EAAEvB,EAAMG,KACV,EACmB,KAAjBqB,EAAExB,EAAMG,MACT,EAGNoB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,KAAO,EAAI,EAEtBkB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,IAAM,GAAK,EAEnB,CACT,GAAE,GACJ,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6ByB,GAC7B,WAAM,MAAC,CACLtB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cACrB,GACF,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BoB,QAPcD,GACd,WAAM,MAAC,CAAET,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAAG,GACrD,CAACA,IAMDZ,WAAYP,EAAMO,WAEtB"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../../src/table/sort/hooks.ts"],"sourcesContent":["import { useCallback, useMemo, useReducer } from \"react\";\nimport { TReturnSortReducer, TSortReducer } from \"./types\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\nconst reducer: TSortReducer = (state, action) => {\n switch (action.type) {\n case \"changeKey\":\n return {\n key: action.payload.key,\n asc: true,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n case \"changeOrder\":\n if (state.isUpdatedData) {\n return {\n ...state,\n isUpdatedData: false,\n sortTiming: state.sortTiming + 1,\n };\n } else {\n return { ...state, asc: !state.asc, sortTiming: state.sortTiming + 1 };\n }\n case \"updateData\":\n return { ...state, isUpdatedData: true };\n }\n};\n\nexport function useSortReducer<T extends DataRecord>(initial?: {\n key: string;\n asc?: boolean;\n}): TReturnSortReducer<T> {\n const [state, dispatch] = useReducer(reducer, {\n key: initial?.key ?? \"id\",\n asc: initial?.asc ?? true,\n isUpdatedData: false,\n sortTiming: 0,\n });\n\n const changeKey = (key: string) => {\n dispatch({ type: \"changeKey\", payload: { key } });\n };\n\n const changeOrder = () => {\n dispatch({ type: \"changeOrder\" });\n };\n\n const updatedData = () => {\n dispatch({ type: \"updateData\" });\n };\n\n const sort = useCallback(\n <U extends DataRecord>(rows: DataObject<U>[]) =>\n [...rows].sort((a, b) => {\n if (a[state.key] === \"\" && b[state.key] === \"\") {\n return 0;\n } else if (a[state.key] === \"\") {\n return 1;\n } else if (b[state.key] === \"\") {\n return -1;\n }\n\n if (a[state.key] < b[state.key]) {\n return state.asc ? -1 : 1;\n }\n if (a[state.key] > b[state.key]) {\n return state.asc ? 1 : -1;\n }\n return 0;\n }),\n [state.key, state.asc]\n );\n\n const stateExcludeSortTiming = useMemo(\n () => ({\n key: state.key,\n asc: state.asc,\n isUpdatedData: state.isUpdatedData,\n }),\n [state.key, state.asc, state.isUpdatedData]\n );\n\n const actions = useMemo(\n () => ({ changeKey, changeOrder, updatedData, sort }),\n [sort]\n );\n\n return {\n state: stateExcludeSortTiming,\n actions,\n sortTiming: state.sortTiming,\n };\n}\n"],"names":["reducer","state","action","type","key","payload","asc","isUpdatedData","sortTiming","__assign","useSortReducer","initial","_c","useReducer","_a","_b","dispatch","changeKey","changeOrder","updatedData","sort","useCallback","rows","__spreadArray","a","b","useMemo","actions"],"mappings":"wJAIA,IAAMA,EAAwB,SAACC,EAAOC,GACpC,OAAQA,EAAOC,MACb,IAAK,YACH,MAAO,CACLC,IAAKF,EAAOG,QAAQD,IACpBE,KAAK,EACLC,eAAe,EACfC,WAAYP,EAAMO,WAAa,GAEnC,IAAK,cACH,OAAIP,EAAMM,cACRE,EAAAA,EAAA,CAAA,EACKR,GAAK,CACRM,eAAe,EACfC,WAAYP,EAAMO,WAAa,IAGjCC,EAAAA,EAAA,CAAA,EAAYR,GAAK,CAAEK,KAAML,EAAMK,IAAKE,WAAYP,EAAMO,WAAa,IAEvE,IAAK,aACH,OAAAC,EAAAA,EAAA,CAAA,EAAYR,GAAK,CAAEM,eAAe,IAExC,EAEM,SAAUG,EAAqCC,WAI7CC,EAAoBC,EAAWb,EAAS,CAC5CI,IAAiB,QAAZU,EAAAH,eAAAA,EAASP,WAAG,IAAAU,EAAAA,EAAI,KACrBR,IAAiB,QAAZS,EAAAJ,eAAAA,EAASL,WAAG,IAAAS,GAAAA,EACjBR,eAAe,EACfC,WAAY,IAJPP,EAAKW,EAAA,GAAEI,OAORC,EAAY,SAACb,GACjBY,EAAS,CAAEb,KAAM,YAAaE,QAAS,CAAED,IAAGA,IAC9C,EAEMc,EAAc,WAClBF,EAAS,CAAEb,KAAM,eACnB,EAEMgB,EAAc,WAClBH,EAAS,CAAEb,KAAM,cACnB,EAEMiB,EAAOC,GACX,SAAuBC,GACrB,OAAAC,EAAA,GAAID,GAAI,GAAEF,MAAK,SAACI,EAAGC,GACjB,MAAqB,KAAjBD,EAAEvB,EAAMG,MAAgC,KAAjBqB,EAAExB,EAAMG,KAC1B,EACmB,KAAjBoB,EAAEvB,EAAMG,KACV,EACmB,KAAjBqB,EAAExB,EAAMG,MACV,EAGLoB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,KAAM,EAAK,EAEtBkB,EAAEvB,EAAMG,KAAOqB,EAAExB,EAAMG,KAClBH,EAAMK,IAAM,GAAI,EAElB,CACT,GAhBA,GAiBF,CAACL,EAAMG,IAAKH,EAAMK,MAiBpB,MAAO,CACLL,MAf6ByB,GAC7B,WAAM,MAAA,CACJtB,IAAKH,EAAMG,IACXE,IAAKL,EAAMK,IACXC,cAAeN,EAAMM,cAHjB,GAKN,CAACN,EAAMG,IAAKH,EAAMK,IAAKL,EAAMM,gBAU7BoB,QAPcD,GACd,WAAM,MAAA,CAAGT,UAASA,EAAEC,YAAWA,EAAEC,YAAWA,EAAEC,KAAIA,EAA5C,GACN,CAACA,IAMDZ,WAAYP,EAAMO,WAEtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../../../../../src/table/sort/icon.tsx"],"sourcesContent":["import { memo } from \"react\";\n\ntype TPropsSortIcon = {\n sortOrder?: \"ASC\" | \"DESC\";\n isSortActive?: boolean;\n size?: number;\n};\n\nconst SortIcon = memo(function SI(props: TPropsSortIcon) {\n const size = props.size || 16;\n const order = props.sortOrder || \"ASC\";\n\n return (\n <div\n className=\"relative\"\n style={{ width: `${size}px`, height: `${size}px` }}\n >\n <div\n className={`absolute top-1/2 right-0 w-[40%] h-[20%] duration-300 ${\n order === \"ASC\" ? \"-translate-y-[250%]\" : \"translate-y-[150%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-[70%] h-[20%] duration-300 -translate-y-1/2 ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-full h-[20%] duration-300 ${\n order === \"ASC\" ? \"translate-y-[150%]\" : \"-translate-y-[250%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n </div>\n );\n});\n\nexport { SortIcon };\n"],"names":["SortIcon","memo","props","size","order","sortOrder","_jsxs","className","style","width","height","children","_jsx","concat","isSortActive"],"mappings":"+EAQA,IAAMA,EAAWC,GAAK,SAAYC,GAChC,IAAMC,EAAOD,EAAMC,MAAQ,GACrBC,EAAQF,EAAMG,WAAa,MAEjC,OACEC,EACE,MAAA,CAAAC,UAAU,WACVC,MAAO,CAAEC,MAAO,UAAGN,EAAI,MAAMO,OAAQ,UAAGP,EAAI,OAAMQ,SAAA,CAElDC,SACEL,UAAW,gEACC,QAAVH,EAAkB,sBAAwB,qBAE1C,KAAAS,OAAAX,EAAMY,aACF,cACA,wCAGRF,EACE,MAAA,CAAAL,UAAW,2EAAAM,OACTX,EAAMY,aACF,cACA,wCAGRF,EACE,MAAA,CAAAL,UAAW,wDAAAM,OACC,QAAVT,EAAkB,qBAAuB,sBAAqB,MAAAS,OAE9DX,EAAMY,aACF,cACA,0CAKd"}
1
+ {"version":3,"file":"icon.js","sources":["../../../../../src/table/sort/icon.tsx"],"sourcesContent":["import { memo } from \"react\";\n\ntype TPropsSortIcon = {\n sortOrder?: \"ASC\" | \"DESC\";\n isSortActive?: boolean;\n size?: number;\n};\n\nconst SortIcon = memo(function SI(props: TPropsSortIcon) {\n const size = props.size || 16;\n const order = props.sortOrder || \"ASC\";\n\n return (\n <div\n className=\"relative\"\n style={{ width: `${size}px`, height: `${size}px` }}\n >\n <div\n className={`absolute top-1/2 right-0 w-[40%] h-[20%] duration-300 ${\n order === \"ASC\" ? \"-translate-y-[250%]\" : \"translate-y-[150%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-[70%] h-[20%] duration-300 -translate-y-1/2 ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n <div\n className={`absolute top-1/2 right-0 w-full h-[20%] duration-300 ${\n order === \"ASC\" ? \"translate-y-[150%]\" : \"-translate-y-[250%]\"\n } ${\n props.isSortActive\n ? \"bg-gray-700\"\n : \"bg-gray-200 border border-gray-500\"\n }`}\n ></div>\n </div>\n );\n});\n\nexport { SortIcon };\n"],"names":["SortIcon","memo","props","size","order","sortOrder","_jsxs","className","style","width","height","children","_jsx","concat","isSortActive"],"mappings":"+EAQA,IAAMA,EAAWC,GAAK,SAAYC,GAChC,IAAMC,EAAOD,EAAMC,MAAQ,GACrBC,EAAQF,EAAMG,WAAa,MAEjC,OACEC,EAAA,MAAA,CACEC,UAAU,WACVC,MAAO,CAAEC,MAAO,UAAGN,EAAI,MAAMO,OAAQ,UAAGP,EAAI,OAAMQ,SAAA,CAElDC,SACEL,UAAW,gEACC,QAAVH,EAAkB,sBAAwB,qBAAoB,KAAAS,OAE9DX,EAAMY,aACF,cACA,wCAGRF,EAAA,MAAA,CACEL,UAAW,2EAAAM,OACTX,EAAMY,aACF,cACA,wCAGRF,EAAA,MAAA,CACEL,UAAW,wDAAAM,OACC,QAAVT,EAAkB,qBAAuB,sBAAqB,MAAAS,OAE9DX,EAAMY,aACF,cACA,0CAKd"}
@@ -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":["useTable","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":"sgBAUM,SAAUA,EAA+BC,GACrC,IAAAC,EAAWC,WACbC,EAAwBC,IAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,IACbC,EAA8BC,IAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,2BAClBC,EAAoBC,YACpBC,EAAmBC,YAC9BC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,GACnB,WAAM,OAAAvB,EAAOD,EAAMyB,KAAK,GACxB,CAACxB,EAAQM,EAAYP,EAAMyB,KAAKC,SAGlCC,GAAU,WACRhB,EAAYY,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,GAAQ,WACzB,OAAKxB,EAAM6B,SAIJ7B,EAAMyB,KAAKxB,QAAO,SAAC6B,GAAG,IAAA3B,EAAK,eAAAA,EAAAH,EAAM6B,+BAAUE,QAAQD,EAAI,IAHrD,EAIV,GAAE,CAAC9B,EAAM6B,SAAU7B,EAAMyB,OAE1BE,GAAU,WACRd,EAAuB,CACrBmB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,GACjB,WAAM,OAAAnB,EAAKkB,KACX,CAACA,EAAchB,IAGjBoB,GAAU,WACRrB,GACF,GAAG,CAACN,EAAMyB,OAEV,IAAMW,EAAWZ,GACf,WAAM,OAAAZ,EAAWuB,KACjB,CAACvB,EAAYuB,IAGTE,EAAab,GAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAE,GAAC,GAAE,CAACH,IAC3DI,EAAgBhB,GAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAW,GAAE,CAACA,IAEpDK,EAAUlB,GACd,WACE,OAAAxB,EAAMyB,KACHxB,QAAO,SAAC6B,GAAQ,OAAAU,EAAcG,IAAIb,EAAIS,OACtCK,QAAO,SAACC,EAAKf,GACZ,IAAMgB,EAAiBC,OAAOC,KAAKlB,GAChCzB,OACAuC,QAAO,SAACC,EAAKI,GAEZ,OADAJ,EAAII,GAAOnB,EAAImB,GACRJ,CACR,GAAE,CAA+C,GAMpD,OAJAA,EAAIf,EAAIS,IAAM,CACZW,KAAMJ,EACNK,YAAaC,KAAKC,UAAUP,IAEvBD,CACR,GAAE,CAA+E,EAAC,GACvF,CAAC7C,EAAMyB,KAAMe,IAiBf,OAdAb,GAAU,WACRN,EAAsBrB,EAAMsD,KAAK5B,OAClC,GAAE,CAAC1B,EAAMsD,KAAK5B,SAEfC,GAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,GAAU,WACR,IAAMF,EAAOY,EAAWC,KAAI,SAACC,GAAO,OAAAG,EAAQH,GAAIW,IAAI,IACpDjC,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 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":["useTable","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":"sgBAUM,SAAUA,EAA+BC,GACrC,IAAAC,EAAWC,WACbC,EAAwBC,IAAtBC,EAAIF,EAAAE,KAAEC,EAAWH,EAAAG,YACnBC,EAAaC,IACbC,EAA8BC,IAA5BC,EAAWF,EAAAE,YAAEC,EAAUH,EAAAG,WACvBC,EAA2BC,2BAClBC,EAAoBC,YACpBC,EAAmBC,YAC9BC,EACJC,IADMC,EAAqBF,EAAAE,sBAAEC,EAAqBH,EAAAG,sBAG9CC,EAAeC,GACnB,WAAM,OAAAvB,EAAOD,EAAMyB,KAAb,GACN,CAACxB,EAAQM,EAAYP,EAAMyB,KAAKC,SAGlCC,GAAU,WACRhB,EAAYY,EAAaG,OAC3B,GAAG,CAACH,EAAaG,SAEjB,IAAME,EAAaJ,GAAQ,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,GAAU,WACRd,EAAuB,CACrBmB,KAAM,MACNC,QAAS,CAAEC,eAAgBN,IAE/B,GAAG,CAACA,IAEJ,IAAMO,EAAaX,GACjB,WAAM,OAAAnB,EAAKkB,EAAL,GACN,CAACA,EAAchB,IAGjBoB,GAAU,WACRrB,GACF,GAAG,CAACN,EAAMyB,OAEV,IAAMW,EAAWZ,GACf,WAAM,OAAAZ,EAAWuB,EAAX,GACN,CAACvB,EAAYuB,IAGTE,EAAab,GAAQ,WAAM,OAAAY,EAASE,KAAI,SAACR,GAAQ,OAAAA,EAAIS,EAAJ,GAAtB,GAA+B,CAACH,IAC3DI,EAAgBhB,GAAQ,WAAM,OAAA,IAAIiB,IAAIJ,EAAR,GAAqB,CAACA,IAEpDK,EAAUlB,GACd,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,GAAU,WACRN,EAAsBrB,EAAMsD,KAAK5B,OACnC,GAAG,CAAC1B,EAAMsD,KAAK5B,SAEfC,GAAU,WACRL,EAAsBe,EAAWX,OACnC,GAAG,CAACW,EAAWX,SAEfC,GAAU,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 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n if (state.maxDisplayRowCount === action.payload.maxDisplayRowCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n if (state.maxDisplayColCount === action.payload.maxDisplayColCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback((maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n }, []);\n\n const setMaxDisplayColCount = useCallback((maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n }, []);\n\n return {\n state,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","maxDisplayRowCount","payload","__assign","maxDisplayColCount","useTablePropertyReducer","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"wHAGA,IAAMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OAAIF,EAAMG,qBAAuBF,EAAOG,QAAQD,mBACvCH,EAIJK,EAAAA,EAAA,CAAA,EAAAL,IACHG,mBAAoBF,EAAOG,QAAQD,qBAGvC,IAAK,wBACH,OAAIH,EAAMM,qBAAuBL,EAAOG,QAAQE,mBACvCN,EAIJK,EAAAA,EAAA,CAAA,EAAAL,IACHM,mBAAoBL,EAAOG,QAAQE,qBAG3C,WAEgBC,IACR,IAAAC,EAAoBC,EAAWV,EAAS,CAC5CI,mBAAoB,EACpBG,mBAAoB,IAFfN,EAAKQ,EAAA,GAAEE,OAmBd,MAAO,CACLV,MAAKA,EACLW,sBAhB4BC,GAAY,SAACT,GACzCO,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAED,mBAAkBA,IAEhC,GAAE,IAYDU,sBAV4BD,GAAY,SAACN,GACzCI,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAEE,mBAAkBA,IAEhC,GAAE,IAOL"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../../src/table/table-property/hook.ts"],"sourcesContent":["import { useCallback, useReducer } from \"react\";\nimport { TReturnTablePropertyReducer, TTablePropertyReducer } from \"./type\";\n\nconst reducer: TTablePropertyReducer = (state, action) => {\n switch (action.type) {\n case \"setMaxDisplayRowCount\":\n if (state.maxDisplayRowCount === action.payload.maxDisplayRowCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayRowCount: action.payload.maxDisplayRowCount,\n };\n\n case \"setMaxDisplayColCount\":\n if (state.maxDisplayColCount === action.payload.maxDisplayColCount) {\n return state;\n }\n\n return {\n ...state,\n maxDisplayColCount: action.payload.maxDisplayColCount,\n };\n }\n};\n\nexport function useTablePropertyReducer(): TReturnTablePropertyReducer {\n const [state, dispatch] = useReducer(reducer, {\n maxDisplayRowCount: 0,\n maxDisplayColCount: 0,\n });\n\n const setMaxDisplayRowCount = useCallback((maxDisplayRowCount: number) => {\n dispatch({\n type: \"setMaxDisplayRowCount\",\n payload: { maxDisplayRowCount },\n });\n }, []);\n\n const setMaxDisplayColCount = useCallback((maxDisplayColCount: number) => {\n dispatch({\n type: \"setMaxDisplayColCount\",\n payload: { maxDisplayColCount },\n });\n }, []);\n\n return {\n state,\n setMaxDisplayRowCount,\n setMaxDisplayColCount,\n };\n}\n"],"names":["reducer","state","action","type","maxDisplayRowCount","payload","__assign","maxDisplayColCount","useTablePropertyReducer","_a","useReducer","dispatch","setMaxDisplayRowCount","useCallback","setMaxDisplayColCount"],"mappings":"wHAGA,IAAMA,EAAiC,SAACC,EAAOC,GAC7C,OAAQA,EAAOC,MACb,IAAK,wBACH,OAAIF,EAAMG,qBAAuBF,EAAOG,QAAQD,mBACvCH,EAGTK,EAAAA,EAAA,CAAA,EACKL,IACHG,mBAAoBF,EAAOG,QAAQD,qBAGvC,IAAK,wBACH,OAAIH,EAAMM,qBAAuBL,EAAOG,QAAQE,mBACvCN,EAGTK,EAAAA,EAAA,CAAA,EACKL,IACHM,mBAAoBL,EAAOG,QAAQE,qBAG3C,WAEgBC,IACR,IAAAC,EAAoBC,EAAWV,EAAS,CAC5CI,mBAAoB,EACpBG,mBAAoB,IAFfN,EAAKQ,EAAA,GAAEE,OAmBd,MAAO,CACLV,MAAKA,EACLW,sBAhB4BC,GAAY,SAACT,GACzCO,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAED,mBAAkBA,IAEjC,GAAG,IAYDU,sBAV4BD,GAAY,SAACN,GACzCI,EAAS,CACPR,KAAM,wBACNE,QAAS,CAAEE,mBAAkBA,IAEjC,GAAG,IAOL"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport { TTablePropertyActionContext, TTablePropertyState } from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyState>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: JSX.Element | JSX.Element[];\n}) {\n const { state, setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyReducer();\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: setMaxDisplayColCount,\n setMaxDisplayRowCount: setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","TablePropertyProvider","props","_a","useTablePropertyReducer","state","action","useMemo","_jsx","Provider","value","children","useTablePropertyStateContext","useContext","useTablePropertyActionContext"],"mappings":"gNAIA,IAAMA,EAA4BC,EAAmC,CACnEC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAA2C,CAC5EI,sBAAuB,WAAQ,EAC/BC,sBAAuB,WAAQ,IAG3B,SAAUC,EAAsBC,GAG9B,IAAAC,EACJC,IADMC,EAAKF,EAAAE,MAAEN,EAAqBI,EAAAJ,sBAAEC,EAAqBG,EAAAH,sBAGrDM,EAASC,GAAQ,WACrB,MAAO,CACLR,sBAAuBA,EACvBC,sBAAuBA,EAE1B,GAAE,IAEH,OACEQ,EAACd,EAA0Be,UAASC,MAAOL,EAAKM,SAC9CH,EAACV,EAA2BW,SAAQ,CAACC,MAAOJ,EAAMK,SAC/CT,EAAMS,YAIf,UAEgBC,IACd,OAAOC,EAAWnB,EACpB,UAEgBoB,IACd,OAAOD,EAAWf,EACpB"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/table/table-property/provider.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport { TTablePropertyActionContext, TTablePropertyState } from \"./type\";\nimport { useTablePropertyReducer } from \"./hook\";\n\nconst TablePropertyStateContext = createContext<TTablePropertyState>({\n maxDisplayColCount: 0,\n maxDisplayRowCount: 0,\n});\n\nconst TablePropertyActionContext = createContext<TTablePropertyActionContext>({\n setMaxDisplayColCount: () => {},\n setMaxDisplayRowCount: () => {},\n});\n\nexport function TablePropertyProvider(props: {\n children: React.JSX.Element | React.JSX.Element[];\n}) {\n const { state, setMaxDisplayColCount, setMaxDisplayRowCount } =\n useTablePropertyReducer();\n\n const action = useMemo(() => {\n return {\n setMaxDisplayColCount: setMaxDisplayColCount,\n setMaxDisplayRowCount: setMaxDisplayRowCount,\n };\n }, []);\n\n return (\n <TablePropertyStateContext.Provider value={state}>\n <TablePropertyActionContext.Provider value={action}>\n {props.children}\n </TablePropertyActionContext.Provider>\n </TablePropertyStateContext.Provider>\n );\n}\n\nexport function useTablePropertyStateContext() {\n return useContext(TablePropertyStateContext);\n}\n\nexport function useTablePropertyActionContext() {\n return useContext(TablePropertyActionContext);\n}\n\nexport function useTablePropertyContext() {\n return {\n ...useTablePropertyStateContext(),\n ...useTablePropertyActionContext(),\n };\n}\n"],"names":["TablePropertyStateContext","createContext","maxDisplayColCount","maxDisplayRowCount","TablePropertyActionContext","setMaxDisplayColCount","setMaxDisplayRowCount","TablePropertyProvider","props","_a","useTablePropertyReducer","state","action","useMemo","_jsx","Provider","value","children","useTablePropertyStateContext","useContext","useTablePropertyActionContext"],"mappings":"gNAIA,IAAMA,EAA4BC,EAAmC,CACnEC,mBAAoB,EACpBC,mBAAoB,IAGhBC,EAA6BH,EAA2C,CAC5EI,sBAAuB,WAAO,EAC9BC,sBAAuB,WAAO,IAG1B,SAAUC,EAAsBC,GAG9B,IAAAC,EACJC,IADMC,EAAKF,EAAAE,MAAEN,EAAqBI,EAAAJ,sBAAEC,EAAqBG,EAAAH,sBAGrDM,EAASC,GAAQ,WACrB,MAAO,CACLR,sBAAuBA,EACvBC,sBAAuBA,EAE3B,GAAG,IAEH,OACEQ,EAACd,EAA0Be,UAASC,MAAOL,EAAKM,SAC9CH,EAACV,EAA2BW,SAAQ,CAACC,MAAOJ,EAAMK,SAC/CT,EAAMS,YAIf,UAEgBC,IACd,OAAOC,EAAWnB,EACpB,UAEgBoB,IACd,OAAOD,EAAWf,EACpB"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React$1 from 'react';
1
+ import * as react from 'react';
2
+ import react__default from 'react';
3
3
 
4
4
  interface Options {
5
5
  /**
@@ -74,7 +74,7 @@ type TStringCellEditingCondition<T extends DataRecord> = ({
74
74
  type: "string";
75
75
  } & ({
76
76
  editable?: false;
77
- render?: (value: string, row: DataObject<T>) => React$1.ReactNode;
77
+ render?: (value: string, row: DataObject<T>) => react__default.ReactNode;
78
78
  } | {
79
79
  editable: true;
80
80
  onCellBlur: (key: keyof T, value: string, current: DataObject<T>, completeEditing: () => void) => void;
@@ -84,7 +84,7 @@ type TNumberCellEditingCondition<T extends DataRecord> = ({
84
84
  type: "number";
85
85
  } & ({
86
86
  editable?: false;
87
- render?: (value: number, row: DataObject<T>) => React$1.ReactNode;
87
+ render?: (value: number, row: DataObject<T>) => react__default.ReactNode;
88
88
  } | {
89
89
  editable: true;
90
90
  onCellBlur: (key: keyof T, value: number, current: DataObject<T>, completeEditing: () => void) => void;
@@ -95,7 +95,7 @@ type TSelectCellEditingCondition<T extends DataRecord> = ({
95
95
  options: Options[];
96
96
  } & ({
97
97
  editable?: false;
98
- render?: (value: string, row: DataObject<T>) => React$1.ReactNode;
98
+ render?: (value: string, row: DataObject<T>) => react__default.ReactNode;
99
99
  } | {
100
100
  editable: true;
101
101
  allowEmpty?: boolean;
@@ -103,13 +103,13 @@ type TSelectCellEditingCondition<T extends DataRecord> = ({
103
103
  }));
104
104
  type TDateCellEditingCondition<T extends DataRecord> = ({
105
105
  type: "date";
106
- render: (value: Date) => string | React$1.ReactNode;
106
+ render: (value: Date) => string | react__default.ReactNode;
107
107
  } & {
108
108
  editable?: false;
109
109
  });
110
110
  type TDatetimeCellEditingCondition<T extends DataRecord> = ({
111
111
  type: "datetime";
112
- render: (value: Date) => string | React$1.ReactNode;
112
+ render: (value: Date) => string | react__default.ReactNode;
113
113
  } & {
114
114
  editable?: false;
115
115
  });
@@ -161,7 +161,7 @@ type TPropsTable<T extends DataRecord> = {
161
161
  };
162
162
  } & TCheckboxProperty<T>;
163
163
 
164
- declare function Table<T extends DataRecord>(props: TPropsTable<T>): react_jsx_runtime.JSX.Element;
164
+ declare function Table<T extends DataRecord>(props: TPropsTable<T>): react.JSX.Element;
165
165
 
166
166
  interface FileUploaderProps {
167
167
  /**
@@ -249,8 +249,9 @@ interface FileUploaderProps {
249
249
  }
250
250
  declare function FileUploader({ className, dropAreaClassName, dragActiveText, // "Drop files here"
251
251
  defaultText, // "Select files"
252
- icon, multiple, acceptedFileTypes, allowedExtensions, maxFileSize, files: externalFiles, rejectedFiles: externalRejectedFiles, onFilesAdded, onFilesRejected, useInternalState, showFileList, showRejectedFiles, rejectedFilesText, renderFileItem, renderRejectedFileItem, dropAreaHeight, }: FileUploaderProps): react_jsx_runtime.JSX.Element;
252
+ icon, multiple, acceptedFileTypes, allowedExtensions, maxFileSize, files: externalFiles, rejectedFiles: externalRejectedFiles, onFilesAdded, onFilesRejected, useInternalState, showFileList, showRejectedFiles, rejectedFilesText, renderFileItem, renderRejectedFileItem, dropAreaHeight, }: FileUploaderProps): react.JSX.Element;
253
253
 
254
+ type NullableRefObject<T> = null extends React.RefObject<T>["current"] ? React.RefObject<T> : React.RefObject<T | null>;
254
255
  interface IPropsFileUploader {
255
256
  addFiles: (files: File[]) => void;
256
257
  onValidationError?: (rejectedFiles: File[]) => void;
@@ -260,7 +261,7 @@ interface IPropsFileUploader {
260
261
  }
261
262
  interface IReturnFileUploader {
262
263
  inputProps: {
263
- ref: React.RefObject<HTMLInputElement>;
264
+ ref: NullableRefObject<HTMLInputElement>;
264
265
  type: "file";
265
266
  accept?: string;
266
267
  className?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teppen/react-ui",
3
- "version": "1.8.14",
3
+ "version": "1.9.0",
4
4
  "description": "React UI Component",
5
5
  "main": "dist/cjs/src/index.js",
6
6
  "module": "dist/esm/src/index.js",
@@ -15,6 +15,10 @@
15
15
  },
16
16
  "author": "Yasufumi Kamiyama <yk.iteppen@gmail.com>",
17
17
  "license": "MIT",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/IT-TEPPEN/react-ui.git"
21
+ },
18
22
  "devDependencies": {
19
23
  "@babel/core": "^7.23.9",
20
24
  "@babel/preset-env": "^7.23.9",
@@ -24,38 +28,42 @@
24
28
  "@rollup/plugin-node-resolve": "^15.2.3",
25
29
  "@rollup/plugin-terser": "^0.4.4",
26
30
  "@rollup/plugin-typescript": "^11.1.6",
27
- "@storybook/addon-essentials": "^7.6.17",
28
- "@storybook/addon-interactions": "^7.6.17",
29
- "@storybook/addon-links": "^7.6.17",
30
- "@storybook/blocks": "^7.6.17",
31
- "@storybook/react": "^7.6.17",
32
- "@storybook/react-vite": "^7.6.17",
33
- "@storybook/test": "^7.6.17",
34
- "@testing-library/react": "^14.2.1",
31
+ "@storybook/addon-essentials": "^8.6.14",
32
+ "@storybook/addon-interactions": "^8.6.14",
33
+ "@storybook/addon-links": "^8.6.14",
34
+ "@storybook/blocks": "^8.6.14",
35
+ "@storybook/react": "^8.6.14",
36
+ "@storybook/react-vite": "^8.6.14",
37
+ "@storybook/test": "^8.6.14",
38
+ "@testing-library/dom": "^10.4.0",
39
+ "@testing-library/react": "^16.3.0",
35
40
  "@types/jest": "^29.5.12",
36
- "@types/react": "^18.2.60",
41
+ "@types/react": "^19.0.0",
42
+ "@types/react-dom": "^19.0.0",
37
43
  "autoprefixer": "^10.4.17",
38
44
  "babel-jest": "^29.7.0",
39
45
  "identity-obj-proxy": "^3.0.0",
40
46
  "jest": "^29.7.0",
41
47
  "jest-environment-jsdom": "^29.7.0",
42
48
  "postcss": "^8.4.35",
43
- "react-icons": "^5.0.1",
49
+ "react": "^19.0.0",
50
+ "react-dom": "^19.0.0",
51
+ "react-icons": "^5.5.0",
44
52
  "rimraf": "^5.0.5",
45
53
  "rollup": "^4.12.0",
46
54
  "rollup-plugin-dts": "^6.1.0",
47
55
  "rollup-plugin-peer-deps-external": "^2.2.4",
48
56
  "rollup-plugin-postcss": "^4.0.2",
49
57
  "rollup-plugin-preserve-directives": "^0.4.0",
50
- "storybook": "^7.6.17",
58
+ "storybook": "^8.6.14",
51
59
  "tailwind-variants": "^0.2.0",
52
60
  "tailwindcss": "^3.4.1",
53
61
  "tslib": "^2.6.2",
54
62
  "typescript": "^5.3.3"
55
63
  },
56
64
  "peerDependencies": {
57
- "react": "^18.2.0",
58
- "react-dom": "^18.2.0"
65
+ "react": "^18.2.0 || ^19.0.0",
66
+ "react-dom": "^18.2.0 || ^19.0.0"
59
67
  },
60
68
  "files": [
61
69
  "package.json",