@heymantle/litho 0.0.1

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 (140) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +90 -0
  3. package/dist/cjs/components/ActionList.js +267 -0
  4. package/dist/cjs/components/AnnouncementBar.js +73 -0
  5. package/dist/cjs/components/AppProvider.js +245 -0
  6. package/dist/cjs/components/Autocomplete.js +351 -0
  7. package/dist/cjs/components/Badge.js +234 -0
  8. package/dist/cjs/components/Banner.js +264 -0
  9. package/dist/cjs/components/Box.js +247 -0
  10. package/dist/cjs/components/Button.js +1018 -0
  11. package/dist/cjs/components/ButtonGroup.js +196 -0
  12. package/dist/cjs/components/Card.js +593 -0
  13. package/dist/cjs/components/Checkbox.js +175 -0
  14. package/dist/cjs/components/ChoiceList.js +160 -0
  15. package/dist/cjs/components/Collapsible.js +42 -0
  16. package/dist/cjs/components/ColorField.js +159 -0
  17. package/dist/cjs/components/ContextualSaveBar.js +53 -0
  18. package/dist/cjs/components/DatePicker.js +547 -0
  19. package/dist/cjs/components/Divider.js +50 -0
  20. package/dist/cjs/components/DropZone.js +547 -0
  21. package/dist/cjs/components/EmptyState.js +111 -0
  22. package/dist/cjs/components/Filters.js +874 -0
  23. package/dist/cjs/components/FooterHelp.js +48 -0
  24. package/dist/cjs/components/Form.js +44 -0
  25. package/dist/cjs/components/Frame.js +386 -0
  26. package/dist/cjs/components/FrameSaveBar.js +239 -0
  27. package/dist/cjs/components/Grid.js +151 -0
  28. package/dist/cjs/components/HorizontalStack.js +180 -0
  29. package/dist/cjs/components/Icon.js +346 -0
  30. package/dist/cjs/components/Image.js +191 -0
  31. package/dist/cjs/components/InlineError.js +57 -0
  32. package/dist/cjs/components/Label.js +78 -0
  33. package/dist/cjs/components/Layout.js +228 -0
  34. package/dist/cjs/components/LayoutSection.js +133 -0
  35. package/dist/cjs/components/Link.js +128 -0
  36. package/dist/cjs/components/List.js +69 -0
  37. package/dist/cjs/components/Listbox.js +211 -0
  38. package/dist/cjs/components/Loading.js +103 -0
  39. package/dist/cjs/components/Modal.js +449 -0
  40. package/dist/cjs/components/Navigation.js +331 -0
  41. package/dist/cjs/components/Page.js +529 -0
  42. package/dist/cjs/components/Pagination.js +109 -0
  43. package/dist/cjs/components/Pane.js +128 -0
  44. package/dist/cjs/components/Popover.js +365 -0
  45. package/dist/cjs/components/PopoverManager.js +34 -0
  46. package/dist/cjs/components/ProgressBar.js +124 -0
  47. package/dist/cjs/components/RadioButton.js +172 -0
  48. package/dist/cjs/components/RadioButtonCard.js +193 -0
  49. package/dist/cjs/components/RangeSlider.js +235 -0
  50. package/dist/cjs/components/ResourceList.js +105 -0
  51. package/dist/cjs/components/Select.js +300 -0
  52. package/dist/cjs/components/SkeletonText.js +130 -0
  53. package/dist/cjs/components/Spinner.js +72 -0
  54. package/dist/cjs/components/Table.js +1184 -0
  55. package/dist/cjs/components/Tabs.js +421 -0
  56. package/dist/cjs/components/Tag.js +165 -0
  57. package/dist/cjs/components/Text.js +274 -0
  58. package/dist/cjs/components/TextField.js +584 -0
  59. package/dist/cjs/components/Thumbnail.js +73 -0
  60. package/dist/cjs/components/TimePicker.js +23 -0
  61. package/dist/cjs/components/Tip.js +220 -0
  62. package/dist/cjs/components/Tooltip.js +431 -0
  63. package/dist/cjs/components/TopBar.js +210 -0
  64. package/dist/cjs/components/VerticalStack.js +161 -0
  65. package/dist/cjs/index.js +308 -0
  66. package/dist/cjs/styles/Table.js +591 -0
  67. package/dist/cjs/utilities/dates.js +339 -0
  68. package/dist/cjs/utilities/useIndexResourceState.js +175 -0
  69. package/dist/cjs/utilities/useMounted.js +67 -0
  70. package/dist/cjs/utilities/useTableScrollState.js +142 -0
  71. package/dist/esm/components/ActionList.js +216 -0
  72. package/dist/esm/components/AnnouncementBar.js +63 -0
  73. package/dist/esm/components/AppProvider.js +185 -0
  74. package/dist/esm/components/Autocomplete.js +300 -0
  75. package/dist/esm/components/Badge.js +225 -0
  76. package/dist/esm/components/Banner.js +254 -0
  77. package/dist/esm/components/Box.js +238 -0
  78. package/dist/esm/components/Button.js +967 -0
  79. package/dist/esm/components/ButtonGroup.js +137 -0
  80. package/dist/esm/components/Card.js +537 -0
  81. package/dist/esm/components/Checkbox.js +165 -0
  82. package/dist/esm/components/ChoiceList.js +145 -0
  83. package/dist/esm/components/Collapsible.js +32 -0
  84. package/dist/esm/components/ColorField.js +149 -0
  85. package/dist/esm/components/ContextualSaveBar.js +43 -0
  86. package/dist/esm/components/DatePicker.js +532 -0
  87. package/dist/esm/components/Divider.js +41 -0
  88. package/dist/esm/components/DropZone.js +537 -0
  89. package/dist/esm/components/EmptyState.js +101 -0
  90. package/dist/esm/components/Filters.js +823 -0
  91. package/dist/esm/components/FooterHelp.js +38 -0
  92. package/dist/esm/components/Form.js +35 -0
  93. package/dist/esm/components/Frame.js +376 -0
  94. package/dist/esm/components/FrameSaveBar.js +229 -0
  95. package/dist/esm/components/Grid.js +142 -0
  96. package/dist/esm/components/HorizontalStack.js +171 -0
  97. package/dist/esm/components/Icon.js +296 -0
  98. package/dist/esm/components/Image.js +141 -0
  99. package/dist/esm/components/InlineError.js +43 -0
  100. package/dist/esm/components/Label.js +63 -0
  101. package/dist/esm/components/Layout.js +164 -0
  102. package/dist/esm/components/LayoutSection.js +82 -0
  103. package/dist/esm/components/Link.js +119 -0
  104. package/dist/esm/components/List.js +61 -0
  105. package/dist/esm/components/Listbox.js +201 -0
  106. package/dist/esm/components/Loading.js +93 -0
  107. package/dist/esm/components/Modal.js +390 -0
  108. package/dist/esm/components/Navigation.js +321 -0
  109. package/dist/esm/components/Page.js +473 -0
  110. package/dist/esm/components/Pagination.js +99 -0
  111. package/dist/esm/components/Pane.js +118 -0
  112. package/dist/esm/components/Popover.js +350 -0
  113. package/dist/esm/components/PopoverManager.js +24 -0
  114. package/dist/esm/components/ProgressBar.js +114 -0
  115. package/dist/esm/components/RadioButton.js +157 -0
  116. package/dist/esm/components/RadioButtonCard.js +178 -0
  117. package/dist/esm/components/RangeSlider.js +225 -0
  118. package/dist/esm/components/ResourceList.js +95 -0
  119. package/dist/esm/components/Select.js +285 -0
  120. package/dist/esm/components/SkeletonText.js +120 -0
  121. package/dist/esm/components/Spinner.js +63 -0
  122. package/dist/esm/components/Table.js +1129 -0
  123. package/dist/esm/components/Tabs.js +366 -0
  124. package/dist/esm/components/Tag.js +151 -0
  125. package/dist/esm/components/Text.js +265 -0
  126. package/dist/esm/components/TextField.js +533 -0
  127. package/dist/esm/components/Thumbnail.js +63 -0
  128. package/dist/esm/components/TimePicker.js +13 -0
  129. package/dist/esm/components/Tip.js +169 -0
  130. package/dist/esm/components/Tooltip.js +380 -0
  131. package/dist/esm/components/TopBar.js +200 -0
  132. package/dist/esm/components/VerticalStack.js +152 -0
  133. package/dist/esm/index.js +61 -0
  134. package/dist/esm/styles/Table.js +581 -0
  135. package/dist/esm/utilities/dates.js +289 -0
  136. package/dist/esm/utilities/useIndexResourceState.js +158 -0
  137. package/dist/esm/utilities/useMounted.js +57 -0
  138. package/dist/esm/utilities/useTableScrollState.js +132 -0
  139. package/index.css +1137 -0
  140. package/package.json +53 -0
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get DATE_LOCALES () {
13
+ return DATE_LOCALES;
14
+ },
15
+ get DATE_LOCALE_MAP () {
16
+ return DATE_LOCALE_MAP;
17
+ },
18
+ get DAY_FORMAT () {
19
+ return DAY_FORMAT;
20
+ },
21
+ get DAY_TIME_FORMAT () {
22
+ return DAY_TIME_FORMAT;
23
+ },
24
+ get HOURLY_RANGE_PRESETS () {
25
+ return HOURLY_RANGE_PRESETS;
26
+ },
27
+ get MONTHS () {
28
+ return MONTHS;
29
+ },
30
+ get NOW () {
31
+ return NOW;
32
+ },
33
+ get NOW_TODAY () {
34
+ return NOW_TODAY;
35
+ },
36
+ get RANGE_PRESETS () {
37
+ return RANGE_PRESETS;
38
+ },
39
+ get TIME_FORMAT () {
40
+ return TIME_FORMAT;
41
+ },
42
+ get isValidDate () {
43
+ return isValidDate;
44
+ }
45
+ });
46
+ var _locale = require("date-fns/locale");
47
+ var _dayjs = /*#__PURE__*/ _interop_require_default(require("dayjs"));
48
+ var _quarterOfYear = /*#__PURE__*/ _interop_require_default(require("dayjs/plugin/quarterOfYear.js"));
49
+ function _array_like_to_array(arr, len) {
50
+ if (len == null || len > arr.length) len = arr.length;
51
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
52
+ return arr2;
53
+ }
54
+ function _array_with_holes(arr) {
55
+ if (Array.isArray(arr)) return arr;
56
+ }
57
+ function _interop_require_default(obj) {
58
+ return obj && obj.__esModule ? obj : {
59
+ default: obj
60
+ };
61
+ }
62
+ function _iterable_to_array_limit(arr, i) {
63
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
64
+ if (_i == null) return;
65
+ var _arr = [];
66
+ var _n = true;
67
+ var _d = false;
68
+ var _s, _e;
69
+ try {
70
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
71
+ _arr.push(_s.value);
72
+ if (i && _arr.length === i) break;
73
+ }
74
+ } catch (err) {
75
+ _d = true;
76
+ _e = err;
77
+ } finally{
78
+ try {
79
+ if (!_n && _i["return"] != null) _i["return"]();
80
+ } finally{
81
+ if (_d) throw _e;
82
+ }
83
+ }
84
+ return _arr;
85
+ }
86
+ function _non_iterable_rest() {
87
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
88
+ }
89
+ function _sliced_to_array(arr, i) {
90
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
91
+ }
92
+ function _unsupported_iterable_to_array(o, minLen) {
93
+ if (!o) return;
94
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
95
+ var n = Object.prototype.toString.call(o).slice(8, -1);
96
+ if (n === "Object" && o.constructor) n = o.constructor.name;
97
+ if (n === "Map" || n === "Set") return Array.from(n);
98
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
99
+ }
100
+ _dayjs.default.extend(_quarterOfYear.default);
101
+ var isValidDate = function(date) {
102
+ return date && !isNaN(date.getTime());
103
+ };
104
+ var DAY_FORMAT = "MMM D YYYY";
105
+ var DAY_TIME_FORMAT = "MMM D YYYY, h:mm A";
106
+ var TIME_FORMAT = "HH:mm";
107
+ var NOW = new Date();
108
+ var NOW_TODAY = (0, _dayjs.default)(NOW).format(DAY_FORMAT);
109
+ var DATE_LOCALES = {
110
+ enUS: _locale.enUS,
111
+ enGB: _locale.enGB,
112
+ arEG: _locale.arEG
113
+ };
114
+ var DATE_LOCALE_MAP = Object.entries({
115
+ enUS: [
116
+ "en-US",
117
+ "us",
118
+ "america"
119
+ ],
120
+ enGB: [
121
+ "en-GB",
122
+ "gb",
123
+ "uk"
124
+ ],
125
+ arEG: [
126
+ "ar-EG",
127
+ "egypt"
128
+ ]
129
+ }).reduce(function(map, param) {
130
+ var _param = _sliced_to_array(param, 2), localeKey = _param[0], keys = _param[1];
131
+ var locale = DATE_LOCALES[localeKey];
132
+ keys.forEach(function(key) {
133
+ map[key] = locale;
134
+ });
135
+ return map;
136
+ }, {});
137
+ var HOURLY_RANGE_PRESETS = [
138
+ {
139
+ id: "last_30_minutes",
140
+ label: "Last 30 minutes",
141
+ value: {
142
+ start: (0, _dayjs.default)().startOf("minute").subtract(29, "minutes").toDate(),
143
+ end: (0, _dayjs.default)().endOf("minute").toDate()
144
+ }
145
+ },
146
+ {
147
+ id: "last_60_minutes",
148
+ label: "Last 60 minutes",
149
+ value: {
150
+ start: (0, _dayjs.default)().startOf("minute").subtract(59, "minutes").toDate(),
151
+ end: (0, _dayjs.default)().endOf("minute").toDate()
152
+ }
153
+ }
154
+ ];
155
+ var RANGE_PRESETS = [
156
+ {
157
+ id: "today",
158
+ label: "Today",
159
+ value: {
160
+ start: (0, _dayjs.default)().startOf("day").toDate(),
161
+ end: (0, _dayjs.default)().endOf("day").toDate()
162
+ }
163
+ },
164
+ {
165
+ id: "yesterday",
166
+ label: "Yesterday",
167
+ value: {
168
+ start: (0, _dayjs.default)().subtract(1, "day").startOf("day").toDate(),
169
+ end: (0, _dayjs.default)().subtract(1, "day").endOf("day").toDate()
170
+ }
171
+ },
172
+ {
173
+ id: "last_12_hours",
174
+ label: "Last 12 hours",
175
+ value: {
176
+ start: (0, _dayjs.default)().subtract(11, "hours").startOf("hour").toDate(),
177
+ end: (0, _dayjs.default)().endOf("hour").toDate()
178
+ }
179
+ },
180
+ {
181
+ id: "last_24_hours",
182
+ hideCalendar: true,
183
+ label: "Last 24 hours",
184
+ value: {
185
+ start: (0, _dayjs.default)().subtract(23, "hours").startOf("hour").toDate(),
186
+ end: (0, _dayjs.default)().endOf("hour").toDate()
187
+ }
188
+ },
189
+ {
190
+ id: "last_7_days",
191
+ label: "Last 7 days",
192
+ value: {
193
+ start: (0, _dayjs.default)().subtract(6, "day").startOf("day").toDate(),
194
+ end: (0, _dayjs.default)().endOf("day").toDate()
195
+ }
196
+ },
197
+ {
198
+ id: "last_14_days",
199
+ label: "Last 14 days",
200
+ value: {
201
+ start: (0, _dayjs.default)().subtract(13, "day").startOf("day").toDate(),
202
+ end: (0, _dayjs.default)().endOf("day").toDate()
203
+ }
204
+ },
205
+ {
206
+ id: "last_30_days",
207
+ label: "Last 30 days",
208
+ value: {
209
+ start: (0, _dayjs.default)().subtract(29, "day").startOf("day").toDate(),
210
+ end: (0, _dayjs.default)().endOf("day").toDate()
211
+ }
212
+ },
213
+ {
214
+ id: "last_90_days",
215
+ label: "Last 90 days",
216
+ value: {
217
+ start: (0, _dayjs.default)().subtract(89, "day").startOf("day").toDate(),
218
+ end: (0, _dayjs.default)().endOf("day").toDate()
219
+ }
220
+ },
221
+ {
222
+ id: "last_month",
223
+ label: "Last month",
224
+ value: {
225
+ start: (0, _dayjs.default)().subtract(1, "month").startOf("month").toDate(),
226
+ end: (0, _dayjs.default)().subtract(1, "month").endOf("month").toDate()
227
+ }
228
+ },
229
+ {
230
+ id: "last_12_months",
231
+ label: "Last 12 months",
232
+ value: {
233
+ start: (0, _dayjs.default)().subtract(11, "month").startOf("month").toDate(),
234
+ end: (0, _dayjs.default)().endOf("day").toDate()
235
+ }
236
+ },
237
+ {
238
+ id: "last_24_months",
239
+ label: "Last 24 months",
240
+ value: {
241
+ start: (0, _dayjs.default)().subtract(23, "month").startOf("month").toDate(),
242
+ end: (0, _dayjs.default)().endOf("day").toDate()
243
+ }
244
+ },
245
+ {
246
+ id: "month_to_date",
247
+ label: "Month to date",
248
+ value: {
249
+ start: (0, _dayjs.default)().startOf("month").toDate(),
250
+ end: (0, _dayjs.default)().endOf("day").toDate()
251
+ }
252
+ },
253
+ {
254
+ id: "quarter_to_date",
255
+ label: "Quarter to date",
256
+ value: {
257
+ start: (0, _dayjs.default)().startOf("quarter").toDate(),
258
+ end: (0, _dayjs.default)().endOf("day").toDate()
259
+ }
260
+ },
261
+ {
262
+ id: "year_to_date",
263
+ label: "Year to date",
264
+ value: {
265
+ start: (0, _dayjs.default)().startOf("year").toDate(),
266
+ end: (0, _dayjs.default)().endOf("day").toDate()
267
+ }
268
+ },
269
+ {
270
+ id: "all_time",
271
+ label: "All time",
272
+ value: {
273
+ start: (0, _dayjs.default)("2018-01-01").toDate(),
274
+ end: (0, _dayjs.default)().endOf("day").toDate()
275
+ }
276
+ }
277
+ ];
278
+ var MONTHS = [
279
+ {
280
+ value: 0,
281
+ name: "January",
282
+ shortName: "Jan"
283
+ },
284
+ {
285
+ value: 1,
286
+ name: "February",
287
+ shortName: "Feb"
288
+ },
289
+ {
290
+ value: 2,
291
+ name: "March",
292
+ shortName: "Mar"
293
+ },
294
+ {
295
+ value: 3,
296
+ name: "April",
297
+ shortName: "Apr"
298
+ },
299
+ {
300
+ value: 4,
301
+ name: "May",
302
+ shortName: "May"
303
+ },
304
+ {
305
+ value: 5,
306
+ name: "June",
307
+ shortName: "Jun"
308
+ },
309
+ {
310
+ value: 6,
311
+ name: "July",
312
+ shortName: "Jul"
313
+ },
314
+ {
315
+ value: 7,
316
+ name: "August",
317
+ shortName: "Aug"
318
+ },
319
+ {
320
+ value: 8,
321
+ name: "September",
322
+ shortName: "Sep"
323
+ },
324
+ {
325
+ value: 9,
326
+ name: "October",
327
+ shortName: "Oct"
328
+ },
329
+ {
330
+ value: 10,
331
+ name: "November",
332
+ shortName: "Nov"
333
+ },
334
+ {
335
+ value: 11,
336
+ name: "December",
337
+ shortName: "Dec"
338
+ }
339
+ ];
@@ -0,0 +1,175 @@
1
+ "use client";
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ function _export(target, all) {
7
+ for(var name in all)Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: Object.getOwnPropertyDescriptor(all, name).get
10
+ });
11
+ }
12
+ _export(exports, {
13
+ get SelectionType () {
14
+ return SelectionType;
15
+ },
16
+ get useIndexResourceState () {
17
+ return useIndexResourceState;
18
+ }
19
+ });
20
+ var _react = require("react");
21
+ function _array_like_to_array(arr, len) {
22
+ if (len == null || len > arr.length) len = arr.length;
23
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
24
+ return arr2;
25
+ }
26
+ function _array_with_holes(arr) {
27
+ if (Array.isArray(arr)) return arr;
28
+ }
29
+ function _array_without_holes(arr) {
30
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
31
+ }
32
+ function _iterable_to_array(iter) {
33
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
34
+ }
35
+ function _iterable_to_array_limit(arr, i) {
36
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
37
+ if (_i == null) return;
38
+ var _arr = [];
39
+ var _n = true;
40
+ var _d = false;
41
+ var _s, _e;
42
+ try {
43
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
44
+ _arr.push(_s.value);
45
+ if (i && _arr.length === i) break;
46
+ }
47
+ } catch (err) {
48
+ _d = true;
49
+ _e = err;
50
+ } finally{
51
+ try {
52
+ if (!_n && _i["return"] != null) _i["return"]();
53
+ } finally{
54
+ if (_d) throw _e;
55
+ }
56
+ }
57
+ return _arr;
58
+ }
59
+ function _non_iterable_rest() {
60
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
61
+ }
62
+ function _non_iterable_spread() {
63
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
64
+ }
65
+ function _sliced_to_array(arr, i) {
66
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
67
+ }
68
+ function _to_consumable_array(arr) {
69
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
70
+ }
71
+ function _unsupported_iterable_to_array(o, minLen) {
72
+ if (!o) return;
73
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
74
+ var n = Object.prototype.toString.call(o).slice(8, -1);
75
+ if (n === "Object" && o.constructor) n = o.constructor.name;
76
+ if (n === "Map" || n === "Set") return Array.from(n);
77
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
78
+ }
79
+ var SelectionType = {
80
+ All: "all",
81
+ Page: "page",
82
+ Multi: "multi",
83
+ Single: "single",
84
+ Some: "some",
85
+ None: "none"
86
+ };
87
+ var defaultResourceIDResolver = function(resource) {
88
+ if ("id" in resource) {
89
+ return resource.id;
90
+ }
91
+ throw new Error("Your resource does not directly contain an `id`. Pass a `resourceIDResolver` to `useIndexResourceState`");
92
+ };
93
+ var useIndexResourceState = function(resources) {
94
+ var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, tmp = _ref.selectedResources, initSelectedResources = tmp === void 0 ? [] : tmp, tmp1 = _ref.allResourcesSelected, initAllResourcesSelected = tmp1 === void 0 ? false : tmp1, _ref_resourceIDResolver = _ref.resourceIDResolver, resourceIDResolver = _ref_resourceIDResolver === void 0 ? defaultResourceIDResolver : _ref_resourceIDResolver, _ref_resourceFilter = _ref.resourceFilter, resourceFilter = _ref_resourceFilter === void 0 ? undefined : _ref_resourceFilter;
95
+ var _useState = _sliced_to_array((0, _react.useState)(initSelectedResources), 2), selectedResources = _useState[0], setSelectedResources = _useState[1];
96
+ var _useState1 = _sliced_to_array((0, _react.useState)(initAllResourcesSelected), 2), allResourcesSelected = _useState1[0], setAllResourcesSelected = _useState1[1];
97
+ var handleSelectionChange = (0, _react.useCallback)(function(selectionType, isSelecting, selection) {
98
+ if (selectionType === SelectionType.All) {
99
+ setAllResourcesSelected(isSelecting);
100
+ } else if (allResourcesSelected) {
101
+ setAllResourcesSelected(false);
102
+ }
103
+ switch(selectionType){
104
+ case SelectionType.None:
105
+ setSelectedResources([]);
106
+ break;
107
+ case SelectionType.Single:
108
+ setSelectedResources(function(newSelectedResources) {
109
+ return isSelecting ? _to_consumable_array(newSelectedResources).concat([
110
+ selection
111
+ ]) : newSelectedResources.filter(function(id) {
112
+ return id !== selection;
113
+ });
114
+ });
115
+ break;
116
+ case SelectionType.All:
117
+ if (resourceFilter) {
118
+ var filteredResources = resources.filter(resourceFilter);
119
+ setSelectedResources(isSelecting && selectedResources.length < filteredResources.length ? filteredResources.map(resourceIDResolver) : []);
120
+ } else {
121
+ setSelectedResources(isSelecting ? resources.map(resourceIDResolver) : []);
122
+ }
123
+ break;
124
+ case SelectionType.Page:
125
+ setSelectedResources(resources.map(resourceIDResolver));
126
+ break;
127
+ case SelectionType.Multi:
128
+ if (!selection) break;
129
+ setSelectedResources(function(newSelectedResources) {
130
+ var ids = [];
131
+ var filteredResources = resourceFilter ? resources.filter(resourceFilter) : resources;
132
+ for(var i = selection[0]; i <= selection[1]; i++){
133
+ if (filteredResources.includes(resources[i])) {
134
+ var id = resourceIDResolver(resources[i]);
135
+ if (isSelecting && !newSelectedResources.includes(id) || !isSelecting && newSelectedResources.includes(id)) {
136
+ ids.push(id);
137
+ }
138
+ }
139
+ }
140
+ return isSelecting ? _to_consumable_array(newSelectedResources).concat(_to_consumable_array(ids)) : newSelectedResources.filter(function(id) {
141
+ return !ids.includes(id);
142
+ });
143
+ });
144
+ break;
145
+ }
146
+ }, [
147
+ allResourcesSelected,
148
+ resourceFilter,
149
+ selectedResources.length,
150
+ resources,
151
+ resourceIDResolver
152
+ ]);
153
+ var clearSelection = (0, _react.useCallback)(function() {
154
+ setSelectedResources([]);
155
+ setAllResourcesSelected(false);
156
+ }, []);
157
+ var removeSelectedResources = (0, _react.useCallback)(function(removeResources) {
158
+ var newSelectedResources = selectedResources.filter(function(resource) {
159
+ return !removeResources.includes(resource);
160
+ });
161
+ setSelectedResources(newSelectedResources);
162
+ if (newSelectedResources.length === 0) {
163
+ setAllResourcesSelected(false);
164
+ }
165
+ }, [
166
+ selectedResources
167
+ ]);
168
+ return {
169
+ selectedResources: selectedResources,
170
+ allResourcesSelected: allResourcesSelected,
171
+ handleSelectionChange: handleSelectionChange,
172
+ clearSelection: clearSelection,
173
+ removeSelectedResources: removeSelectedResources
174
+ };
175
+ };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useMounted", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useMounted;
9
+ }
10
+ });
11
+ var _react = require("react");
12
+ function _array_like_to_array(arr, len) {
13
+ if (len == null || len > arr.length) len = arr.length;
14
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15
+ return arr2;
16
+ }
17
+ function _array_with_holes(arr) {
18
+ if (Array.isArray(arr)) return arr;
19
+ }
20
+ function _iterable_to_array_limit(arr, i) {
21
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
22
+ if (_i == null) return;
23
+ var _arr = [];
24
+ var _n = true;
25
+ var _d = false;
26
+ var _s, _e;
27
+ try {
28
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
29
+ _arr.push(_s.value);
30
+ if (i && _arr.length === i) break;
31
+ }
32
+ } catch (err) {
33
+ _d = true;
34
+ _e = err;
35
+ } finally{
36
+ try {
37
+ if (!_n && _i["return"] != null) _i["return"]();
38
+ } finally{
39
+ if (_d) throw _e;
40
+ }
41
+ }
42
+ return _arr;
43
+ }
44
+ function _non_iterable_rest() {
45
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
46
+ }
47
+ function _sliced_to_array(arr, i) {
48
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
49
+ }
50
+ function _unsupported_iterable_to_array(o, minLen) {
51
+ if (!o) return;
52
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
53
+ var n = Object.prototype.toString.call(o).slice(8, -1);
54
+ if (n === "Object" && o.constructor) n = o.constructor.name;
55
+ if (n === "Map" || n === "Set") return Array.from(n);
56
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
57
+ }
58
+ var useMounted = function() {
59
+ var _useState = _sliced_to_array((0, _react.useState)(), 2), mounted = _useState[0], setMounted = _useState[1];
60
+ // effects run only client-side
61
+ // so we can detect when the component is hydrated/mounted
62
+ // @see https://react.dev/reference/react/useEffect
63
+ (0, _react.useEffect)(function() {
64
+ setMounted(true);
65
+ }, []);
66
+ return mounted;
67
+ };