@panneau/core 3.0.158 → 3.0.159
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 +256 -154
- package/lib/hooks.js +256 -153
- package/package.json +2 -2
package/es/hooks.js
CHANGED
|
@@ -1,22 +1,124 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import isString from 'lodash/isString';
|
|
1
3
|
import { useRef, useEffect, useCallback, useState, useMemo } from 'react';
|
|
2
4
|
import { EventsManager, MediasParser } from '@panneau/core';
|
|
3
5
|
import { createUseEvent, loadPackage } from '@panneau/core/utils';
|
|
4
6
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
7
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
6
|
-
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
7
8
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
8
9
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
9
10
|
import { getCsrfToken, postJSON, getCSRFHeaders } from '@folklore/fetch';
|
|
10
11
|
import get from 'lodash/get';
|
|
11
12
|
import isArray from 'lodash/isArray';
|
|
12
13
|
import isObject from 'lodash/isObject';
|
|
13
|
-
import isString from 'lodash/isString';
|
|
14
|
-
import { useFieldsManager, usePanneauResources, useResource, useUrlGenerator } from '@panneau/core/contexts';
|
|
15
14
|
import uniqBy from 'lodash/uniqBy';
|
|
15
|
+
import { useFieldsManager, usePanneauResources, useResource, useUrlGenerator } from '@panneau/core/contexts';
|
|
16
16
|
import { useIntl } from 'react-intl';
|
|
17
17
|
import dayjs from 'dayjs';
|
|
18
18
|
import { match } from 'css-mediaquery';
|
|
19
19
|
|
|
20
|
+
var useActions = function useActions() {
|
|
21
|
+
var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
22
|
+
var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
23
|
+
var urlGenerator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
24
|
+
var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
25
|
+
_ref$iconsOnly = _ref.iconsOnly,
|
|
26
|
+
iconsOnly = _ref$iconsOnly === void 0 ? true : _ref$iconsOnly,
|
|
27
|
+
_ref$showLabel = _ref.showLabel,
|
|
28
|
+
showLabel = _ref$showLabel === void 0 ? null : _ref$showLabel,
|
|
29
|
+
_ref$editLabel = _ref.editLabel,
|
|
30
|
+
editLabel = _ref$editLabel === void 0 ? null : _ref$editLabel,
|
|
31
|
+
_ref$deleteLabel = _ref.deleteLabel,
|
|
32
|
+
deleteLabel = _ref$deleteLabel === void 0 ? null : _ref$deleteLabel,
|
|
33
|
+
_ref$duplicateLabel = _ref.duplicateLabel,
|
|
34
|
+
duplicateLabel = _ref$duplicateLabel === void 0 ? null : _ref$duplicateLabel,
|
|
35
|
+
_ref$onClickShow = _ref.onClickShow,
|
|
36
|
+
onClickShow = _ref$onClickShow === void 0 ? null : _ref$onClickShow,
|
|
37
|
+
_ref$onClickEdit = _ref.onClickEdit,
|
|
38
|
+
onClickEdit = _ref$onClickEdit === void 0 ? null : _ref$onClickEdit,
|
|
39
|
+
_ref$onClickDelete = _ref.onClickDelete,
|
|
40
|
+
onClickDelete = _ref$onClickDelete === void 0 ? null : _ref$onClickDelete,
|
|
41
|
+
_ref$onClickDuplicate = _ref.onClickDuplicate,
|
|
42
|
+
onClickDuplicate = _ref$onClickDuplicate === void 0 ? null : _ref$onClickDuplicate,
|
|
43
|
+
_ref$getShowPropsFrom = _ref.getShowPropsFromItem,
|
|
44
|
+
getShowPropsFromItem = _ref$getShowPropsFrom === void 0 ? null : _ref$getShowPropsFrom,
|
|
45
|
+
_ref$getEditPropsFrom = _ref.getEditPropsFromItem,
|
|
46
|
+
getEditPropsFromItem = _ref$getEditPropsFrom === void 0 ? null : _ref$getEditPropsFrom,
|
|
47
|
+
_ref$getDeletePropsFr = _ref.getDeletePropsFromItem,
|
|
48
|
+
getDeletePropsFromItem = _ref$getDeletePropsFr === void 0 ? null : _ref$getDeletePropsFr,
|
|
49
|
+
_ref$getDuplicateProp = _ref.getDuplicatePropsFromItem,
|
|
50
|
+
getDuplicatePropsFromItem = _ref$getDuplicateProp === void 0 ? null : _ref$getDuplicateProp,
|
|
51
|
+
_ref$showUrl = _ref.showUrl,
|
|
52
|
+
showUrl = _ref$showUrl === void 0 ? null : _ref$showUrl,
|
|
53
|
+
_ref$withoutItemShowU = _ref.withoutItemShowUrl,
|
|
54
|
+
withoutItemShowUrl = _ref$withoutItemShowU === void 0 ? null : _ref$withoutItemShowU;
|
|
55
|
+
var _ref2 = item || {},
|
|
56
|
+
id = _ref2.id,
|
|
57
|
+
_ref2$url = _ref2.url,
|
|
58
|
+
url = _ref2$url === void 0 ? null : _ref2$url;
|
|
59
|
+
var hasCustomShowUrl = showUrl !== null || url !== null;
|
|
60
|
+
return (actions || []).map(function (action) {
|
|
61
|
+
if (isString(action)) {
|
|
62
|
+
switch (action) {
|
|
63
|
+
case 'show':
|
|
64
|
+
return _objectSpread({
|
|
65
|
+
id: 'show',
|
|
66
|
+
component: 'show',
|
|
67
|
+
label: iconsOnly ? null : showLabel,
|
|
68
|
+
icon: iconsOnly ? 'eye-fill' : null,
|
|
69
|
+
href: urlGenerator !== null && (!hasCustomShowUrl || withoutItemShowUrl) ? urlGenerator('show', {
|
|
70
|
+
id: id
|
|
71
|
+
}) || null : showUrl || url,
|
|
72
|
+
external: hasCustomShowUrl,
|
|
73
|
+
theme: 'info',
|
|
74
|
+
target: '_blank',
|
|
75
|
+
onClick: onClickShow
|
|
76
|
+
}, getShowPropsFromItem !== null ? getShowPropsFromItem(item) : null);
|
|
77
|
+
case 'edit':
|
|
78
|
+
return _objectSpread({
|
|
79
|
+
id: 'edit',
|
|
80
|
+
component: 'edit',
|
|
81
|
+
label: iconsOnly ? null : editLabel,
|
|
82
|
+
icon: iconsOnly ? 'pencil-square' : null,
|
|
83
|
+
href: urlGenerator !== null ? urlGenerator('edit', {
|
|
84
|
+
id: id
|
|
85
|
+
}) || null : null,
|
|
86
|
+
theme: 'primary',
|
|
87
|
+
onClick: onClickEdit
|
|
88
|
+
}, getEditPropsFromItem !== null ? getEditPropsFromItem(item) : null);
|
|
89
|
+
case 'duplicate':
|
|
90
|
+
return _objectSpread({
|
|
91
|
+
id: 'duplicate',
|
|
92
|
+
component: 'duplicate',
|
|
93
|
+
label: iconsOnly ? null : duplicateLabel,
|
|
94
|
+
icon: iconsOnly ? 'copy' : null,
|
|
95
|
+
href: urlGenerator !== null ? urlGenerator('duplicate', {
|
|
96
|
+
id: id
|
|
97
|
+
}) || null : null,
|
|
98
|
+
theme: 'warning',
|
|
99
|
+
onClick: onClickDuplicate
|
|
100
|
+
}, getDuplicatePropsFromItem !== null ? getDuplicatePropsFromItem(item) : null);
|
|
101
|
+
case 'delete':
|
|
102
|
+
return _objectSpread({
|
|
103
|
+
id: 'delete',
|
|
104
|
+
component: 'delete',
|
|
105
|
+
label: iconsOnly ? null : deleteLabel,
|
|
106
|
+
icon: iconsOnly ? 'trash3' : null,
|
|
107
|
+
href: urlGenerator !== null ? urlGenerator('delete', {
|
|
108
|
+
id: id
|
|
109
|
+
}) || null : null,
|
|
110
|
+
theme: 'danger',
|
|
111
|
+
onClick: onClickDelete
|
|
112
|
+
}, getDeletePropsFromItem !== null ? getDeletePropsFromItem(item) : null);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return action;
|
|
116
|
+
}).filter(function (action) {
|
|
117
|
+
return action !== null;
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
var useActions$1 = useActions;
|
|
121
|
+
|
|
20
122
|
var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
21
123
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
22
124
|
_ref$disabled = _ref.disabled,
|
|
@@ -552,6 +654,156 @@ var useIsVisible = function useIsVisible() {
|
|
|
552
654
|
};
|
|
553
655
|
var useIsVisible$1 = useIsVisible;
|
|
554
656
|
|
|
657
|
+
function filterNullItems(items) {
|
|
658
|
+
return isArray(items) ? items.filter(function (it) {
|
|
659
|
+
return it !== null;
|
|
660
|
+
}) : items;
|
|
661
|
+
}
|
|
662
|
+
function getItemsArray(items) {
|
|
663
|
+
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
664
|
+
}
|
|
665
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
666
|
+
var _ref$items = _ref.items,
|
|
667
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
668
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
669
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
670
|
+
_ref$multipleSelectio = _ref.multipleSelection,
|
|
671
|
+
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
672
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
673
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
674
|
+
var initialItems = getItemsArray(initialSelectedItems);
|
|
675
|
+
var _useState = useState(initialItems),
|
|
676
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
677
|
+
selectedItems = _useState2[0],
|
|
678
|
+
setSelectedItems = _useState2[1];
|
|
679
|
+
var onSelectItem = useCallback(function (item, index) {
|
|
680
|
+
var _ref2 = item || {},
|
|
681
|
+
_ref2$id = _ref2.id,
|
|
682
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
683
|
+
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
684
|
+
var id = _ref3.id;
|
|
685
|
+
return id === itemId;
|
|
686
|
+
}) || null;
|
|
687
|
+
var newItems = [];
|
|
688
|
+
if (oldItem === null) {
|
|
689
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
690
|
+
} else {
|
|
691
|
+
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
692
|
+
var id = _ref4.id;
|
|
693
|
+
return id !== itemId;
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
setSelectedItems(filterNullItems(newItems));
|
|
697
|
+
if (onSelectionChange !== null) {
|
|
698
|
+
var _ref5 = newItems || [],
|
|
699
|
+
_ref6 = _slicedToArray(_ref5, 1),
|
|
700
|
+
_ref6$ = _ref6[0],
|
|
701
|
+
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
702
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
703
|
+
onSelectionChange(finalValue, item, index);
|
|
704
|
+
}
|
|
705
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
706
|
+
var onSelectItems = useCallback(function (newItems, index) {
|
|
707
|
+
var finalNewItems = filterNullItems(newItems);
|
|
708
|
+
setSelectedItems(finalNewItems);
|
|
709
|
+
if (onSelectionChange !== null) {
|
|
710
|
+
var _ref7 = finalNewItems || [],
|
|
711
|
+
_ref8 = _slicedToArray(_ref7, 1),
|
|
712
|
+
_ref8$ = _ref8[0],
|
|
713
|
+
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
714
|
+
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
715
|
+
onSelectionChange(finalValue, null, index);
|
|
716
|
+
}
|
|
717
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
718
|
+
var onSelectPage = useCallback(function () {
|
|
719
|
+
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
720
|
+
var nextItems = [];
|
|
721
|
+
if (!pageSelected) {
|
|
722
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
723
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
724
|
+
_ref9$id = _ref9.id,
|
|
725
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
726
|
+
return id;
|
|
727
|
+
});
|
|
728
|
+
} else {
|
|
729
|
+
var ids = (items || []).map(function () {
|
|
730
|
+
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
731
|
+
_ref10$id = _ref10.id,
|
|
732
|
+
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
733
|
+
return id;
|
|
734
|
+
}).filter(function (id) {
|
|
735
|
+
return id !== null;
|
|
736
|
+
});
|
|
737
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
738
|
+
var _ref11 = it || {},
|
|
739
|
+
_ref11$id = _ref11.id,
|
|
740
|
+
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
741
|
+
return ids.indexOf(id) === -1;
|
|
742
|
+
}), function () {
|
|
743
|
+
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
744
|
+
_ref12$id = _ref12.id,
|
|
745
|
+
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
746
|
+
return id;
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
var finalNextItems = filterNullItems(nextItems);
|
|
750
|
+
setSelectedItems(finalNextItems);
|
|
751
|
+
if (onSelectionChange !== null) {
|
|
752
|
+
onSelectionChange(finalNextItems);
|
|
753
|
+
}
|
|
754
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
755
|
+
var onClearSelected = useCallback(function () {
|
|
756
|
+
setSelectedItems([]);
|
|
757
|
+
if (onSelectionChange !== null) {
|
|
758
|
+
onSelectionChange(multipleSelection ? [] : null);
|
|
759
|
+
}
|
|
760
|
+
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
761
|
+
useEffect(function () {
|
|
762
|
+
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
763
|
+
}, [initialSelectedItems]);
|
|
764
|
+
var pageSelected = useMemo(function () {
|
|
765
|
+
if (items === null || selectedItems === null) {
|
|
766
|
+
return false;
|
|
767
|
+
}
|
|
768
|
+
var ids = (items || []).map(function () {
|
|
769
|
+
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
770
|
+
_ref13$id = _ref13.id,
|
|
771
|
+
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
772
|
+
return id;
|
|
773
|
+
}).filter(function (id) {
|
|
774
|
+
return id !== null;
|
|
775
|
+
}) || [];
|
|
776
|
+
if (ids === null || ids.length === 0) {
|
|
777
|
+
return false;
|
|
778
|
+
}
|
|
779
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
780
|
+
var _ref14 = it || {},
|
|
781
|
+
_ref14$id = _ref14.id,
|
|
782
|
+
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
783
|
+
return (ids || []).indexOf(id) !== -1;
|
|
784
|
+
}) || [];
|
|
785
|
+
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
786
|
+
}, [selectedItems, items]);
|
|
787
|
+
var allSelected = useMemo(function () {
|
|
788
|
+
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
789
|
+
}, [selectedItems, items]);
|
|
790
|
+
var selectedCount = useMemo(function () {
|
|
791
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
792
|
+
}, [selectedItems]);
|
|
793
|
+
return {
|
|
794
|
+
onSelectItem: onSelectItem,
|
|
795
|
+
onSelectItems: onSelectItems,
|
|
796
|
+
onSelectPage: onSelectPage,
|
|
797
|
+
onClearSelected: onClearSelected,
|
|
798
|
+
pageSelected: pageSelected,
|
|
799
|
+
allSelected: allSelected,
|
|
800
|
+
selectedCount: selectedCount,
|
|
801
|
+
selectedItems: selectedItems,
|
|
802
|
+
setSelectedItems: setSelectedItems
|
|
803
|
+
};
|
|
804
|
+
};
|
|
805
|
+
var useItemSelection$1 = useItemSelection;
|
|
806
|
+
|
|
555
807
|
var fontsMap = {
|
|
556
808
|
loading: [],
|
|
557
809
|
active: []
|
|
@@ -1104,154 +1356,4 @@ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) :
|
|
|
1104
1356
|
var useWindowEvent = createUseEvent(eventsManager);
|
|
1105
1357
|
var useWindowEvent$1 = useWindowEvent;
|
|
1106
1358
|
|
|
1107
|
-
|
|
1108
|
-
return isArray(items) ? items.filter(function (it) {
|
|
1109
|
-
return it !== null;
|
|
1110
|
-
}) : items;
|
|
1111
|
-
}
|
|
1112
|
-
function getItemsArray(items) {
|
|
1113
|
-
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
1114
|
-
}
|
|
1115
|
-
var useItemSelection = function useItemSelection(_ref) {
|
|
1116
|
-
var _ref$items = _ref.items,
|
|
1117
|
-
items = _ref$items === void 0 ? null : _ref$items,
|
|
1118
|
-
_ref$selectedItems = _ref.selectedItems,
|
|
1119
|
-
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
1120
|
-
_ref$multipleSelectio = _ref.multipleSelection,
|
|
1121
|
-
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
1122
|
-
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
1123
|
-
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
1124
|
-
var initialItems = getItemsArray(initialSelectedItems);
|
|
1125
|
-
var _useState = useState(initialItems),
|
|
1126
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1127
|
-
selectedItems = _useState2[0],
|
|
1128
|
-
setSelectedItems = _useState2[1];
|
|
1129
|
-
var onSelectItem = useCallback(function (item, index) {
|
|
1130
|
-
var _ref2 = item || {},
|
|
1131
|
-
_ref2$id = _ref2.id,
|
|
1132
|
-
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
1133
|
-
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
1134
|
-
var id = _ref3.id;
|
|
1135
|
-
return id === itemId;
|
|
1136
|
-
}) || null;
|
|
1137
|
-
var newItems = [];
|
|
1138
|
-
if (oldItem === null) {
|
|
1139
|
-
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
1140
|
-
} else {
|
|
1141
|
-
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
1142
|
-
var id = _ref4.id;
|
|
1143
|
-
return id !== itemId;
|
|
1144
|
-
});
|
|
1145
|
-
}
|
|
1146
|
-
setSelectedItems(filterNullItems(newItems));
|
|
1147
|
-
if (onSelectionChange !== null) {
|
|
1148
|
-
var _ref5 = newItems || [],
|
|
1149
|
-
_ref6 = _slicedToArray(_ref5, 1),
|
|
1150
|
-
_ref6$ = _ref6[0],
|
|
1151
|
-
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
1152
|
-
var finalValue = multipleSelection ? newItems : firstItem;
|
|
1153
|
-
onSelectionChange(finalValue, item, index);
|
|
1154
|
-
}
|
|
1155
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
1156
|
-
var onSelectItems = useCallback(function (newItems, index) {
|
|
1157
|
-
var finalNewItems = filterNullItems(newItems);
|
|
1158
|
-
setSelectedItems(finalNewItems);
|
|
1159
|
-
if (onSelectionChange !== null) {
|
|
1160
|
-
var _ref7 = finalNewItems || [],
|
|
1161
|
-
_ref8 = _slicedToArray(_ref7, 1),
|
|
1162
|
-
_ref8$ = _ref8[0],
|
|
1163
|
-
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
1164
|
-
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
1165
|
-
onSelectionChange(finalValue, null, index);
|
|
1166
|
-
}
|
|
1167
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
1168
|
-
var onSelectPage = useCallback(function () {
|
|
1169
|
-
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1170
|
-
var nextItems = [];
|
|
1171
|
-
if (!pageSelected) {
|
|
1172
|
-
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
1173
|
-
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1174
|
-
_ref9$id = _ref9.id,
|
|
1175
|
-
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
1176
|
-
return id;
|
|
1177
|
-
});
|
|
1178
|
-
} else {
|
|
1179
|
-
var ids = (items || []).map(function () {
|
|
1180
|
-
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1181
|
-
_ref10$id = _ref10.id,
|
|
1182
|
-
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
1183
|
-
return id;
|
|
1184
|
-
}).filter(function (id) {
|
|
1185
|
-
return id !== null;
|
|
1186
|
-
});
|
|
1187
|
-
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
1188
|
-
var _ref11 = it || {},
|
|
1189
|
-
_ref11$id = _ref11.id,
|
|
1190
|
-
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
1191
|
-
return ids.indexOf(id) === -1;
|
|
1192
|
-
}), function () {
|
|
1193
|
-
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1194
|
-
_ref12$id = _ref12.id,
|
|
1195
|
-
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
1196
|
-
return id;
|
|
1197
|
-
});
|
|
1198
|
-
}
|
|
1199
|
-
var finalNextItems = filterNullItems(nextItems);
|
|
1200
|
-
setSelectedItems(finalNextItems);
|
|
1201
|
-
if (onSelectionChange !== null) {
|
|
1202
|
-
onSelectionChange(finalNextItems);
|
|
1203
|
-
}
|
|
1204
|
-
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1205
|
-
var onClearSelected = useCallback(function () {
|
|
1206
|
-
setSelectedItems([]);
|
|
1207
|
-
if (onSelectionChange !== null) {
|
|
1208
|
-
onSelectionChange(multipleSelection ? [] : null);
|
|
1209
|
-
}
|
|
1210
|
-
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
1211
|
-
useEffect(function () {
|
|
1212
|
-
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
1213
|
-
}, [initialSelectedItems]);
|
|
1214
|
-
var pageSelected = useMemo(function () {
|
|
1215
|
-
if (items === null || selectedItems === null) {
|
|
1216
|
-
return false;
|
|
1217
|
-
}
|
|
1218
|
-
var ids = (items || []).map(function () {
|
|
1219
|
-
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1220
|
-
_ref13$id = _ref13.id,
|
|
1221
|
-
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
1222
|
-
return id;
|
|
1223
|
-
}).filter(function (id) {
|
|
1224
|
-
return id !== null;
|
|
1225
|
-
}) || [];
|
|
1226
|
-
if (ids === null || ids.length === 0) {
|
|
1227
|
-
return false;
|
|
1228
|
-
}
|
|
1229
|
-
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
1230
|
-
var _ref14 = it || {},
|
|
1231
|
-
_ref14$id = _ref14.id,
|
|
1232
|
-
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
1233
|
-
return (ids || []).indexOf(id) !== -1;
|
|
1234
|
-
}) || [];
|
|
1235
|
-
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
1236
|
-
}, [selectedItems, items]);
|
|
1237
|
-
var allSelected = useMemo(function () {
|
|
1238
|
-
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
1239
|
-
}, [selectedItems, items]);
|
|
1240
|
-
var selectedCount = useMemo(function () {
|
|
1241
|
-
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
1242
|
-
}, [selectedItems]);
|
|
1243
|
-
return {
|
|
1244
|
-
onSelectItem: onSelectItem,
|
|
1245
|
-
onSelectItems: onSelectItems,
|
|
1246
|
-
onSelectPage: onSelectPage,
|
|
1247
|
-
onClearSelected: onClearSelected,
|
|
1248
|
-
pageSelected: pageSelected,
|
|
1249
|
-
allSelected: allSelected,
|
|
1250
|
-
selectedCount: selectedCount,
|
|
1251
|
-
selectedItems: selectedItems,
|
|
1252
|
-
setSelectedItems: setSelectedItems
|
|
1253
|
-
};
|
|
1254
|
-
};
|
|
1255
|
-
var useItemSelection$1 = useItemSelection;
|
|
1256
|
-
|
|
1257
|
-
export { getObserver, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useItemSelection$1 as useItemSelection, 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 };
|
|
1359
|
+
export { getObserver, useActions$1 as useActions, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useItemSelection$1 as useItemSelection, 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/lib/hooks.js
CHANGED
|
@@ -1,24 +1,126 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var isString = require('lodash/isString');
|
|
3
5
|
var react = require('react');
|
|
4
6
|
var core = require('@panneau/core');
|
|
5
7
|
var utils = require('@panneau/core/utils');
|
|
6
8
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
9
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
8
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
9
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
10
11
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
11
12
|
var fetch = require('@folklore/fetch');
|
|
12
13
|
var get = require('lodash/get');
|
|
13
14
|
var isArray = require('lodash/isArray');
|
|
14
15
|
var isObject = require('lodash/isObject');
|
|
15
|
-
var isString = require('lodash/isString');
|
|
16
|
-
var contexts = require('@panneau/core/contexts');
|
|
17
16
|
var uniqBy = require('lodash/uniqBy');
|
|
17
|
+
var contexts = require('@panneau/core/contexts');
|
|
18
18
|
var reactIntl = require('react-intl');
|
|
19
19
|
var dayjs = require('dayjs');
|
|
20
20
|
var cssMediaquery = require('css-mediaquery');
|
|
21
21
|
|
|
22
|
+
var useActions = function useActions() {
|
|
23
|
+
var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
24
|
+
var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
25
|
+
var urlGenerator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
26
|
+
var _ref = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},
|
|
27
|
+
_ref$iconsOnly = _ref.iconsOnly,
|
|
28
|
+
iconsOnly = _ref$iconsOnly === void 0 ? true : _ref$iconsOnly,
|
|
29
|
+
_ref$showLabel = _ref.showLabel,
|
|
30
|
+
showLabel = _ref$showLabel === void 0 ? null : _ref$showLabel,
|
|
31
|
+
_ref$editLabel = _ref.editLabel,
|
|
32
|
+
editLabel = _ref$editLabel === void 0 ? null : _ref$editLabel,
|
|
33
|
+
_ref$deleteLabel = _ref.deleteLabel,
|
|
34
|
+
deleteLabel = _ref$deleteLabel === void 0 ? null : _ref$deleteLabel,
|
|
35
|
+
_ref$duplicateLabel = _ref.duplicateLabel,
|
|
36
|
+
duplicateLabel = _ref$duplicateLabel === void 0 ? null : _ref$duplicateLabel,
|
|
37
|
+
_ref$onClickShow = _ref.onClickShow,
|
|
38
|
+
onClickShow = _ref$onClickShow === void 0 ? null : _ref$onClickShow,
|
|
39
|
+
_ref$onClickEdit = _ref.onClickEdit,
|
|
40
|
+
onClickEdit = _ref$onClickEdit === void 0 ? null : _ref$onClickEdit,
|
|
41
|
+
_ref$onClickDelete = _ref.onClickDelete,
|
|
42
|
+
onClickDelete = _ref$onClickDelete === void 0 ? null : _ref$onClickDelete,
|
|
43
|
+
_ref$onClickDuplicate = _ref.onClickDuplicate,
|
|
44
|
+
onClickDuplicate = _ref$onClickDuplicate === void 0 ? null : _ref$onClickDuplicate,
|
|
45
|
+
_ref$getShowPropsFrom = _ref.getShowPropsFromItem,
|
|
46
|
+
getShowPropsFromItem = _ref$getShowPropsFrom === void 0 ? null : _ref$getShowPropsFrom,
|
|
47
|
+
_ref$getEditPropsFrom = _ref.getEditPropsFromItem,
|
|
48
|
+
getEditPropsFromItem = _ref$getEditPropsFrom === void 0 ? null : _ref$getEditPropsFrom,
|
|
49
|
+
_ref$getDeletePropsFr = _ref.getDeletePropsFromItem,
|
|
50
|
+
getDeletePropsFromItem = _ref$getDeletePropsFr === void 0 ? null : _ref$getDeletePropsFr,
|
|
51
|
+
_ref$getDuplicateProp = _ref.getDuplicatePropsFromItem,
|
|
52
|
+
getDuplicatePropsFromItem = _ref$getDuplicateProp === void 0 ? null : _ref$getDuplicateProp,
|
|
53
|
+
_ref$showUrl = _ref.showUrl,
|
|
54
|
+
showUrl = _ref$showUrl === void 0 ? null : _ref$showUrl,
|
|
55
|
+
_ref$withoutItemShowU = _ref.withoutItemShowUrl,
|
|
56
|
+
withoutItemShowUrl = _ref$withoutItemShowU === void 0 ? null : _ref$withoutItemShowU;
|
|
57
|
+
var _ref2 = item || {},
|
|
58
|
+
id = _ref2.id,
|
|
59
|
+
_ref2$url = _ref2.url,
|
|
60
|
+
url = _ref2$url === void 0 ? null : _ref2$url;
|
|
61
|
+
var hasCustomShowUrl = showUrl !== null || url !== null;
|
|
62
|
+
return (actions || []).map(function (action) {
|
|
63
|
+
if (isString(action)) {
|
|
64
|
+
switch (action) {
|
|
65
|
+
case 'show':
|
|
66
|
+
return _objectSpread({
|
|
67
|
+
id: 'show',
|
|
68
|
+
component: 'show',
|
|
69
|
+
label: iconsOnly ? null : showLabel,
|
|
70
|
+
icon: iconsOnly ? 'eye-fill' : null,
|
|
71
|
+
href: urlGenerator !== null && (!hasCustomShowUrl || withoutItemShowUrl) ? urlGenerator('show', {
|
|
72
|
+
id: id
|
|
73
|
+
}) || null : showUrl || url,
|
|
74
|
+
external: hasCustomShowUrl,
|
|
75
|
+
theme: 'info',
|
|
76
|
+
target: '_blank',
|
|
77
|
+
onClick: onClickShow
|
|
78
|
+
}, getShowPropsFromItem !== null ? getShowPropsFromItem(item) : null);
|
|
79
|
+
case 'edit':
|
|
80
|
+
return _objectSpread({
|
|
81
|
+
id: 'edit',
|
|
82
|
+
component: 'edit',
|
|
83
|
+
label: iconsOnly ? null : editLabel,
|
|
84
|
+
icon: iconsOnly ? 'pencil-square' : null,
|
|
85
|
+
href: urlGenerator !== null ? urlGenerator('edit', {
|
|
86
|
+
id: id
|
|
87
|
+
}) || null : null,
|
|
88
|
+
theme: 'primary',
|
|
89
|
+
onClick: onClickEdit
|
|
90
|
+
}, getEditPropsFromItem !== null ? getEditPropsFromItem(item) : null);
|
|
91
|
+
case 'duplicate':
|
|
92
|
+
return _objectSpread({
|
|
93
|
+
id: 'duplicate',
|
|
94
|
+
component: 'duplicate',
|
|
95
|
+
label: iconsOnly ? null : duplicateLabel,
|
|
96
|
+
icon: iconsOnly ? 'copy' : null,
|
|
97
|
+
href: urlGenerator !== null ? urlGenerator('duplicate', {
|
|
98
|
+
id: id
|
|
99
|
+
}) || null : null,
|
|
100
|
+
theme: 'warning',
|
|
101
|
+
onClick: onClickDuplicate
|
|
102
|
+
}, getDuplicatePropsFromItem !== null ? getDuplicatePropsFromItem(item) : null);
|
|
103
|
+
case 'delete':
|
|
104
|
+
return _objectSpread({
|
|
105
|
+
id: 'delete',
|
|
106
|
+
component: 'delete',
|
|
107
|
+
label: iconsOnly ? null : deleteLabel,
|
|
108
|
+
icon: iconsOnly ? 'trash3' : null,
|
|
109
|
+
href: urlGenerator !== null ? urlGenerator('delete', {
|
|
110
|
+
id: id
|
|
111
|
+
}) || null : null,
|
|
112
|
+
theme: 'danger',
|
|
113
|
+
onClick: onClickDelete
|
|
114
|
+
}, getDeletePropsFromItem !== null ? getDeletePropsFromItem(item) : null);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return action;
|
|
118
|
+
}).filter(function (action) {
|
|
119
|
+
return action !== null;
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
var useActions$1 = useActions;
|
|
123
|
+
|
|
22
124
|
var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
23
125
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
24
126
|
_ref$disabled = _ref.disabled,
|
|
@@ -554,6 +656,156 @@ var useIsVisible = function useIsVisible() {
|
|
|
554
656
|
};
|
|
555
657
|
var useIsVisible$1 = useIsVisible;
|
|
556
658
|
|
|
659
|
+
function filterNullItems(items) {
|
|
660
|
+
return isArray(items) ? items.filter(function (it) {
|
|
661
|
+
return it !== null;
|
|
662
|
+
}) : items;
|
|
663
|
+
}
|
|
664
|
+
function getItemsArray(items) {
|
|
665
|
+
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
666
|
+
}
|
|
667
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
668
|
+
var _ref$items = _ref.items,
|
|
669
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
670
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
671
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
672
|
+
_ref$multipleSelectio = _ref.multipleSelection,
|
|
673
|
+
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
674
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
675
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
676
|
+
var initialItems = getItemsArray(initialSelectedItems);
|
|
677
|
+
var _useState = react.useState(initialItems),
|
|
678
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
679
|
+
selectedItems = _useState2[0],
|
|
680
|
+
setSelectedItems = _useState2[1];
|
|
681
|
+
var onSelectItem = react.useCallback(function (item, index) {
|
|
682
|
+
var _ref2 = item || {},
|
|
683
|
+
_ref2$id = _ref2.id,
|
|
684
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
685
|
+
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
686
|
+
var id = _ref3.id;
|
|
687
|
+
return id === itemId;
|
|
688
|
+
}) || null;
|
|
689
|
+
var newItems = [];
|
|
690
|
+
if (oldItem === null) {
|
|
691
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
692
|
+
} else {
|
|
693
|
+
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
694
|
+
var id = _ref4.id;
|
|
695
|
+
return id !== itemId;
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
setSelectedItems(filterNullItems(newItems));
|
|
699
|
+
if (onSelectionChange !== null) {
|
|
700
|
+
var _ref5 = newItems || [],
|
|
701
|
+
_ref6 = _slicedToArray(_ref5, 1),
|
|
702
|
+
_ref6$ = _ref6[0],
|
|
703
|
+
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
704
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
705
|
+
onSelectionChange(finalValue, item, index);
|
|
706
|
+
}
|
|
707
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
708
|
+
var onSelectItems = react.useCallback(function (newItems, index) {
|
|
709
|
+
var finalNewItems = filterNullItems(newItems);
|
|
710
|
+
setSelectedItems(finalNewItems);
|
|
711
|
+
if (onSelectionChange !== null) {
|
|
712
|
+
var _ref7 = finalNewItems || [],
|
|
713
|
+
_ref8 = _slicedToArray(_ref7, 1),
|
|
714
|
+
_ref8$ = _ref8[0],
|
|
715
|
+
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
716
|
+
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
717
|
+
onSelectionChange(finalValue, null, index);
|
|
718
|
+
}
|
|
719
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
720
|
+
var onSelectPage = react.useCallback(function () {
|
|
721
|
+
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
722
|
+
var nextItems = [];
|
|
723
|
+
if (!pageSelected) {
|
|
724
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
725
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
726
|
+
_ref9$id = _ref9.id,
|
|
727
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
728
|
+
return id;
|
|
729
|
+
});
|
|
730
|
+
} else {
|
|
731
|
+
var ids = (items || []).map(function () {
|
|
732
|
+
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
733
|
+
_ref10$id = _ref10.id,
|
|
734
|
+
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
735
|
+
return id;
|
|
736
|
+
}).filter(function (id) {
|
|
737
|
+
return id !== null;
|
|
738
|
+
});
|
|
739
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
740
|
+
var _ref11 = it || {},
|
|
741
|
+
_ref11$id = _ref11.id,
|
|
742
|
+
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
743
|
+
return ids.indexOf(id) === -1;
|
|
744
|
+
}), function () {
|
|
745
|
+
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
746
|
+
_ref12$id = _ref12.id,
|
|
747
|
+
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
748
|
+
return id;
|
|
749
|
+
});
|
|
750
|
+
}
|
|
751
|
+
var finalNextItems = filterNullItems(nextItems);
|
|
752
|
+
setSelectedItems(finalNextItems);
|
|
753
|
+
if (onSelectionChange !== null) {
|
|
754
|
+
onSelectionChange(finalNextItems);
|
|
755
|
+
}
|
|
756
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
757
|
+
var onClearSelected = react.useCallback(function () {
|
|
758
|
+
setSelectedItems([]);
|
|
759
|
+
if (onSelectionChange !== null) {
|
|
760
|
+
onSelectionChange(multipleSelection ? [] : null);
|
|
761
|
+
}
|
|
762
|
+
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
763
|
+
react.useEffect(function () {
|
|
764
|
+
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
765
|
+
}, [initialSelectedItems]);
|
|
766
|
+
var pageSelected = react.useMemo(function () {
|
|
767
|
+
if (items === null || selectedItems === null) {
|
|
768
|
+
return false;
|
|
769
|
+
}
|
|
770
|
+
var ids = (items || []).map(function () {
|
|
771
|
+
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
772
|
+
_ref13$id = _ref13.id,
|
|
773
|
+
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
774
|
+
return id;
|
|
775
|
+
}).filter(function (id) {
|
|
776
|
+
return id !== null;
|
|
777
|
+
}) || [];
|
|
778
|
+
if (ids === null || ids.length === 0) {
|
|
779
|
+
return false;
|
|
780
|
+
}
|
|
781
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
782
|
+
var _ref14 = it || {},
|
|
783
|
+
_ref14$id = _ref14.id,
|
|
784
|
+
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
785
|
+
return (ids || []).indexOf(id) !== -1;
|
|
786
|
+
}) || [];
|
|
787
|
+
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
788
|
+
}, [selectedItems, items]);
|
|
789
|
+
var allSelected = react.useMemo(function () {
|
|
790
|
+
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
791
|
+
}, [selectedItems, items]);
|
|
792
|
+
var selectedCount = react.useMemo(function () {
|
|
793
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
794
|
+
}, [selectedItems]);
|
|
795
|
+
return {
|
|
796
|
+
onSelectItem: onSelectItem,
|
|
797
|
+
onSelectItems: onSelectItems,
|
|
798
|
+
onSelectPage: onSelectPage,
|
|
799
|
+
onClearSelected: onClearSelected,
|
|
800
|
+
pageSelected: pageSelected,
|
|
801
|
+
allSelected: allSelected,
|
|
802
|
+
selectedCount: selectedCount,
|
|
803
|
+
selectedItems: selectedItems,
|
|
804
|
+
setSelectedItems: setSelectedItems
|
|
805
|
+
};
|
|
806
|
+
};
|
|
807
|
+
var useItemSelection$1 = useItemSelection;
|
|
808
|
+
|
|
557
809
|
var fontsMap = {
|
|
558
810
|
loading: [],
|
|
559
811
|
active: []
|
|
@@ -1106,157 +1358,8 @@ var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(windo
|
|
|
1106
1358
|
var useWindowEvent = utils.createUseEvent(eventsManager);
|
|
1107
1359
|
var useWindowEvent$1 = useWindowEvent;
|
|
1108
1360
|
|
|
1109
|
-
function filterNullItems(items) {
|
|
1110
|
-
return isArray(items) ? items.filter(function (it) {
|
|
1111
|
-
return it !== null;
|
|
1112
|
-
}) : items;
|
|
1113
|
-
}
|
|
1114
|
-
function getItemsArray(items) {
|
|
1115
|
-
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
1116
|
-
}
|
|
1117
|
-
var useItemSelection = function useItemSelection(_ref) {
|
|
1118
|
-
var _ref$items = _ref.items,
|
|
1119
|
-
items = _ref$items === void 0 ? null : _ref$items,
|
|
1120
|
-
_ref$selectedItems = _ref.selectedItems,
|
|
1121
|
-
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
1122
|
-
_ref$multipleSelectio = _ref.multipleSelection,
|
|
1123
|
-
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
1124
|
-
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
1125
|
-
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
1126
|
-
var initialItems = getItemsArray(initialSelectedItems);
|
|
1127
|
-
var _useState = react.useState(initialItems),
|
|
1128
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1129
|
-
selectedItems = _useState2[0],
|
|
1130
|
-
setSelectedItems = _useState2[1];
|
|
1131
|
-
var onSelectItem = react.useCallback(function (item, index) {
|
|
1132
|
-
var _ref2 = item || {},
|
|
1133
|
-
_ref2$id = _ref2.id,
|
|
1134
|
-
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
1135
|
-
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
1136
|
-
var id = _ref3.id;
|
|
1137
|
-
return id === itemId;
|
|
1138
|
-
}) || null;
|
|
1139
|
-
var newItems = [];
|
|
1140
|
-
if (oldItem === null) {
|
|
1141
|
-
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
1142
|
-
} else {
|
|
1143
|
-
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
1144
|
-
var id = _ref4.id;
|
|
1145
|
-
return id !== itemId;
|
|
1146
|
-
});
|
|
1147
|
-
}
|
|
1148
|
-
setSelectedItems(filterNullItems(newItems));
|
|
1149
|
-
if (onSelectionChange !== null) {
|
|
1150
|
-
var _ref5 = newItems || [],
|
|
1151
|
-
_ref6 = _slicedToArray(_ref5, 1),
|
|
1152
|
-
_ref6$ = _ref6[0],
|
|
1153
|
-
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
1154
|
-
var finalValue = multipleSelection ? newItems : firstItem;
|
|
1155
|
-
onSelectionChange(finalValue, item, index);
|
|
1156
|
-
}
|
|
1157
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
1158
|
-
var onSelectItems = react.useCallback(function (newItems, index) {
|
|
1159
|
-
var finalNewItems = filterNullItems(newItems);
|
|
1160
|
-
setSelectedItems(finalNewItems);
|
|
1161
|
-
if (onSelectionChange !== null) {
|
|
1162
|
-
var _ref7 = finalNewItems || [],
|
|
1163
|
-
_ref8 = _slicedToArray(_ref7, 1),
|
|
1164
|
-
_ref8$ = _ref8[0],
|
|
1165
|
-
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
1166
|
-
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
1167
|
-
onSelectionChange(finalValue, null, index);
|
|
1168
|
-
}
|
|
1169
|
-
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
1170
|
-
var onSelectPage = react.useCallback(function () {
|
|
1171
|
-
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1172
|
-
var nextItems = [];
|
|
1173
|
-
if (!pageSelected) {
|
|
1174
|
-
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
1175
|
-
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1176
|
-
_ref9$id = _ref9.id,
|
|
1177
|
-
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
1178
|
-
return id;
|
|
1179
|
-
});
|
|
1180
|
-
} else {
|
|
1181
|
-
var ids = (items || []).map(function () {
|
|
1182
|
-
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1183
|
-
_ref10$id = _ref10.id,
|
|
1184
|
-
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
1185
|
-
return id;
|
|
1186
|
-
}).filter(function (id) {
|
|
1187
|
-
return id !== null;
|
|
1188
|
-
});
|
|
1189
|
-
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
1190
|
-
var _ref11 = it || {},
|
|
1191
|
-
_ref11$id = _ref11.id,
|
|
1192
|
-
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
1193
|
-
return ids.indexOf(id) === -1;
|
|
1194
|
-
}), function () {
|
|
1195
|
-
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1196
|
-
_ref12$id = _ref12.id,
|
|
1197
|
-
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
1198
|
-
return id;
|
|
1199
|
-
});
|
|
1200
|
-
}
|
|
1201
|
-
var finalNextItems = filterNullItems(nextItems);
|
|
1202
|
-
setSelectedItems(finalNextItems);
|
|
1203
|
-
if (onSelectionChange !== null) {
|
|
1204
|
-
onSelectionChange(finalNextItems);
|
|
1205
|
-
}
|
|
1206
|
-
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1207
|
-
var onClearSelected = react.useCallback(function () {
|
|
1208
|
-
setSelectedItems([]);
|
|
1209
|
-
if (onSelectionChange !== null) {
|
|
1210
|
-
onSelectionChange(multipleSelection ? [] : null);
|
|
1211
|
-
}
|
|
1212
|
-
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
1213
|
-
react.useEffect(function () {
|
|
1214
|
-
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
1215
|
-
}, [initialSelectedItems]);
|
|
1216
|
-
var pageSelected = react.useMemo(function () {
|
|
1217
|
-
if (items === null || selectedItems === null) {
|
|
1218
|
-
return false;
|
|
1219
|
-
}
|
|
1220
|
-
var ids = (items || []).map(function () {
|
|
1221
|
-
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1222
|
-
_ref13$id = _ref13.id,
|
|
1223
|
-
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
1224
|
-
return id;
|
|
1225
|
-
}).filter(function (id) {
|
|
1226
|
-
return id !== null;
|
|
1227
|
-
}) || [];
|
|
1228
|
-
if (ids === null || ids.length === 0) {
|
|
1229
|
-
return false;
|
|
1230
|
-
}
|
|
1231
|
-
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
1232
|
-
var _ref14 = it || {},
|
|
1233
|
-
_ref14$id = _ref14.id,
|
|
1234
|
-
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
1235
|
-
return (ids || []).indexOf(id) !== -1;
|
|
1236
|
-
}) || [];
|
|
1237
|
-
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
1238
|
-
}, [selectedItems, items]);
|
|
1239
|
-
var allSelected = react.useMemo(function () {
|
|
1240
|
-
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
1241
|
-
}, [selectedItems, items]);
|
|
1242
|
-
var selectedCount = react.useMemo(function () {
|
|
1243
|
-
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
1244
|
-
}, [selectedItems]);
|
|
1245
|
-
return {
|
|
1246
|
-
onSelectItem: onSelectItem,
|
|
1247
|
-
onSelectItems: onSelectItems,
|
|
1248
|
-
onSelectPage: onSelectPage,
|
|
1249
|
-
onClearSelected: onClearSelected,
|
|
1250
|
-
pageSelected: pageSelected,
|
|
1251
|
-
allSelected: allSelected,
|
|
1252
|
-
selectedCount: selectedCount,
|
|
1253
|
-
selectedItems: selectedItems,
|
|
1254
|
-
setSelectedItems: setSelectedItems
|
|
1255
|
-
};
|
|
1256
|
-
};
|
|
1257
|
-
var useItemSelection$1 = useItemSelection;
|
|
1258
|
-
|
|
1259
1361
|
exports.getObserver = getObserver;
|
|
1362
|
+
exports.useActions = useActions$1;
|
|
1260
1363
|
exports.useAnimationFrame = useAnimationFrame$1;
|
|
1261
1364
|
exports.useDocumentEvent = useDocumentEvent$1;
|
|
1262
1365
|
exports.useForm = useForm$1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.159",
|
|
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": "5c5211fd5d728e50510142d16bda47f549f080f3"
|
|
115
115
|
}
|