@panneau/core 3.0.176 → 3.0.187
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/hooks.js +1 -152
- package/es/utils.js +116 -1
- package/lib/hooks.js +0 -152
- package/lib/utils.js +117 -0
- package/package.json +2 -2
package/es/hooks.js
CHANGED
|
@@ -11,7 +11,6 @@ import { getCsrfToken, postJSON, getCSRFHeaders } from '@folklore/fetch';
|
|
|
11
11
|
import get from 'lodash/get';
|
|
12
12
|
import isArray from 'lodash/isArray';
|
|
13
13
|
import isObject from 'lodash/isObject';
|
|
14
|
-
import uniqBy from 'lodash/uniqBy';
|
|
15
14
|
import { useFieldsManager, usePanneauResources, useResource, useUrlGenerator } from '@panneau/core/contexts';
|
|
16
15
|
import { useIntl } from 'react-intl';
|
|
17
16
|
import dayjs from 'dayjs';
|
|
@@ -676,156 +675,6 @@ var useIsVisible = function useIsVisible() {
|
|
|
676
675
|
};
|
|
677
676
|
var useIsVisible$1 = useIsVisible;
|
|
678
677
|
|
|
679
|
-
function filterNullItems(items) {
|
|
680
|
-
return isArray(items) ? items.filter(function (it) {
|
|
681
|
-
return it !== null;
|
|
682
|
-
}) : items;
|
|
683
|
-
}
|
|
684
|
-
function getItemsArray(items) {
|
|
685
|
-
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
686
|
-
}
|
|
687
|
-
var useItemSelection = function useItemSelection(_ref) {
|
|
688
|
-
var _ref$items = _ref.items,
|
|
689
|
-
items = _ref$items === void 0 ? null : _ref$items,
|
|
690
|
-
_ref$selectedItems = _ref.selectedItems,
|
|
691
|
-
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
692
|
-
_ref$multipleSelectio = _ref.multipleSelection,
|
|
693
|
-
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
694
|
-
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
695
|
-
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
696
|
-
var initialItems = getItemsArray(initialSelectedItems);
|
|
697
|
-
var _useState = useState(initialItems),
|
|
698
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
699
|
-
selectedItems = _useState2[0],
|
|
700
|
-
setSelectedItems = _useState2[1];
|
|
701
|
-
var onSelectItem = useCallback(function (item, index) {
|
|
702
|
-
var _ref2 = item || {},
|
|
703
|
-
_ref2$id = _ref2.id,
|
|
704
|
-
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
705
|
-
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
706
|
-
var id = _ref3.id;
|
|
707
|
-
return id === itemId;
|
|
708
|
-
}) || null;
|
|
709
|
-
var newItems = [];
|
|
710
|
-
if (oldItem === null) {
|
|
711
|
-
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
712
|
-
} else {
|
|
713
|
-
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
714
|
-
var id = _ref4.id;
|
|
715
|
-
return id !== itemId;
|
|
716
|
-
});
|
|
717
|
-
}
|
|
718
|
-
setSelectedItems(filterNullItems(newItems));
|
|
719
|
-
if (onSelectionChange !== null) {
|
|
720
|
-
var _ref5 = newItems || [],
|
|
721
|
-
_ref6 = _slicedToArray(_ref5, 1),
|
|
722
|
-
_ref6$ = _ref6[0],
|
|
723
|
-
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
724
|
-
var finalValue = multipleSelection ? newItems : firstItem;
|
|
725
|
-
onSelectionChange(finalValue, item, index);
|
|
726
|
-
}
|
|
727
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
728
|
-
var onSelectItems = useCallback(function (newItems, index) {
|
|
729
|
-
var finalNewItems = filterNullItems(newItems);
|
|
730
|
-
setSelectedItems(finalNewItems);
|
|
731
|
-
if (onSelectionChange !== null) {
|
|
732
|
-
var _ref7 = finalNewItems || [],
|
|
733
|
-
_ref8 = _slicedToArray(_ref7, 1),
|
|
734
|
-
_ref8$ = _ref8[0],
|
|
735
|
-
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
736
|
-
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
737
|
-
onSelectionChange(finalValue, null, index);
|
|
738
|
-
}
|
|
739
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
740
|
-
var onSelectPage = useCallback(function () {
|
|
741
|
-
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
742
|
-
var nextItems = [];
|
|
743
|
-
if (!pageSelected) {
|
|
744
|
-
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
745
|
-
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
746
|
-
_ref9$id = _ref9.id,
|
|
747
|
-
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
748
|
-
return id;
|
|
749
|
-
});
|
|
750
|
-
} else {
|
|
751
|
-
var ids = (items || []).map(function () {
|
|
752
|
-
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
753
|
-
_ref10$id = _ref10.id,
|
|
754
|
-
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
755
|
-
return id;
|
|
756
|
-
}).filter(function (id) {
|
|
757
|
-
return id !== null;
|
|
758
|
-
});
|
|
759
|
-
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
760
|
-
var _ref11 = it || {},
|
|
761
|
-
_ref11$id = _ref11.id,
|
|
762
|
-
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
763
|
-
return ids.indexOf(id) === -1;
|
|
764
|
-
}), function () {
|
|
765
|
-
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
766
|
-
_ref12$id = _ref12.id,
|
|
767
|
-
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
768
|
-
return id;
|
|
769
|
-
});
|
|
770
|
-
}
|
|
771
|
-
var finalNextItems = filterNullItems(nextItems);
|
|
772
|
-
setSelectedItems(finalNextItems);
|
|
773
|
-
if (onSelectionChange !== null) {
|
|
774
|
-
onSelectionChange(finalNextItems);
|
|
775
|
-
}
|
|
776
|
-
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
777
|
-
var onClearSelected = useCallback(function () {
|
|
778
|
-
setSelectedItems([]);
|
|
779
|
-
if (onSelectionChange !== null) {
|
|
780
|
-
onSelectionChange(multipleSelection ? [] : null);
|
|
781
|
-
}
|
|
782
|
-
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
783
|
-
useEffect(function () {
|
|
784
|
-
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
785
|
-
}, [initialSelectedItems]);
|
|
786
|
-
var pageSelected = useMemo(function () {
|
|
787
|
-
if (items === null || selectedItems === null) {
|
|
788
|
-
return false;
|
|
789
|
-
}
|
|
790
|
-
var ids = (items || []).map(function () {
|
|
791
|
-
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
792
|
-
_ref13$id = _ref13.id,
|
|
793
|
-
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
794
|
-
return id;
|
|
795
|
-
}).filter(function (id) {
|
|
796
|
-
return id !== null;
|
|
797
|
-
}) || [];
|
|
798
|
-
if (ids === null || ids.length === 0) {
|
|
799
|
-
return false;
|
|
800
|
-
}
|
|
801
|
-
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
802
|
-
var _ref14 = it || {},
|
|
803
|
-
_ref14$id = _ref14.id,
|
|
804
|
-
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
805
|
-
return (ids || []).indexOf(id) !== -1;
|
|
806
|
-
}) || [];
|
|
807
|
-
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
808
|
-
}, [selectedItems, items]);
|
|
809
|
-
var allSelected = useMemo(function () {
|
|
810
|
-
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
811
|
-
}, [selectedItems, items]);
|
|
812
|
-
var selectedCount = useMemo(function () {
|
|
813
|
-
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
814
|
-
}, [selectedItems]);
|
|
815
|
-
return {
|
|
816
|
-
onSelectItem: onSelectItem,
|
|
817
|
-
onSelectItems: onSelectItems,
|
|
818
|
-
onSelectPage: onSelectPage,
|
|
819
|
-
onClearSelected: onClearSelected,
|
|
820
|
-
pageSelected: pageSelected,
|
|
821
|
-
allSelected: allSelected,
|
|
822
|
-
selectedCount: selectedCount,
|
|
823
|
-
selectedItems: selectedItems,
|
|
824
|
-
setSelectedItems: setSelectedItems
|
|
825
|
-
};
|
|
826
|
-
};
|
|
827
|
-
var useItemSelection$1 = useItemSelection;
|
|
828
|
-
|
|
829
678
|
var KEYCODES = {
|
|
830
679
|
ARROW_LEFT: 37,
|
|
831
680
|
ARROW_UP: 38,
|
|
@@ -1410,4 +1259,4 @@ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) :
|
|
|
1410
1259
|
var useWindowEvent = createUseEvent(eventsManager);
|
|
1411
1260
|
var useWindowEvent$1 = useWindowEvent;
|
|
1412
1261
|
|
|
1413
|
-
export { KEYCODES, getObserver, useActions$1 as useActions, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible,
|
|
1262
|
+
export { KEYCODES, getObserver, useActions$1 as useActions, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useKeyboardKeys$1 as useKeyboardKeys, useLoadedFonts$1 as useLoadedFonts, useMediaApi$1 as useMediaApi, useMediasParser$1 as useMediasParser, useObserver, useQuery$1 as useQuery, useResizeObserver, useResourceTypeName$1 as useResourceTypeName, useResourceUrlGenerator$1 as useResourceUrlGenerator, useScreenSizeFromElement, useScreenSizeFromWindow, useWindowEvent$1 as useWindowEvent };
|
package/es/utils.js
CHANGED
|
@@ -17,6 +17,46 @@ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
|
17
17
|
import get from 'lodash/get';
|
|
18
18
|
import capitalize from 'lodash/capitalize';
|
|
19
19
|
import slugify from 'slugify';
|
|
20
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
21
|
+
import uniqBy from 'lodash/uniqBy';
|
|
22
|
+
|
|
23
|
+
function checkClickable(el) {
|
|
24
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
25
|
+
var parentDistance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
26
|
+
var _ref = options || {},
|
|
27
|
+
_ref$maxParentDistanc = _ref.maxParentDistance,
|
|
28
|
+
maxParentDistance = _ref$maxParentDistanc === void 0 ? 5 : _ref$maxParentDistanc,
|
|
29
|
+
_ref$tags = _ref.tags,
|
|
30
|
+
tags = _ref$tags === void 0 ? ['BUTTON', 'A', 'INPUT', 'I', 'TEXTAREA'] : _ref$tags;
|
|
31
|
+
var _ref2 = el || {},
|
|
32
|
+
_ref2$tagName = _ref2.tagName,
|
|
33
|
+
tagName = _ref2$tagName === void 0 ? null : _ref2$tagName,
|
|
34
|
+
_ref2$parentNode = _ref2.parentNode,
|
|
35
|
+
parentNode = _ref2$parentNode === void 0 ? null : _ref2$parentNode;
|
|
36
|
+
_ref2.dataset;
|
|
37
|
+
if (tagName === 'BODY') {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Check if video is suspended
|
|
42
|
+
// if (
|
|
43
|
+
// tagName === 'VIDEO' &&
|
|
44
|
+
// typeof dataset.isSuspended !== 'undefined' &&
|
|
45
|
+
// (dataset.isSuspended === 'true' || dataset.isSuspended === true)
|
|
46
|
+
// ) {
|
|
47
|
+
// return true;
|
|
48
|
+
// }
|
|
49
|
+
|
|
50
|
+
if (tags.map(function (it) {
|
|
51
|
+
return it.toLowerCase();
|
|
52
|
+
}).indexOf(tagName.toLowerCase()) !== -1) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
if (parentDistance < maxParentDistance) {
|
|
56
|
+
return checkClickable(parentNode, options, parentDistance + 1);
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
20
60
|
|
|
21
61
|
var convertStyleToString = function convertStyleToString(style) {
|
|
22
62
|
return style !== null ? Object.keys(style).map(function (key) {
|
|
@@ -442,6 +482,81 @@ function loadPackage(name, loader) {
|
|
|
442
482
|
});
|
|
443
483
|
}
|
|
444
484
|
|
|
485
|
+
function filterNullItems(items) {
|
|
486
|
+
return isArray(items) ? items.filter(function (it) {
|
|
487
|
+
return it !== null;
|
|
488
|
+
}) : items;
|
|
489
|
+
}
|
|
490
|
+
function getItemsArray(items) {
|
|
491
|
+
return (items !== null && isArray(items) ? items.filter(function (it) {
|
|
492
|
+
return it !== null;
|
|
493
|
+
}) : [items]).filter(function (it) {
|
|
494
|
+
return it !== null;
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
function selectItem(item, selectedItems, onSelectionChange) {
|
|
498
|
+
var multipleSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
499
|
+
var _ref = item || {},
|
|
500
|
+
_ref$id = _ref.id,
|
|
501
|
+
itemId = _ref$id === void 0 ? null : _ref$id;
|
|
502
|
+
var selectedItemsArray = getItemsArray(selectedItems);
|
|
503
|
+
var oldItem = selectedItemsArray.find(function (_ref2) {
|
|
504
|
+
var id = _ref2.id;
|
|
505
|
+
return id === itemId;
|
|
506
|
+
}) || null;
|
|
507
|
+
var newItems = [];
|
|
508
|
+
if (oldItem === null) {
|
|
509
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItemsArray), [item]) : [item];
|
|
510
|
+
} else {
|
|
511
|
+
newItems = selectedItemsArray.filter(function (_ref3) {
|
|
512
|
+
var id = _ref3.id;
|
|
513
|
+
return id !== itemId;
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
if (onSelectionChange !== null) {
|
|
517
|
+
var _ref4 = newItems || [],
|
|
518
|
+
_ref5 = _slicedToArray(_ref4, 1),
|
|
519
|
+
_ref5$ = _ref5[0],
|
|
520
|
+
firstItem = _ref5$ === void 0 ? null : _ref5$;
|
|
521
|
+
onSelectionChange(multipleSelection ? filterNullItems(newItems) : firstItem);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
function selectPage(pageSelected, items, selectedItems, onSelectionChange) {
|
|
525
|
+
var nextItems = [];
|
|
526
|
+
if (!pageSelected) {
|
|
527
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
528
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
529
|
+
_ref6$id = _ref6.id,
|
|
530
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
531
|
+
return id;
|
|
532
|
+
});
|
|
533
|
+
} else {
|
|
534
|
+
var ids = (items || []).map(function () {
|
|
535
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
536
|
+
_ref7$id = _ref7.id,
|
|
537
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
538
|
+
return id;
|
|
539
|
+
}).filter(function (id) {
|
|
540
|
+
return id !== null;
|
|
541
|
+
});
|
|
542
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
543
|
+
var _ref8 = it || {},
|
|
544
|
+
_ref8$id = _ref8.id,
|
|
545
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
546
|
+
return ids.indexOf(id) === -1;
|
|
547
|
+
}), function () {
|
|
548
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
549
|
+
_ref9$id = _ref9.id,
|
|
550
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
551
|
+
return id;
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
var finalNextItems = nextItems;
|
|
555
|
+
if (onSelectionChange !== null) {
|
|
556
|
+
onSelectionChange(finalNextItems);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
445
560
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
446
561
|
var key = keyParts.shift();
|
|
447
562
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
@@ -485,4 +600,4 @@ var validateFields = function validateFields(fields, value) {
|
|
|
485
600
|
};
|
|
486
601
|
var validateFields$1 = validateFields;
|
|
487
602
|
|
|
488
|
-
export { convertStyleToString$1 as convertStyleToString, copyToClipboard, createNullableOnChange$1 as createNullableOnChange, createUseEvent$1 as createUseEvent, flattenComponents$1 as flattenComponents, formatDuration$1 as formatDuration, getColumnsWithFields$1 as getColumnsWithFields, getComponent$1 as getComponent, getComponentFromName$1 as getComponentFromName, getDefinitionFromId$1 as getDefinitionFromId, getDisplayName$1 as getDisplayName, getFieldByName$1 as getFieldByName, getFieldFromPath$1 as getFieldFromPath, getFileName$1 as getFileName, getPathValue$1 as getPathValue, getSelectOptions$1 as getSelectOptions, isMessage$1 as isMessage, loadPackage, setValue$1 as setFieldValue, slug$1 as slug, validateFields$1 as validateFields };
|
|
603
|
+
export { checkClickable, convertStyleToString$1 as convertStyleToString, copyToClipboard, createNullableOnChange$1 as createNullableOnChange, createUseEvent$1 as createUseEvent, flattenComponents$1 as flattenComponents, formatDuration$1 as formatDuration, getColumnsWithFields$1 as getColumnsWithFields, getComponent$1 as getComponent, getComponentFromName$1 as getComponentFromName, getDefinitionFromId$1 as getDefinitionFromId, getDisplayName$1 as getDisplayName, getFieldByName$1 as getFieldByName, getFieldFromPath$1 as getFieldFromPath, getFileName$1 as getFileName, getPathValue$1 as getPathValue, getSelectOptions$1 as getSelectOptions, isMessage$1 as isMessage, loadPackage, selectItem, selectPage, setValue$1 as setFieldValue, slug$1 as slug, validateFields$1 as validateFields };
|
package/lib/hooks.js
CHANGED
|
@@ -13,7 +13,6 @@ var fetch = require('@folklore/fetch');
|
|
|
13
13
|
var get = require('lodash/get');
|
|
14
14
|
var isArray = require('lodash/isArray');
|
|
15
15
|
var isObject = require('lodash/isObject');
|
|
16
|
-
var uniqBy = require('lodash/uniqBy');
|
|
17
16
|
var contexts = require('@panneau/core/contexts');
|
|
18
17
|
var reactIntl = require('react-intl');
|
|
19
18
|
var dayjs = require('dayjs');
|
|
@@ -678,156 +677,6 @@ var useIsVisible = function useIsVisible() {
|
|
|
678
677
|
};
|
|
679
678
|
var useIsVisible$1 = useIsVisible;
|
|
680
679
|
|
|
681
|
-
function filterNullItems(items) {
|
|
682
|
-
return isArray(items) ? items.filter(function (it) {
|
|
683
|
-
return it !== null;
|
|
684
|
-
}) : items;
|
|
685
|
-
}
|
|
686
|
-
function getItemsArray(items) {
|
|
687
|
-
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
688
|
-
}
|
|
689
|
-
var useItemSelection = function useItemSelection(_ref) {
|
|
690
|
-
var _ref$items = _ref.items,
|
|
691
|
-
items = _ref$items === void 0 ? null : _ref$items,
|
|
692
|
-
_ref$selectedItems = _ref.selectedItems,
|
|
693
|
-
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
694
|
-
_ref$multipleSelectio = _ref.multipleSelection,
|
|
695
|
-
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
696
|
-
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
697
|
-
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
698
|
-
var initialItems = getItemsArray(initialSelectedItems);
|
|
699
|
-
var _useState = react.useState(initialItems),
|
|
700
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
701
|
-
selectedItems = _useState2[0],
|
|
702
|
-
setSelectedItems = _useState2[1];
|
|
703
|
-
var onSelectItem = react.useCallback(function (item, index) {
|
|
704
|
-
var _ref2 = item || {},
|
|
705
|
-
_ref2$id = _ref2.id,
|
|
706
|
-
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
707
|
-
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
708
|
-
var id = _ref3.id;
|
|
709
|
-
return id === itemId;
|
|
710
|
-
}) || null;
|
|
711
|
-
var newItems = [];
|
|
712
|
-
if (oldItem === null) {
|
|
713
|
-
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
714
|
-
} else {
|
|
715
|
-
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
716
|
-
var id = _ref4.id;
|
|
717
|
-
return id !== itemId;
|
|
718
|
-
});
|
|
719
|
-
}
|
|
720
|
-
setSelectedItems(filterNullItems(newItems));
|
|
721
|
-
if (onSelectionChange !== null) {
|
|
722
|
-
var _ref5 = newItems || [],
|
|
723
|
-
_ref6 = _slicedToArray(_ref5, 1),
|
|
724
|
-
_ref6$ = _ref6[0],
|
|
725
|
-
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
726
|
-
var finalValue = multipleSelection ? newItems : firstItem;
|
|
727
|
-
onSelectionChange(finalValue, item, index);
|
|
728
|
-
}
|
|
729
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
730
|
-
var onSelectItems = react.useCallback(function (newItems, index) {
|
|
731
|
-
var finalNewItems = filterNullItems(newItems);
|
|
732
|
-
setSelectedItems(finalNewItems);
|
|
733
|
-
if (onSelectionChange !== null) {
|
|
734
|
-
var _ref7 = finalNewItems || [],
|
|
735
|
-
_ref8 = _slicedToArray(_ref7, 1),
|
|
736
|
-
_ref8$ = _ref8[0],
|
|
737
|
-
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
738
|
-
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
739
|
-
onSelectionChange(finalValue, null, index);
|
|
740
|
-
}
|
|
741
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
742
|
-
var onSelectPage = react.useCallback(function () {
|
|
743
|
-
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
744
|
-
var nextItems = [];
|
|
745
|
-
if (!pageSelected) {
|
|
746
|
-
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
747
|
-
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
748
|
-
_ref9$id = _ref9.id,
|
|
749
|
-
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
750
|
-
return id;
|
|
751
|
-
});
|
|
752
|
-
} else {
|
|
753
|
-
var ids = (items || []).map(function () {
|
|
754
|
-
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
755
|
-
_ref10$id = _ref10.id,
|
|
756
|
-
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
757
|
-
return id;
|
|
758
|
-
}).filter(function (id) {
|
|
759
|
-
return id !== null;
|
|
760
|
-
});
|
|
761
|
-
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
762
|
-
var _ref11 = it || {},
|
|
763
|
-
_ref11$id = _ref11.id,
|
|
764
|
-
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
765
|
-
return ids.indexOf(id) === -1;
|
|
766
|
-
}), function () {
|
|
767
|
-
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
768
|
-
_ref12$id = _ref12.id,
|
|
769
|
-
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
770
|
-
return id;
|
|
771
|
-
});
|
|
772
|
-
}
|
|
773
|
-
var finalNextItems = filterNullItems(nextItems);
|
|
774
|
-
setSelectedItems(finalNextItems);
|
|
775
|
-
if (onSelectionChange !== null) {
|
|
776
|
-
onSelectionChange(finalNextItems);
|
|
777
|
-
}
|
|
778
|
-
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
779
|
-
var onClearSelected = react.useCallback(function () {
|
|
780
|
-
setSelectedItems([]);
|
|
781
|
-
if (onSelectionChange !== null) {
|
|
782
|
-
onSelectionChange(multipleSelection ? [] : null);
|
|
783
|
-
}
|
|
784
|
-
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
785
|
-
react.useEffect(function () {
|
|
786
|
-
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
787
|
-
}, [initialSelectedItems]);
|
|
788
|
-
var pageSelected = react.useMemo(function () {
|
|
789
|
-
if (items === null || selectedItems === null) {
|
|
790
|
-
return false;
|
|
791
|
-
}
|
|
792
|
-
var ids = (items || []).map(function () {
|
|
793
|
-
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
794
|
-
_ref13$id = _ref13.id,
|
|
795
|
-
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
796
|
-
return id;
|
|
797
|
-
}).filter(function (id) {
|
|
798
|
-
return id !== null;
|
|
799
|
-
}) || [];
|
|
800
|
-
if (ids === null || ids.length === 0) {
|
|
801
|
-
return false;
|
|
802
|
-
}
|
|
803
|
-
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
804
|
-
var _ref14 = it || {},
|
|
805
|
-
_ref14$id = _ref14.id,
|
|
806
|
-
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
807
|
-
return (ids || []).indexOf(id) !== -1;
|
|
808
|
-
}) || [];
|
|
809
|
-
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
810
|
-
}, [selectedItems, items]);
|
|
811
|
-
var allSelected = react.useMemo(function () {
|
|
812
|
-
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
813
|
-
}, [selectedItems, items]);
|
|
814
|
-
var selectedCount = react.useMemo(function () {
|
|
815
|
-
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
816
|
-
}, [selectedItems]);
|
|
817
|
-
return {
|
|
818
|
-
onSelectItem: onSelectItem,
|
|
819
|
-
onSelectItems: onSelectItems,
|
|
820
|
-
onSelectPage: onSelectPage,
|
|
821
|
-
onClearSelected: onClearSelected,
|
|
822
|
-
pageSelected: pageSelected,
|
|
823
|
-
allSelected: allSelected,
|
|
824
|
-
selectedCount: selectedCount,
|
|
825
|
-
selectedItems: selectedItems,
|
|
826
|
-
setSelectedItems: setSelectedItems
|
|
827
|
-
};
|
|
828
|
-
};
|
|
829
|
-
var useItemSelection$1 = useItemSelection;
|
|
830
|
-
|
|
831
680
|
var KEYCODES = {
|
|
832
681
|
ARROW_LEFT: 37,
|
|
833
682
|
ARROW_UP: 38,
|
|
@@ -1422,7 +1271,6 @@ exports.useFormattedDate = useFormattedDate;
|
|
|
1422
1271
|
exports.useFormattedTime = useFormattedTime;
|
|
1423
1272
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1424
1273
|
exports.useIsVisible = useIsVisible$1;
|
|
1425
|
-
exports.useItemSelection = useItemSelection$1;
|
|
1426
1274
|
exports.useKeyboardKeys = useKeyboardKeys$1;
|
|
1427
1275
|
exports.useLoadedFonts = useLoadedFonts$1;
|
|
1428
1276
|
exports.useMediaApi = useMediaApi$1;
|
package/lib/utils.js
CHANGED
|
@@ -17,6 +17,45 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
17
17
|
var get = require('lodash/get');
|
|
18
18
|
var capitalize = require('lodash/capitalize');
|
|
19
19
|
var slugify = require('slugify');
|
|
20
|
+
var uniqBy = require('lodash/uniqBy');
|
|
21
|
+
|
|
22
|
+
function checkClickable(el) {
|
|
23
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
24
|
+
var parentDistance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
25
|
+
var _ref = options || {},
|
|
26
|
+
_ref$maxParentDistanc = _ref.maxParentDistance,
|
|
27
|
+
maxParentDistance = _ref$maxParentDistanc === void 0 ? 5 : _ref$maxParentDistanc,
|
|
28
|
+
_ref$tags = _ref.tags,
|
|
29
|
+
tags = _ref$tags === void 0 ? ['BUTTON', 'A', 'INPUT', 'I', 'TEXTAREA'] : _ref$tags;
|
|
30
|
+
var _ref2 = el || {},
|
|
31
|
+
_ref2$tagName = _ref2.tagName,
|
|
32
|
+
tagName = _ref2$tagName === void 0 ? null : _ref2$tagName,
|
|
33
|
+
_ref2$parentNode = _ref2.parentNode,
|
|
34
|
+
parentNode = _ref2$parentNode === void 0 ? null : _ref2$parentNode;
|
|
35
|
+
_ref2.dataset;
|
|
36
|
+
if (tagName === 'BODY') {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Check if video is suspended
|
|
41
|
+
// if (
|
|
42
|
+
// tagName === 'VIDEO' &&
|
|
43
|
+
// typeof dataset.isSuspended !== 'undefined' &&
|
|
44
|
+
// (dataset.isSuspended === 'true' || dataset.isSuspended === true)
|
|
45
|
+
// ) {
|
|
46
|
+
// return true;
|
|
47
|
+
// }
|
|
48
|
+
|
|
49
|
+
if (tags.map(function (it) {
|
|
50
|
+
return it.toLowerCase();
|
|
51
|
+
}).indexOf(tagName.toLowerCase()) !== -1) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
if (parentDistance < maxParentDistance) {
|
|
55
|
+
return checkClickable(parentNode, options, parentDistance + 1);
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
20
59
|
|
|
21
60
|
/**
|
|
22
61
|
* Convert any string into a lower case string with spaces between words.
|
|
@@ -619,6 +658,81 @@ function loadPackage(name, loader) {
|
|
|
619
658
|
});
|
|
620
659
|
}
|
|
621
660
|
|
|
661
|
+
function filterNullItems(items) {
|
|
662
|
+
return isArray(items) ? items.filter(function (it) {
|
|
663
|
+
return it !== null;
|
|
664
|
+
}) : items;
|
|
665
|
+
}
|
|
666
|
+
function getItemsArray(items) {
|
|
667
|
+
return (items !== null && isArray(items) ? items.filter(function (it) {
|
|
668
|
+
return it !== null;
|
|
669
|
+
}) : [items]).filter(function (it) {
|
|
670
|
+
return it !== null;
|
|
671
|
+
});
|
|
672
|
+
}
|
|
673
|
+
function selectItem(item, selectedItems, onSelectionChange) {
|
|
674
|
+
var multipleSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
675
|
+
var _ref = item || {},
|
|
676
|
+
_ref$id = _ref.id,
|
|
677
|
+
itemId = _ref$id === void 0 ? null : _ref$id;
|
|
678
|
+
var selectedItemsArray = getItemsArray(selectedItems);
|
|
679
|
+
var oldItem = selectedItemsArray.find(function (_ref2) {
|
|
680
|
+
var id = _ref2.id;
|
|
681
|
+
return id === itemId;
|
|
682
|
+
}) || null;
|
|
683
|
+
var newItems = [];
|
|
684
|
+
if (oldItem === null) {
|
|
685
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItemsArray), [item]) : [item];
|
|
686
|
+
} else {
|
|
687
|
+
newItems = selectedItemsArray.filter(function (_ref3) {
|
|
688
|
+
var id = _ref3.id;
|
|
689
|
+
return id !== itemId;
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
if (onSelectionChange !== null) {
|
|
693
|
+
var _ref4 = newItems || [],
|
|
694
|
+
_ref5 = _slicedToArray(_ref4, 1),
|
|
695
|
+
_ref5$ = _ref5[0],
|
|
696
|
+
firstItem = _ref5$ === void 0 ? null : _ref5$;
|
|
697
|
+
onSelectionChange(multipleSelection ? filterNullItems(newItems) : firstItem);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
function selectPage(pageSelected, items, selectedItems, onSelectionChange) {
|
|
701
|
+
var nextItems = [];
|
|
702
|
+
if (!pageSelected) {
|
|
703
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
704
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
705
|
+
_ref6$id = _ref6.id,
|
|
706
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
707
|
+
return id;
|
|
708
|
+
});
|
|
709
|
+
} else {
|
|
710
|
+
var ids = (items || []).map(function () {
|
|
711
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
712
|
+
_ref7$id = _ref7.id,
|
|
713
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
714
|
+
return id;
|
|
715
|
+
}).filter(function (id) {
|
|
716
|
+
return id !== null;
|
|
717
|
+
});
|
|
718
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
719
|
+
var _ref8 = it || {},
|
|
720
|
+
_ref8$id = _ref8.id,
|
|
721
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
722
|
+
return ids.indexOf(id) === -1;
|
|
723
|
+
}), function () {
|
|
724
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
725
|
+
_ref9$id = _ref9.id,
|
|
726
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
727
|
+
return id;
|
|
728
|
+
});
|
|
729
|
+
}
|
|
730
|
+
var finalNextItems = nextItems;
|
|
731
|
+
if (onSelectionChange !== null) {
|
|
732
|
+
onSelectionChange(finalNextItems);
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
|
|
622
736
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
623
737
|
var key = keyParts.shift();
|
|
624
738
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
@@ -662,6 +776,7 @@ var validateFields = function validateFields(fields, value) {
|
|
|
662
776
|
};
|
|
663
777
|
var validateFields$1 = validateFields;
|
|
664
778
|
|
|
779
|
+
exports.checkClickable = checkClickable;
|
|
665
780
|
exports.convertStyleToString = convertStyleToString$1;
|
|
666
781
|
exports.copyToClipboard = copyToClipboard;
|
|
667
782
|
exports.createNullableOnChange = createNullableOnChange$1;
|
|
@@ -682,6 +797,8 @@ exports.getSelectOptions = getSelectOptions$1;
|
|
|
682
797
|
exports.isMessage = isMessage$1;
|
|
683
798
|
exports.loadPackage = loadPackage;
|
|
684
799
|
exports.pascalCase = pascalCase;
|
|
800
|
+
exports.selectItem = selectItem;
|
|
801
|
+
exports.selectPage = selectPage;
|
|
685
802
|
exports.setFieldValue = setValue$1;
|
|
686
803
|
exports.slug = slug$1;
|
|
687
804
|
exports.snakeCase = snakeCase;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.187",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"publishConfig": {
|
|
112
112
|
"access": "public"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "659bc65b0123e1d2d5b9aefa6628d49726100747"
|
|
115
115
|
}
|