@panneau/core 3.0.158 → 3.0.160
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 +2 -1
- package/es/hooks.js +266 -154
- package/es/index.js +2 -1
- package/es/utils.js +1 -1
- package/lib/contexts.js +2 -1
- package/lib/hooks.js +266 -153
- package/lib/index.js +2 -1
- package/lib/utils.js +1 -1
- package/package.json +2 -2
package/es/contexts.js
CHANGED
|
@@ -300,7 +300,8 @@ var routes = PropTypes.shape({
|
|
|
300
300
|
'resources.edit': PropTypes.string.isRequired,
|
|
301
301
|
'resources.update': PropTypes.string.isRequired,
|
|
302
302
|
'resources.delete': PropTypes.string.isRequired,
|
|
303
|
-
'resources.destroy': PropTypes.string.isRequired
|
|
303
|
+
'resources.destroy': PropTypes.string.isRequired,
|
|
304
|
+
'resources.duplicate': PropTypes.string.isRequired
|
|
304
305
|
});
|
|
305
306
|
var intl = PropTypes.shape({
|
|
306
307
|
locale: PropTypes.string,
|
package/es/hooks.js
CHANGED
|
@@ -1,22 +1,134 @@
|
|
|
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
|
+
_ref$preferDeleteModa = _ref.preferDeleteModal,
|
|
56
|
+
preferDeleteModal = _ref$preferDeleteModa === void 0 ? true : _ref$preferDeleteModa,
|
|
57
|
+
_ref$preferDuplicateM = _ref.preferDuplicateModal,
|
|
58
|
+
preferDuplicateModal = _ref$preferDuplicateM === void 0 ? true : _ref$preferDuplicateM;
|
|
59
|
+
var _ref2 = item || {},
|
|
60
|
+
id = _ref2.id,
|
|
61
|
+
_ref2$url = _ref2.url,
|
|
62
|
+
url = _ref2$url === void 0 ? null : _ref2$url;
|
|
63
|
+
var hasCustomShowUrl = showUrl !== null || url !== null;
|
|
64
|
+
return (actions || []).map(function (action) {
|
|
65
|
+
if (isString(action)) {
|
|
66
|
+
switch (action) {
|
|
67
|
+
case 'show':
|
|
68
|
+
return _objectSpread({
|
|
69
|
+
id: 'show',
|
|
70
|
+
component: 'show',
|
|
71
|
+
label: iconsOnly ? null : showLabel,
|
|
72
|
+
icon: iconsOnly ? 'eye-fill' : null,
|
|
73
|
+
href: urlGenerator !== null && (!hasCustomShowUrl || withoutItemShowUrl) ? urlGenerator('show', {
|
|
74
|
+
id: id
|
|
75
|
+
}) || null : showUrl || url,
|
|
76
|
+
external: hasCustomShowUrl,
|
|
77
|
+
theme: 'info',
|
|
78
|
+
target: '_blank',
|
|
79
|
+
onClick: onClickShow
|
|
80
|
+
}, getShowPropsFromItem !== null ? getShowPropsFromItem(item) : null);
|
|
81
|
+
case 'edit':
|
|
82
|
+
return _objectSpread({
|
|
83
|
+
id: 'edit',
|
|
84
|
+
component: 'edit',
|
|
85
|
+
label: iconsOnly ? null : editLabel,
|
|
86
|
+
icon: iconsOnly ? 'pencil-square' : null,
|
|
87
|
+
href: urlGenerator !== null ? urlGenerator('edit', {
|
|
88
|
+
id: id
|
|
89
|
+
}) || null : null,
|
|
90
|
+
theme: 'primary',
|
|
91
|
+
onClick: onClickEdit
|
|
92
|
+
}, getEditPropsFromItem !== null ? getEditPropsFromItem(item) : null);
|
|
93
|
+
case 'duplicate':
|
|
94
|
+
return _objectSpread({
|
|
95
|
+
id: 'duplicate',
|
|
96
|
+
component: 'duplicate',
|
|
97
|
+
label: iconsOnly ? null : duplicateLabel,
|
|
98
|
+
icon: iconsOnly ? 'copy' : null,
|
|
99
|
+
href: urlGenerator !== null && !preferDuplicateModal ? urlGenerator('duplicate', {
|
|
100
|
+
id: id
|
|
101
|
+
}) || null : null,
|
|
102
|
+
theme: 'warning',
|
|
103
|
+
onClick: onClickDuplicate,
|
|
104
|
+
endpoint: urlGenerator !== null && preferDeleteModal ? urlGenerator('duplicate', {
|
|
105
|
+
id: id
|
|
106
|
+
}) || null : null
|
|
107
|
+
}, getDuplicatePropsFromItem !== null ? getDuplicatePropsFromItem(item) : null);
|
|
108
|
+
case 'delete':
|
|
109
|
+
return _objectSpread({
|
|
110
|
+
id: 'delete',
|
|
111
|
+
component: 'delete',
|
|
112
|
+
label: iconsOnly ? null : deleteLabel,
|
|
113
|
+
icon: iconsOnly ? 'trash3' : null,
|
|
114
|
+
href: urlGenerator !== null && !preferDeleteModal ? urlGenerator('delete', {
|
|
115
|
+
id: id
|
|
116
|
+
}) || null : null,
|
|
117
|
+
theme: 'danger',
|
|
118
|
+
onClick: onClickDelete,
|
|
119
|
+
endpoint: urlGenerator !== null && preferDeleteModal ? urlGenerator('destroy', {
|
|
120
|
+
id: id
|
|
121
|
+
}) || null : null
|
|
122
|
+
}, getDeletePropsFromItem !== null ? getDeletePropsFromItem(item) : null);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return action;
|
|
126
|
+
}).filter(function (action) {
|
|
127
|
+
return action !== null;
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
var useActions$1 = useActions;
|
|
131
|
+
|
|
20
132
|
var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
21
133
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
22
134
|
_ref$disabled = _ref.disabled,
|
|
@@ -552,6 +664,156 @@ var useIsVisible = function useIsVisible() {
|
|
|
552
664
|
};
|
|
553
665
|
var useIsVisible$1 = useIsVisible;
|
|
554
666
|
|
|
667
|
+
function filterNullItems(items) {
|
|
668
|
+
return isArray(items) ? items.filter(function (it) {
|
|
669
|
+
return it !== null;
|
|
670
|
+
}) : items;
|
|
671
|
+
}
|
|
672
|
+
function getItemsArray(items) {
|
|
673
|
+
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
674
|
+
}
|
|
675
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
676
|
+
var _ref$items = _ref.items,
|
|
677
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
678
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
679
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
680
|
+
_ref$multipleSelectio = _ref.multipleSelection,
|
|
681
|
+
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
682
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
683
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
684
|
+
var initialItems = getItemsArray(initialSelectedItems);
|
|
685
|
+
var _useState = useState(initialItems),
|
|
686
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
687
|
+
selectedItems = _useState2[0],
|
|
688
|
+
setSelectedItems = _useState2[1];
|
|
689
|
+
var onSelectItem = useCallback(function (item, index) {
|
|
690
|
+
var _ref2 = item || {},
|
|
691
|
+
_ref2$id = _ref2.id,
|
|
692
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
693
|
+
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
694
|
+
var id = _ref3.id;
|
|
695
|
+
return id === itemId;
|
|
696
|
+
}) || null;
|
|
697
|
+
var newItems = [];
|
|
698
|
+
if (oldItem === null) {
|
|
699
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
700
|
+
} else {
|
|
701
|
+
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
702
|
+
var id = _ref4.id;
|
|
703
|
+
return id !== itemId;
|
|
704
|
+
});
|
|
705
|
+
}
|
|
706
|
+
setSelectedItems(filterNullItems(newItems));
|
|
707
|
+
if (onSelectionChange !== null) {
|
|
708
|
+
var _ref5 = newItems || [],
|
|
709
|
+
_ref6 = _slicedToArray(_ref5, 1),
|
|
710
|
+
_ref6$ = _ref6[0],
|
|
711
|
+
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
712
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
713
|
+
onSelectionChange(finalValue, item, index);
|
|
714
|
+
}
|
|
715
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
716
|
+
var onSelectItems = useCallback(function (newItems, index) {
|
|
717
|
+
var finalNewItems = filterNullItems(newItems);
|
|
718
|
+
setSelectedItems(finalNewItems);
|
|
719
|
+
if (onSelectionChange !== null) {
|
|
720
|
+
var _ref7 = finalNewItems || [],
|
|
721
|
+
_ref8 = _slicedToArray(_ref7, 1),
|
|
722
|
+
_ref8$ = _ref8[0],
|
|
723
|
+
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
724
|
+
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
725
|
+
onSelectionChange(finalValue, null, index);
|
|
726
|
+
}
|
|
727
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
728
|
+
var onSelectPage = useCallback(function () {
|
|
729
|
+
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
730
|
+
var nextItems = [];
|
|
731
|
+
if (!pageSelected) {
|
|
732
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
733
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
734
|
+
_ref9$id = _ref9.id,
|
|
735
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
736
|
+
return id;
|
|
737
|
+
});
|
|
738
|
+
} else {
|
|
739
|
+
var ids = (items || []).map(function () {
|
|
740
|
+
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
741
|
+
_ref10$id = _ref10.id,
|
|
742
|
+
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
743
|
+
return id;
|
|
744
|
+
}).filter(function (id) {
|
|
745
|
+
return id !== null;
|
|
746
|
+
});
|
|
747
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
748
|
+
var _ref11 = it || {},
|
|
749
|
+
_ref11$id = _ref11.id,
|
|
750
|
+
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
751
|
+
return ids.indexOf(id) === -1;
|
|
752
|
+
}), function () {
|
|
753
|
+
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
754
|
+
_ref12$id = _ref12.id,
|
|
755
|
+
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
756
|
+
return id;
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
var finalNextItems = filterNullItems(nextItems);
|
|
760
|
+
setSelectedItems(finalNextItems);
|
|
761
|
+
if (onSelectionChange !== null) {
|
|
762
|
+
onSelectionChange(finalNextItems);
|
|
763
|
+
}
|
|
764
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
765
|
+
var onClearSelected = useCallback(function () {
|
|
766
|
+
setSelectedItems([]);
|
|
767
|
+
if (onSelectionChange !== null) {
|
|
768
|
+
onSelectionChange(multipleSelection ? [] : null);
|
|
769
|
+
}
|
|
770
|
+
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
771
|
+
useEffect(function () {
|
|
772
|
+
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
773
|
+
}, [initialSelectedItems]);
|
|
774
|
+
var pageSelected = useMemo(function () {
|
|
775
|
+
if (items === null || selectedItems === null) {
|
|
776
|
+
return false;
|
|
777
|
+
}
|
|
778
|
+
var ids = (items || []).map(function () {
|
|
779
|
+
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
780
|
+
_ref13$id = _ref13.id,
|
|
781
|
+
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
782
|
+
return id;
|
|
783
|
+
}).filter(function (id) {
|
|
784
|
+
return id !== null;
|
|
785
|
+
}) || [];
|
|
786
|
+
if (ids === null || ids.length === 0) {
|
|
787
|
+
return false;
|
|
788
|
+
}
|
|
789
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
790
|
+
var _ref14 = it || {},
|
|
791
|
+
_ref14$id = _ref14.id,
|
|
792
|
+
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
793
|
+
return (ids || []).indexOf(id) !== -1;
|
|
794
|
+
}) || [];
|
|
795
|
+
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
796
|
+
}, [selectedItems, items]);
|
|
797
|
+
var allSelected = useMemo(function () {
|
|
798
|
+
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
799
|
+
}, [selectedItems, items]);
|
|
800
|
+
var selectedCount = useMemo(function () {
|
|
801
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
802
|
+
}, [selectedItems]);
|
|
803
|
+
return {
|
|
804
|
+
onSelectItem: onSelectItem,
|
|
805
|
+
onSelectItems: onSelectItems,
|
|
806
|
+
onSelectPage: onSelectPage,
|
|
807
|
+
onClearSelected: onClearSelected,
|
|
808
|
+
pageSelected: pageSelected,
|
|
809
|
+
allSelected: allSelected,
|
|
810
|
+
selectedCount: selectedCount,
|
|
811
|
+
selectedItems: selectedItems,
|
|
812
|
+
setSelectedItems: setSelectedItems
|
|
813
|
+
};
|
|
814
|
+
};
|
|
815
|
+
var useItemSelection$1 = useItemSelection;
|
|
816
|
+
|
|
555
817
|
var fontsMap = {
|
|
556
818
|
loading: [],
|
|
557
819
|
active: []
|
|
@@ -1104,154 +1366,4 @@ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) :
|
|
|
1104
1366
|
var useWindowEvent = createUseEvent(eventsManager);
|
|
1105
1367
|
var useWindowEvent$1 = useWindowEvent;
|
|
1106
1368
|
|
|
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 };
|
|
1369
|
+
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/es/index.js
CHANGED
|
@@ -76,7 +76,8 @@ var routes = PropTypes$1.shape({
|
|
|
76
76
|
'resources.edit': PropTypes$1.string.isRequired,
|
|
77
77
|
'resources.update': PropTypes$1.string.isRequired,
|
|
78
78
|
'resources.delete': PropTypes$1.string.isRequired,
|
|
79
|
-
'resources.destroy': PropTypes$1.string.isRequired
|
|
79
|
+
'resources.destroy': PropTypes$1.string.isRequired,
|
|
80
|
+
'resources.duplicate': PropTypes$1.string.isRequired
|
|
80
81
|
});
|
|
81
82
|
var intl = PropTypes$1.shape({
|
|
82
83
|
locale: PropTypes$1.string,
|
package/es/utils.js
CHANGED
|
@@ -261,7 +261,7 @@ var getColumnsWithFields = function getColumnsWithFields(resource, columns) {
|
|
|
261
261
|
return _objectSpread(_objectSpread(_objectSpread({}, fieldName !== null ? getColumnFromField(fields.find(function (it) {
|
|
262
262
|
return it.name === fieldName;
|
|
263
263
|
}) || null) : null), otherProps), {}, {
|
|
264
|
-
id: colId
|
|
264
|
+
id: colId || (isString(column) ? column : null) || null
|
|
265
265
|
});
|
|
266
266
|
}).filter(function (it) {
|
|
267
267
|
return it !== null;
|
package/lib/contexts.js
CHANGED
|
@@ -321,7 +321,8 @@ var routes = PropTypes.shape({
|
|
|
321
321
|
'resources.edit': PropTypes.string.isRequired,
|
|
322
322
|
'resources.update': PropTypes.string.isRequired,
|
|
323
323
|
'resources.delete': PropTypes.string.isRequired,
|
|
324
|
-
'resources.destroy': PropTypes.string.isRequired
|
|
324
|
+
'resources.destroy': PropTypes.string.isRequired,
|
|
325
|
+
'resources.duplicate': PropTypes.string.isRequired
|
|
325
326
|
});
|
|
326
327
|
var intl = PropTypes.shape({
|
|
327
328
|
locale: PropTypes.string,
|
package/lib/hooks.js
CHANGED
|
@@ -1,24 +1,136 @@
|
|
|
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
|
+
_ref$preferDeleteModa = _ref.preferDeleteModal,
|
|
58
|
+
preferDeleteModal = _ref$preferDeleteModa === void 0 ? true : _ref$preferDeleteModa,
|
|
59
|
+
_ref$preferDuplicateM = _ref.preferDuplicateModal,
|
|
60
|
+
preferDuplicateModal = _ref$preferDuplicateM === void 0 ? true : _ref$preferDuplicateM;
|
|
61
|
+
var _ref2 = item || {},
|
|
62
|
+
id = _ref2.id,
|
|
63
|
+
_ref2$url = _ref2.url,
|
|
64
|
+
url = _ref2$url === void 0 ? null : _ref2$url;
|
|
65
|
+
var hasCustomShowUrl = showUrl !== null || url !== null;
|
|
66
|
+
return (actions || []).map(function (action) {
|
|
67
|
+
if (isString(action)) {
|
|
68
|
+
switch (action) {
|
|
69
|
+
case 'show':
|
|
70
|
+
return _objectSpread({
|
|
71
|
+
id: 'show',
|
|
72
|
+
component: 'show',
|
|
73
|
+
label: iconsOnly ? null : showLabel,
|
|
74
|
+
icon: iconsOnly ? 'eye-fill' : null,
|
|
75
|
+
href: urlGenerator !== null && (!hasCustomShowUrl || withoutItemShowUrl) ? urlGenerator('show', {
|
|
76
|
+
id: id
|
|
77
|
+
}) || null : showUrl || url,
|
|
78
|
+
external: hasCustomShowUrl,
|
|
79
|
+
theme: 'info',
|
|
80
|
+
target: '_blank',
|
|
81
|
+
onClick: onClickShow
|
|
82
|
+
}, getShowPropsFromItem !== null ? getShowPropsFromItem(item) : null);
|
|
83
|
+
case 'edit':
|
|
84
|
+
return _objectSpread({
|
|
85
|
+
id: 'edit',
|
|
86
|
+
component: 'edit',
|
|
87
|
+
label: iconsOnly ? null : editLabel,
|
|
88
|
+
icon: iconsOnly ? 'pencil-square' : null,
|
|
89
|
+
href: urlGenerator !== null ? urlGenerator('edit', {
|
|
90
|
+
id: id
|
|
91
|
+
}) || null : null,
|
|
92
|
+
theme: 'primary',
|
|
93
|
+
onClick: onClickEdit
|
|
94
|
+
}, getEditPropsFromItem !== null ? getEditPropsFromItem(item) : null);
|
|
95
|
+
case 'duplicate':
|
|
96
|
+
return _objectSpread({
|
|
97
|
+
id: 'duplicate',
|
|
98
|
+
component: 'duplicate',
|
|
99
|
+
label: iconsOnly ? null : duplicateLabel,
|
|
100
|
+
icon: iconsOnly ? 'copy' : null,
|
|
101
|
+
href: urlGenerator !== null && !preferDuplicateModal ? urlGenerator('duplicate', {
|
|
102
|
+
id: id
|
|
103
|
+
}) || null : null,
|
|
104
|
+
theme: 'warning',
|
|
105
|
+
onClick: onClickDuplicate,
|
|
106
|
+
endpoint: urlGenerator !== null && preferDeleteModal ? urlGenerator('duplicate', {
|
|
107
|
+
id: id
|
|
108
|
+
}) || null : null
|
|
109
|
+
}, getDuplicatePropsFromItem !== null ? getDuplicatePropsFromItem(item) : null);
|
|
110
|
+
case 'delete':
|
|
111
|
+
return _objectSpread({
|
|
112
|
+
id: 'delete',
|
|
113
|
+
component: 'delete',
|
|
114
|
+
label: iconsOnly ? null : deleteLabel,
|
|
115
|
+
icon: iconsOnly ? 'trash3' : null,
|
|
116
|
+
href: urlGenerator !== null && !preferDeleteModal ? urlGenerator('delete', {
|
|
117
|
+
id: id
|
|
118
|
+
}) || null : null,
|
|
119
|
+
theme: 'danger',
|
|
120
|
+
onClick: onClickDelete,
|
|
121
|
+
endpoint: urlGenerator !== null && preferDeleteModal ? urlGenerator('destroy', {
|
|
122
|
+
id: id
|
|
123
|
+
}) || null : null
|
|
124
|
+
}, getDeletePropsFromItem !== null ? getDeletePropsFromItem(item) : null);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return action;
|
|
128
|
+
}).filter(function (action) {
|
|
129
|
+
return action !== null;
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
var useActions$1 = useActions;
|
|
133
|
+
|
|
22
134
|
var useAnimationFrame = function useAnimationFrame(onFrame) {
|
|
23
135
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
24
136
|
_ref$disabled = _ref.disabled,
|
|
@@ -554,6 +666,156 @@ var useIsVisible = function useIsVisible() {
|
|
|
554
666
|
};
|
|
555
667
|
var useIsVisible$1 = useIsVisible;
|
|
556
668
|
|
|
669
|
+
function filterNullItems(items) {
|
|
670
|
+
return isArray(items) ? items.filter(function (it) {
|
|
671
|
+
return it !== null;
|
|
672
|
+
}) : items;
|
|
673
|
+
}
|
|
674
|
+
function getItemsArray(items) {
|
|
675
|
+
return filterNullItems(!isArray(items) && items !== null ? [items] : items);
|
|
676
|
+
}
|
|
677
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
678
|
+
var _ref$items = _ref.items,
|
|
679
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
680
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
681
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
682
|
+
_ref$multipleSelectio = _ref.multipleSelection,
|
|
683
|
+
multipleSelection = _ref$multipleSelectio === void 0 ? false : _ref$multipleSelectio,
|
|
684
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
685
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
686
|
+
var initialItems = getItemsArray(initialSelectedItems);
|
|
687
|
+
var _useState = react.useState(initialItems),
|
|
688
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
689
|
+
selectedItems = _useState2[0],
|
|
690
|
+
setSelectedItems = _useState2[1];
|
|
691
|
+
var onSelectItem = react.useCallback(function (item, index) {
|
|
692
|
+
var _ref2 = item || {},
|
|
693
|
+
_ref2$id = _ref2.id,
|
|
694
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
695
|
+
var oldItem = (selectedItems || []).find(function (_ref3) {
|
|
696
|
+
var id = _ref3.id;
|
|
697
|
+
return id === itemId;
|
|
698
|
+
}) || null;
|
|
699
|
+
var newItems = [];
|
|
700
|
+
if (oldItem === null) {
|
|
701
|
+
newItems = selectedItems !== null && multipleSelection ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
702
|
+
} else {
|
|
703
|
+
newItems = (selectedItems || []).filter(function (_ref4) {
|
|
704
|
+
var id = _ref4.id;
|
|
705
|
+
return id !== itemId;
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
setSelectedItems(filterNullItems(newItems));
|
|
709
|
+
if (onSelectionChange !== null) {
|
|
710
|
+
var _ref5 = newItems || [],
|
|
711
|
+
_ref6 = _slicedToArray(_ref5, 1),
|
|
712
|
+
_ref6$ = _ref6[0],
|
|
713
|
+
firstItem = _ref6$ === void 0 ? null : _ref6$;
|
|
714
|
+
var finalValue = multipleSelection ? newItems : firstItem;
|
|
715
|
+
onSelectionChange(finalValue, item, index);
|
|
716
|
+
}
|
|
717
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
718
|
+
var onSelectItems = react.useCallback(function (newItems, index) {
|
|
719
|
+
var finalNewItems = filterNullItems(newItems);
|
|
720
|
+
setSelectedItems(finalNewItems);
|
|
721
|
+
if (onSelectionChange !== null) {
|
|
722
|
+
var _ref7 = finalNewItems || [],
|
|
723
|
+
_ref8 = _slicedToArray(_ref7, 1),
|
|
724
|
+
_ref8$ = _ref8[0],
|
|
725
|
+
firstItem = _ref8$ === void 0 ? null : _ref8$;
|
|
726
|
+
var finalValue = multipleSelection ? finalNewItems : firstItem;
|
|
727
|
+
onSelectionChange(finalValue, null, index);
|
|
728
|
+
}
|
|
729
|
+
}, [selectedItems, onSelectionChange, multipleSelection]);
|
|
730
|
+
var onSelectPage = react.useCallback(function () {
|
|
731
|
+
var pageSelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
732
|
+
var nextItems = [];
|
|
733
|
+
if (!pageSelected) {
|
|
734
|
+
nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
735
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
736
|
+
_ref9$id = _ref9.id,
|
|
737
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
738
|
+
return id;
|
|
739
|
+
});
|
|
740
|
+
} else {
|
|
741
|
+
var ids = (items || []).map(function () {
|
|
742
|
+
var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
743
|
+
_ref10$id = _ref10.id,
|
|
744
|
+
id = _ref10$id === void 0 ? null : _ref10$id;
|
|
745
|
+
return id;
|
|
746
|
+
}).filter(function (id) {
|
|
747
|
+
return id !== null;
|
|
748
|
+
});
|
|
749
|
+
nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
750
|
+
var _ref11 = it || {},
|
|
751
|
+
_ref11$id = _ref11.id,
|
|
752
|
+
id = _ref11$id === void 0 ? null : _ref11$id;
|
|
753
|
+
return ids.indexOf(id) === -1;
|
|
754
|
+
}), function () {
|
|
755
|
+
var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
756
|
+
_ref12$id = _ref12.id,
|
|
757
|
+
id = _ref12$id === void 0 ? null : _ref12$id;
|
|
758
|
+
return id;
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
var finalNextItems = filterNullItems(nextItems);
|
|
762
|
+
setSelectedItems(finalNextItems);
|
|
763
|
+
if (onSelectionChange !== null) {
|
|
764
|
+
onSelectionChange(finalNextItems);
|
|
765
|
+
}
|
|
766
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
767
|
+
var onClearSelected = react.useCallback(function () {
|
|
768
|
+
setSelectedItems([]);
|
|
769
|
+
if (onSelectionChange !== null) {
|
|
770
|
+
onSelectionChange(multipleSelection ? [] : null);
|
|
771
|
+
}
|
|
772
|
+
}, [setSelectedItems, onSelectionChange, multipleSelection]);
|
|
773
|
+
react.useEffect(function () {
|
|
774
|
+
setSelectedItems(getItemsArray(initialSelectedItems));
|
|
775
|
+
}, [initialSelectedItems]);
|
|
776
|
+
var pageSelected = react.useMemo(function () {
|
|
777
|
+
if (items === null || selectedItems === null) {
|
|
778
|
+
return false;
|
|
779
|
+
}
|
|
780
|
+
var ids = (items || []).map(function () {
|
|
781
|
+
var _ref13 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
782
|
+
_ref13$id = _ref13.id,
|
|
783
|
+
id = _ref13$id === void 0 ? null : _ref13$id;
|
|
784
|
+
return id;
|
|
785
|
+
}).filter(function (id) {
|
|
786
|
+
return id !== null;
|
|
787
|
+
}) || [];
|
|
788
|
+
if (ids === null || ids.length === 0) {
|
|
789
|
+
return false;
|
|
790
|
+
}
|
|
791
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
792
|
+
var _ref14 = it || {},
|
|
793
|
+
_ref14$id = _ref14.id,
|
|
794
|
+
id = _ref14$id === void 0 ? null : _ref14$id;
|
|
795
|
+
return (ids || []).indexOf(id) !== -1;
|
|
796
|
+
}) || [];
|
|
797
|
+
return currentPageItems.length > 0 && currentPageItems.length === (items || []).length;
|
|
798
|
+
}, [selectedItems, items]);
|
|
799
|
+
var allSelected = react.useMemo(function () {
|
|
800
|
+
return selectedItems !== null && items !== null && selectedItems.length === items.length;
|
|
801
|
+
}, [selectedItems, items]);
|
|
802
|
+
var selectedCount = react.useMemo(function () {
|
|
803
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
804
|
+
}, [selectedItems]);
|
|
805
|
+
return {
|
|
806
|
+
onSelectItem: onSelectItem,
|
|
807
|
+
onSelectItems: onSelectItems,
|
|
808
|
+
onSelectPage: onSelectPage,
|
|
809
|
+
onClearSelected: onClearSelected,
|
|
810
|
+
pageSelected: pageSelected,
|
|
811
|
+
allSelected: allSelected,
|
|
812
|
+
selectedCount: selectedCount,
|
|
813
|
+
selectedItems: selectedItems,
|
|
814
|
+
setSelectedItems: setSelectedItems
|
|
815
|
+
};
|
|
816
|
+
};
|
|
817
|
+
var useItemSelection$1 = useItemSelection;
|
|
818
|
+
|
|
557
819
|
var fontsMap = {
|
|
558
820
|
loading: [],
|
|
559
821
|
active: []
|
|
@@ -1106,157 +1368,8 @@ var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(windo
|
|
|
1106
1368
|
var useWindowEvent = utils.createUseEvent(eventsManager);
|
|
1107
1369
|
var useWindowEvent$1 = useWindowEvent;
|
|
1108
1370
|
|
|
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
1371
|
exports.getObserver = getObserver;
|
|
1372
|
+
exports.useActions = useActions$1;
|
|
1260
1373
|
exports.useAnimationFrame = useAnimationFrame$1;
|
|
1261
1374
|
exports.useDocumentEvent = useDocumentEvent$1;
|
|
1262
1375
|
exports.useForm = useForm$1;
|
package/lib/index.js
CHANGED
|
@@ -78,7 +78,8 @@ var routes = PropTypes$1.shape({
|
|
|
78
78
|
'resources.edit': PropTypes$1.string.isRequired,
|
|
79
79
|
'resources.update': PropTypes$1.string.isRequired,
|
|
80
80
|
'resources.delete': PropTypes$1.string.isRequired,
|
|
81
|
-
'resources.destroy': PropTypes$1.string.isRequired
|
|
81
|
+
'resources.destroy': PropTypes$1.string.isRequired,
|
|
82
|
+
'resources.duplicate': PropTypes$1.string.isRequired
|
|
82
83
|
});
|
|
83
84
|
var intl = PropTypes$1.shape({
|
|
84
85
|
locale: PropTypes$1.string,
|
package/lib/utils.js
CHANGED
|
@@ -438,7 +438,7 @@ var getColumnsWithFields = function getColumnsWithFields(resource, columns) {
|
|
|
438
438
|
return _objectSpread(_objectSpread(_objectSpread({}, fieldName !== null ? getColumnFromField(fields.find(function (it) {
|
|
439
439
|
return it.name === fieldName;
|
|
440
440
|
}) || null) : null), otherProps), {}, {
|
|
441
|
-
id: colId
|
|
441
|
+
id: colId || (isString(column) ? column : null) || null
|
|
442
442
|
});
|
|
443
443
|
}).filter(function (it) {
|
|
444
444
|
return it !== null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.160",
|
|
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": "71a2a64cd2e0ed3cc921b0ec3b0a69449a4a978c"
|
|
115
115
|
}
|