@panneau/core 3.0.175 → 3.0.182
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 +1 -152
- package/es/utils.js +118 -1
- package/lib/contexts.js +12 -2
- package/lib/hooks.js +0 -152
- package/lib/utils.js +119 -0
- package/package.json +2 -2
package/es/contexts.js
CHANGED
|
@@ -884,6 +884,14 @@ var ModalProvider = function ModalProvider(_ref) {
|
|
|
884
884
|
modalsRef.current = newModals;
|
|
885
885
|
}
|
|
886
886
|
}, [modals, setModals]);
|
|
887
|
+
var getModalByKey = useCallback(function (key) {
|
|
888
|
+
return (modals || []).find(function (modal) {
|
|
889
|
+
return (modal === null || modal === void 0 ? void 0 : modal.id) === key;
|
|
890
|
+
}) || null;
|
|
891
|
+
}, [modals]);
|
|
892
|
+
var modalIsOpen = useCallback(function (key) {
|
|
893
|
+
return getModalByKey(key) !== null;
|
|
894
|
+
}, [getModalByKey]);
|
|
887
895
|
var value = useMemo(function () {
|
|
888
896
|
return {
|
|
889
897
|
modals: modals,
|
|
@@ -891,9 +899,11 @@ var ModalProvider = function ModalProvider(_ref) {
|
|
|
891
899
|
setContainer: setContainer,
|
|
892
900
|
register: register,
|
|
893
901
|
unregister: unregister,
|
|
894
|
-
closeLastModal: closeLastModal
|
|
902
|
+
closeLastModal: closeLastModal,
|
|
903
|
+
getModalByKey: getModalByKey,
|
|
904
|
+
modalIsOpen: modalIsOpen
|
|
895
905
|
};
|
|
896
|
-
}, [modals, container, setContainer, register, unregister, closeLastModal]);
|
|
906
|
+
}, [modals, container, setContainer, register, unregister, closeLastModal, getModalByKey, modalIsOpen]);
|
|
897
907
|
return /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
898
908
|
value: value
|
|
899
909
|
}, children);
|
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,83 @@ 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
|
+
onSelectionChange(filterNullItems(newItems));
|
|
517
|
+
if (onSelectionChange !== null) {
|
|
518
|
+
var _ref4 = newItems || [],
|
|
519
|
+
_ref5 = _slicedToArray(_ref4, 1),
|
|
520
|
+
_ref5$ = _ref5[0],
|
|
521
|
+
firstItem = _ref5$ === void 0 ? null : _ref5$;
|
|
522
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
523
|
+
onSelectionChange(finalValue, item);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
function selectPage(pageSelected, items, selectedItems, onSelectionChange) {
|
|
527
|
+
var nextItems = [];
|
|
528
|
+
if (!pageSelected) {
|
|
529
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
530
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
531
|
+
_ref6$id = _ref6.id,
|
|
532
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
533
|
+
return id;
|
|
534
|
+
});
|
|
535
|
+
} else {
|
|
536
|
+
var ids = (items || []).map(function () {
|
|
537
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
538
|
+
_ref7$id = _ref7.id,
|
|
539
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
540
|
+
return id;
|
|
541
|
+
}).filter(function (id) {
|
|
542
|
+
return id !== null;
|
|
543
|
+
});
|
|
544
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
545
|
+
var _ref8 = it || {},
|
|
546
|
+
_ref8$id = _ref8.id,
|
|
547
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
548
|
+
return ids.indexOf(id) === -1;
|
|
549
|
+
}), function () {
|
|
550
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
551
|
+
_ref9$id = _ref9.id,
|
|
552
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
553
|
+
return id;
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
var finalNextItems = nextItems;
|
|
557
|
+
if (onSelectionChange !== null) {
|
|
558
|
+
onSelectionChange(finalNextItems);
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
445
562
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
446
563
|
var key = keyParts.shift();
|
|
447
564
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
@@ -485,4 +602,4 @@ var validateFields = function validateFields(fields, value) {
|
|
|
485
602
|
};
|
|
486
603
|
var validateFields$1 = validateFields;
|
|
487
604
|
|
|
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 };
|
|
605
|
+
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/contexts.js
CHANGED
|
@@ -905,6 +905,14 @@ var ModalProvider = function ModalProvider(_ref) {
|
|
|
905
905
|
modalsRef.current = newModals;
|
|
906
906
|
}
|
|
907
907
|
}, [modals, setModals]);
|
|
908
|
+
var getModalByKey = React.useCallback(function (key) {
|
|
909
|
+
return (modals || []).find(function (modal) {
|
|
910
|
+
return (modal === null || modal === void 0 ? void 0 : modal.id) === key;
|
|
911
|
+
}) || null;
|
|
912
|
+
}, [modals]);
|
|
913
|
+
var modalIsOpen = React.useCallback(function (key) {
|
|
914
|
+
return getModalByKey(key) !== null;
|
|
915
|
+
}, [getModalByKey]);
|
|
908
916
|
var value = React.useMemo(function () {
|
|
909
917
|
return {
|
|
910
918
|
modals: modals,
|
|
@@ -912,9 +920,11 @@ var ModalProvider = function ModalProvider(_ref) {
|
|
|
912
920
|
setContainer: setContainer,
|
|
913
921
|
register: register,
|
|
914
922
|
unregister: unregister,
|
|
915
|
-
closeLastModal: closeLastModal
|
|
923
|
+
closeLastModal: closeLastModal,
|
|
924
|
+
getModalByKey: getModalByKey,
|
|
925
|
+
modalIsOpen: modalIsOpen
|
|
916
926
|
};
|
|
917
|
-
}, [modals, container, setContainer, register, unregister, closeLastModal]);
|
|
927
|
+
}, [modals, container, setContainer, register, unregister, closeLastModal, getModalByKey, modalIsOpen]);
|
|
918
928
|
return /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
919
929
|
value: value
|
|
920
930
|
}, children);
|
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,83 @@ 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
|
+
onSelectionChange(filterNullItems(newItems));
|
|
693
|
+
if (onSelectionChange !== null) {
|
|
694
|
+
var _ref4 = newItems || [],
|
|
695
|
+
_ref5 = _slicedToArray(_ref4, 1),
|
|
696
|
+
_ref5$ = _ref5[0],
|
|
697
|
+
firstItem = _ref5$ === void 0 ? null : _ref5$;
|
|
698
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
699
|
+
onSelectionChange(finalValue, item);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
function selectPage(pageSelected, items, selectedItems, onSelectionChange) {
|
|
703
|
+
var nextItems = [];
|
|
704
|
+
if (!pageSelected) {
|
|
705
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
706
|
+
var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
707
|
+
_ref6$id = _ref6.id,
|
|
708
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
709
|
+
return id;
|
|
710
|
+
});
|
|
711
|
+
} else {
|
|
712
|
+
var ids = (items || []).map(function () {
|
|
713
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
714
|
+
_ref7$id = _ref7.id,
|
|
715
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
716
|
+
return id;
|
|
717
|
+
}).filter(function (id) {
|
|
718
|
+
return id !== null;
|
|
719
|
+
});
|
|
720
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
721
|
+
var _ref8 = it || {},
|
|
722
|
+
_ref8$id = _ref8.id,
|
|
723
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
724
|
+
return ids.indexOf(id) === -1;
|
|
725
|
+
}), function () {
|
|
726
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
727
|
+
_ref9$id = _ref9.id,
|
|
728
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
729
|
+
return id;
|
|
730
|
+
});
|
|
731
|
+
}
|
|
732
|
+
var finalNextItems = nextItems;
|
|
733
|
+
if (onSelectionChange !== null) {
|
|
734
|
+
onSelectionChange(finalNextItems);
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
|
|
622
738
|
var setValue = function setValue(value, keyParts, fieldValue) {
|
|
623
739
|
var key = keyParts.shift();
|
|
624
740
|
var isArray = key.match(/^[0-9]+$/) !== null;
|
|
@@ -662,6 +778,7 @@ var validateFields = function validateFields(fields, value) {
|
|
|
662
778
|
};
|
|
663
779
|
var validateFields$1 = validateFields;
|
|
664
780
|
|
|
781
|
+
exports.checkClickable = checkClickable;
|
|
665
782
|
exports.convertStyleToString = convertStyleToString$1;
|
|
666
783
|
exports.copyToClipboard = copyToClipboard;
|
|
667
784
|
exports.createNullableOnChange = createNullableOnChange$1;
|
|
@@ -682,6 +799,8 @@ exports.getSelectOptions = getSelectOptions$1;
|
|
|
682
799
|
exports.isMessage = isMessage$1;
|
|
683
800
|
exports.loadPackage = loadPackage;
|
|
684
801
|
exports.pascalCase = pascalCase;
|
|
802
|
+
exports.selectItem = selectItem;
|
|
803
|
+
exports.selectPage = selectPage;
|
|
685
804
|
exports.setFieldValue = setValue$1;
|
|
686
805
|
exports.slug = slug$1;
|
|
687
806
|
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.182",
|
|
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": "27626681ce1bcf3e4779ecabeb5d69c58df4d351"
|
|
115
115
|
}
|