@economic/taco 1.1.13-alpha.0 → 1.2.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 (213) hide show
  1. package/dist/components/Group/Group.d.ts +11 -1
  2. package/dist/components/Toast/Toast.d.ts +2 -2
  3. package/dist/components/Toast/Toaster.d.ts +2 -2
  4. package/dist/esm/components/Accordion/Accordion.js +31 -34
  5. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  6. package/dist/esm/components/Backdrop/Backdrop.js +2 -2
  7. package/dist/esm/components/Backdrop/Backdrop.js.map +1 -1
  8. package/dist/esm/components/Badge/Badge.js +14 -14
  9. package/dist/esm/components/Badge/Badge.js.map +1 -1
  10. package/dist/esm/components/Banner/Banner.js +7 -5
  11. package/dist/esm/components/Banner/Banner.js.map +1 -1
  12. package/dist/esm/components/Banner/util.js +1 -1
  13. package/dist/esm/components/Banner/util.js.map +1 -1
  14. package/dist/esm/components/Button/Button.js +12 -13
  15. package/dist/esm/components/Button/Button.js.map +1 -1
  16. package/dist/esm/components/Button/util.js +18 -23
  17. package/dist/esm/components/Button/util.js.map +1 -1
  18. package/dist/esm/components/Calendar/Calendar.js +56 -71
  19. package/dist/esm/components/Calendar/Calendar.js.map +1 -1
  20. package/dist/esm/components/Card/Card.js +13 -12
  21. package/dist/esm/components/Card/Card.js.map +1 -1
  22. package/dist/esm/components/Checkbox/Checkbox.js +15 -18
  23. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  24. package/dist/esm/components/Combobox/Combobox.js +23 -25
  25. package/dist/esm/components/Combobox/Combobox.js.map +1 -1
  26. package/dist/esm/components/Combobox/useCombobox.js +78 -99
  27. package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
  28. package/dist/esm/components/Datepicker/Datepicker.js +48 -52
  29. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  30. package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
  31. package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
  32. package/dist/esm/components/Dialog/Context.js +4 -4
  33. package/dist/esm/components/Dialog/Context.js.map +1 -1
  34. package/dist/esm/components/Dialog/Dialog.js +39 -58
  35. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  36. package/dist/esm/components/Dialog/components/Content.js +39 -44
  37. package/dist/esm/components/Dialog/components/Content.js.map +1 -1
  38. package/dist/esm/components/Dialog/components/Drawer.js +3 -3
  39. package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
  40. package/dist/esm/components/Dialog/components/Extra.js +2 -2
  41. package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
  42. package/dist/esm/components/Dialog/components/Trigger.js +2 -2
  43. package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
  44. package/dist/esm/components/Field/Field.js +10 -12
  45. package/dist/esm/components/Field/Field.js.map +1 -1
  46. package/dist/esm/components/Form/Form.js +6 -8
  47. package/dist/esm/components/Form/Form.js.map +1 -1
  48. package/dist/esm/components/Group/Group.js +9 -8
  49. package/dist/esm/components/Group/Group.js.map +1 -1
  50. package/dist/esm/components/Hanger/Hanger.js +27 -35
  51. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  52. package/dist/esm/components/HoverCard/HoverCard.js +8 -9
  53. package/dist/esm/components/HoverCard/HoverCard.js.map +1 -1
  54. package/dist/esm/components/Icon/Icon.js +7 -8
  55. package/dist/esm/components/Icon/Icon.js.map +1 -1
  56. package/dist/esm/components/Icon/components/index.js +4 -4
  57. package/dist/esm/components/Icon/components/index.js.map +1 -1
  58. package/dist/esm/components/IconButton/IconButton.js +9 -11
  59. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  60. package/dist/esm/components/Input/Input.js +25 -25
  61. package/dist/esm/components/Input/Input.js.map +1 -1
  62. package/dist/esm/components/Input/util.js +2 -2
  63. package/dist/esm/components/Input/util.js.map +1 -1
  64. package/dist/esm/components/Listbox/Listbox.js +24 -25
  65. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  66. package/dist/esm/components/Listbox/ScrollableList.js +65 -84
  67. package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
  68. package/dist/esm/components/Listbox/useListbox.js +53 -61
  69. package/dist/esm/components/Listbox/useListbox.js.map +1 -1
  70. package/dist/esm/components/Listbox/useMultiListbox.js +69 -96
  71. package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
  72. package/dist/esm/components/Listbox/useTypeahead.js +10 -9
  73. package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
  74. package/dist/esm/components/Listbox/util.js +48 -85
  75. package/dist/esm/components/Listbox/util.js.map +1 -1
  76. package/dist/esm/components/Menu/Context.js +2 -2
  77. package/dist/esm/components/Menu/Context.js.map +1 -1
  78. package/dist/esm/components/Menu/Menu.js +16 -34
  79. package/dist/esm/components/Menu/Menu.js.map +1 -1
  80. package/dist/esm/components/Menu/components/Checkbox.js +9 -10
  81. package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
  82. package/dist/esm/components/Menu/components/Content.js +9 -11
  83. package/dist/esm/components/Menu/components/Content.js.map +1 -1
  84. package/dist/esm/components/Menu/components/Header.js +3 -3
  85. package/dist/esm/components/Menu/components/Header.js.map +1 -1
  86. package/dist/esm/components/Menu/components/Item.js +30 -31
  87. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  88. package/dist/esm/components/Menu/components/Link.js +10 -11
  89. package/dist/esm/components/Menu/components/Link.js.map +1 -1
  90. package/dist/esm/components/Menu/components/RadioGroup.js +17 -19
  91. package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
  92. package/dist/esm/components/Menu/components/Separator.js +1 -1
  93. package/dist/esm/components/Menu/components/Separator.js.map +1 -1
  94. package/dist/esm/components/Menu/components/Trigger.js +4 -4
  95. package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
  96. package/dist/esm/components/Navigation/Navigation.js +35 -44
  97. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  98. package/dist/esm/components/Pagination/PageNumbers.js +23 -28
  99. package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
  100. package/dist/esm/components/Pagination/Pagination.js +39 -56
  101. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  102. package/dist/esm/components/Pagination/usePagination.js +7 -21
  103. package/dist/esm/components/Pagination/usePagination.js.map +1 -1
  104. package/dist/esm/components/Pagination/usePaginationShortcuts.js +13 -14
  105. package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
  106. package/dist/esm/components/Popover/Popover.js +29 -34
  107. package/dist/esm/components/Popover/Popover.js.map +1 -1
  108. package/dist/esm/components/Popover/Primitives.js +7 -8
  109. package/dist/esm/components/Popover/Primitives.js.map +1 -1
  110. package/dist/esm/components/Progress/Progress.js +11 -15
  111. package/dist/esm/components/Progress/Progress.js.map +1 -1
  112. package/dist/esm/components/Provider/Provider.js +13 -18
  113. package/dist/esm/components/Provider/Provider.js.map +1 -1
  114. package/dist/esm/components/RadioGroup/RadioGroup.js +45 -57
  115. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  116. package/dist/esm/components/SearchInput/SearchInput.js +10 -12
  117. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  118. package/dist/esm/components/Select/Select.js +30 -31
  119. package/dist/esm/components/Select/Select.js.map +1 -1
  120. package/dist/esm/components/Select/useSelect.js +69 -88
  121. package/dist/esm/components/Select/useSelect.js.map +1 -1
  122. package/dist/esm/components/Spinner/Spinner.js +12 -19
  123. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  124. package/dist/esm/components/Switch/Switch.js +9 -10
  125. package/dist/esm/components/Switch/Switch.js.map +1 -1
  126. package/dist/esm/components/Table/components/BaseTable.js +23 -30
  127. package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
  128. package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
  129. package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
  130. package/dist/esm/components/Table/components/Table.js +18 -25
  131. package/dist/esm/components/Table/components/Table.js.map +1 -1
  132. package/dist/esm/components/Table/components/WindowedTable.js +89 -109
  133. package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
  134. package/dist/esm/components/Table/hooks/plugins/useRowActions.js +123 -148
  135. package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  136. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
  137. package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
  138. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
  139. package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
  140. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +79 -89
  141. package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  142. package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
  143. package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
  144. package/dist/esm/components/Table/hooks/useTable.js +123 -141
  145. package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
  146. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +23 -27
  147. package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  148. package/dist/esm/components/Table/util/renderColumn.js +10 -10
  149. package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
  150. package/dist/esm/components/Table/util/renderRow.js +37 -46
  151. package/dist/esm/components/Table/util/renderRow.js.map +1 -1
  152. package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
  153. package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
  154. package/dist/esm/components/Table/util/sortTypes.js +23 -31
  155. package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
  156. package/dist/esm/components/Table/util.js +29 -41
  157. package/dist/esm/components/Table/util.js.map +1 -1
  158. package/dist/esm/components/Tabs/Tabs.js +25 -27
  159. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  160. package/dist/esm/components/Textarea/Textarea.js +11 -9
  161. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  162. package/dist/esm/components/Toast/Toast.js +27 -23
  163. package/dist/esm/components/Toast/Toast.js.map +1 -1
  164. package/dist/esm/components/Toast/Toaster.js +88 -118
  165. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  166. package/dist/esm/components/Toast/util.js +2 -2
  167. package/dist/esm/components/Toast/util.js.map +1 -1
  168. package/dist/esm/components/Tooltip/Tooltip.js +7 -8
  169. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  170. package/dist/esm/components/Tour/Tour.js +46 -53
  171. package/dist/esm/components/Tour/Tour.js.map +1 -1
  172. package/dist/esm/components/Treeview/Treeview.js +26 -36
  173. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  174. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  175. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  176. package/dist/esm/index.css +1 -9
  177. package/dist/esm/index.js +1 -1
  178. package/dist/esm/primitives/Button.js +9 -13
  179. package/dist/esm/primitives/Button.js.map +1 -1
  180. package/dist/esm/utils/date.js +20 -40
  181. package/dist/esm/utils/date.js.map +1 -1
  182. package/dist/esm/utils/hooks/useBoundingClientRectListener.js +12 -20
  183. package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
  184. package/dist/esm/utils/hooks/useDraggable.js +16 -17
  185. package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
  186. package/dist/esm/utils/hooks/useDropTarget.js +7 -10
  187. package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
  188. package/dist/esm/utils/hooks/useListKeyboardNavigation.js +15 -30
  189. package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  190. package/dist/esm/utils/hooks/useListScrollTo.js +9 -9
  191. package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
  192. package/dist/esm/utils/hooks/useOnClickOutside.js +6 -8
  193. package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
  194. package/dist/esm/utils/hooks/useProxiedRef.js +3 -3
  195. package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
  196. package/dist/esm/utils/hooks/useTimer.js +9 -17
  197. package/dist/esm/utils/hooks/useTimer.js.map +1 -1
  198. package/dist/esm/utils/input.js +8 -12
  199. package/dist/esm/utils/input.js.map +1 -1
  200. package/dist/esm/utils/mergeRefs.js +2 -2
  201. package/dist/esm/utils/mergeRefs.js.map +1 -1
  202. package/dist/esm/utils/taillwind.js +2 -2
  203. package/dist/esm/utils/taillwind.js.map +1 -1
  204. package/dist/index.css +1 -9
  205. package/dist/taco.cjs.development.js +2334 -2883
  206. package/dist/taco.cjs.development.js.map +1 -1
  207. package/dist/taco.cjs.production.min.js +1 -1
  208. package/dist/taco.cjs.production.min.js.map +1 -1
  209. package/dist/utils/hooks/useListKeyboardNavigation.d.ts +1 -1
  210. package/package.json +4 -5
  211. package/types.json +10 -3
  212. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +0 -34
  213. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
