@panneau/core 3.0.119 → 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 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 useResourceQuery = function useResourceQuery() {
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
- if (forceInitialQuery) {
985
- setQuery(_objectSpread(_objectSpread({}, initialBaseQuery || null), finalQuery || null));
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 useResourceQuery$1 = useResourceQuery;
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
- export { getObserver, useAnimationFrame$1 as useAnimationFrame, useDocumentEvent$1 as useDocumentEvent, useForm$1 as useForm, useFormattedDate, useFormattedTime, useIntersectionObserver, useIsVisible$1 as useIsVisible, useLoadedFonts$1 as useLoadedFonts, useMediaApi$1 as useMediaApi, useMediasParser$1 as useMediasParser, useObserver, useResizeObserver, useResourceQuery$1 as useResourceQuery, useResourceTypeName$1 as useResourceTypeName, useResourceUrlGenerator$1 as useResourceUrlGenerator, useScreenSizeFromElement, useScreenSizeFromWindow, useWindowEvent$1 as useWindowEvent };
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,60 +161,74 @@ 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,
169
- message: message,
170
- label: label,
171
- statusCode: statusCode,
172
- menuItem: menuItem,
173
- menuItems: menuItems,
179
+ breadcrumb: breadcrumb,
180
+ breadcrumbs: breadcrumbs,
174
181
  button: button,
175
- buttons: buttons,
176
- buttonTheme: buttonTheme,
177
182
  buttonSize: buttonSize,
183
+ buttonTheme: buttonTheme,
178
184
  buttonType: buttonType,
179
- dropdownAlign: dropdownAlign,
185
+ buttons: buttons,
180
186
  controlSize: controlSize,
181
- formStatus: formStatus,
187
+ definition: definition,
188
+ dropdownAlign: dropdownAlign,
189
+ feedback: feedback,
190
+ field: field,
182
191
  fieldOption: fieldOption,
183
192
  fieldOptions: fieldOptions,
184
- toggle: toggle,
185
- toggles: toggles,
186
- tableColumn: tableColumn,
187
- tableColumns: tableColumns,
188
- routes: routes,
189
- intl: intl,
190
- page: page,
191
- pages: pages,
192
- field: field,
193
193
  fields: fields,
194
+ filter: filter,
195
+ filters: filters,
196
+ font: font,
197
+ fonts: fonts,
194
198
  form: form,
199
+ formError: formError,
200
+ formErrors: formErrors,
201
+ formStatus: formStatus,
195
202
  forms: forms,
196
- resource: resource,
197
- resources: resources,
198
- panneauDefinition: panneauDefinition,
199
- definition: definition,
203
+ intl: intl,
200
204
  item: item,
201
205
  items: items,
202
- user: user,
203
- users: users,
206
+ label: label,
207
+ media: media,
208
+ medias: medias,
209
+ menuItem: menuItem,
210
+ menuItems: menuItems,
211
+ message: message,
212
+ modal: modal,
213
+ modals: modals,
214
+ page: page,
215
+ pages: pages,
216
+ panneauDefinition: panneauDefinition,
217
+ resource: resource,
218
+ resources: resources,
219
+ routes: routes,
204
220
  selectOption: selectOption,
205
221
  selectOptions: selectOptions,
206
- feedback: feedback,
207
- formError: formError,
208
- formErrors: formErrors,
209
- uppy: uppy,
210
- triggerUpdate: triggerUpdate,
211
- breadcrumb: breadcrumb,
212
- breadcrumbs: breadcrumbs,
213
- font: font,
214
- fonts: fonts,
222
+ statusCode: statusCode,
223
+ tableColumn: tableColumn,
224
+ tableColumns: tableColumns,
225
+ toggle: toggle,
226
+ toggles: toggles,
215
227
  trackingVariables: trackingVariables,
216
- modal: modal,
217
- modals: modals
228
+ triggerUpdate: triggerUpdate,
229
+ uppy: uppy,
230
+ user: user,
231
+ users: users
218
232
  });
219
233
 
220
234
  var flattenComponents = function flattenComponents(components) {
@@ -226,7 +240,6 @@ var flattenComponents = function flattenComponents(components) {
226
240
  return ReactIs.isValidElementType(components[key]) ? _objectSpread(_objectSpread({}, newMap), {}, _defineProperty({}, prefix !== null ? "".concat(prefix, ".").concat(key) : key, components[key])) : _objectSpread(_objectSpread({}, newMap), flattenComponents(components[key], key));
227
241
  }, {});
228
242
  };
229
- var flattenComponents$1 = flattenComponents;
230
243
 
231
244
  var getComponentFromName = function getComponentFromName() {
232
245
  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
@@ -243,13 +256,12 @@ var getComponentFromName = function getComponentFromName() {
243
256
  }
244
257
  return component;
245
258
  };
246
- var getComponentFromName$1 = getComponentFromName;
247
259
 
248
260
  var ComponentsManager = /*#__PURE__*/function () {
249
261
  function ComponentsManager() {
250
262
  var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
251
263
  _classCallCheck(this, ComponentsManager);
252
- this.components = flattenComponents$1(components);
264
+ this.components = flattenComponents(components);
253
265
  }
254
266
  _createClass(ComponentsManager, [{
255
267
  key: "addComponent",
@@ -290,7 +302,7 @@ var ComponentsManager = /*#__PURE__*/function () {
290
302
  value: function getComponent(name) {
291
303
  var namespace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
292
304
  var components = this.getComponents(namespace);
293
- return getComponentFromName$1(name, components);
305
+ return getComponentFromName(name, components);
294
306
  }
295
307
  }, {
296
308
  key: "getComponents",
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 };