@panneau/core 3.0.119 → 3.0.130
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.
- package/es/contexts.js +12 -2
- package/es/hooks.js +127 -12
- package/es/index.js +53 -41
- package/es/utils.js +19 -1
- package/lib/contexts.js +592 -273
- package/lib/hooks.js +182 -99
- package/lib/index.js +293 -235
- package/lib/utils.js +148 -66
- package/package.json +6 -6
package/lib/hooks.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var react = require('react');
|
|
6
4
|
var core = require('@panneau/core');
|
|
7
5
|
var utils = require('@panneau/core/utils');
|
|
@@ -16,41 +14,11 @@ var isArray = require('lodash/isArray');
|
|
|
16
14
|
var isObject = require('lodash/isObject');
|
|
17
15
|
var isString = require('lodash/isString');
|
|
18
16
|
var contexts = require('@panneau/core/contexts');
|
|
17
|
+
var uniqBy = require('lodash/uniqBy');
|
|
19
18
|
var reactIntl = require('react-intl');
|
|
20
19
|
var dayjs = require('dayjs');
|
|
21
20
|
var cssMediaquery = require('css-mediaquery');
|
|
22
21
|
|
|
23
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
24
|
-
|
|
25
|
-
function _interopNamespace(e) {
|
|
26
|
-
if (e && e.__esModule) return e;
|
|
27
|
-
var n = Object.create(null);
|
|
28
|
-
if (e) {
|
|
29
|
-
Object.keys(e).forEach(function (k) {
|
|
30
|
-
if (k !== 'default') {
|
|
31
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
32
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () { return e[k]; }
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
n["default"] = e;
|
|
40
|
-
return Object.freeze(n);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
44
|
-
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
45
|
-
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
46
|
-
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
47
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
48
|
-
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
|
|
49
|
-
var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
|
|
50
|
-
var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
|
|
51
|
-
var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
|
|
52
|
-
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
53
|
-
|
|
54
22
|
var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
55
23
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
56
24
|
_ref$disabled = _ref.disabled,
|
|
@@ -85,9 +53,9 @@ var useFormattedDate = function useFormattedDate() {
|
|
|
85
53
|
_ref$showToday = _ref.showToday,
|
|
86
54
|
showToday = _ref$showToday === void 0 ? true : _ref$showToday;
|
|
87
55
|
var intl = reactIntl.useIntl();
|
|
88
|
-
var today =
|
|
56
|
+
var today = dayjs();
|
|
89
57
|
return react.useCallback(function (date) {
|
|
90
|
-
var dateToFormat =
|
|
58
|
+
var dateToFormat = isString(date) ? dayjs(date) : date;
|
|
91
59
|
if (showToday && dateToFormat.format('YYYY-MM-DD') === today.format('YYYY-MM-DD')) {
|
|
92
60
|
return intl.formatMessage({
|
|
93
61
|
"id": "v4Qtl9",
|
|
@@ -97,7 +65,7 @@ var useFormattedDate = function useFormattedDate() {
|
|
|
97
65
|
}]
|
|
98
66
|
});
|
|
99
67
|
}
|
|
100
|
-
return intl.formatDate(
|
|
68
|
+
return intl.formatDate(dayjs(date).toDate(), _objectSpread({
|
|
101
69
|
year: 'numeric',
|
|
102
70
|
month: 'long',
|
|
103
71
|
day: '2-digit'
|
|
@@ -113,9 +81,9 @@ var useFormattedTime = function useFormattedTime() {
|
|
|
113
81
|
_ref2$timeGap = _ref2.timeGap,
|
|
114
82
|
timeGap = _ref2$timeGap === void 0 ? 2 : _ref2$timeGap;
|
|
115
83
|
var intl = reactIntl.useIntl();
|
|
116
|
-
var now =
|
|
84
|
+
var now = dayjs();
|
|
117
85
|
return react.useCallback(function (date) {
|
|
118
|
-
var dateToFormat =
|
|
86
|
+
var dateToFormat = isString(date) ? dayjs(date) : date;
|
|
119
87
|
if (showNow && dateToFormat.format('YYYY-MM-DD') === now.format('YYYY-MM-DD') && dateToFormat.hour() === now.hour() && dateToFormat.minute() > now.minute() - timeGap && dateToFormat.minute() < now.minute() + timeGap) {
|
|
120
88
|
return intl.formatMessage({
|
|
121
89
|
"id": "3na7F8",
|
|
@@ -125,7 +93,7 @@ var useFormattedTime = function useFormattedTime() {
|
|
|
125
93
|
}]
|
|
126
94
|
});
|
|
127
95
|
}
|
|
128
|
-
return intl.formatTime(dateToFormat.toDate(),
|
|
96
|
+
return intl.formatTime(dateToFormat.toDate(), _objectSpread({
|
|
129
97
|
hour: 'numeric',
|
|
130
98
|
minute: 'numeric'
|
|
131
99
|
}, format));
|
|
@@ -143,22 +111,22 @@ var getFieldsPropsFromFields = function getFieldsPropsFromFields(fields, _ref) {
|
|
|
143
111
|
var value = _ref.value,
|
|
144
112
|
errors = _ref.errors,
|
|
145
113
|
_onChange = _ref.onChange,
|
|
146
|
-
props =
|
|
114
|
+
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
147
115
|
var locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
148
116
|
return fields.reduce(function (allFields, field) {
|
|
149
|
-
var _ref2 =
|
|
117
|
+
var _ref2 = isObject(field) ? field : {},
|
|
150
118
|
_ref2$name = _ref2.name,
|
|
151
|
-
name = _ref2$name === void 0 ?
|
|
119
|
+
name = _ref2$name === void 0 ? isString(field) ? field : null : _ref2$name,
|
|
152
120
|
_ref2$component = _ref2.component,
|
|
153
121
|
component = _ref2$component === void 0 ? null : _ref2$component;
|
|
154
122
|
var fieldErrors = errors !== null ? errors[name] || [] : [];
|
|
155
123
|
var localizedErrors = component === 'localized' ? (locales || []).reduce(function (previousErrors, locale) {
|
|
156
|
-
var items = errors !== null ?
|
|
157
|
-
var finalItems =
|
|
158
|
-
var finalPrevious =
|
|
159
|
-
return [].concat(
|
|
124
|
+
var items = errors !== null ? get(errors, "".concat(name, ".").concat(locale), []) || [] : [];
|
|
125
|
+
var finalItems = isArray(items) ? items : [items];
|
|
126
|
+
var finalPrevious = isArray(previousErrors) ? previousErrors : [];
|
|
127
|
+
return [].concat(_toConsumableArray(finalPrevious), _toConsumableArray(finalItems));
|
|
160
128
|
}, fieldErrors) : fieldErrors;
|
|
161
|
-
return [].concat(
|
|
129
|
+
return [].concat(_toConsumableArray(allFields), [_objectSpread(_objectSpread({}, isObject(field) ? field : null), {}, {
|
|
162
130
|
name: name,
|
|
163
131
|
component: component,
|
|
164
132
|
value: value !== null ? value[name] || null : null,
|
|
@@ -206,15 +174,15 @@ var useForm = function useForm() {
|
|
|
206
174
|
_opts$locales = opts.locales,
|
|
207
175
|
locales = _opts$locales === void 0 ? [] : _opts$locales;
|
|
208
176
|
var _useState = react.useState(initialValue || providedValue),
|
|
209
|
-
_useState2 =
|
|
177
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
210
178
|
stateValue = _useState2[0],
|
|
211
179
|
setStateValue = _useState2[1];
|
|
212
180
|
var _useState3 = react.useState(initialErrors || providedErrors),
|
|
213
|
-
_useState4 =
|
|
181
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
214
182
|
stateErrors = _useState4[0],
|
|
215
183
|
setStateErrors = _useState4[1];
|
|
216
184
|
var _useState5 = react.useState(initialGeneralError || providedGeneralError),
|
|
217
|
-
_useState6 =
|
|
185
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
218
186
|
stateGeneralError = _useState6[0],
|
|
219
187
|
setStateGeneralError = _useState6[1];
|
|
220
188
|
var _useState7 = react.useState({
|
|
@@ -222,11 +190,11 @@ var useForm = function useForm() {
|
|
|
222
190
|
loading: false,
|
|
223
191
|
error: false
|
|
224
192
|
}),
|
|
225
|
-
_useState8 =
|
|
193
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
226
194
|
requestState = _useState8[0],
|
|
227
195
|
setRequestState = _useState8[1];
|
|
228
196
|
var _useState9 = react.useState(null),
|
|
229
|
-
_useState10 =
|
|
197
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
230
198
|
response = _useState10[0],
|
|
231
199
|
setResponse = _useState10[1];
|
|
232
200
|
var hasProvidedValue = setProvidedValue !== null;
|
|
@@ -249,7 +217,7 @@ var useForm = function useForm() {
|
|
|
249
217
|
error = _ref3$error === void 0 ? false : _ref3$error;
|
|
250
218
|
var fieldErrors = errors !== null ? errors[fieldName] || null : null;
|
|
251
219
|
if (fieldErrors !== null) {
|
|
252
|
-
setErrors(
|
|
220
|
+
setErrors(_objectSpread(_objectSpread({}, errors), {}, _defineProperty({}, fieldName, null)));
|
|
253
221
|
}
|
|
254
222
|
if (!loading && (success !== false || error !== false)) {
|
|
255
223
|
setRequestState({
|
|
@@ -258,7 +226,7 @@ var useForm = function useForm() {
|
|
|
258
226
|
error: false
|
|
259
227
|
});
|
|
260
228
|
}
|
|
261
|
-
setValue(
|
|
229
|
+
setValue(_objectSpread(_objectSpread({}, value), {}, _defineProperty({}, fieldName, fieldValue)));
|
|
262
230
|
}, fieldsKey);
|
|
263
231
|
var fieldsProps = react.useMemo(function () {
|
|
264
232
|
return getFieldsPropsFromFields(fields, {
|
|
@@ -314,7 +282,7 @@ var useForm = function useForm() {
|
|
|
314
282
|
});
|
|
315
283
|
setGeneralError(null);
|
|
316
284
|
setErrors(null);
|
|
317
|
-
finalPostForm(action,
|
|
285
|
+
finalPostForm(action, _objectSpread(_objectSpread({}, submitValue), {}, {
|
|
318
286
|
_token: csrfToken
|
|
319
287
|
})).then(onSubmitSuccess)["catch"](onSubmitError);
|
|
320
288
|
}, [finalPostForm, action, value]);
|
|
@@ -338,7 +306,7 @@ var useForm = function useForm() {
|
|
|
338
306
|
} else if (requestState.error) {
|
|
339
307
|
status = 'error';
|
|
340
308
|
}
|
|
341
|
-
return
|
|
309
|
+
return _objectSpread(_objectSpread({
|
|
342
310
|
value: value,
|
|
343
311
|
setValue: setValue,
|
|
344
312
|
csrfToken: csrfToken,
|
|
@@ -375,21 +343,21 @@ var createObserver = function createObserver(Observer) {
|
|
|
375
343
|
}) || null;
|
|
376
344
|
if (currentSubscriber !== null) {
|
|
377
345
|
return subscribers.map(function (it) {
|
|
378
|
-
return it.element === element && it.callbacks.indexOf(callback) === -1 ?
|
|
379
|
-
callbacks: [].concat(
|
|
346
|
+
return it.element === element && it.callbacks.indexOf(callback) === -1 ? _objectSpread(_objectSpread({}, it), {}, {
|
|
347
|
+
callbacks: [].concat(_toConsumableArray(it.callbacks), [callback])
|
|
380
348
|
}) : it;
|
|
381
349
|
}).filter(function (it) {
|
|
382
350
|
return it.callbacks.length > 0;
|
|
383
351
|
});
|
|
384
352
|
}
|
|
385
|
-
return [].concat(
|
|
353
|
+
return [].concat(_toConsumableArray(subscribers), [{
|
|
386
354
|
element: element,
|
|
387
355
|
callbacks: [callback]
|
|
388
356
|
}]);
|
|
389
357
|
};
|
|
390
358
|
var removeSubscriber = function removeSubscriber(element, callback) {
|
|
391
359
|
return subscribers.map(function (it) {
|
|
392
|
-
return it.element === element ?
|
|
360
|
+
return it.element === element ? _objectSpread(_objectSpread({}, it), {}, {
|
|
393
361
|
callbacks: it.callbacks.filter(function (subCallback) {
|
|
394
362
|
return subCallback !== callback;
|
|
395
363
|
})
|
|
@@ -469,7 +437,7 @@ var useObserver = function useObserver(Observer) {
|
|
|
469
437
|
_opts$disabled = opts.disabled,
|
|
470
438
|
disabled = _opts$disabled === void 0 ? false : _opts$disabled;
|
|
471
439
|
var _useState = react.useState(initialEntry),
|
|
472
|
-
_useState2 =
|
|
440
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
473
441
|
entry = _useState2[0],
|
|
474
442
|
setEntry = _useState2[1];
|
|
475
443
|
var nodeRef = react.useRef(null);
|
|
@@ -600,7 +568,7 @@ var addFontLoading = function addFontLoading(name) {
|
|
|
600
568
|
fontsMap.active = fontsMap.active.filter(function (it) {
|
|
601
569
|
return it !== name;
|
|
602
570
|
});
|
|
603
|
-
fontsMap.loading = [].concat(
|
|
571
|
+
fontsMap.loading = [].concat(_toConsumableArray(fontsMap.loading), [name]);
|
|
604
572
|
};
|
|
605
573
|
var removeFontLoading = function removeFontLoading(name) {
|
|
606
574
|
fontsMap.loading = fontsMap.loading.filter(function (it) {
|
|
@@ -611,24 +579,24 @@ var addFontActive = function addFontActive(name) {
|
|
|
611
579
|
fontsMap.loading = fontsMap.loading.filter(function (it) {
|
|
612
580
|
return it !== name;
|
|
613
581
|
});
|
|
614
|
-
fontsMap.active = [].concat(
|
|
582
|
+
fontsMap.active = [].concat(_toConsumableArray(fontsMap.active), [name]);
|
|
615
583
|
};
|
|
616
584
|
var useLoadedFonts = function useLoadedFonts(fonts) {
|
|
617
585
|
var _useState = react.useState(false),
|
|
618
|
-
_useState2 =
|
|
586
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
619
587
|
loaded = _useState2[0],
|
|
620
588
|
setLoaded = _useState2[1];
|
|
621
589
|
react.useEffect(function () {
|
|
622
590
|
var config = fonts.reduce(function (newConfig, font) {
|
|
623
|
-
var _ref =
|
|
591
|
+
var _ref = isObject(font) ? font : {
|
|
624
592
|
type: 'system',
|
|
625
593
|
name: font
|
|
626
594
|
},
|
|
627
595
|
type = _ref.type,
|
|
628
596
|
name = _ref.name;
|
|
629
597
|
if ((type === 'google' || type === 'custom') && !isFontLoading(name) && !isFontActive(name)) {
|
|
630
|
-
return
|
|
631
|
-
families: [].concat(
|
|
598
|
+
return _objectSpread(_objectSpread({}, newConfig), {}, _defineProperty({}, type, {
|
|
599
|
+
families: [].concat(_toConsumableArray(newConfig !== null ? (newConfig[type] || {}).families || [] : []), [name])
|
|
632
600
|
}));
|
|
633
601
|
}
|
|
634
602
|
return newConfig;
|
|
@@ -636,10 +604,10 @@ var useLoadedFonts = function useLoadedFonts(fonts) {
|
|
|
636
604
|
var hasConfig = config !== null;
|
|
637
605
|
if (hasConfig && typeof window !== 'undefined') {
|
|
638
606
|
utils.loadPackage('webfontloader', function () {
|
|
639
|
-
return
|
|
607
|
+
return import('webfontloader');
|
|
640
608
|
}).then(function (_ref2) {
|
|
641
609
|
var WebFont = _ref2["default"];
|
|
642
|
-
return WebFont.load(
|
|
610
|
+
return WebFont.load(_objectSpread(_objectSpread({}, config), {}, {
|
|
643
611
|
timeout: 3000,
|
|
644
612
|
active: function active() {
|
|
645
613
|
return setLoaded(true);
|
|
@@ -694,27 +662,27 @@ var useMediaApi = function useMediaApi() {
|
|
|
694
662
|
onCanPlayThough = _ref$onCanPlayThough === void 0 ? null : _ref$onCanPlayThough;
|
|
695
663
|
var ref = react.useRef(null);
|
|
696
664
|
var _useState = react.useState(initialMuted),
|
|
697
|
-
_useState2 =
|
|
665
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
698
666
|
muted = _useState2[0],
|
|
699
667
|
setMuted = _useState2[1];
|
|
700
668
|
var _useState3 = react.useState(null),
|
|
701
|
-
_useState4 =
|
|
669
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
702
670
|
currentTime = _useState4[0],
|
|
703
671
|
setCurrentTime = _useState4[1];
|
|
704
672
|
var _useState5 = react.useState(null),
|
|
705
|
-
_useState6 =
|
|
673
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
706
674
|
duration = _useState6[0],
|
|
707
675
|
setDuration = _useState6[1];
|
|
708
676
|
var _useState7 = react.useState(false),
|
|
709
|
-
_useState8 =
|
|
677
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
710
678
|
playing = _useState8[0],
|
|
711
679
|
setPlaying = _useState8[1];
|
|
712
680
|
var _useState9 = react.useState(false),
|
|
713
|
-
_useState10 =
|
|
681
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
714
682
|
ready = _useState10[0],
|
|
715
683
|
setReady = _useState10[1];
|
|
716
684
|
var _useState11 = react.useState(true),
|
|
717
|
-
_useState12 =
|
|
685
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
718
686
|
initialPlay = _useState12[0],
|
|
719
687
|
setInitialPlay = _useState12[1];
|
|
720
688
|
var progressStepsReached = react.useRef({});
|
|
@@ -958,7 +926,7 @@ var useResourceTypeName = function useResourceTypeName(resource) {
|
|
|
958
926
|
var useResourceTypeName$1 = useResourceTypeName;
|
|
959
927
|
|
|
960
928
|
var getResource = function getResource(resources, resourceId) {
|
|
961
|
-
return resourceId !== null && !
|
|
929
|
+
return resourceId !== null && !isObject(resourceId) ? resources.find(function (it) {
|
|
962
930
|
return it.id === resourceId;
|
|
963
931
|
}) || null : resourceId;
|
|
964
932
|
};
|
|
@@ -978,7 +946,7 @@ var useResourceUrlGenerator = function useResourceUrlGenerator() {
|
|
|
978
946
|
_ref$id = _ref.id,
|
|
979
947
|
id = _ref$id === void 0 ? null : _ref$id;
|
|
980
948
|
// console.log('route name', finalRouteName, id, finalParams);
|
|
981
|
-
var finalRoute = id !== null ? route("resources.".concat(finalRouteName),
|
|
949
|
+
var finalRoute = id !== null ? route("resources.".concat(finalRouteName), _objectSpread(_objectSpread({}, finalParams), {}, {
|
|
982
950
|
resource: id
|
|
983
951
|
})) : null;
|
|
984
952
|
// console.log('route', finalRoute);
|
|
@@ -987,41 +955,34 @@ var useResourceUrlGenerator = function useResourceUrlGenerator() {
|
|
|
987
955
|
};
|
|
988
956
|
var useResourceUrlGenerator$1 = useResourceUrlGenerator;
|
|
989
957
|
|
|
990
|
-
var
|
|
958
|
+
var useQuery = function useQuery() {
|
|
991
959
|
var initialBaseQuery = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
992
960
|
var paginated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
993
|
-
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
994
|
-
_ref$forceInitialQuer = _ref.forceInitialQuery,
|
|
995
|
-
forceInitialQuery = _ref$forceInitialQuer === void 0 ? false : _ref$forceInitialQuer;
|
|
996
961
|
var initialQuery = react.useMemo(function () {
|
|
997
|
-
return paginated ?
|
|
962
|
+
return paginated ? _objectSpread({
|
|
998
963
|
page: 1,
|
|
999
964
|
count: 10
|
|
1000
965
|
}, initialBaseQuery) : initialBaseQuery || null;
|
|
1001
966
|
}, [paginated, initialBaseQuery]);
|
|
1002
967
|
var _useState = react.useState(initialQuery),
|
|
1003
|
-
_useState2 =
|
|
968
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1004
969
|
query = _useState2[0],
|
|
1005
970
|
setQuery = _useState2[1];
|
|
1006
971
|
react.useEffect(function () {
|
|
1007
972
|
setQuery(initialQuery);
|
|
1008
973
|
}, [initialQuery, setQuery]);
|
|
1009
974
|
var onPageChange = react.useCallback(function (newPage) {
|
|
1010
|
-
setQuery(
|
|
975
|
+
setQuery(_objectSpread(_objectSpread({}, query), {}, {
|
|
1011
976
|
page: newPage || 1
|
|
1012
977
|
}));
|
|
1013
978
|
}, [query, setQuery]);
|
|
1014
979
|
var onQueryChange = react.useCallback(function (newQuery) {
|
|
1015
980
|
var finalQuery = newQuery !== null ? Object.keys(newQuery).reduce(function (currentQuery, key) {
|
|
1016
981
|
var val = newQuery[key];
|
|
1017
|
-
return val !== null ?
|
|
982
|
+
return val !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, val)) : currentQuery;
|
|
1018
983
|
}, null) : null;
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
} else {
|
|
1022
|
-
setQuery(finalQuery);
|
|
1023
|
-
}
|
|
1024
|
-
}, [query, setQuery, initialBaseQuery, forceInitialQuery]);
|
|
984
|
+
setQuery(_objectSpread(_objectSpread({}, initialQuery || null), finalQuery || null));
|
|
985
|
+
}, [query, setQuery, initialQuery]);
|
|
1025
986
|
var onQueryReset = react.useCallback(function () {
|
|
1026
987
|
setQuery(initialQuery);
|
|
1027
988
|
}, [initialQuery, setQuery]);
|
|
@@ -1032,7 +993,7 @@ var useResourceQuery = function useResourceQuery() {
|
|
|
1032
993
|
onQueryReset: onQueryReset
|
|
1033
994
|
};
|
|
1034
995
|
};
|
|
1035
|
-
var
|
|
996
|
+
var useQuery$1 = useQuery;
|
|
1036
997
|
|
|
1037
998
|
var _excluded = ["width", "height"];
|
|
1038
999
|
var useScreenSize = function useScreenSize(_ref) {
|
|
@@ -1059,7 +1020,7 @@ var useScreenSize = function useScreenSize(_ref) {
|
|
|
1059
1020
|
|
|
1060
1021
|
// Get matching screens
|
|
1061
1022
|
var matchingScreens = react.useMemo(function () {
|
|
1062
|
-
return
|
|
1023
|
+
return _toConsumableArray(screens).reverse().filter(function (_ref2) {
|
|
1063
1024
|
var _ref2$mediaQuery = _ref2.mediaQuery,
|
|
1064
1025
|
mediaQuery = _ref2$mediaQuery === void 0 ? null : _ref2$mediaQuery;
|
|
1065
1026
|
return mediaQuery === null || cssMediaquery.match(mediaQuery, media);
|
|
@@ -1067,7 +1028,7 @@ var useScreenSize = function useScreenSize(_ref) {
|
|
|
1067
1028
|
}, [screens, media]);
|
|
1068
1029
|
return {
|
|
1069
1030
|
screen: matchingScreens.length > 0 ? matchingScreens[0].name : null,
|
|
1070
|
-
screens:
|
|
1031
|
+
screens: _toConsumableArray(matchingScreens).reverse().map(function (_ref3) {
|
|
1071
1032
|
var name = _ref3.name;
|
|
1072
1033
|
return name;
|
|
1073
1034
|
}),
|
|
@@ -1082,7 +1043,7 @@ var useScreenSizeFromElement = function useScreenSizeFromElement() {
|
|
|
1082
1043
|
width = _ref4$width === void 0 ? null : _ref4$width,
|
|
1083
1044
|
_ref4$height = _ref4.height,
|
|
1084
1045
|
height = _ref4$height === void 0 ? null : _ref4$height,
|
|
1085
|
-
opts =
|
|
1046
|
+
opts = _objectWithoutProperties(_ref4, _excluded);
|
|
1086
1047
|
var _useResizeObserver = useResizeObserver(),
|
|
1087
1048
|
ref = _useResizeObserver.ref,
|
|
1088
1049
|
contentRect = _useResizeObserver.entry.contentRect;
|
|
@@ -1104,7 +1065,7 @@ var useScreenSizeFromElement = function useScreenSizeFromElement() {
|
|
|
1104
1065
|
if (finalHeight % 2 === 1) {
|
|
1105
1066
|
finalHeight -= 1;
|
|
1106
1067
|
}
|
|
1107
|
-
var screenSize = useScreenSize(
|
|
1068
|
+
var screenSize = useScreenSize(_objectSpread({
|
|
1108
1069
|
width: finalWidth,
|
|
1109
1070
|
height: finalHeight,
|
|
1110
1071
|
landscape: landscape
|
|
@@ -1122,7 +1083,7 @@ var getWindowSize = function getWindowSize() {
|
|
|
1122
1083
|
};
|
|
1123
1084
|
var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
|
|
1124
1085
|
var _useState = react.useState(getWindowSize()),
|
|
1125
|
-
_useState2 =
|
|
1086
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1126
1087
|
windowSize = _useState2[0],
|
|
1127
1088
|
setWindowSize = _useState2[1];
|
|
1128
1089
|
react.useEffect(function () {
|
|
@@ -1138,13 +1099,134 @@ var useScreenSizeFromWindow = function useScreenSizeFromWindow(opts) {
|
|
|
1138
1099
|
}
|
|
1139
1100
|
};
|
|
1140
1101
|
}, [setWindowSize]);
|
|
1141
|
-
return useScreenSize(
|
|
1102
|
+
return useScreenSize(_objectSpread(_objectSpread({}, opts), windowSize));
|
|
1142
1103
|
};
|
|
1143
1104
|
|
|
1144
1105
|
var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(window) : null;
|
|
1145
1106
|
var useWindowEvent = utils.createUseEvent(eventsManager);
|
|
1146
1107
|
var useWindowEvent$1 = useWindowEvent;
|
|
1147
1108
|
|
|
1109
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
1110
|
+
var _ref$items = _ref.items,
|
|
1111
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
1112
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
1113
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
1114
|
+
_ref$multiple = _ref.multiple,
|
|
1115
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
1116
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
1117
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
1118
|
+
var initialItems = !isArray(initialSelectedItems) && initialSelectedItems !== null ? [initialSelectedItems] : initialSelectedItems;
|
|
1119
|
+
var _useState = react.useState(initialItems),
|
|
1120
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1121
|
+
selectedItems = _useState2[0],
|
|
1122
|
+
setSelectedItems = _useState2[1];
|
|
1123
|
+
var onSelectItem = react.useCallback(function (item, index) {
|
|
1124
|
+
var newItems = selectedItems !== null && multiple ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
1125
|
+
setSelectedItems(newItems);
|
|
1126
|
+
if (onSelectionChange !== null) {
|
|
1127
|
+
onSelectionChange(newItems, item, index);
|
|
1128
|
+
}
|
|
1129
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1130
|
+
var onDeselectItem = react.useCallback(function (item, index) {
|
|
1131
|
+
var _ref2 = item || {},
|
|
1132
|
+
_ref2$id = _ref2.id,
|
|
1133
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
1134
|
+
var newItems = (selectedItems || []).filter(function (_ref3) {
|
|
1135
|
+
var id = _ref3.id;
|
|
1136
|
+
return id !== itemId;
|
|
1137
|
+
});
|
|
1138
|
+
setSelectedItems(newItems);
|
|
1139
|
+
if (onSelectionChange !== null) {
|
|
1140
|
+
onSelectionChange(multiple ? newItems : null, item, index);
|
|
1141
|
+
}
|
|
1142
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1143
|
+
var onSelectPage = react.useCallback(function () {
|
|
1144
|
+
var nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
1145
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1146
|
+
_ref4$id = _ref4.id,
|
|
1147
|
+
id = _ref4$id === void 0 ? null : _ref4$id;
|
|
1148
|
+
return id;
|
|
1149
|
+
});
|
|
1150
|
+
setSelectedItems(nextItems);
|
|
1151
|
+
if (onSelectionChange !== null) {
|
|
1152
|
+
onSelectionChange(nextItems);
|
|
1153
|
+
}
|
|
1154
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1155
|
+
var onDeselectPage = react.useCallback(function () {
|
|
1156
|
+
var ids = (items || []).map(function () {
|
|
1157
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1158
|
+
_ref5$id = _ref5.id,
|
|
1159
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
|
1160
|
+
return id;
|
|
1161
|
+
}).filter(function (id) {
|
|
1162
|
+
return id !== null;
|
|
1163
|
+
});
|
|
1164
|
+
var nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
1165
|
+
var _ref6 = it || {},
|
|
1166
|
+
_ref6$id = _ref6.id,
|
|
1167
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
1168
|
+
return ids.indexOf(id) === -1;
|
|
1169
|
+
}), function () {
|
|
1170
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1171
|
+
_ref7$id = _ref7.id,
|
|
1172
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
1173
|
+
return id;
|
|
1174
|
+
});
|
|
1175
|
+
setSelectedItems(nextItems);
|
|
1176
|
+
if (onSelectionChange !== null) {
|
|
1177
|
+
onSelectionChange(nextItems);
|
|
1178
|
+
}
|
|
1179
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1180
|
+
var onClearAll = react.useCallback(function () {
|
|
1181
|
+
setSelectedItems([]);
|
|
1182
|
+
if (onSelectionChange !== null) {
|
|
1183
|
+
onSelectionChange([]);
|
|
1184
|
+
}
|
|
1185
|
+
}, [setSelectedItems, onSelectionChange]);
|
|
1186
|
+
react.useEffect(function () {
|
|
1187
|
+
setSelectedItems(initialSelectedItems);
|
|
1188
|
+
}, [initialSelectedItems]);
|
|
1189
|
+
var pageSelected = react.useMemo(function () {
|
|
1190
|
+
var ids = (items || []).map(function () {
|
|
1191
|
+
var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1192
|
+
_ref8$id = _ref8.id,
|
|
1193
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
1194
|
+
return id;
|
|
1195
|
+
}).filter(function (id) {
|
|
1196
|
+
return id !== null;
|
|
1197
|
+
});
|
|
1198
|
+
// console.log('selectedItems', selectedItems);
|
|
1199
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
1200
|
+
var _ref9 = it || {},
|
|
1201
|
+
_ref9$id = _ref9.id,
|
|
1202
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
1203
|
+
return ids.indexOf(id) !== -1;
|
|
1204
|
+
});
|
|
1205
|
+
// console.log('currentPageItems', currentPageItems);
|
|
1206
|
+
return currentPageItems.length === (items || []).length;
|
|
1207
|
+
}, [selectedItems, items]);
|
|
1208
|
+
|
|
1209
|
+
// const allSelected = useMemo(
|
|
1210
|
+
// () => selectedItems !== null && selectedItems.length === selectedItemsCount,
|
|
1211
|
+
// [selectedItems, selectedItemsCount],
|
|
1212
|
+
// );
|
|
1213
|
+
|
|
1214
|
+
var countSelected = react.useMemo(function () {
|
|
1215
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
1216
|
+
}, [selectedItems]);
|
|
1217
|
+
return {
|
|
1218
|
+
onSelectItem: onSelectItem,
|
|
1219
|
+
onDeselectItem: onDeselectItem,
|
|
1220
|
+
onSelectPage: onSelectPage,
|
|
1221
|
+
onDeselectPage: onDeselectPage,
|
|
1222
|
+
onClearAll: onClearAll,
|
|
1223
|
+
pageSelected: pageSelected,
|
|
1224
|
+
count: countSelected,
|
|
1225
|
+
selectedItems: selectedItems
|
|
1226
|
+
};
|
|
1227
|
+
};
|
|
1228
|
+
var useItemSelection$1 = useItemSelection;
|
|
1229
|
+
|
|
1148
1230
|
exports.getObserver = getObserver;
|
|
1149
1231
|
exports.useAnimationFrame = useAnimationFrame$1;
|
|
1150
1232
|
exports.useDocumentEvent = useDocumentEvent$1;
|
|
@@ -1153,12 +1235,13 @@ exports.useFormattedDate = useFormattedDate;
|
|
|
1153
1235
|
exports.useFormattedTime = useFormattedTime;
|
|
1154
1236
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1155
1237
|
exports.useIsVisible = useIsVisible$1;
|
|
1238
|
+
exports.useItemSelection = useItemSelection$1;
|
|
1156
1239
|
exports.useLoadedFonts = useLoadedFonts$1;
|
|
1157
1240
|
exports.useMediaApi = useMediaApi$1;
|
|
1158
1241
|
exports.useMediasParser = useMediasParser$1;
|
|
1159
1242
|
exports.useObserver = useObserver;
|
|
1243
|
+
exports.useQuery = useQuery$1;
|
|
1160
1244
|
exports.useResizeObserver = useResizeObserver;
|
|
1161
|
-
exports.useResourceQuery = useResourceQuery$1;
|
|
1162
1245
|
exports.useResourceTypeName = useResourceTypeName$1;
|
|
1163
1246
|
exports.useResourceUrlGenerator = useResourceUrlGenerator$1;
|
|
1164
1247
|
exports.useScreenSizeFromElement = useScreenSizeFromElement;
|