1
+ {"version":3,"file":"useRowDraggable.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowDraggable.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { RowDragHandler } from '../../types';\nimport { sanitizeRowProps } from '../../util';\n\nconst pluginName = 'useRowDraggable';\n\nactions.resetRowDragging = 'resetRowDragging';\nactions.toggleRowDragging = 'toggleRowDragging';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n draggingRowIndexPath: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowDragging) {\n return {\n ...state,\n draggingRowIndexPath: null,\n };\n }\n\n if (action.type === actions.toggleRowDragging) {\n const { indexPath } = action;\n return {\n ...state,\n draggingRowIndexPath: indexPath,\n };\n }\n\n return state;\n}\n\nconst prepareRow = (row: any, { instance }: any): void => {\n row.toggleRowDragging = () => {\n if (instance.state.draggingRowIndexPath === row.id) {\n instance.dispatch({ type: actions.resetRowDragging });\n } else {\n instance.dispatch({ type: actions.toggleRowDragging, indexPath: row.id });\n }\n };\n\n if (instance.state.draggingRowIndexPath) {\n row.isDragging = instance.state.draggingRowIndexPath === row.id || !!instance.state.selectedRowIds?.[row.id];\n } else {\n row.isDragging = false;\n }\n};\n\nconst visibleColumns = (columns: any) => {\n return [\n {\n id: 'draggable',\n className: 'yt-table__cell--draggable flex-col px-0',\n Cell: () => <Icon name=\"drag\" className=\"text-grey-darkest invisible w-[20px] cursor-grab\" />,\n flex: '0 0 20px',\n },\n ...columns,\n ];\n};\n\nconst getRowProps =\n (onRowDrag: RowDragHandler<any>) =>\n (props: any, { instance, row }: any) => {\n const onDragStart = (event: React.DragEvent): void => {\n event.persist();\n row.toggleRowDragging();\n\n const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];\n const data = instance.rows.filter((r: any) => indexPaths.includes(r.id)).map(sanitizeRowProps);\n\n const showPlaceholder = (placeholder: string) => {\n const element = window.document.createElement('div');\n element.id = 'yt-table__drag__placeholder';\n element.innerText = placeholder;\n window.document.body.appendChild(element);\n\n if (typeof DataTransfer.prototype.setDragImage === 'function') {\n event.dataTransfer.setDragImage(element, 0, 20);\n }\n };\n\n onRowDrag(data, showPlaceholder, event);\n };\n\n const onDragEnd = (): void => {\n const element: HTMLElement | null = document.getElementById('yt-table__drag__placeholder');\n\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n\n row.toggleRowDragging();\n };\n\n return [\n props,\n {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n ];\n };\n\nexport const useRowDraggable = (onRowDrag: RowDragHandler<any> | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (onRowDrag) {\n hooks.stateReducers.push(reducer);\n hooks.prepareRow.push(prepareRow);\n hooks.visibleColumns.push(visibleColumns);\n hooks.getRowProps.push(getRowProps(onRowDrag));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowDragging","toggleRowDragging","reducer","state","action","type","init","draggingRowIndexPath","indexPath","prepareRow","row","instance","id","dispatch","isDragging","selectedRowIds","visibleColumns","columns","className","Cell","React","Icon","name","flex","getRowProps","onRowDrag","props","onDragStart","event","persist","indexPaths","Object","keys","data","rows","filter","r","includes","map","sanitizeRowProps","showPlaceholder","placeholder","element","window","document","createElement","innerText","body","appendChild","DataTransfer","prototype","setDragImage","dataTransfer","onDragEnd","getElementById","parentNode","removeChild","draggable","useRowDraggable","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1,87 +1,90 @@
1
- import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { actions } from 'react-table';
4
3
 
5
- var pluginName = 'useRowEditing';
4
+ const pluginName = 'useRowEditing';
6
5
  actions.resetRowEditing = 'resetRowEditing';
7
6
  actions.toggleRowEditing = 'toggleRowEditing';
8
7
  actions.toggleEditing = 'toggleEditing';
9
8
 
10
9
  function reducer(state, action) {
11
10
  if (action.type === actions.init) {
12
- return _extends({
11
+ return {
13
12
  allowEditing: true,
14
- editingRowUniqueId: null
15
- }, state);
13
+ editingRowUniqueId: null,
14
+ ...state
15
+ };
16
16
  }
17
17
 
18
18
  if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {
19
- return _extends({}, state, {
19
+ return { ...state,
20
20
  editingRowUniqueId: null
21
- });
21
+ };
22
22
  }
23
23
 
24
24
  if (action.type === actions.toggleRowEditing) {
25
- var id = action.id;
26
- return _extends({}, state, {
25
+ const {
26
+ id
27
+ } = action;
28
+ return { ...state,
27
29
  editingRowUniqueId: id
28
- });
30
+ };
29
31
  }
30
32
 
31
33
  if (action.type === actions.toggleEditing) {
32
- return _extends({}, state, {
34
+ return { ...state,
33
35
  allowEditing: !state.allowEditing
34
- });
36
+ };
35
37
  }
36
38
 
37
39
  return state;
38
40
  }
39
41
 
40
42
  function useInstance(instance) {
41
- var dispatch = instance.dispatch;
42
- var resetRowEditing = React__default.useCallback(function () {
43
+ const {
44
+ dispatch
45
+ } = instance;
46
+ const resetRowEditing = React__default.useCallback(() => {
43
47
  dispatch({
44
48
  type: actions.resetRowEditing
45
49
  });
46
50
  }, [dispatch]);
47
- var toggleRowEditing = React__default.useCallback(function (id) {
51
+ const toggleRowEditing = React__default.useCallback(id => {
48
52
  dispatch({
49
53
  type: actions.toggleRowEditing,
50
- id: id
54
+ id
51
55
  });
52
56
  }, [dispatch]);
53
- var toggleEditing = React__default.useCallback(function () {
57
+ const toggleEditing = React__default.useCallback(() => {
54
58
  dispatch({
55
59
  type: actions.toggleEditing
56
60
  });
57
61
  }, [dispatch]);
58
62
  Object.assign(instance, {
59
- resetRowEditing: resetRowEditing,
60
- toggleRowEditing: toggleRowEditing,
61
- toggleEditing: toggleEditing
63
+ resetRowEditing,
64
+ toggleRowEditing,
65
+ toggleEditing
62
66
  });
63
67
  }
64
68
 
65
- var prepareRow = function prepareRow(uniqueId) {
66
- return function (row, _ref) {
67
- var instance = _ref.instance;
68
- var id = row.original[uniqueId];
69
-
70
- row.toggleRowEditing = function () {
71
- if (instance.state.editingRowUniqueId === id) {
72
- instance.resetRowEditing();
73
- } else {
74
- instance.toggleRowEditing(id);
75
- }
76
- };
69
+ const prepareRow = uniqueId => (row, {
70
+ instance
71
+ }) => {
72
+ const id = row.original[uniqueId];
77
73
 
78
- row.isEditing = row.original._createKey ? instance.state.editingRowUniqueId === row.original._createKey : instance.state.editingRowUniqueId === id;
79
- row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);
74
+ row.toggleRowEditing = () => {
75
+ if (instance.state.editingRowUniqueId === id) {
76
+ instance.resetRowEditing();
77
+ } else {
78
+ instance.toggleRowEditing(id);
79
+ }
80
80
  };
81
+
82
+ row.isEditing = row.original._createKey ? instance.state.editingRowUniqueId === row.original._createKey : instance.state.editingRowUniqueId === id;
83
+ row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);
81
84
  };
82
85
 
83
- var useRowEditing = function useRowEditing(uniqueId) {
84
- var plugin = function plugin(hooks) {
86
+ const useRowEditing = uniqueId => {
87
+ const plugin = hooks => {
85
88
  if (uniqueId) {
86
89
  hooks.stateReducers.push(reducer);
87
90
  hooks.useInstance.push(useInstance);
@@ -1 +1 @@
1
- {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":";;;;AAGA,IAAMA,UAAU,GAAG,eAAnB;AAEAC,OAAO,CAACC,eAAR,GAA0B,iBAA1B;AACAD,OAAO,CAACE,gBAAR,GAA2B,kBAA3B;AACAF,OAAO,CAACG,aAAR,GAAwB,eAAxB;;AAEA,SAASC,OAAT,CAAiBC,KAAjB,EAA6BC,MAA7B;EACI,IAAIA,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACQ,IAA5B,EAAkC;IAC9B;MACIC,YAAY,EAAE,IADlB;MAEIC,kBAAkB,EAAE;OACjBL,KAHP;;;EAOJ,IAAIC,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACC,eAAxB,IAA2CK,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACW,SAAnE,IAAgFL,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACY,QAA5G,EAAsH;IAClH,oBACOP,KADP;MAEIK,kBAAkB,EAAE;;;;EAI5B,IAAIJ,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACE,gBAA5B,EAA8C;IAC1C,IAAQW,EAAR,GAAeP,MAAf,CAAQO,EAAR;IACA,oBACOR,KADP;MAEIK,kBAAkB,EAAEG;;;;EAI5B,IAAIP,MAAM,CAACC,IAAP,KAAgBP,OAAO,CAACG,aAA5B,EAA2C;IACvC,oBACOE,KADP;MAEII,YAAY,EAAE,CAACJ,KAAK,CAACI;;;;EAI7B,OAAOJ,KAAP;AACH;;AAED,SAASS,WAAT,CAAqBC,QAArB;EACI,IAAQC,QAAR,GAAqBD,QAArB,CAAQC,QAAR;EAEA,IAAMf,eAAe,GAAGgB,cAAK,CAACC,WAAN,CAAkB;IACtCF,QAAQ,CAAC;MAAET,IAAI,EAAEP,OAAO,CAACC;KAAjB,CAAR;GADoB,EAErB,CAACe,QAAD,CAFqB,CAAxB;EAIA,IAAMd,gBAAgB,GAAGe,cAAK,CAACC,WAAN,CACrB,UAAAL,EAAE;IACEG,QAAQ,CAAC;MAAET,IAAI,EAAEP,OAAO,CAACE,gBAAhB;MAAkCW,EAAE,EAAFA;KAAnC,CAAR;GAFiB,EAIrB,CAACG,QAAD,CAJqB,CAAzB;EAOA,IAAMb,aAAa,GAAGc,cAAK,CAACC,WAAN,CAAkB;IACpCF,QAAQ,CAAC;MAAET,IAAI,EAAEP,OAAO,CAACG;KAAjB,CAAR;GADkB,EAEnB,CAACa,QAAD,CAFmB,CAAtB;EAIAG,MAAM,CAACC,MAAP,CAAcL,QAAd,EAAwB;IACpBd,eAAe,EAAfA,eADoB;IAEpBC,gBAAgB,EAAhBA,gBAFoB;IAGpBC,aAAa,EAAbA;GAHJ;AAKH;;AAED,IAAMkB,UAAU,GACZ,SADEA,UACF,CAAeC,QAAf;EAAA,OACA,UAACC,GAAD;QAAaR,gBAAAA;IACT,IAAMF,EAAE,GAAGU,GAAG,CAACC,QAAJ,CAAaF,QAAb,CAAX;;IAEAC,GAAG,CAACrB,gBAAJ,GAAuB;MACnB,IAAIa,QAAQ,CAACV,KAAT,CAAeK,kBAAf,KAAsCG,EAA1C,EAA8C;QAC1CE,QAAQ,CAACd,eAAT;OADJ,MAEO;QACHc,QAAQ,CAACb,gBAAT,CAA0BW,EAA1B;;KAJR;;IAQAU,GAAG,CAACE,SAAJ,GAAgBF,GAAG,CAACC,QAAJ,CAAaE,UAAb,GACVX,QAAQ,CAACV,KAAT,CAAeK,kBAAf,KAAsCa,GAAG,CAACC,QAAJ,CAAaE,UADzC,GAEVX,QAAQ,CAACV,KAAT,CAAeK,kBAAf,KAAsCG,EAF5C;IAGAU,GAAG,CAACI,OAAJ,GAAcZ,QAAQ,CAACV,KAAT,CAAeI,YAAf,KAAgCc,GAAG,CAACE,SAAJ,IAAiB,CAACV,QAAQ,CAACV,KAAT,CAAeK,kBAAjE,CAAd;GAfJ;AAAA,CADJ;;IAmBakB,aAAa,GAAG,SAAhBA,aAAgB,CAAeN,QAAf;EACzB,IAAMO,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;IACX,IAAIR,QAAJ,EAAc;MACVQ,KAAK,CAACC,aAAN,CAAoBC,IAApB,CAAyB5B,OAAzB;MACA0B,KAAK,CAAChB,WAAN,CAAkBkB,IAAlB,CAAuBlB,WAAvB;MACAgB,KAAK,CAACT,UAAN,CAAiBW,IAAjB,CAAsBX,UAAU,CAAIC,QAAJ,CAAhC;;GAJR;;EAOAO,MAAM,CAAC9B,UAAP,GAAoBA,UAApB;EAEA,OAAO8B,MAAP;AACH;;;;"}
1
+ {"version":3,"file":"useRowEditing.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowEditing.tsx"],"sourcesContent":["import React from 'react';\nimport { actions, PluginHook } from 'react-table';\n\nconst pluginName = 'useRowEditing';\n\nactions.resetRowEditing = 'resetRowEditing';\nactions.toggleRowEditing = 'toggleRowEditing';\nactions.toggleEditing = 'toggleEditing';\n\nfunction reducer(state: any, action: any): object {\n if (action.type === actions.init) {\n return {\n allowEditing: true,\n editingRowUniqueId: null,\n ...state,\n };\n }\n\n if (action.type === actions.resetRowEditing || action.type === actions.resetPage || action.type === actions.gotoPage) {\n return {\n ...state,\n editingRowUniqueId: null,\n };\n }\n\n if (action.type === actions.toggleRowEditing) {\n const { id } = action;\n return {\n ...state,\n editingRowUniqueId: id,\n };\n }\n\n if (action.type === actions.toggleEditing) {\n return {\n ...state,\n allowEditing: !state.allowEditing,\n };\n }\n\n return state;\n}\n\nfunction useInstance(instance: any): void {\n const { dispatch } = instance;\n\n const resetRowEditing = React.useCallback(() => {\n dispatch({ type: actions.resetRowEditing });\n }, [dispatch]);\n\n const toggleRowEditing = React.useCallback(\n id => {\n dispatch({ type: actions.toggleRowEditing, id });\n },\n [dispatch]\n );\n\n const toggleEditing = React.useCallback(() => {\n dispatch({ type: actions.toggleEditing });\n }, [dispatch]);\n\n Object.assign(instance, {\n resetRowEditing,\n toggleRowEditing,\n toggleEditing,\n });\n}\n\nconst prepareRow =\n <T extends {}>(uniqueId: keyof T) =>\n (row: any, { instance }: any): void => {\n const id = row.original[uniqueId];\n\n row.toggleRowEditing = () => {\n if (instance.state.editingRowUniqueId === id) {\n instance.resetRowEditing();\n } else {\n instance.toggleRowEditing(id);\n }\n };\n\n row.isEditing = row.original._createKey\n ? instance.state.editingRowUniqueId === row.original._createKey\n : instance.state.editingRowUniqueId === id;\n row.canEdit = instance.state.allowEditing && (row.isEditing || !instance.state.editingRowUniqueId);\n };\n\nexport const useRowEditing = <T extends {}>(uniqueId: keyof T | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n if (uniqueId) {\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow<T>(uniqueId));\n }\n };\n plugin.pluginName = pluginName;\n\n return plugin;\n};\n"],"names":["pluginName","actions","resetRowEditing","toggleRowEditing","toggleEditing","reducer","state","action","type","init","allowEditing","editingRowUniqueId","resetPage","gotoPage","id","useInstance","instance","dispatch","React","useCallback","Object","assign","prepareRow","uniqueId","row","original","isEditing","_createKey","canEdit","useRowEditing","plugin","hooks","stateReducers","push"],"mappings":"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"}
@@ -1,112 +1,102 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { Checkbox } from '../../../Checkbox/Checkbox.js';
4
3
  import { useRowSelect as useRowSelect$1 } from 'react-table';
5
4
 
6
- var _excluded = ["onChange"],
7
- _excluded2 = ["onChange"];
5
+ // this wraps react-table's internal useRowSelect hook
8
6
 
9
- var toggleBetween = function toggleBetween(fromRowIndex, toRowIndex) {
10
- var fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;
11
- var toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;
7
+ const toggleBetween = (fromRowIndex, toRowIndex) => {
8
+ const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;
9
+ const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;
12
10
  return [fromIndex, toIndex];
13
11
  }; // react-table calls "index paths" row ids. we named them indexPaths to reduce confusion with natural ids
14
12
  // the selection hook usess react-table's row selection, so this hok references row.id - it is the index path
15
13
 
16
14
 
17
- var useRowSelect = function useRowSelect(onSelectedRows) {
18
- var plugin = function plugin(hooks) {
15
+ const useRowSelect = onSelectedRows => {
16
+ const plugin = hooks => {
19
17
  // eslint-disable-next-line react-hooks/rules-of-hooks
20
18
  useRowSelect$1(hooks);
21
19
 
22
20
  if (onSelectedRows) {
23
- var toggleRowSelected = function toggleRowSelected(indexPath, checked) {
24
- return onSelectedRows(function (state) {
25
- var nextState = _extends({}, state);
26
-
27
- if (checked) {
28
- nextState[indexPath] = true;
29
- } else {
30
- delete nextState[indexPath];
31
- }
32
-
33
- return nextState;
34
- });
35
- };
36
-
37
- var prepareRow = function prepareRow(row) {
38
- row.toggleRowSelected = function () {
39
- return toggleRowSelected(row.id, !row.isSelected);
21
+ const toggleRowSelected = (indexPath, checked) => onSelectedRows(state => {
22
+ const nextState = { ...state
40
23
  };
41
- };
42
24
 
43
- hooks.prepareRow.push(prepareRow); // eslint-disable-next-line react-hooks/rules-of-hooks
25
+ if (checked) {
26
+ nextState[indexPath] = true;
27
+ } else {
28
+ delete nextState[indexPath];
29
+ }
44
30
 
45
- var lastSelectedSortedIndex = React__default.useRef();
46
- hooks.visibleColumns.push(function (columns) {
47
- return [{
48
- id: 'selection',
49
- Header: function Header(_ref) {
50
- var getToggleAllRowsSelectedProps = _ref.getToggleAllRowsSelectedProps,
51
- rows = _ref.rows;
52
-
53
- var _getToggleAllRowsSele = getToggleAllRowsSelectedProps(),
54
- props = _objectWithoutPropertiesLoose(_getToggleAllRowsSele, _excluded);
55
-
56
- var onChange = function onChange(checked) {
57
- if (checked) {
58
- // this intentionally only selects top level rows - sub rows add too much complexity
59
- onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));
60
- } else {
61
- onSelectedRows({});
62
- }
63
- };
64
-
65
- return React__default.createElement(Checkbox, Object.assign({}, props, {
66
- onChange: onChange
67
- }));
68
- },
69
- Cell: function Cell(_ref2) {
70
- var row = _ref2.row,
71
- rows = _ref2.rows;
72
-
73
- var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
74
- props = _objectWithoutPropertiesLoose(_row$getToggleRowSele, _excluded2); // row.index refers to the index in the original data, not the current index
75
-
76
-
77
- var sortedIndex = rows.findIndex(function (r) {
78
- return r.index === row.index;
79
- });
80
-
81
- var onClick = function onClick(event) {
82
- if (event.shiftKey) {
83
- var _toggleBetween = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex),
84
- fromIndex = _toggleBetween[0],
85
- toIndex = _toggleBetween[1];
86
-
87
- for (var i = fromIndex; i <= toIndex; i++) {
88
- toggleRowSelected(rows[i].id, true);
89
- }
90
- } else {
91
- toggleRowSelected(row.id, !props.checked);
92
- }
31
+ return nextState;
32
+ });
93
33
 
94
- lastSelectedSortedIndex.current = sortedIndex;
95
- };
34
+ const prepareRow = row => {
35
+ row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);
36
+ };
96
37
 
97
- return React__default.createElement(Checkbox, Object.assign({}, props, {
98
- className: "mt-2.5",
99
- onClick: onClick,
100
- // this is necessary to remove console spam from eslint
101
- onChange: function onChange() {
102
- return false;
38
+ hooks.prepareRow.push(prepareRow); // eslint-disable-next-line react-hooks/rules-of-hooks
39
+
40
+ const lastSelectedSortedIndex = React__default.useRef();
41
+ hooks.visibleColumns.push(columns => [{
42
+ id: 'selection',
43
+ Header: ({
44
+ getToggleAllRowsSelectedProps,
45
+ rows
46
+ }) => {
47
+ const {
48
+ onChange: _,
49
+ ...props
50
+ } = getToggleAllRowsSelectedProps();
51
+
52
+ const onChange = checked => {
53
+ if (checked) {
54
+ // this intentionally only selects top level rows - sub rows add too much complexity
55
+ onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));
56
+ } else {
57
+ onSelectedRows({});
58
+ }
59
+ };
60
+
61
+ return React__default.createElement(Checkbox, Object.assign({}, props, {
62
+ onChange: onChange
63
+ }));
64
+ },
65
+ Cell: ({
66
+ row,
67
+ rows
68
+ }) => {
69
+ const {
70
+ onChange: _,
71
+ ...props
72
+ } = row.getToggleRowSelectedProps(); // row.index refers to the index in the original data, not the current index
73
+
74
+ const sortedIndex = rows.findIndex(r => r.index === row.index);
75
+
76
+ const onClick = event => {
77
+ if (event.shiftKey) {
78
+ const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);
79
+
80
+ for (let i = fromIndex; i <= toIndex; i++) {
81
+ toggleRowSelected(rows[i].id, true);
103
82
  }
104
- }));
105
- },
106
- flex: '0 0 36px',
107
- className: 'flex-col justify-start !py-0'
108
- }].concat(columns);
109
- });
83
+ } else {
84
+ toggleRowSelected(row.id, !props.checked);
85
+ }
86
+
87
+ lastSelectedSortedIndex.current = sortedIndex;
88
+ };
89
+
90
+ return React__default.createElement(Checkbox, Object.assign({}, props, {
91
+ className: "mt-2.5",
92
+ onClick: onClick,
93
+ // this is necessary to remove console spam from eslint
94
+ onChange: () => false
95
+ }));
96
+ },
97
+ flex: '0 0 36px',
98
+ className: 'flex-col justify-start !py-0'
99
+ }, ...columns]);
110
100
  }
111
101
  };
112
102
 
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","props","onChange","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowSelect.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowSelect.tsx"],"sourcesContent":["// this wraps react-table's internal useRowSelect hook\nimport React from 'react';\nimport { useRowSelect as useBaseRowSelect, Row, PluginHook } from 'react-table';\nimport { Checkbox } from '../../../Checkbox/Checkbox';\nimport { SelectedRowsHandler } from '../../types';\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\n// react-table calls \"index paths\" row ids. we named them indexPaths to reduce confusion with natural ids\n// the selection hook usess react-table's row selection, so this hok references row.id - it is the index path\n\nexport const useRowSelect = (onSelectedRows: SelectedRowsHandler | undefined): PluginHook<{}> => {\n const plugin = (hooks: any): void => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useBaseRowSelect(hooks);\n\n if (onSelectedRows) {\n const toggleRowSelected = (indexPath: string, checked: boolean): void =>\n onSelectedRows(state => {\n const nextState = { ...state };\n\n if (checked) {\n nextState[indexPath] = true;\n } else {\n delete nextState[indexPath];\n }\n\n return nextState;\n });\n\n const prepareRow = (row: any) => {\n row.toggleRowSelected = () => toggleRowSelected(row.id, !row.isSelected);\n };\n\n hooks.prepareRow.push(prepareRow);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastSelectedSortedIndex = React.useRef();\n\n hooks.visibleColumns.push((columns: any) => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps, rows }: any) => {\n const { onChange: _, ...props } = getToggleAllRowsSelectedProps();\n\n const onChange = (checked): void => {\n if (checked) {\n // this intentionally only selects top level rows - sub rows add too much complexity\n onSelectedRows(Object.assign({}, Array(rows.length).fill(true)));\n } else {\n onSelectedRows({});\n }\n };\n\n return <Checkbox {...props} onChange={onChange} />;\n },\n Cell: ({ row, rows }: any) => {\n const { onChange: _, ...props } = row.getToggleRowSelectedProps();\n // row.index refers to the index in the original data, not the current index\n const sortedIndex = rows.findIndex((r: Row) => r.index === row.index);\n\n const onClick = (event: React.MouseEvent): void => {\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(lastSelectedSortedIndex.current || 0, sortedIndex);\n\n for (let i = fromIndex; i <= toIndex; i++) {\n toggleRowSelected(rows[i].id, true);\n }\n } else {\n toggleRowSelected(row.id, !props.checked);\n }\n\n lastSelectedSortedIndex.current = sortedIndex;\n };\n\n return (\n <Checkbox\n {...props}\n className=\"mt-2.5\"\n onClick={onClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n );\n },\n flex: '0 0 36px',\n className: 'flex-col justify-start !py-0',\n },\n ...columns,\n ]);\n }\n };\n plugin.pluginName = 'useRowSelect';\n return plugin;\n};\n"],"names":["toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","useRowSelect","onSelectedRows","plugin","hooks","useBaseRowSelect","toggleRowSelected","indexPath","checked","state","nextState","prepareRow","row","id","isSelected","push","lastSelectedSortedIndex","React","useRef","visibleColumns","columns","Header","getToggleAllRowsSelectedProps","rows","onChange","_","props","Object","assign","Array","length","fill","Checkbox","Cell","getToggleRowSelectedProps","sortedIndex","findIndex","r","index","onClick","event","shiftKey","current","i","className","flex","pluginName"],"mappings":";;;;AAAA;;AAMA,MAAMA,aAAa,GAAG,CAACC,YAAD,EAAuBC,UAAvB;EAClB,MAAMC,SAAS,GAAGD,UAAU,GAAGD,YAAb,GAA4BC,UAA5B,GAAyCD,YAA3D;EACA,MAAMG,OAAO,GAAGF,UAAU,GAAGD,YAAb,GAA4BC,UAA5B,GAAyCD,YAAzD;EAEA,OAAO,CAACE,SAAD,EAAYC,OAAZ,CAAP;AACH,CALD;AAQA;;;MAEaC,YAAY,GAAIC,cAAD;EACxB,MAAMC,MAAM,GAAIC,KAAD;;IAEXC,cAAgB,CAACD,KAAD,CAAhB;;IAEA,IAAIF,cAAJ,EAAoB;MAChB,MAAMI,iBAAiB,GAAG,CAACC,SAAD,EAAoBC,OAApB,KACtBN,cAAc,CAACO,KAAK;QAChB,MAAMC,SAAS,GAAG,EAAE,GAAGD;SAAvB;;QAEA,IAAID,OAAJ,EAAa;UACTE,SAAS,CAACH,SAAD,CAAT,GAAuB,IAAvB;SADJ,MAEO;UACH,OAAOG,SAAS,CAACH,SAAD,CAAhB;;;QAGJ,OAAOG,SAAP;OATU,CADlB;;MAaA,MAAMC,UAAU,GAAIC,GAAD;QACfA,GAAG,CAACN,iBAAJ,GAAwB,MAAMA,iBAAiB,CAACM,GAAG,CAACC,EAAL,EAAS,CAACD,GAAG,CAACE,UAAd,CAA/C;OADJ;;MAIAV,KAAK,CAACO,UAAN,CAAiBI,IAAjB,CAAsBJ,UAAtB,EAlBgB;;MAqBhB,MAAMK,uBAAuB,GAAGC,cAAK,CAACC,MAAN,EAAhC;MAEAd,KAAK,CAACe,cAAN,CAAqBJ,IAArB,CAA2BK,OAAD,IAAkB,CACxC;QACIP,EAAE,EAAE,WADR;QAEIQ,MAAM,EAAE,CAAC;UAAEC,6BAAF;UAAiCC;SAAlC;UACJ,MAAM;YAAEC,QAAQ,EAAEC,CAAZ;YAAe,GAAGC;cAAUJ,6BAA6B,EAA/D;;UAEA,MAAME,QAAQ,GAAIhB,OAAD;YACb,IAAIA,OAAJ,EAAa;;cAETN,cAAc,CAACyB,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBC,KAAK,CAACN,IAAI,CAACO,MAAN,CAAL,CAAmBC,IAAnB,CAAwB,IAAxB,CAAlB,CAAD,CAAd;aAFJ,MAGO;cACH7B,cAAc,CAAC,EAAD,CAAd;;WALR;;UASA,OAAOe,4BAAA,CAACe,QAAD,oBAAcN;YAAOF,QAAQ,EAAEA;YAA/B,CAAP;SAdR;QAgBIS,IAAI,EAAE,CAAC;UAAErB,GAAF;UAAOW;SAAR;UACF,MAAM;YAAEC,QAAQ,EAAEC,CAAZ;YAAe,GAAGC;cAAUd,GAAG,CAACsB,yBAAJ,EAAlC;;UAEA,MAAMC,WAAW,GAAGZ,IAAI,CAACa,SAAL,CAAgBC,CAAD,IAAYA,CAAC,CAACC,KAAF,KAAY1B,GAAG,CAAC0B,KAA3C,CAApB;;UAEA,MAAMC,OAAO,GAAIC,KAAD;YACZ,IAAIA,KAAK,CAACC,QAAV,EAAoB;cAChB,MAAM,CAAC1C,SAAD,EAAYC,OAAZ,IAAuBJ,aAAa,CAACoB,uBAAuB,CAAC0B,OAAxB,IAAmC,CAApC,EAAuCP,WAAvC,CAA1C;;cAEA,KAAK,IAAIQ,CAAC,GAAG5C,SAAb,EAAwB4C,CAAC,IAAI3C,OAA7B,EAAsC2C,CAAC,EAAvC,EAA2C;gBACvCrC,iBAAiB,CAACiB,IAAI,CAACoB,CAAD,CAAJ,CAAQ9B,EAAT,EAAa,IAAb,CAAjB;;aAJR,MAMO;cACHP,iBAAiB,CAACM,GAAG,CAACC,EAAL,EAAS,CAACa,KAAK,CAAClB,OAAhB,CAAjB;;;YAGJQ,uBAAuB,CAAC0B,OAAxB,GAAkCP,WAAlC;WAXJ;;UAcA,OACIlB,4BAAA,CAACe,QAAD,oBACQN;YACJkB,SAAS,EAAC;YACVL,OAAO,EAAEA;;YAETf,QAAQ,EAAE,MAAM;YALpB,CADJ;SAnCR;QA6CIqB,IAAI,EAAE,UA7CV;QA8CID,SAAS,EAAE;OA/CyB,EAiDxC,GAAGxB,OAjDqC,CAA5C;;GA3BR;;EAgFAjB,MAAM,CAAC2C,UAAP,GAAoB,cAApB;EACA,OAAO3C,MAAP;AACH;;;;"}
@@ -1,4 +1,3 @@
1
- import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { v4 } from 'uuid';
4
3
  import set from 'lodash-es/set';
@@ -8,27 +7,17 @@ import get from 'lodash-es/get';
8
7
  import compact from 'lodash-es/compact';
9
8
  import pullAt from 'lodash-es/pullAt';
10
9
 
11
- var insertChildTableRow = function insertChildTableRow(data, rowIndexPath, values) {
12
- if (rowIndexPath === void 0) {
13
- rowIndexPath = undefined;
14
- }
15
-
16
- if (values === void 0) {
17
- values = {};
18
- }
19
-
20
- var nexTRow = JSON.parse(JSON.stringify(data));
21
- var childRowIndexPath;
10
+ const insertChildTableRow = (data, rowIndexPath = undefined, values = {}) => {
11
+ const nexTRow = JSON.parse(JSON.stringify(data));
12
+ let childRowIndexPath;
22
13
 
23
14
  if (rowIndexPath) {
24
15
  var _currentRow$subRows;
25
16
 
26
- var rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
27
- var currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));
28
- var nextSubRows = (_currentRow$subRows = currentRow === null || currentRow === void 0 ? void 0 : currentRow.subRows) !== null && _currentRow$subRows !== void 0 ? _currentRow$subRows : [];
29
- var path = rowIndexes.map(function (i) {
30
- return "[" + i + "]";
31
- }).join('.subRows') + '.subRows';
17
+ const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
18
+ const currentRow = getByRowIndexPath(nexTRow, rowIndexes.join('.'));
19
+ const nextSubRows = (_currentRow$subRows = currentRow === null || currentRow === void 0 ? void 0 : currentRow.subRows) !== null && _currentRow$subRows !== void 0 ? _currentRow$subRows : [];
20
+ const path = rowIndexes.map(i => `[${i}]`).join('.subRows') + '.subRows';
32
21
  nextSubRows.unshift(values);
33
22
  set(nexTRow, path, nextSubRows); // rebuild the new id
34
23
 
@@ -41,22 +30,18 @@ var insertChildTableRow = function insertChildTableRow(data, rowIndexPath, value
41
30
 
42
31
  return [nexTRow, childRowIndexPath];
43
32
  };
44
- var removeChildTableRow = function removeChildTableRow(data, rowIndexPath) {
45
- var nexTRow = JSON.parse(JSON.stringify(data));
46
- var rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
47
- var rootIndex = Number(rowIndexes.shift());
33
+ const removeChildTableRow = (data, rowIndexPath) => {
34
+ const nexTRow = JSON.parse(JSON.stringify(data));
35
+ const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
36
+ const rootIndex = Number(rowIndexes.shift());
48
37
 
49
38
  if (rowIndexes.length) {
50
39
  // unset
51
- var unsetPath = rowIndexes.map(function (index) {
52
- return "subRows[" + index + "]";
53
- }).join('.');
40
+ const unsetPath = rowIndexes.map(index => `subRows[${index}]`).join('.');
54
41
  unset(nexTRow[rootIndex], unsetPath); // remove empty value from subRows
55
42
 
56
43
  rowIndexes.pop();
57
- var setPath = rowIndexes.length ? rowIndexes.map(function (index) {
58
- return "subRows[" + index + "]";
59
- }).join('.') + '.subRows' : 'subRows';
44
+ const setPath = rowIndexes.length ? rowIndexes.map(index => `subRows[${index}]`).join('.') + '.subRows' : 'subRows';
60
45
  set(nexTRow[rootIndex], setPath, compact(get(nexTRow[rootIndex], setPath)));
61
46
  } else {
62
47
  pullAt(nexTRow, rootIndex);
@@ -64,26 +49,17 @@ var removeChildTableRow = function removeChildTableRow(data, rowIndexPath) {
64
49
 
65
50
  return nexTRow;
66
51
  };
67
- var useTableRowCreation = function useTableRowCreation(data, tableRef) {
68
- var _React$useState = React__default.useState(JSON.parse(JSON.stringify(data))),
69
- internalData = _React$useState[0],
70
- setInternalData = _React$useState[1];
71
-
72
- var _React$useState2 = React__default.useState(undefined),
73
- activeRowIndexPath = _React$useState2[0],
74
- setActiveRowIndexPath = _React$useState2[1];
75
-
76
- React__default.useEffect(function () {
52
+ const useTableRowCreation = (data, tableRef) => {
53
+ const [internalData, setInternalData] = React__default.useState(JSON.parse(JSON.stringify(data)));
54
+ const [activeRowIndexPath, setActiveRowIndexPath] = React__default.useState(undefined);
55
+ React__default.useEffect(() => {
77
56
  if (activeRowIndexPath !== undefined) {
78
57
  // keep the same edit key, so that we don't remount the row/form
79
- var currentRow = getByRowIndexPath(internalData, activeRowIndexPath); // get the active creation rows parent
58
+ const currentRow = getByRowIndexPath(internalData, activeRowIndexPath); // get the active creation rows parent
80
59
 
81
- var parentId = getParentRowIndexPath(activeRowIndexPath); // insert a new empty row in the external data (with the same key)
82
-
83
- var _insertChildTableRow = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow),
84
- nexTRow = _insertChildTableRow[0],
85
- newRowIndexPath = _insertChildTableRow[1]; // update and set that row as active, we basically just changed it's position in our internal data
60
+ const parentId = getParentRowIndexPath(activeRowIndexPath); // insert a new empty row in the external data (with the same key)
86
61
 
62
+ const [nexTRow, newRowIndexPath] = insertChildTableRow(JSON.parse(JSON.stringify(data)), parentId, currentRow); // update and set that row as active, we basically just changed it's position in our internal data
87
63
 
88
64
  setActiveRowIndexPath(newRowIndexPath);
89
65
  setInternalData(nexTRow);
@@ -96,23 +72,12 @@ var useTableRowCreation = function useTableRowCreation(data, tableRef) {
96
72
  }
97
73
  }, [JSON.stringify(data)]);
98
74
 
99
- var create = function create(rowIndexPath, values) {
100
- if (rowIndexPath === void 0) {
101
- rowIndexPath = undefined;
102
- }
103
-
104
- if (values === void 0) {
105
- values = {};
106
- }
107
-
108
- var _createKey = v4();
109
-
110
- var _insertChildTableRow2 = insertChildTableRow(internalData, rowIndexPath, _extends({}, values, {
111
- _createKey: _createKey
112
- })),
113
- nexTRow = _insertChildTableRow2[0],
114
- newRowIndexPath = _insertChildTableRow2[1];
75
+ const create = (rowIndexPath = undefined, values = {}) => {
76
+ const _createKey = v4();
115
77
 
78
+ const [nexTRow, newRowIndexPath] = insertChildTableRow(internalData, rowIndexPath, { ...values,
79
+ _createKey
80
+ });
116
81
  setActiveRowIndexPath(newRowIndexPath);
117
82
  setInternalData(nexTRow);
118
83
 
@@ -123,16 +88,16 @@ var useTableRowCreation = function useTableRowCreation(data, tableRef) {
123
88
  return newRowIndexPath;
124
89
  };
125
90
 
126
- var remove = function remove(rowIndexPath) {
127
- var nexTRow = removeChildTableRow(internalData, rowIndexPath);
91
+ const remove = rowIndexPath => {
92
+ const nexTRow = removeChildTableRow(internalData, rowIndexPath);
128
93
  setInternalData(nexTRow);
129
94
  setActiveRowIndexPath(undefined);
130
95
  };
131
96
 
132
97
  return {
133
98
  data: internalData,
134
- create: create,
135
- remove: remove,
99
+ create,
100
+ remove,
136
101
  isCreating: activeRowIndexPath !== undefined
137
102
  };
138
103
  };