@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,31 +1,24 @@
1
1
  import React__default from 'react';
2
2
  import { IconButton } from '../../../IconButton/IconButton.js';
3
- import keycode from 'keycode';
4
3
  import { Menu } from '../../../Menu/Menu.js';
5
4
  import { sanitizeRowProps } from '../../util.js';
6
5
  import { InView } from 'react-intersection-observer';
7
6
 
8
- var actionGroupClassName = '-mt-1 -mb-1 h-8 flex';
7
+ const actionGroupClassName = '-mt-1 -mb-1 h-8 flex';
9
8
 
10
- var hasActions = function hasActions(inlineEditingUniqueId, handlers, actions) {
9
+ const hasActions = (inlineEditingUniqueId, handlers, actions) => {
11
10
  return !!actions || handlers.onRowCreate || handlers.onRowCopy || handlers.onRowDelete || !!inlineEditingUniqueId || handlers.onRowEdit;
12
11
  };
13
12
 
14
- var getActions = function getActions(actions, row) {
15
- if (row === void 0) {
16
- row = undefined;
17
- }
18
-
19
- var primary = [];
20
- var secondary = [];
13
+ const getActions = (actions, row = undefined) => {
14
+ const primary = [];
15
+ const secondary = [];
21
16
 
22
17
  if (actions) {
23
- var visibleActions = actions.filter(function (x) {
24
- return !!x;
25
- });
18
+ let visibleActions = actions.filter(x => !!x);
26
19
 
27
20
  if (row) {
28
- visibleActions = visibleActions.filter(function (action) {
21
+ visibleActions = visibleActions.filter(action => {
29
22
  if (action.visible !== undefined) {
30
23
  if (typeof action.visible === 'function') {
31
24
  return action.visible(row);
@@ -38,7 +31,7 @@ var getActions = function getActions(actions, row) {
38
31
  });
39
32
  }
40
33
 
41
- visibleActions.forEach(function (action) {
34
+ visibleActions.forEach(action => {
42
35
  if (action.showOnRow) {
43
36
  primary.push(action);
44
37
  } else {
@@ -50,12 +43,9 @@ var getActions = function getActions(actions, row) {
50
43
  return [primary, secondary];
51
44
  };
52
45
 
53
- var getLength = function getLength(inlineEditingUniqueId, handlers, actions) {
54
- var _getActions = getActions(actions),
55
- primaryActions = _getActions[0],
56
- secondaryActions = _getActions[1];
57
-
58
- var length = primaryActions.length + (secondaryActions.length ? 1 : 0);
46
+ const getLength = (inlineEditingUniqueId, handlers, actions) => {
47
+ const [primaryActions, secondaryActions] = getActions(actions);
48
+ let length = primaryActions.length + (secondaryActions.length ? 1 : 0);
59
49
 
60
50
  if (handlers.onRowCreate) {
61
51
  length++;
@@ -80,29 +70,29 @@ var getLength = function getLength(inlineEditingUniqueId, handlers, actions) {
80
70
  return length;
81
71
  };
82
72
 
83
- var getActionProps = function getActionProps(action, row) {
73
+ const getActionProps = (action, row) => {
84
74
  return {
85
75
  'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,
86
76
  disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,
87
- onClick: function onClick(event) {
77
+ onClick: event => {
88
78
  action.onClick(row, event);
89
79
  }
90
80
  };
91
81
  };
92
82
 
93
- var EditModeActions = function EditModeActions() {
94
- React__default.useEffect(function () {
95
- var listener = function listener(event) {
83
+ const EditModeActions = () => {
84
+ React__default.useEffect(() => {
85
+ const listener = event => {
96
86
  var _event$target, _event$target$form;
97
87
 
98
- if (event.keyCode === keycode('escape') && (_event$target = event.target) !== null && _event$target !== void 0 && (_event$target$form = _event$target.form) !== null && _event$target$form !== void 0 && _event$target$form.reset) {
88
+ if (event.key === 'Escape' && (_event$target = event.target) !== null && _event$target !== void 0 && (_event$target$form = _event$target.form) !== null && _event$target$form !== void 0 && _event$target$form.reset) {
99
89
  event.preventDefault();
100
90
  event.target.form.reset();
101
91
  }
102
92
  };
103
93
 
104
94
  document.addEventListener('keydown', listener);
105
- return function () {
95
+ return () => {
106
96
  document.removeEventListener('keydown', listener);
107
97
  };
108
98
  }, []);
@@ -120,135 +110,120 @@ var EditModeActions = function EditModeActions() {
120
110
  }));
121
111
  };
122
112
 
123
- var useRowActions = function useRowActions(inlineEditingUniqueId, handlers, actions, rowExpansionRenderer, texts, windowed) {
124
- if (windowed === void 0) {
125
- windowed = false;
126
- }
127
-
128
- var inlineEditing = !!inlineEditingUniqueId;
129
- var actionsLength = getLength(inlineEditingUniqueId, handlers, actions);
113
+ const useRowActions = (inlineEditingUniqueId, handlers, actions, rowExpansionRenderer, texts, windowed = false) => {
114
+ const inlineEditing = !!inlineEditingUniqueId;
115
+ const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);
130
116
 
131
- var plugin = function plugin(hooks) {
117
+ const plugin = hooks => {
132
118
  if (hasActions(inlineEditingUniqueId, handlers, actions)) {
133
- hooks.visibleColumns.push(function (columns) {
134
- return [].concat(columns, [{
135
- id: '_actions',
136
- className: 'flex justify-end px-1 overflow-visible',
137
- flex: "0 0 calc((" + actionsLength + " * 2rem) + .5rem)",
138
- Cell: function Cell(_ref) {
139
- var row = _ref.row;
140
-
141
- if (row.isEditing) {
142
- return React__default.createElement(EditModeActions, null);
143
- }
144
-
145
- var sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);
146
-
147
- var _getActions2 = getActions(actions, sanitizedRow),
148
- primaryActions = _getActions2[0],
149
- secondaryActions = _getActions2[1];
150
-
151
- var output = React__default.createElement(React__default.Fragment, null, handlers.onRowCreate && React__default.createElement(IconButton, {
152
- appearance: "discrete",
153
- icon: "circle-plus",
154
- "aria-label": texts.table.newSubRow,
155
- tooltip: texts.table.newSubRow,
156
- disabled: inlineEditing && !row.canEdit,
157
- onClick: function onClick(event) {
158
- event.stopPropagation();
159
- event.persist();
160
- row.setActive();
161
-
162
- if (!row.isExpanded) {
163
- row.toggleRowExpanded();
164
- }
119
+ hooks.visibleColumns.push(columns => [...columns, {
120
+ id: '_actions',
121
+ className: 'flex justify-end px-1 overflow-visible',
122
+ flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,
123
+ Cell: ({
124
+ row
125
+ }) => {
126
+ if (row.isEditing) {
127
+ return React__default.createElement(EditModeActions, null);
128
+ }
165
129
 
166
- handlers.onRowCreate(sanitizedRow, event);
130
+ const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);
131
+ const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);
132
+ const output = React__default.createElement(React__default.Fragment, null, handlers.onRowCreate && React__default.createElement(IconButton, {
133
+ appearance: "discrete",
134
+ icon: "circle-plus",
135
+ "aria-label": texts.table.newSubRow,
136
+ tooltip: texts.table.newSubRow,
137
+ disabled: inlineEditing && !row.canEdit,
138
+ onClick: event => {
139
+ event.stopPropagation();
140
+ event.persist();
141
+ row.setActive();
142
+
143
+ if (!row.isExpanded) {
144
+ row.toggleRowExpanded();
167
145
  }
168
- }), (inlineEditing || handlers.onRowEdit) && React__default.createElement(IconButton, {
169
- appearance: "discrete",
170
- icon: "edit",
171
- "aria-label": texts.table.edit,
172
- tooltip: texts.table.edit,
173
- disabled: inlineEditing && !row.canEdit,
174
- onClick: function onClick(event) {
175
- event.stopPropagation();
176
- row.setActive();
177
146
 
178
- if (inlineEditing) {
179
- row.toggleRowEditing();
180
- } else if (handlers.onRowEdit) {
181
- event.persist();
182
- handlers.onRowEdit(sanitizedRow, event);
183
- }
184
- }
185
- }), handlers.onRowCopy && React__default.createElement(IconButton, {
186
- appearance: "discrete",
187
- icon: "copy",
188
- "aria-label": texts.table.copy,
189
- tooltip: texts.table.copy,
190
- disabled: inlineEditing && !row.canEdit,
191
- onClick: function onClick(event) {
192
- event.stopPropagation();
193
- event.persist();
194
- row.setActive();
195
- handlers.onRowCopy(sanitizedRow, event);
196
- }
197
- }), handlers.onRowDelete && React__default.createElement(IconButton, {
198
- appearance: "discrete",
199
- icon: "delete",
200
- "aria-label": texts.table.del,
201
- tooltip: texts.table.del,
202
- disabled: inlineEditing && !row.canEdit,
203
- onClick: function onClick(event) {
204
- event.stopPropagation();
147
+ handlers.onRowCreate(sanitizedRow, event);
148
+ }
149
+ }), (inlineEditing || handlers.onRowEdit) && React__default.createElement(IconButton, {
150
+ appearance: "discrete",
151
+ icon: "edit",
152
+ "aria-label": texts.table.edit,
153
+ tooltip: texts.table.edit,
154
+ disabled: inlineEditing && !row.canEdit,
155
+ onClick: event => {
156
+ event.stopPropagation();
157
+ row.setActive();
158
+
159
+ if (inlineEditing) {
160
+ row.toggleRowEditing();
161
+ } else if (handlers.onRowEdit) {
205
162
  event.persist();
206
- row.setActive();
207
- handlers.onRowDelete(sanitizedRow, event);
163
+ handlers.onRowEdit(sanitizedRow, event);
208
164
  }
209
- }), primaryActions.map(function (action, index) {
210
- return React__default.createElement(IconButton, Object.assign({}, getActionProps(action, sanitizedRow), {
211
- key: index,
212
- appearance: "discrete",
213
- icon: typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon,
214
- tooltip: typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip
215
- }));
216
- }), secondaryActions.length ? React__default.createElement(Menu, null, React__default.createElement(Menu.Trigger, null, React__default.createElement(IconButton, {
217
- appearance: "discrete",
218
- icon: "ellipsis-vertical",
219
- "aria-label": texts.table.actions,
220
- tooltip: texts.table.actions,
221
- disabled: inlineEditing && !row.canEdit,
222
- onClick: function onClick(event) {
223
- event.stopPropagation();
224
- row.setActive();
225
- }
226
- })), React__default.createElement(Menu.Content, null, secondaryActions.map(function (action, index) {
227
- return React__default.createElement(Menu.Item, Object.assign({
228
- key: index,
229
- icon: typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon
230
- }, getActionProps(action, sanitizedRow)), typeof action.text === 'function' ? action.text(sanitizedRow) : action.text);
231
- }))) : null);
232
-
233
- if (windowed) {
234
- return React__default.createElement("div", {
235
- className: actionGroupClassName
236
- }, output);
237
165
  }
238
-
239
- return React__default.createElement(InView, {
240
- rootMargin: "100px 0px"
241
- }, function (_ref2) {
242
- var inView = _ref2.inView,
243
- ref = _ref2.ref;
244
- return React__default.createElement("div", {
245
- className: actionGroupClassName,
246
- ref: ref
247
- }, inView ? output : null);
248
- });
166
+ }), handlers.onRowCopy && React__default.createElement(IconButton, {
167
+ appearance: "discrete",
168
+ icon: "copy",
169
+ "aria-label": texts.table.copy,
170
+ tooltip: texts.table.copy,
171
+ disabled: inlineEditing && !row.canEdit,
172
+ onClick: event => {
173
+ event.stopPropagation();
174
+ event.persist();
175
+ row.setActive();
176
+ handlers.onRowCopy(sanitizedRow, event);
177
+ }
178
+ }), handlers.onRowDelete && React__default.createElement(IconButton, {
179
+ appearance: "discrete",
180
+ icon: "delete",
181
+ "aria-label": texts.table.del,
182
+ tooltip: texts.table.del,
183
+ disabled: inlineEditing && !row.canEdit,
184
+ onClick: event => {
185
+ event.stopPropagation();
186
+ event.persist();
187
+ row.setActive();
188
+ handlers.onRowDelete(sanitizedRow, event);
189
+ }
190
+ }), primaryActions.map((action, index) => React__default.createElement(IconButton, Object.assign({}, getActionProps(action, sanitizedRow), {
191
+ key: index,
192
+ appearance: "discrete",
193
+ icon: typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon,
194
+ tooltip: typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip
195
+ }))), secondaryActions.length ? React__default.createElement(Menu, null, React__default.createElement(Menu.Trigger, null, React__default.createElement(IconButton, {
196
+ appearance: "discrete",
197
+ icon: "ellipsis-vertical",
198
+ "aria-label": texts.table.actions,
199
+ tooltip: texts.table.actions,
200
+ disabled: inlineEditing && !row.canEdit,
201
+ onClick: event => {
202
+ event.stopPropagation();
203
+ row.setActive();
204
+ }
205
+ })), React__default.createElement(Menu.Content, null, secondaryActions.map((action, index) => React__default.createElement(Menu.Item, Object.assign({
206
+ key: index,
207
+ icon: typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon
208
+ }, getActionProps(action, sanitizedRow)), typeof action.text === 'function' ? action.text(sanitizedRow) : action.text)))) : null);
209
+
210
+ if (windowed) {
211
+ return React__default.createElement("div", {
212
+ className: actionGroupClassName
213
+ }, output);
249
214
  }
250
- }]);
251
- });
215
+
216
+ return React__default.createElement(InView, {
217
+ rootMargin: "100px 0px"
218
+ }, ({
219
+ inView,
220
+ ref
221
+ }) => React__default.createElement("div", {
222
+ className: actionGroupClassName,
223
+ ref: ref
224
+ }, inView ? output : null));
225
+ }
226
+ }]);
252
227
  }
253
228
  };
254
229
 
@@ -1 +1 @@
1
- {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport keycode from 'keycode';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.keyCode === keycode('escape') && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","keyCode","keycode","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","key","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useRowActions.js","sources":["../../../../../../src/components/Table/hooks/plugins/useRowActions.tsx"],"sourcesContent":["import React from 'react';\nimport { PluginHook } from 'react-table';\nimport { InView } from 'react-intersection-observer';\nimport { sanitizeRowProps } from '../../util';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { LocalizationTexts } from '../../../Provider/Provider';\nimport { Menu } from '../../../Menu/Menu';\nimport { RowAction, RowActionHandler, TableRow } from '../../types';\n\nconst actionGroupClassName = '-mt-1 -mb-1 h-8 flex';\n\nconst hasActions = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n return (\n !!actions ||\n handlers.onRowCreate ||\n handlers.onRowCopy ||\n handlers.onRowDelete ||\n !!inlineEditingUniqueId ||\n handlers.onRowEdit\n );\n};\n\nconst getActions = (\n actions: RowActionHandler<any>[] | undefined,\n row: TableRow<any> | undefined = undefined\n): [RowAction<any>[], RowAction<any>[]] => {\n const primary: RowAction<any>[] = [];\n const secondary: RowAction<any>[] = [];\n\n if (actions) {\n let visibleActions = actions.filter(x => !!x);\n\n if (row) {\n visibleActions = visibleActions.filter((action: RowAction<any>) => {\n if (action.visible !== undefined) {\n if (typeof action.visible === 'function') {\n return action.visible(row);\n }\n\n return action.visible;\n }\n\n return true;\n });\n }\n\n visibleActions.forEach((action: RowAction<any>) => {\n if (action.showOnRow) {\n primary.push(action);\n } else {\n secondary.push(action);\n }\n });\n }\n\n return [primary, secondary];\n};\n\nconst getLength = (inlineEditingUniqueId: any, handlers: any, actions: RowActionHandler<any>[] | undefined): number => {\n const [primaryActions, secondaryActions] = getActions(actions);\n\n let length = primaryActions.length + (secondaryActions.length ? 1 : 0);\n\n if (handlers.onRowCreate) {\n length++;\n }\n\n if (handlers.onRowCopy) {\n length++;\n }\n\n if (handlers.onRowDelete) {\n length++;\n }\n\n if (!!inlineEditingUniqueId || handlers.onRowEdit) {\n length++;\n\n if (length < 2) {\n length++;\n }\n }\n\n return length;\n};\n\nconst getActionProps = (action: RowAction<any>, row: TableRow<any>) => {\n return {\n 'aria-label': typeof action.tooltip === 'function' ? action.tooltip(row) : action.tooltip,\n disabled: typeof action.disabled === 'function' ? action.disabled(row) : action.disabled,\n onClick: (event: React.MouseEvent<HTMLElement>) => {\n action.onClick(row, event);\n },\n };\n};\n\nconst EditModeActions = () => {\n React.useEffect(() => {\n const listener = (event: any) => {\n if (event.key === 'Escape' && event.target?.form?.reset) {\n event.preventDefault();\n event.target.form.reset();\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n document.removeEventListener('keydown', listener);\n };\n }, []);\n\n return (\n <div className={actionGroupClassName}>\n <IconButton appearance=\"primary\" icon=\"tick\" type=\"submit\" className=\"mr-2\" />\n <IconButton appearance=\"ghost\" icon=\"close\" type=\"reset\" />\n </div>\n );\n};\n\nexport const useRowActions = <T extends {}>(\n inlineEditingUniqueId: keyof T | undefined,\n handlers: any,\n actions: RowActionHandler<T>[] | undefined,\n rowExpansionRenderer: any,\n texts: LocalizationTexts,\n windowed = false\n): PluginHook<{}> => {\n const inlineEditing = !!inlineEditingUniqueId;\n const actionsLength = getLength(inlineEditingUniqueId, handlers, actions);\n\n const plugin = (hooks: any): void => {\n if (hasActions(inlineEditingUniqueId, handlers, actions)) {\n hooks.visibleColumns.push((columns: any) => [\n ...columns,\n {\n id: '_actions',\n className: 'flex justify-end px-1 overflow-visible',\n flex: `0 0 calc((${actionsLength} * 2rem) + .5rem)`,\n Cell: ({ row }: any) => {\n if (row.isEditing) {\n return <EditModeActions />;\n }\n\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n const [primaryActions, secondaryActions] = getActions(actions, sanitizedRow);\n\n const output = (\n <>\n {handlers.onRowCreate && (\n <IconButton\n appearance=\"discrete\"\n icon=\"circle-plus\"\n aria-label={texts.table.newSubRow}\n tooltip={texts.table.newSubRow}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n\n if (!row.isExpanded) {\n row.toggleRowExpanded();\n }\n\n handlers.onRowCreate(sanitizedRow, event);\n }}\n />\n )}\n {(inlineEditing || handlers.onRowEdit) && (\n <IconButton\n appearance=\"discrete\"\n icon=\"edit\"\n aria-label={texts.table.edit}\n tooltip={texts.table.edit}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n\n if (inlineEditing) {\n row.toggleRowEditing();\n } else if (handlers.onRowEdit) {\n event.persist();\n handlers.onRowEdit(sanitizedRow, event);\n }\n }}\n />\n )}\n {handlers.onRowCopy && (\n <IconButton\n appearance=\"discrete\"\n icon=\"copy\"\n aria-label={texts.table.copy}\n tooltip={texts.table.copy}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowCopy(sanitizedRow, event);\n }}\n />\n )}\n {handlers.onRowDelete && (\n <IconButton\n appearance=\"discrete\"\n icon=\"delete\"\n aria-label={texts.table.del}\n tooltip={texts.table.del}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n event.persist();\n row.setActive();\n handlers.onRowDelete(sanitizedRow, event);\n }}\n />\n )}\n {primaryActions.map((action: RowAction<T>, index: number) => (\n <IconButton\n {...getActionProps(action, sanitizedRow)}\n key={index}\n appearance=\"discrete\"\n icon={typeof action.icon === 'function' ? action.icon(sanitizedRow) : action.icon}\n tooltip={\n typeof action.tooltip === 'function' ? action.tooltip(sanitizedRow) : action.tooltip\n }\n />\n ))}\n {secondaryActions.length ? (\n <Menu>\n <Menu.Trigger>\n <IconButton\n appearance=\"discrete\"\n icon=\"ellipsis-vertical\"\n aria-label={texts.table.actions}\n tooltip={texts.table.actions}\n disabled={inlineEditing && !row.canEdit}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n row.setActive();\n }}\n />\n </Menu.Trigger>\n <Menu.Content>\n {secondaryActions.map((action: RowAction<T>, index: number) => (\n <Menu.Item\n key={index}\n icon={\n typeof action.icon === 'function'\n ? action.icon(sanitizedRow)\n : action.icon\n }\n {...getActionProps(action, sanitizedRow)}\n >\n {typeof action.text === 'function' ? action.text(sanitizedRow) : action.text}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu>\n ) : null}\n </>\n );\n\n if (windowed) {\n return <div className={actionGroupClassName}>{output}</div>;\n }\n\n return (\n <InView rootMargin=\"100px 0px\">\n {({ inView, ref }) => (\n <div className={actionGroupClassName} ref={ref}>\n {inView ? output : null}\n </div>\n )}\n </InView>\n );\n },\n },\n ]);\n }\n };\n plugin.pluginName = 'useRowActions';\n return plugin;\n};\n"],"names":["actionGroupClassName","hasActions","inlineEditingUniqueId","handlers","actions","onRowCreate","onRowCopy","onRowDelete","onRowEdit","getActions","row","undefined","primary","secondary","visibleActions","filter","x","action","visible","forEach","showOnRow","push","getLength","primaryActions","secondaryActions","length","getActionProps","tooltip","disabled","onClick","event","EditModeActions","React","useEffect","listener","key","target","form","reset","preventDefault","document","addEventListener","removeEventListener","className","IconButton","appearance","icon","type","useRowActions","rowExpansionRenderer","texts","windowed","inlineEditing","actionsLength","plugin","hooks","visibleColumns","columns","id","flex","Cell","isEditing","sanitizedRow","sanitizeRowProps","output","table","newSubRow","canEdit","stopPropagation","persist","setActive","isExpanded","toggleRowExpanded","edit","toggleRowEditing","copy","del","map","index","Menu","Trigger","Content","Item","text","InView","rootMargin","inView","ref","pluginName"],"mappings":";;;;;;AASA,MAAMA,oBAAoB,GAAG,sBAA7B;;AAEA,MAAMC,UAAU,GAAG,CAACC,qBAAD,EAA6BC,QAA7B,EAA4CC,OAA5C;EACf,OACI,CAAC,CAACA,OAAF,IACAD,QAAQ,CAACE,WADT,IAEAF,QAAQ,CAACG,SAFT,IAGAH,QAAQ,CAACI,WAHT,IAIA,CAAC,CAACL,qBAJF,IAKAC,QAAQ,CAACK,SANb;AAQH,CATD;;AAWA,MAAMC,UAAU,GAAG,CACfL,OADe,EAEfM,MAAiCC,SAFlB;EAIf,MAAMC,OAAO,GAAqB,EAAlC;EACA,MAAMC,SAAS,GAAqB,EAApC;;EAEA,IAAIT,OAAJ,EAAa;IACT,IAAIU,cAAc,GAAGV,OAAO,CAACW,MAAR,CAAeC,CAAC,IAAI,CAAC,CAACA,CAAtB,CAArB;;IAEA,IAAIN,GAAJ,EAAS;MACLI,cAAc,GAAGA,cAAc,CAACC,MAAf,CAAuBE,MAAD;QACnC,IAAIA,MAAM,CAACC,OAAP,KAAmBP,SAAvB,EAAkC;UAC9B,IAAI,OAAOM,MAAM,CAACC,OAAd,KAA0B,UAA9B,EAA0C;YACtC,OAAOD,MAAM,CAACC,OAAP,CAAeR,GAAf,CAAP;;;UAGJ,OAAOO,MAAM,CAACC,OAAd;;;QAGJ,OAAO,IAAP;OATa,CAAjB;;;IAaJJ,cAAc,CAACK,OAAf,CAAwBF,MAAD;MACnB,IAAIA,MAAM,CAACG,SAAX,EAAsB;QAClBR,OAAO,CAACS,IAAR,CAAaJ,MAAb;OADJ,MAEO;QACHJ,SAAS,CAACQ,IAAV,CAAeJ,MAAf;;KAJR;;;EASJ,OAAO,CAACL,OAAD,EAAUC,SAAV,CAAP;AACH,CAlCD;;AAoCA,MAAMS,SAAS,GAAG,CAACpB,qBAAD,EAA6BC,QAA7B,EAA4CC,OAA5C;EACd,MAAM,CAACmB,cAAD,EAAiBC,gBAAjB,IAAqCf,UAAU,CAACL,OAAD,CAArD;EAEA,IAAIqB,MAAM,GAAGF,cAAc,CAACE,MAAf,IAAyBD,gBAAgB,CAACC,MAAjB,GAA0B,CAA1B,GAA8B,CAAvD,CAAb;;EAEA,IAAItB,QAAQ,CAACE,WAAb,EAA0B;IACtBoB,MAAM;;;EAGV,IAAItB,QAAQ,CAACG,SAAb,EAAwB;IACpBmB,MAAM;;;EAGV,IAAItB,QAAQ,CAACI,WAAb,EAA0B;IACtBkB,MAAM;;;EAGV,IAAI,CAAC,CAACvB,qBAAF,IAA2BC,QAAQ,CAACK,SAAxC,EAAmD;IAC/CiB,MAAM;;IAEN,IAAIA,MAAM,GAAG,CAAb,EAAgB;MACZA,MAAM;;;;EAId,OAAOA,MAAP;AACH,CA1BD;;AA4BA,MAAMC,cAAc,GAAG,CAACT,MAAD,EAAyBP,GAAzB;EACnB,OAAO;IACH,cAAc,OAAOO,MAAM,CAACU,OAAd,KAA0B,UAA1B,GAAuCV,MAAM,CAACU,OAAP,CAAejB,GAAf,CAAvC,GAA6DO,MAAM,CAACU,OAD/E;IAEHC,QAAQ,EAAE,OAAOX,MAAM,CAACW,QAAd,KAA2B,UAA3B,GAAwCX,MAAM,CAACW,QAAP,CAAgBlB,GAAhB,CAAxC,GAA+DO,MAAM,CAACW,QAF7E;IAGHC,OAAO,EAAGC,KAAD;MACLb,MAAM,CAACY,OAAP,CAAenB,GAAf,EAAoBoB,KAApB;;GAJR;AAOH,CARD;;AAUA,MAAMC,eAAe,GAAG;EACpBC,cAAK,CAACC,SAAN,CAAgB;IACZ,MAAMC,QAAQ,GAAIJ,KAAD;;;MACb,IAAIA,KAAK,CAACK,GAAN,KAAc,QAAd,qBAA0BL,KAAK,CAACM,MAAhC,gEAA0B,cAAcC,IAAxC,+CAA0B,mBAAoBC,KAAlD,EAAyD;QACrDR,KAAK,CAACS,cAAN;QACAT,KAAK,CAACM,MAAN,CAAaC,IAAb,CAAkBC,KAAlB;;KAHR;;IAOAE,QAAQ,CAACC,gBAAT,CAA0B,SAA1B,EAAqCP,QAArC;IAEA,OAAO;MACHM,QAAQ,CAACE,mBAAT,CAA6B,SAA7B,EAAwCR,QAAxC;KADJ;GAVJ,EAaG,EAbH;EAeA,OACIF,4BAAA,MAAA;IAAKW,SAAS,EAAE3C;GAAhB,EACIgC,4BAAA,CAACY,UAAD;IAAYC,UAAU,EAAC;IAAUC,IAAI,EAAC;IAAOC,IAAI,EAAC;IAASJ,SAAS,EAAC;GAArE,CADJ,EAEIX,4BAAA,CAACY,UAAD;IAAYC,UAAU,EAAC;IAAQC,IAAI,EAAC;IAAQC,IAAI,EAAC;GAAjD,CAFJ,CADJ;AAMH,CAtBD;;MAwBaC,aAAa,GAAG,CACzB9C,qBADyB,EAEzBC,QAFyB,EAGzBC,OAHyB,EAIzB6C,oBAJyB,EAKzBC,KALyB,EAMzBC,QAAQ,GAAG,KANc;EAQzB,MAAMC,aAAa,GAAG,CAAC,CAAClD,qBAAxB;EACA,MAAMmD,aAAa,GAAG/B,SAAS,CAACpB,qBAAD,EAAwBC,QAAxB,EAAkCC,OAAlC,CAA/B;;EAEA,MAAMkD,MAAM,GAAIC,KAAD;IACX,IAAItD,UAAU,CAACC,qBAAD,EAAwBC,QAAxB,EAAkCC,OAAlC,CAAd,EAA0D;MACtDmD,KAAK,CAACC,cAAN,CAAqBnC,IAArB,CAA2BoC,OAAD,IAAkB,CACxC,GAAGA,OADqC,EAExC;QACIC,EAAE,EAAE,UADR;QAEIf,SAAS,EAAE,wCAFf;QAGIgB,IAAI,eAAeN,gCAHvB;QAIIO,IAAI,EAAE,CAAC;UAAElD;SAAH;UACF,IAAIA,GAAG,CAACmD,SAAR,EAAmB;YACf,OAAO7B,4BAAA,CAACD,eAAD,MAAA,CAAP;;;UAGJ,MAAM+B,YAAY,GAAGC,gBAAgB,CAACrD,GAAD,EAAMuC,oBAAN,CAArC;UACA,MAAM,CAAC1B,cAAD,EAAiBC,gBAAjB,IAAqCf,UAAU,CAACL,OAAD,EAAU0D,YAAV,CAArD;UAEA,MAAME,MAAM,GACRhC,4BAAA,wBAAA,MAAA,EACK7B,QAAQ,CAACE,WAAT,IACG2B,4BAAA,CAACY,UAAD;YACIC,UAAU,EAAC;YACXC,IAAI,EAAC;0BACOI,KAAK,CAACe,KAAN,CAAYC;YACxBvC,OAAO,EAAEuB,KAAK,CAACe,KAAN,CAAYC;YACrBtC,QAAQ,EAAEwB,aAAa,IAAI,CAAC1C,GAAG,CAACyD;YAChCtC,OAAO,EAAGC,KAAD;cACLA,KAAK,CAACsC,eAAN;cACAtC,KAAK,CAACuC,OAAN;cACA3D,GAAG,CAAC4D,SAAJ;;cAEA,IAAI,CAAC5D,GAAG,CAAC6D,UAAT,EAAqB;gBACjB7D,GAAG,CAAC8D,iBAAJ;;;cAGJrE,QAAQ,CAACE,WAAT,CAAqByD,YAArB,EAAmChC,KAAnC;;WAfR,CAFR,EAqBK,CAACsB,aAAa,IAAIjD,QAAQ,CAACK,SAA3B,KACGwB,4BAAA,CAACY,UAAD;YACIC,UAAU,EAAC;YACXC,IAAI,EAAC;0BACOI,KAAK,CAACe,KAAN,CAAYQ;YACxB9C,OAAO,EAAEuB,KAAK,CAACe,KAAN,CAAYQ;YACrB7C,QAAQ,EAAEwB,aAAa,IAAI,CAAC1C,GAAG,CAACyD;YAChCtC,OAAO,EAAGC,KAAD;cACLA,KAAK,CAACsC,eAAN;cACA1D,GAAG,CAAC4D,SAAJ;;cAEA,IAAIlB,aAAJ,EAAmB;gBACf1C,GAAG,CAACgE,gBAAJ;eADJ,MAEO,IAAIvE,QAAQ,CAACK,SAAb,EAAwB;gBAC3BsB,KAAK,CAACuC,OAAN;gBACAlE,QAAQ,CAACK,SAAT,CAAmBsD,YAAnB,EAAiChC,KAAjC;;;WAdZ,CAtBR,EAyCK3B,QAAQ,CAACG,SAAT,IACG0B,4BAAA,CAACY,UAAD;YACIC,UAAU,EAAC;YACXC,IAAI,EAAC;0BACOI,KAAK,CAACe,KAAN,CAAYU;YACxBhD,OAAO,EAAEuB,KAAK,CAACe,KAAN,CAAYU;YACrB/C,QAAQ,EAAEwB,aAAa,IAAI,CAAC1C,GAAG,CAACyD;YAChCtC,OAAO,EAAGC,KAAD;cACLA,KAAK,CAACsC,eAAN;cACAtC,KAAK,CAACuC,OAAN;cACA3D,GAAG,CAAC4D,SAAJ;cACAnE,QAAQ,CAACG,SAAT,CAAmBwD,YAAnB,EAAiChC,KAAjC;;WAVR,CA1CR,EAwDK3B,QAAQ,CAACI,WAAT,IACGyB,4BAAA,CAACY,UAAD;YACIC,UAAU,EAAC;YACXC,IAAI,EAAC;0BACOI,KAAK,CAACe,KAAN,CAAYW;YACxBjD,OAAO,EAAEuB,KAAK,CAACe,KAAN,CAAYW;YACrBhD,QAAQ,EAAEwB,aAAa,IAAI,CAAC1C,GAAG,CAACyD;YAChCtC,OAAO,EAAGC,KAAD;cACLA,KAAK,CAACsC,eAAN;cACAtC,KAAK,CAACuC,OAAN;cACA3D,GAAG,CAAC4D,SAAJ;cACAnE,QAAQ,CAACI,WAAT,CAAqBuD,YAArB,EAAmChC,KAAnC;;WAVR,CAzDR,EAuEKP,cAAc,CAACsD,GAAf,CAAmB,CAAC5D,MAAD,EAAuB6D,KAAvB,KAChB9C,4BAAA,CAACY,UAAD,oBACQlB,cAAc,CAACT,MAAD,EAAS6C,YAAT;YAClB3B,GAAG,EAAE2C;YACLjC,UAAU,EAAC;YACXC,IAAI,EAAE,OAAO7B,MAAM,CAAC6B,IAAd,KAAuB,UAAvB,GAAoC7B,MAAM,CAAC6B,IAAP,CAAYgB,YAAZ,CAApC,GAAgE7C,MAAM,CAAC6B;YAC7EnB,OAAO,EACH,OAAOV,MAAM,CAACU,OAAd,KAA0B,UAA1B,GAAuCV,MAAM,CAACU,OAAP,CAAemC,YAAf,CAAvC,GAAsE7C,MAAM,CAACU;YANrF,CADH,CAvEL,EAkFKH,gBAAgB,CAACC,MAAjB,GACGO,4BAAA,CAAC+C,IAAD,MAAA,EACI/C,4BAAA,CAAC+C,IAAI,CAACC,OAAN,MAAA,EACIhD,4BAAA,CAACY,UAAD;YACIC,UAAU,EAAC;YACXC,IAAI,EAAC;0BACOI,KAAK,CAACe,KAAN,CAAY7D;YACxBuB,OAAO,EAAEuB,KAAK,CAACe,KAAN,CAAY7D;YACrBwB,QAAQ,EAAEwB,aAAa,IAAI,CAAC1C,GAAG,CAACyD;YAChCtC,OAAO,EAAGC,KAAD;cACLA,KAAK,CAACsC,eAAN;cACA1D,GAAG,CAAC4D,SAAJ;;WARR,CADJ,CADJ,EAcItC,4BAAA,CAAC+C,IAAI,CAACE,OAAN,MAAA,EACKzD,gBAAgB,CAACqD,GAAjB,CAAqB,CAAC5D,MAAD,EAAuB6D,KAAvB,KAClB9C,4BAAA,CAAC+C,IAAI,CAACG,IAAN;YACI/C,GAAG,EAAE2C;YACLhC,IAAI,EACA,OAAO7B,MAAM,CAAC6B,IAAd,KAAuB,UAAvB,GACM7B,MAAM,CAAC6B,IAAP,CAAYgB,YAAZ,CADN,GAEM7C,MAAM,CAAC6B;aAEbpB,cAAc,CAACT,MAAD,EAAS6C,YAAT,EAPtB,EASK,OAAO7C,MAAM,CAACkE,IAAd,KAAuB,UAAvB,GAAoClE,MAAM,CAACkE,IAAP,CAAYrB,YAAZ,CAApC,GAAgE7C,MAAM,CAACkE,IAT5E,CADH,CADL,CAdJ,CADH,GA+BG,IAjHR,CADJ;;UAsHA,IAAIhC,QAAJ,EAAc;YACV,OAAOnB,4BAAA,MAAA;cAAKW,SAAS,EAAE3C;aAAhB,EAAuCgE,MAAvC,CAAP;;;UAGJ,OACIhC,4BAAA,CAACoD,MAAD;YAAQC,UAAU,EAAC;WAAnB,EACK,CAAC;YAAEC,MAAF;YAAUC;WAAX,KACGvD,4BAAA,MAAA;YAAKW,SAAS,EAAE3C;YAAsBuF,GAAG,EAAEA;WAA3C,EACKD,MAAM,GAAGtB,MAAH,GAAY,IADvB,CAFR,CADJ;;OAxIgC,CAA5C;;GAFR;;EAwJAV,MAAM,CAACkC,UAAP,GAAoB,eAApB;EACA,OAAOlC,MAAP;AACH;;;;"}
@@ -1,40 +1,42 @@
1
- import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { Icon } from '../../../Icon/Icon.js';
4
3
  import { actions } from 'react-table';
5
4
  import { sanitizeRowProps } from '../../util.js';
6
5
 
7
- var pluginName = 'useRowDraggable';
6
+ const pluginName = 'useRowDraggable';
8
7
  actions.resetRowDragging = 'resetRowDragging';
9
8
  actions.toggleRowDragging = 'toggleRowDragging';
10
9
 
11
10
  function reducer(state, action) {
12
11
  if (action.type === actions.init) {
13
- return _extends({
14
- draggingRowIndexPath: null
15
- }, state);
12
+ return {
13
+ draggingRowIndexPath: null,
14
+ ...state
15
+ };
16
16
  }
17
17
 
18
18
  if (action.type === actions.resetRowDragging) {
19
- return _extends({}, state, {
19
+ return { ...state,
20
20
  draggingRowIndexPath: null
21
- });
21
+ };
22
22
  }
23
23
 
24
24
  if (action.type === actions.toggleRowDragging) {
25
- var indexPath = action.indexPath;
26
- return _extends({}, state, {
25
+ const {
26
+ indexPath
27
+ } = action;
28
+ return { ...state,
27
29
  draggingRowIndexPath: indexPath
28
- });
30
+ };
29
31
  }
30
32
 
31
33
  return state;
32
34
  }
33
35
 
34
- var prepareRow = function prepareRow(row, _ref) {
35
- var instance = _ref.instance;
36
-
37
- row.toggleRowDragging = function () {
36
+ const prepareRow = (row, {
37
+ instance
38
+ }) => {
39
+ row.toggleRowDragging = () => {
38
40
  if (instance.state.draggingRowIndexPath === row.id) {
39
41
  instance.dispatch({
40
42
  type: actions.resetRowDragging
@@ -56,67 +58,61 @@ var prepareRow = function prepareRow(row, _ref) {
56
58
  }
57
59
  };
58
60
 
59
- var visibleColumns = function visibleColumns(columns) {
61
+ const visibleColumns = columns => {
60
62
  return [{
61
63
  id: 'draggable',
62
64
  className: 'yt-table__cell--draggable flex-col px-0',
63
- Cell: function Cell() {
64
- return React__default.createElement(Icon, {
65
- name: "drag",
66
- className: "text-grey-darkest invisible w-[20px] cursor-grab"
67
- });
68
- },
65
+ Cell: () => React__default.createElement(Icon, {
66
+ name: "drag",
67
+ className: "text-grey-darkest invisible w-[20px] cursor-grab"
68
+ }),
69
69
  flex: '0 0 20px'
70
- }].concat(columns);
70
+ }, ...columns];
71
71
  };
72
72
 
73
- var getRowProps = function getRowProps(onRowDrag) {
74
- return function (props, _ref2) {
75
- var instance = _ref2.instance,
76
- row = _ref2.row;
77
-
78
- var onDragStart = function onDragStart(event) {
79
- event.persist();
80
- row.toggleRowDragging();
81
- var indexPaths = [row.id].concat(Object.keys(instance.state.selectedRowIds));
82
- var data = instance.rows.filter(function (r) {
83
- return indexPaths.includes(r.id);
84
- }).map(sanitizeRowProps);
85
-
86
- var showPlaceholder = function showPlaceholder(placeholder) {
87
- var element = window.document.createElement('div');
88
- element.id = 'yt-table__drag__placeholder';
89
- element.innerText = placeholder;
90
- window.document.body.appendChild(element);
91
-
92
- if (typeof DataTransfer.prototype.setDragImage === 'function') {
93
- event.dataTransfer.setDragImage(element, 0, 20);
94
- }
95
- };
96
-
97
- onRowDrag(data, showPlaceholder, event);
73
+ const getRowProps = onRowDrag => (props, {
74
+ instance,
75
+ row
76
+ }) => {
77
+ const onDragStart = event => {
78
+ event.persist();
79
+ row.toggleRowDragging();
80
+ const indexPaths = [row.id, ...Object.keys(instance.state.selectedRowIds)];
81
+ const data = instance.rows.filter(r => indexPaths.includes(r.id)).map(sanitizeRowProps);
82
+
83
+ const showPlaceholder = placeholder => {
84
+ const element = window.document.createElement('div');
85
+ element.id = 'yt-table__drag__placeholder';
86
+ element.innerText = placeholder;
87
+ window.document.body.appendChild(element);
88
+
89
+ if (typeof DataTransfer.prototype.setDragImage === 'function') {
90
+ event.dataTransfer.setDragImage(element, 0, 20);
91
+ }
98
92
  };
99
93
 
100
- var onDragEnd = function onDragEnd() {
101
- var element = document.getElementById('yt-table__drag__placeholder');
94
+ onRowDrag(data, showPlaceholder, event);
95
+ };
102
96
 
103
- if (element && element.parentNode) {
104
- element.parentNode.removeChild(element);
105
- }
97
+ const onDragEnd = () => {
98
+ const element = document.getElementById('yt-table__drag__placeholder');
106
99
 
107
- row.toggleRowDragging();
108
- };
100
+ if (element && element.parentNode) {
101
+ element.parentNode.removeChild(element);
102
+ }
109
103
 
110
- return [props, {
111
- draggable: true,
112
- onDragStart: onDragStart,
113
- onDragEnd: onDragEnd
114
- }];
104
+ row.toggleRowDragging();
115
105
  };
106
+
107
+ return [props, {
108
+ draggable: true,
109
+ onDragStart,
110
+ onDragEnd
111
+ }];
116
112
  };
117
113
 
118
- var useRowDraggable = function useRowDraggable(onRowDrag) {
119
- var plugin = function plugin(hooks) {
114
+ const useRowDraggable = onRowDrag => {
115
+ const plugin = hooks => {
120
116
  if (onRowDrag) {
121
117
  hooks.stateReducers.push(reducer);
122
118
  hooks.prepareRow.push(prepareRow);