@panneau/core 3.0.126 → 3.0.130
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/contexts.js +12 -2
- package/es/hooks.js +127 -12
- package/es/index.js +16 -2
- package/es/utils.js +19 -1
- package/lib/contexts.js +12 -2
- package/lib/hooks.js +128 -12
- package/lib/index.js +16 -2
- package/lib/utils.js +19 -0
- package/package.json +3 -3
package/es/contexts.js
CHANGED
|
@@ -385,8 +385,18 @@ var modal = PropTypes.shape({
|
|
|
385
385
|
name: PropTypes.string
|
|
386
386
|
});
|
|
387
387
|
PropTypes.arrayOf(modal);
|
|
388
|
-
|
|
389
|
-
|
|
388
|
+
var filter = PropTypes.shape({
|
|
389
|
+
id: PropTypes.string,
|
|
390
|
+
component: PropTypes.string
|
|
391
|
+
});
|
|
392
|
+
PropTypes.arrayOf(filter);
|
|
393
|
+
var media = PropTypes.shape({
|
|
394
|
+
id: PropTypes.string.isRequired,
|
|
395
|
+
name: PropTypes.string.isRequired,
|
|
396
|
+
type: PropTypes.string.isRequired,
|
|
397
|
+
thumbnail_url: PropTypes.string
|
|
398
|
+
});
|
|
399
|
+
PropTypes.arrayOf(media);
|
|
390
400
|
|
|
391
401
|
/* eslint-disable react/jsx-props-no-spreading */
|
|
392
402
|
var DefinitionContext = /*#__PURE__*/React.createContext(null);
|
package/es/hooks.js
CHANGED
|
@@ -12,6 +12,7 @@ import isArray from 'lodash/isArray';
|
|
|
12
12
|
import isObject from 'lodash/isObject';
|
|
13
13
|
import isString from 'lodash/isString';
|
|
14
14
|
import { useFieldsManager, usePanneauResources, useResource, useUrlGenerator } from '@panneau/core/contexts';
|
|
15
|
+
import uniqBy from 'lodash/uniqBy';
|
|
15
16
|
import { useIntl } from 'react-intl';
|
|
16
17
|
import dayjs from 'dayjs';
|
|
17
18
|
import { match } from 'css-mediaquery';
|
|
@@ -952,12 +953,9 @@ var useResourceUrlGenerator = function useResourceUrlGenerator() {
|
|
|
952
953
|
};
|
|
953
954
|
var useResourceUrlGenerator$1 = useResourceUrlGenerator;
|
|
954
955
|
|
|
955
|
-
var
|
|
956
|
+
var useQuery = function useQuery() {
|
|
956
957
|
var initialBaseQuery = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
957
958
|
var paginated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
958
|
-
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
959
|
-
_ref$forceInitialQuer = _ref.forceInitialQuery,
|
|
960
|
-
forceInitialQuery = _ref$forceInitialQuer === void 0 ? false : _ref$forceInitialQuer;
|
|
961
959
|
var initialQuery = useMemo(function () {
|
|
962
960
|
return paginated ? _objectSpread({
|
|
963
961
|
page: 1,
|
|
@@ -981,12 +979,8 @@ var useResourceQuery = function useResourceQuery() {
|
|
|
981
979
|
var val = newQuery[key];
|
|
982
980
|
return val !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, val)) : currentQuery;
|
|
983
981
|
}, null) : null;
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
} else {
|
|
987
|
-
setQuery(finalQuery);
|
|
988
|
-
}
|
|
989
|
-
}, [query, setQuery, initialBaseQuery, forceInitialQuery]);
|
|
982
|
+
setQuery(_objectSpread(_objectSpread({}, initialQuery || null), finalQuery || null));
|
|
983
|
+
}, [query, setQuery, initialQuery]);
|
|
990
984
|
var onQueryReset = useCallback(function () {
|
|
991
985
|
setQuery(initialQuery);
|
|
992
986
|
}, [initialQuery, setQuery]);
|
|
@@ -997,7 +991,7 @@ var useResourceQuery = function useResourceQuery() {
|
|
|
997
991
|
onQueryReset: onQueryReset
|
|
998
992
|
};
|
|
999
993
|
};
|
|
1000
|
-
var
|
|
994
|
+
var useQuery$1 = useQuery;
|
|
1001
995
|
|
|
1002
996
|
var _excluded = ["width", "height"];
|
|
1003
997
|
var useScreenSize = function useScreenSize(_ref) {
|
|
@@ -1110,4 +1104,125 @@ var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) :
|
|
|
1110
1104
|
var useWindowEvent = createUseEvent(eventsManager);
|
|
1111
1105
|
var useWindowEvent$1 = useWindowEvent;
|
|
1112
1106
|
|
|
1113
|
-
|
|
1107
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
1108
|
+
var _ref$items = _ref.items,
|
|
1109
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
1110
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
1111
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
1112
|
+
_ref$multiple = _ref.multiple,
|
|
1113
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
1114
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
1115
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
1116
|
+
var initialItems = !isArray(initialSelectedItems) && initialSelectedItems !== null ? [initialSelectedItems] : initialSelectedItems;
|
|
1117
|
+
var _useState = useState(initialItems),
|
|
1118
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1119
|
+
selectedItems = _useState2[0],
|
|
1120
|
+
setSelectedItems = _useState2[1];
|
|
1121
|
+
var onSelectItem = useCallback(function (item, index) {
|
|
1122
|
+
var newItems = selectedItems !== null && multiple ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
1123
|
+
setSelectedItems(newItems);
|
|
1124
|
+
if (onSelectionChange !== null) {
|
|
1125
|
+
onSelectionChange(newItems, item, index);
|
|
1126
|
+
}
|
|
1127
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1128
|
+
var onDeselectItem = useCallback(function (item, index) {
|
|
1129
|
+
var _ref2 = item || {},
|
|
1130
|
+
_ref2$id = _ref2.id,
|
|
1131
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
1132
|
+
var newItems = (selectedItems || []).filter(function (_ref3) {
|
|
1133
|
+
var id = _ref3.id;
|
|
1134
|
+
return id !== itemId;
|
|
1135
|
+
});
|
|
1136
|
+
setSelectedItems(newItems);
|
|
1137
|
+
if (onSelectionChange !== null) {
|
|
1138
|
+
onSelectionChange(multiple ? newItems : null, item, index);
|
|
1139
|
+
}
|
|
1140
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1141
|
+
var onSelectPage = useCallback(function () {
|
|
1142
|
+
var nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
1143
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1144
|
+
_ref4$id = _ref4.id,
|
|
1145
|
+
id = _ref4$id === void 0 ? null : _ref4$id;
|
|
1146
|
+
return id;
|
|
1147
|
+
});
|
|
1148
|
+
setSelectedItems(nextItems);
|
|
1149
|
+
if (onSelectionChange !== null) {
|
|
1150
|
+
onSelectionChange(nextItems);
|
|
1151
|
+
}
|
|
1152
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1153
|
+
var onDeselectPage = useCallback(function () {
|
|
1154
|
+
var ids = (items || []).map(function () {
|
|
1155
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1156
|
+
_ref5$id = _ref5.id,
|
|
1157
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
|
1158
|
+
return id;
|
|
1159
|
+
}).filter(function (id) {
|
|
1160
|
+
return id !== null;
|
|
1161
|
+
});
|
|
1162
|
+
var nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
1163
|
+
var _ref6 = it || {},
|
|
1164
|
+
_ref6$id = _ref6.id,
|
|
1165
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
1166
|
+
return ids.indexOf(id) === -1;
|
|
1167
|
+
}), function () {
|
|
1168
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1169
|
+
_ref7$id = _ref7.id,
|
|
1170
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
1171
|
+
return id;
|
|
1172
|
+
});
|
|
1173
|
+
setSelectedItems(nextItems);
|
|
1174
|
+
if (onSelectionChange !== null) {
|
|
1175
|
+
onSelectionChange(nextItems);
|
|
1176
|
+
}
|
|
1177
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1178
|
+
var onClearAll = useCallback(function () {
|
|
1179
|
+
setSelectedItems([]);
|
|
1180
|
+
if (onSelectionChange !== null) {
|
|
1181
|
+
onSelectionChange([]);
|
|
1182
|
+
}
|
|
1183
|
+
}, [setSelectedItems, onSelectionChange]);
|
|
1184
|
+
useEffect(function () {
|
|
1185
|
+
setSelectedItems(initialSelectedItems);
|
|
1186
|
+
}, [initialSelectedItems]);
|
|
1187
|
+
var pageSelected = useMemo(function () {
|
|
1188
|
+
var ids = (items || []).map(function () {
|
|
1189
|
+
var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1190
|
+
_ref8$id = _ref8.id,
|
|
1191
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
1192
|
+
return id;
|
|
1193
|
+
}).filter(function (id) {
|
|
1194
|
+
return id !== null;
|
|
1195
|
+
});
|
|
1196
|
+
// console.log('selectedItems', selectedItems);
|
|
1197
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
1198
|
+
var _ref9 = it || {},
|
|
1199
|
+
_ref9$id = _ref9.id,
|
|
1200
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
1201
|
+
return ids.indexOf(id) !== -1;
|
|
1202
|
+
});
|
|
1203
|
+
// console.log('currentPageItems', currentPageItems);
|
|
1204
|
+
return currentPageItems.length === (items || []).length;
|
|
1205
|
+
}, [selectedItems, items]);
|
|
1206
|
+
|
|
1207
|
+
// const allSelected = useMemo(
|
|
1208
|
+
// () => selectedItems !== null && selectedItems.length === selectedItemsCount,
|
|
1209
|
+
// [selectedItems, selectedItemsCount],
|
|
1210
|
+
// );
|
|
1211
|
+
|
|
1212
|
+
var countSelected = useMemo(function () {
|
|
1213
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
1214
|
+
}, [selectedItems]);
|
|
1215
|
+
return {
|
|
1216
|
+
onSelectItem: onSelectItem,
|
|
1217
|
+
onDeselectItem: onDeselectItem,
|
|
1218
|
+
onSelectPage: onSelectPage,
|
|
1219
|
+
onDeselectPage: onDeselectPage,
|
|
1220
|
+
onClearAll: onClearAll,
|
|
1221
|
+
pageSelected: pageSelected,
|
|
1222
|
+
count: countSelected,
|
|
1223
|
+
selectedItems: selectedItems
|
|
1224
|
+
};
|
|
1225
|
+
};
|
|
1226
|
+
var useItemSelection$1 = useItemSelection;
|
|
1227
|
+
|
|
1228
|
+
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 };
|
package/es/index.js
CHANGED
|
@@ -161,8 +161,18 @@ var modal = PropTypes$1.shape({
|
|
|
161
161
|
name: PropTypes$1.string
|
|
162
162
|
});
|
|
163
163
|
var modals = PropTypes$1.arrayOf(modal);
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
var filter = PropTypes$1.shape({
|
|
165
|
+
id: PropTypes$1.string,
|
|
166
|
+
component: PropTypes$1.string
|
|
167
|
+
});
|
|
168
|
+
var filters = PropTypes$1.arrayOf(filter);
|
|
169
|
+
var media = PropTypes$1.shape({
|
|
170
|
+
id: PropTypes$1.string.isRequired,
|
|
171
|
+
name: PropTypes$1.string.isRequired,
|
|
172
|
+
type: PropTypes$1.string.isRequired,
|
|
173
|
+
thumbnail_url: PropTypes$1.string
|
|
174
|
+
});
|
|
175
|
+
var medias = PropTypes$1.arrayOf(media);
|
|
166
176
|
|
|
167
177
|
var PropTypes = /*#__PURE__*/Object.freeze({
|
|
168
178
|
__proto__: null,
|
|
@@ -181,6 +191,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
|
|
|
181
191
|
fieldOption: fieldOption,
|
|
182
192
|
fieldOptions: fieldOptions,
|
|
183
193
|
fields: fields,
|
|
194
|
+
filter: filter,
|
|
195
|
+
filters: filters,
|
|
184
196
|
font: font,
|
|
185
197
|
fonts: fonts,
|
|
186
198
|
form: form,
|
|
@@ -192,6 +204,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
|
|
|
192
204
|
item: item,
|
|
193
205
|
items: items,
|
|
194
206
|
label: label,
|
|
207
|
+
media: media,
|
|
208
|
+
medias: medias,
|
|
195
209
|
menuItem: menuItem,
|
|
196
210
|
menuItems: menuItems,
|
|
197
211
|
message: message,
|
package/es/utils.js
CHANGED
|
@@ -189,6 +189,24 @@ var flattenComponents = function flattenComponents(components) {
|
|
|
189
189
|
};
|
|
190
190
|
var flattenComponents$1 = flattenComponents;
|
|
191
191
|
|
|
192
|
+
var formatDuration = function formatDuration(timeInSeconds) {
|
|
193
|
+
var numberOfSeconds = parseInt(timeInSeconds, 10); // don't forget the second param
|
|
194
|
+
var hours = Math.floor(numberOfSeconds / 3600);
|
|
195
|
+
var minutes = Math.floor((numberOfSeconds - hours * 3600) / 60);
|
|
196
|
+
var seconds = numberOfSeconds - hours * 3600 - minutes * 60;
|
|
197
|
+
if (hours < 10) {
|
|
198
|
+
hours = "0".concat(hours);
|
|
199
|
+
}
|
|
200
|
+
if (minutes < 10) {
|
|
201
|
+
minutes = "0".concat(minutes);
|
|
202
|
+
}
|
|
203
|
+
if (seconds < 10) {
|
|
204
|
+
seconds = "0".concat(seconds);
|
|
205
|
+
}
|
|
206
|
+
return "".concat(hours, ":").concat(minutes, ":").concat(seconds);
|
|
207
|
+
};
|
|
208
|
+
var formatDuration$1 = formatDuration;
|
|
209
|
+
|
|
192
210
|
var _excluded$1 = ["component"];
|
|
193
211
|
var getComponent = function getComponent(component) {
|
|
194
212
|
var _ref = isObject(component) ? component : {
|
|
@@ -467,4 +485,4 @@ var validateFields = function validateFields(fields, value) {
|
|
|
467
485
|
};
|
|
468
486
|
var validateFields$1 = validateFields;
|
|
469
487
|
|
|
470
|
-
export { convertStyleToString$1 as convertStyleToString, copyToClipboard, createNullableOnChange$1 as createNullableOnChange, createUseEvent$1 as createUseEvent, flattenComponents$1 as flattenComponents, getColumnsWithFields$1 as getColumnsWithFields, getComponent$1 as getComponent, getComponentFromName$1 as getComponentFromName, getDefinitionFromId$1 as getDefinitionFromId, getDisplayName$1 as getDisplayName, getFieldByName$1 as getFieldByName, getFieldFromPath$1 as getFieldFromPath, getFileName$1 as getFileName, getPathValue$1 as getPathValue, getSelectOptions$1 as getSelectOptions, isMessage$1 as isMessage, loadPackage, setValue$1 as setFieldValue, slug$1 as slug, validateFields$1 as validateFields };
|
|
488
|
+
export { convertStyleToString$1 as convertStyleToString, copyToClipboard, createNullableOnChange$1 as createNullableOnChange, createUseEvent$1 as createUseEvent, flattenComponents$1 as flattenComponents, formatDuration$1 as formatDuration, getColumnsWithFields$1 as getColumnsWithFields, getComponent$1 as getComponent, getComponentFromName$1 as getComponentFromName, getDefinitionFromId$1 as getDefinitionFromId, getDisplayName$1 as getDisplayName, getFieldByName$1 as getFieldByName, getFieldFromPath$1 as getFieldFromPath, getFileName$1 as getFileName, getPathValue$1 as getPathValue, getSelectOptions$1 as getSelectOptions, isMessage$1 as isMessage, loadPackage, setValue$1 as setFieldValue, slug$1 as slug, validateFields$1 as validateFields };
|
package/lib/contexts.js
CHANGED
|
@@ -406,8 +406,18 @@ var modal = PropTypes.shape({
|
|
|
406
406
|
name: PropTypes.string
|
|
407
407
|
});
|
|
408
408
|
PropTypes.arrayOf(modal);
|
|
409
|
-
|
|
410
|
-
|
|
409
|
+
var filter = PropTypes.shape({
|
|
410
|
+
id: PropTypes.string,
|
|
411
|
+
component: PropTypes.string
|
|
412
|
+
});
|
|
413
|
+
PropTypes.arrayOf(filter);
|
|
414
|
+
var media = PropTypes.shape({
|
|
415
|
+
id: PropTypes.string.isRequired,
|
|
416
|
+
name: PropTypes.string.isRequired,
|
|
417
|
+
type: PropTypes.string.isRequired,
|
|
418
|
+
thumbnail_url: PropTypes.string
|
|
419
|
+
});
|
|
420
|
+
PropTypes.arrayOf(media);
|
|
411
421
|
|
|
412
422
|
/* eslint-disable react/jsx-props-no-spreading */
|
|
413
423
|
var DefinitionContext = /*#__PURE__*/React.createContext(null);
|
package/lib/hooks.js
CHANGED
|
@@ -14,6 +14,7 @@ var isArray = require('lodash/isArray');
|
|
|
14
14
|
var isObject = require('lodash/isObject');
|
|
15
15
|
var isString = require('lodash/isString');
|
|
16
16
|
var contexts = require('@panneau/core/contexts');
|
|
17
|
+
var uniqBy = require('lodash/uniqBy');
|
|
17
18
|
var reactIntl = require('react-intl');
|
|
18
19
|
var dayjs = require('dayjs');
|
|
19
20
|
var cssMediaquery = require('css-mediaquery');
|
|
@@ -954,12 +955,9 @@ var useResourceUrlGenerator = function useResourceUrlGenerator() {
|
|
|
954
955
|
};
|
|
955
956
|
var useResourceUrlGenerator$1 = useResourceUrlGenerator;
|
|
956
957
|
|
|
957
|
-
var
|
|
958
|
+
var useQuery = function useQuery() {
|
|
958
959
|
var initialBaseQuery = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
959
960
|
var paginated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
960
|
-
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
961
|
-
_ref$forceInitialQuer = _ref.forceInitialQuery,
|
|
962
|
-
forceInitialQuery = _ref$forceInitialQuer === void 0 ? false : _ref$forceInitialQuer;
|
|
963
961
|
var initialQuery = react.useMemo(function () {
|
|
964
962
|
return paginated ? _objectSpread({
|
|
965
963
|
page: 1,
|
|
@@ -983,12 +981,8 @@ var useResourceQuery = function useResourceQuery() {
|
|
|
983
981
|
var val = newQuery[key];
|
|
984
982
|
return val !== null ? _objectSpread(_objectSpread({}, currentQuery), {}, _defineProperty({}, key, val)) : currentQuery;
|
|
985
983
|
}, null) : null;
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
} else {
|
|
989
|
-
setQuery(finalQuery);
|
|
990
|
-
}
|
|
991
|
-
}, [query, setQuery, initialBaseQuery, forceInitialQuery]);
|
|
984
|
+
setQuery(_objectSpread(_objectSpread({}, initialQuery || null), finalQuery || null));
|
|
985
|
+
}, [query, setQuery, initialQuery]);
|
|
992
986
|
var onQueryReset = react.useCallback(function () {
|
|
993
987
|
setQuery(initialQuery);
|
|
994
988
|
}, [initialQuery, setQuery]);
|
|
@@ -999,7 +993,7 @@ var useResourceQuery = function useResourceQuery() {
|
|
|
999
993
|
onQueryReset: onQueryReset
|
|
1000
994
|
};
|
|
1001
995
|
};
|
|
1002
|
-
var
|
|
996
|
+
var useQuery$1 = useQuery;
|
|
1003
997
|
|
|
1004
998
|
var _excluded = ["width", "height"];
|
|
1005
999
|
var useScreenSize = function useScreenSize(_ref) {
|
|
@@ -1112,6 +1106,127 @@ var eventsManager = typeof window !== 'undefined' ? new core.EventsManager(windo
|
|
|
1112
1106
|
var useWindowEvent = utils.createUseEvent(eventsManager);
|
|
1113
1107
|
var useWindowEvent$1 = useWindowEvent;
|
|
1114
1108
|
|
|
1109
|
+
var useItemSelection = function useItemSelection(_ref) {
|
|
1110
|
+
var _ref$items = _ref.items,
|
|
1111
|
+
items = _ref$items === void 0 ? null : _ref$items,
|
|
1112
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
1113
|
+
initialSelectedItems = _ref$selectedItems === void 0 ? null : _ref$selectedItems,
|
|
1114
|
+
_ref$multiple = _ref.multiple,
|
|
1115
|
+
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
|
|
1116
|
+
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
1117
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? null : _ref$onSelectionChang;
|
|
1118
|
+
var initialItems = !isArray(initialSelectedItems) && initialSelectedItems !== null ? [initialSelectedItems] : initialSelectedItems;
|
|
1119
|
+
var _useState = react.useState(initialItems),
|
|
1120
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1121
|
+
selectedItems = _useState2[0],
|
|
1122
|
+
setSelectedItems = _useState2[1];
|
|
1123
|
+
var onSelectItem = react.useCallback(function (item, index) {
|
|
1124
|
+
var newItems = selectedItems !== null && multiple ? [].concat(_toConsumableArray(selectedItems), [item]) : [item];
|
|
1125
|
+
setSelectedItems(newItems);
|
|
1126
|
+
if (onSelectionChange !== null) {
|
|
1127
|
+
onSelectionChange(newItems, item, index);
|
|
1128
|
+
}
|
|
1129
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1130
|
+
var onDeselectItem = react.useCallback(function (item, index) {
|
|
1131
|
+
var _ref2 = item || {},
|
|
1132
|
+
_ref2$id = _ref2.id,
|
|
1133
|
+
itemId = _ref2$id === void 0 ? null : _ref2$id;
|
|
1134
|
+
var newItems = (selectedItems || []).filter(function (_ref3) {
|
|
1135
|
+
var id = _ref3.id;
|
|
1136
|
+
return id !== itemId;
|
|
1137
|
+
});
|
|
1138
|
+
setSelectedItems(newItems);
|
|
1139
|
+
if (onSelectionChange !== null) {
|
|
1140
|
+
onSelectionChange(multiple ? newItems : null, item, index);
|
|
1141
|
+
}
|
|
1142
|
+
}, [selectedItems, onSelectionChange, multiple]);
|
|
1143
|
+
var onSelectPage = react.useCallback(function () {
|
|
1144
|
+
var nextItems = uniqBy([].concat(_toConsumableArray(items || []), _toConsumableArray(selectedItems || [])), function () {
|
|
1145
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1146
|
+
_ref4$id = _ref4.id,
|
|
1147
|
+
id = _ref4$id === void 0 ? null : _ref4$id;
|
|
1148
|
+
return id;
|
|
1149
|
+
});
|
|
1150
|
+
setSelectedItems(nextItems);
|
|
1151
|
+
if (onSelectionChange !== null) {
|
|
1152
|
+
onSelectionChange(nextItems);
|
|
1153
|
+
}
|
|
1154
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1155
|
+
var onDeselectPage = react.useCallback(function () {
|
|
1156
|
+
var ids = (items || []).map(function () {
|
|
1157
|
+
var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1158
|
+
_ref5$id = _ref5.id,
|
|
1159
|
+
id = _ref5$id === void 0 ? null : _ref5$id;
|
|
1160
|
+
return id;
|
|
1161
|
+
}).filter(function (id) {
|
|
1162
|
+
return id !== null;
|
|
1163
|
+
});
|
|
1164
|
+
var nextItems = uniqBy((selectedItems || []).filter(function (it) {
|
|
1165
|
+
var _ref6 = it || {},
|
|
1166
|
+
_ref6$id = _ref6.id,
|
|
1167
|
+
id = _ref6$id === void 0 ? null : _ref6$id;
|
|
1168
|
+
return ids.indexOf(id) === -1;
|
|
1169
|
+
}), function () {
|
|
1170
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1171
|
+
_ref7$id = _ref7.id,
|
|
1172
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
1173
|
+
return id;
|
|
1174
|
+
});
|
|
1175
|
+
setSelectedItems(nextItems);
|
|
1176
|
+
if (onSelectionChange !== null) {
|
|
1177
|
+
onSelectionChange(nextItems);
|
|
1178
|
+
}
|
|
1179
|
+
}, [items, selectedItems, setSelectedItems, onSelectionChange]);
|
|
1180
|
+
var onClearAll = react.useCallback(function () {
|
|
1181
|
+
setSelectedItems([]);
|
|
1182
|
+
if (onSelectionChange !== null) {
|
|
1183
|
+
onSelectionChange([]);
|
|
1184
|
+
}
|
|
1185
|
+
}, [setSelectedItems, onSelectionChange]);
|
|
1186
|
+
react.useEffect(function () {
|
|
1187
|
+
setSelectedItems(initialSelectedItems);
|
|
1188
|
+
}, [initialSelectedItems]);
|
|
1189
|
+
var pageSelected = react.useMemo(function () {
|
|
1190
|
+
var ids = (items || []).map(function () {
|
|
1191
|
+
var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1192
|
+
_ref8$id = _ref8.id,
|
|
1193
|
+
id = _ref8$id === void 0 ? null : _ref8$id;
|
|
1194
|
+
return id;
|
|
1195
|
+
}).filter(function (id) {
|
|
1196
|
+
return id !== null;
|
|
1197
|
+
});
|
|
1198
|
+
// console.log('selectedItems', selectedItems);
|
|
1199
|
+
var currentPageItems = (selectedItems || []).filter(function (it) {
|
|
1200
|
+
var _ref9 = it || {},
|
|
1201
|
+
_ref9$id = _ref9.id,
|
|
1202
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
1203
|
+
return ids.indexOf(id) !== -1;
|
|
1204
|
+
});
|
|
1205
|
+
// console.log('currentPageItems', currentPageItems);
|
|
1206
|
+
return currentPageItems.length === (items || []).length;
|
|
1207
|
+
}, [selectedItems, items]);
|
|
1208
|
+
|
|
1209
|
+
// const allSelected = useMemo(
|
|
1210
|
+
// () => selectedItems !== null && selectedItems.length === selectedItemsCount,
|
|
1211
|
+
// [selectedItems, selectedItemsCount],
|
|
1212
|
+
// );
|
|
1213
|
+
|
|
1214
|
+
var countSelected = react.useMemo(function () {
|
|
1215
|
+
return selectedItems !== null && selectedItems.length > 0 ? selectedItems.length : null;
|
|
1216
|
+
}, [selectedItems]);
|
|
1217
|
+
return {
|
|
1218
|
+
onSelectItem: onSelectItem,
|
|
1219
|
+
onDeselectItem: onDeselectItem,
|
|
1220
|
+
onSelectPage: onSelectPage,
|
|
1221
|
+
onDeselectPage: onDeselectPage,
|
|
1222
|
+
onClearAll: onClearAll,
|
|
1223
|
+
pageSelected: pageSelected,
|
|
1224
|
+
count: countSelected,
|
|
1225
|
+
selectedItems: selectedItems
|
|
1226
|
+
};
|
|
1227
|
+
};
|
|
1228
|
+
var useItemSelection$1 = useItemSelection;
|
|
1229
|
+
|
|
1115
1230
|
exports.getObserver = getObserver;
|
|
1116
1231
|
exports.useAnimationFrame = useAnimationFrame$1;
|
|
1117
1232
|
exports.useDocumentEvent = useDocumentEvent$1;
|
|
@@ -1120,12 +1235,13 @@ exports.useFormattedDate = useFormattedDate;
|
|
|
1120
1235
|
exports.useFormattedTime = useFormattedTime;
|
|
1121
1236
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1122
1237
|
exports.useIsVisible = useIsVisible$1;
|
|
1238
|
+
exports.useItemSelection = useItemSelection$1;
|
|
1123
1239
|
exports.useLoadedFonts = useLoadedFonts$1;
|
|
1124
1240
|
exports.useMediaApi = useMediaApi$1;
|
|
1125
1241
|
exports.useMediasParser = useMediasParser$1;
|
|
1126
1242
|
exports.useObserver = useObserver;
|
|
1243
|
+
exports.useQuery = useQuery$1;
|
|
1127
1244
|
exports.useResizeObserver = useResizeObserver;
|
|
1128
|
-
exports.useResourceQuery = useResourceQuery$1;
|
|
1129
1245
|
exports.useResourceTypeName = useResourceTypeName$1;
|
|
1130
1246
|
exports.useResourceUrlGenerator = useResourceUrlGenerator$1;
|
|
1131
1247
|
exports.useScreenSizeFromElement = useScreenSizeFromElement;
|
package/lib/index.js
CHANGED
|
@@ -163,8 +163,18 @@ var modal = PropTypes$1.shape({
|
|
|
163
163
|
name: PropTypes$1.string
|
|
164
164
|
});
|
|
165
165
|
var modals = PropTypes$1.arrayOf(modal);
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
var filter = PropTypes$1.shape({
|
|
167
|
+
id: PropTypes$1.string,
|
|
168
|
+
component: PropTypes$1.string
|
|
169
|
+
});
|
|
170
|
+
var filters = PropTypes$1.arrayOf(filter);
|
|
171
|
+
var media = PropTypes$1.shape({
|
|
172
|
+
id: PropTypes$1.string.isRequired,
|
|
173
|
+
name: PropTypes$1.string.isRequired,
|
|
174
|
+
type: PropTypes$1.string.isRequired,
|
|
175
|
+
thumbnail_url: PropTypes$1.string
|
|
176
|
+
});
|
|
177
|
+
var medias = PropTypes$1.arrayOf(media);
|
|
168
178
|
|
|
169
179
|
var PropTypes = /*#__PURE__*/Object.freeze({
|
|
170
180
|
__proto__: null,
|
|
@@ -183,6 +193,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
|
|
|
183
193
|
fieldOption: fieldOption,
|
|
184
194
|
fieldOptions: fieldOptions,
|
|
185
195
|
fields: fields,
|
|
196
|
+
filter: filter,
|
|
197
|
+
filters: filters,
|
|
186
198
|
font: font,
|
|
187
199
|
fonts: fonts,
|
|
188
200
|
form: form,
|
|
@@ -194,6 +206,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
|
|
|
194
206
|
item: item,
|
|
195
207
|
items: items,
|
|
196
208
|
label: label,
|
|
209
|
+
media: media,
|
|
210
|
+
medias: medias,
|
|
197
211
|
menuItem: menuItem,
|
|
198
212
|
menuItems: menuItems,
|
|
199
213
|
message: message,
|
package/lib/utils.js
CHANGED
|
@@ -282,6 +282,24 @@ var flattenComponents = function flattenComponents(components) {
|
|
|
282
282
|
};
|
|
283
283
|
var flattenComponents$1 = flattenComponents;
|
|
284
284
|
|
|
285
|
+
var formatDuration = function formatDuration(timeInSeconds) {
|
|
286
|
+
var numberOfSeconds = parseInt(timeInSeconds, 10); // don't forget the second param
|
|
287
|
+
var hours = Math.floor(numberOfSeconds / 3600);
|
|
288
|
+
var minutes = Math.floor((numberOfSeconds - hours * 3600) / 60);
|
|
289
|
+
var seconds = numberOfSeconds - hours * 3600 - minutes * 60;
|
|
290
|
+
if (hours < 10) {
|
|
291
|
+
hours = "0".concat(hours);
|
|
292
|
+
}
|
|
293
|
+
if (minutes < 10) {
|
|
294
|
+
minutes = "0".concat(minutes);
|
|
295
|
+
}
|
|
296
|
+
if (seconds < 10) {
|
|
297
|
+
seconds = "0".concat(seconds);
|
|
298
|
+
}
|
|
299
|
+
return "".concat(hours, ":").concat(minutes, ":").concat(seconds);
|
|
300
|
+
};
|
|
301
|
+
var formatDuration$1 = formatDuration;
|
|
302
|
+
|
|
285
303
|
var _excluded$1 = ["component"];
|
|
286
304
|
var getComponent = function getComponent(component) {
|
|
287
305
|
var _ref = isObject(component) ? component : {
|
|
@@ -566,6 +584,7 @@ exports.createNullableOnChange = createNullableOnChange$1;
|
|
|
566
584
|
exports.createUseEvent = createUseEvent$1;
|
|
567
585
|
exports.dashCase = paramCase;
|
|
568
586
|
exports.flattenComponents = flattenComponents$1;
|
|
587
|
+
exports.formatDuration = formatDuration$1;
|
|
569
588
|
exports.getColumnsWithFields = getColumnsWithFields$1;
|
|
570
589
|
exports.getComponent = getComponent$1;
|
|
571
590
|
exports.getComponentFromName = getComponentFromName$1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/core",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.130",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@babel/runtime": "^7.12.5",
|
|
83
|
-
"@folklore/fetch": "^0.1.
|
|
83
|
+
"@folklore/fetch": "^0.1.17",
|
|
84
84
|
"@folklore/forms": "^0.0.22",
|
|
85
85
|
"@folklore/routes": "^0.2.26",
|
|
86
86
|
"@folklore/services": "^0.1.24",
|
|
@@ -111,5 +111,5 @@
|
|
|
111
111
|
"publishConfig": {
|
|
112
112
|
"access": "public"
|
|
113
113
|
},
|
|
114
|
-
"gitHead": "
|
|
114
|
+
"gitHead": "e6070daacb45351ccbef67ae8006f1a293ca8e2b"
|
|
115
115
|
}
|