@panneau/app 2.0.68 → 2.0.70

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.
Files changed (3) hide show
  1. package/es/index.js +113 -565
  2. package/lib/index.js +76 -529
  3. package/package.json +30 -27
package/lib/index.js CHANGED
@@ -26,10 +26,8 @@ var isObject = require('lodash/isObject');
26
26
  var queryString = require('query-string');
27
27
  var reactIntl = require('react-intl');
28
28
  var hooks = require('@panneau/core/hooks');
29
- var utils = require('@panneau/core/utils');
29
+ var ResourceForm = require('@panneau/form-resource');
30
30
  var classNames = require('classnames');
31
- var Button = require('@panneau/element-button');
32
- var Form = require('@panneau/element-form');
33
31
  var elementModal = require('@panneau/element-modal');
34
32
  var isArray = require('lodash/isArray');
35
33
  var Menu = require('@panneau/element-menu');
@@ -37,12 +35,11 @@ var Navbar = require('@panneau/element-navbar');
37
35
  var Label = require('@panneau/element-label');
38
36
  var isString = require('lodash/isString');
39
37
  var Alert = require('@panneau/element-alert');
38
+ var Button = require('@panneau/element-button');
40
39
  var Dropdown = require('@panneau/element-dropdown');
41
- var Pagination = require('@panneau/element-pagination');
42
- var _toPropertyKey = require('@babel/runtime/helpers/toPropertyKey');
43
- var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
44
- var reactFontawesome = require('@fortawesome/react-fontawesome');
45
- var FormGroup = require('@panneau/element-form-group');
40
+ var ResourceList = require('@panneau/list-resource-items');
41
+ var utils = require('@panneau/core/utils');
42
+ var Filters = require('@panneau/filter-filters');
46
43
 
47
44
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
48
45
 
@@ -61,293 +58,33 @@ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_obje
61
58
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
62
59
  var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
63
60
  var queryString__default = /*#__PURE__*/_interopDefaultLegacy(queryString);
61
+ var ResourceForm__default = /*#__PURE__*/_interopDefaultLegacy(ResourceForm);
64
62
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
65
- var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
66
- var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
67
63
  var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
68
64
  var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
69
65
  var Navbar__default = /*#__PURE__*/_interopDefaultLegacy(Navbar);
70
66
  var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
71
67
  var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
72
68
  var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
69
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
73
70
  var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
74
- var Pagination__default = /*#__PURE__*/_interopDefaultLegacy(Pagination);
75
- var _toPropertyKey__default = /*#__PURE__*/_interopDefaultLegacy(_toPropertyKey);
76
- var FormGroup__default = /*#__PURE__*/_interopDefaultLegacy(FormGroup);
77
-
78
- var _excluded$6 = ["resource", "action", "previous", "status", "value", "onSubmit", "errors", "generalError", "className"];
79
- var propTypes$m = {
80
- resource: core.PropTypes.resource.isRequired,
81
- action: PropTypes__default["default"].string,
82
- previous: PropTypes__default["default"].string,
83
- fields: core.PropTypes.fields.isRequired,
84
- value: PropTypes__default["default"].object,
85
- // eslint-disable-line react/forbid-prop-types
86
- onChange: PropTypes__default["default"].func.isRequired,
87
- onSubmit: PropTypes__default["default"].func,
88
- status: core.PropTypes.formStatus,
89
- generalError: PropTypes__default["default"].string,
90
- errors: PropTypes__default["default"].objectOf(PropTypes__default["default"].arrayOf(PropTypes__default["default"].string)),
91
- className: PropTypes__default["default"].string
92
- };
93
- var defaultProps$m = {
94
- action: null,
95
- previous: null,
96
- status: null,
97
- value: null,
98
- onSubmit: null,
99
- generalError: null,
100
- errors: null,
101
- className: null
102
- };
103
- var DeleteForm = function DeleteForm(_ref) {
104
- var resource = _ref.resource,
105
- action = _ref.action,
106
- previous = _ref.previous;
107
- _ref.status;
108
- var value = _ref.value,
109
- onSubmit = _ref.onSubmit;
110
- _ref.errors;
111
- var generalError = _ref.generalError,
112
- className = _ref.className,
113
- props = _objectWithoutProperties__default["default"](_ref, _excluded$6);
114
- var _ref2 = value || {},
115
- _ref2$id = _ref2.id,
116
- id = _ref2$id === void 0 ? null : _ref2$id;
117
- var resourceValues = intl.useResourceValues(resource, {
118
- id: id
119
- });
120
- // const { text, background } = usePanneauColorScheme();
121
-
122
- return /*#__PURE__*/React__default["default"].createElement(Form__default["default"], Object.assign({
123
- className: classNames__default["default"](['form', _defineProperty__default["default"]({
124
- 'invalid-feedback': generalError !== null
125
- }, className, className !== null)]),
126
- action: action,
127
- onSubmit: onSubmit,
128
- withoutActions: true,
129
- withoutErrors: true
130
- }, props), /*#__PURE__*/React__default["default"].createElement("div", {
131
- className: classNames__default["default"](['card', _defineProperty__default["default"]({}, className, className !== null)])
132
- }, /*#__PURE__*/React__default["default"].createElement("div", {
133
- className: "card-body"
134
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
135
- values: resourceValues,
136
- id: "yzfiXJ",
137
- defaultMessage: [{
138
- "type": 0,
139
- "value": "Are you sure you want to delete "
140
- }, {
141
- "type": 1,
142
- "value": "the_singular"
143
- }, {
144
- "type": 0,
145
- "value": " #"
146
- }, {
147
- "type": 1,
148
- "value": "id"
149
- }, {
150
- "type": 0,
151
- "value": "?"
152
- }]
153
- }), generalError ? /*#__PURE__*/React__default["default"].createElement("p", {
154
- className: "text-danger"
155
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
156
- id: "y9zauY",
157
- defaultMessage: [{
158
- "type": 0,
159
- "value": "An error occured and we could not delete this item successfully."
160
- }]
161
- })) : null), /*#__PURE__*/React__default["default"].createElement("div", {
162
- className: "card-body d-flex"
163
- }, previous !== null ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
164
- href: previous,
165
- className: "me-2",
166
- theme: "secondary",
167
- outline: true
168
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
169
- id: "PyxZY2",
170
- defaultMessage: [{
171
- "type": 0,
172
- "value": "Cancel"
173
- }]
174
- })) : null, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
175
- type: "submit",
176
- className: "ms-auto",
177
- theme: "danger"
178
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
179
- id: "Bhu3B2",
180
- defaultMessage: [{
181
- "type": 0,
182
- "value": "Delete"
183
- }]
184
- })))));
185
- };
186
- DeleteForm.propTypes = propTypes$m;
187
- DeleteForm.defaultProps = defaultProps$m;
188
-
189
- var _excluded$5 = ["component", "resource", "onSuccess", "item", "type", "isDelete"];
190
- var propTypes$l = {
191
- component: PropTypes__default["default"].string,
192
- resource: core.PropTypes.resource.isRequired,
193
- item: PropTypes__default["default"].object,
194
- // eslint-disable-line react/forbid-prop-types
195
- type: PropTypes__default["default"].string,
196
- onSuccess: PropTypes__default["default"].func,
197
- isDelete: PropTypes__default["default"].bool
198
- };
199
- var defaultProps$l = {
200
- component: null,
201
- item: null,
202
- type: null,
203
- onSuccess: null,
204
- isDelete: false
205
- };
206
- var ResourceForm = function ResourceForm(_ref) {
207
- var component = _ref.component,
208
- resource = _ref.resource,
209
- onSuccess = _ref.onSuccess,
210
- item = _ref.item,
211
- type = _ref.type,
212
- isDelete = _ref.isDelete,
213
- props = _objectWithoutProperties__default["default"](_ref, _excluded$5);
214
- var locales = contexts.useLocales();
215
- var FormComponents = contexts.useFormsComponents();
216
- var _resource$fields = resource.fields,
217
- resourceFields = _resource$fields === void 0 ? [] : _resource$fields,
218
- _resource$types = resource.types,
219
- resourceTypes = _resource$types === void 0 ? [] : _resource$types,
220
- forms = resource.forms;
221
- var resourceType = type !== null ? resourceTypes.find(function (it) {
222
- return it.id === type;
223
- }) || null : null;
224
- var _ref2 = resourceType || {},
225
- _ref2$fields = _ref2.fields,
226
- resourceTypeFields = _ref2$fields === void 0 ? null : _ref2$fields;
227
- var isCreate = item === null || !item.id;
228
-
229
- // Pick fields from resource root or form
230
- var _ref3 = forms || {},
231
- _ref3$default = _ref3["default"],
232
- defaultForm = _ref3$default === void 0 ? null : _ref3$default,
233
- _ref3$create = _ref3.create,
234
- createForm = _ref3$create === void 0 ? null : _ref3$create,
235
- _ref3$edit = _ref3.edit,
236
- editForm = _ref3$edit === void 0 ? null : _ref3$edit,
237
- _ref3$delete = _ref3["delete"],
238
- deleteForm = _ref3$delete === void 0 ? null : _ref3$delete;
239
- var _ref4 = defaultForm || {},
240
- _ref4$fields = _ref4.fields,
241
- defaultFields = _ref4$fields === void 0 ? null : _ref4$fields,
242
- defaultComponent = _ref4.component;
243
- var createOrEditSource = isCreate ? createForm || {} : editForm || {};
244
- var _ref5 = isDelete ? deleteForm || {} : createOrEditSource || {},
245
- _ref5$fields = _ref5.fields,
246
- formFields = _ref5$fields === void 0 ? null : _ref5$fields,
247
- _ref5$component = _ref5.component,
248
- formComponent = _ref5$component === void 0 ? null : _ref5$component;
249
- var finalFields = React.useMemo(function () {
250
- return (formFields || defaultFields || resourceTypeFields || resourceFields).filter(function (_ref6) {
251
- var _ref6$settings = _ref6.settings,
252
- _ref6$settings2 = _ref6$settings === void 0 ? {} : _ref6$settings,
253
- _ref6$settings2$hidde = _ref6$settings2.hiddenInForm,
254
- hiddenInForm = _ref6$settings2$hidde === void 0 ? false : _ref6$settings2$hidde;
255
- return !hiddenInForm;
256
- });
257
- }, [formFields, defaultFields, resourceTypeFields, resourceFields]);
258
-
259
- // Form routes
260
- var resourceRoute = hooks.useResourceUrlGenerator(resource);
261
- var _useResourceStore = data.useResourceStore(resource),
262
- store = _useResourceStore.store;
263
- var _useResourceUpdate = data.useResourceUpdate(resource, item != null ? item.id : null),
264
- update = _useResourceUpdate.update;
265
- var _useResourceDestroy = data.useResourceDestroy(resource, item != null ? item.id : null),
266
- destroy = _useResourceDestroy.destroy;
267
-
268
- // Post actions
269
- var postAction = isCreate ? store : update;
270
- var postForm = React.useCallback(function (action, data) {
271
- return isDelete ? destroy() : postAction(data);
272
- }, [postAction, isDelete, destroy, store, update]);
273
-
274
- // Form state
275
- var getInitialValue = React.useCallback(function () {
276
- return item !== null ? item : finalFields.reduce(function (defaultValues, _ref7) {
277
- var name = _ref7.name,
278
- _ref7$defaultValue = _ref7.defaultValue,
279
- defaultValue = _ref7$defaultValue === void 0 ? null : _ref7$defaultValue;
280
- return defaultValue !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, defaultValues), {}, _defineProperty__default["default"]({}, name, defaultValue)) : defaultValues;
281
- }, type !== null ? {
282
- type: type
283
- } : null);
284
- }, [item, type, finalFields]);
285
- var _useState = React.useState(getInitialValue()),
286
- _useState2 = _slicedToArray__default["default"](_useState, 2),
287
- value = _useState2[0],
288
- setValueState = _useState2[1];
289
- var setValue = React.useCallback(function (newValue) {
290
- // console.log('new value in resource form', newValue); // eslint-disable-line
291
- setValueState(newValue);
292
- }, [setValueState]);
293
- var _useForm = hooks.useForm({
294
- fields: finalFields,
295
- value: value,
296
- postForm: postForm,
297
- setValue: setValue,
298
- onComplete: onSuccess,
299
- locales: locales
300
- }),
301
- fields = _useForm.fields,
302
- onSubmit = _useForm.onSubmit,
303
- status = _useForm.status,
304
- generalError = _useForm.generalError,
305
- errors = _useForm.errors;
306
-
307
- // Form action
308
- var modifyAction = isCreate ? resourceRoute('store') : resourceRoute('update', {
309
- id: item.id
310
- });
311
- var action = isDelete ? resourceRoute('destroy', {
312
- id: item.id
313
- }) : modifyAction;
314
- var defaultFormName = isDelete ? component || formComponent || null : component || formComponent || defaultComponent || 'normal';
71
+ var ResourceList__default = /*#__PURE__*/_interopDefaultLegacy(ResourceList);
72
+ var Filters__default = /*#__PURE__*/_interopDefaultLegacy(Filters);
315
73
 
316
- // Form component
317
- var FormComponent = utils.getComponentFromName(defaultFormName, FormComponents, isDelete ? DeleteForm : component);
74
+ /* eslint-disable react/jsx-props-no-spreading */
318
75
 
319
- // Lisen to item value change - this is important
320
- React.useEffect(function () {
321
- // console.log('get initial value from the top'); // eslint-disable-line
322
- setValue(getInitialValue());
323
- }, [getInitialValue, setValue]);
324
- return /*#__PURE__*/React__default["default"].createElement(contexts.FormProvider, {
325
- value: value,
326
- setValue: setValue
327
- }, /*#__PURE__*/React__default["default"].createElement(FormComponent, Object.assign({}, props, {
328
- status: status,
329
- resource: resource,
330
- item: item,
331
- fields: fields,
332
- generalError: generalError,
333
- errors: errors,
334
- action: action,
335
- onSubmit: onSubmit,
336
- isCreate: isCreate,
337
- value: value,
338
- onChange: setValue
339
- })));
76
+ // Kept for backward compatibility with exports
77
+ var ResourceFormWrapper = function ResourceFormWrapper(props) {
78
+ return /*#__PURE__*/React__default["default"].createElement(ResourceForm__default["default"], props);
340
79
  };
341
- ResourceForm.propTypes = propTypes$l;
342
- ResourceForm.defaultProps = defaultProps$l;
343
80
 
344
- var propTypes$k = {
81
+ var propTypes$j = {
345
82
  withAccountForm: PropTypes__default["default"].bool,
346
83
  className: PropTypes__default["default"].string,
347
84
  itemClassName: PropTypes__default["default"].string,
348
85
  linkClassName: PropTypes__default["default"].string
349
86
  };
350
- var defaultProps$k = {
87
+ var defaultProps$i = {
351
88
  withAccountForm: false,
352
89
  className: null,
353
90
  itemClassName: null,
@@ -415,15 +152,15 @@ var AccountMenu = function AccountMenu(_ref) {
415
152
  dropdownAlign: "end"
416
153
  }) : null;
417
154
  };
418
- AccountMenu.propTypes = propTypes$k;
419
- AccountMenu.defaultProps = defaultProps$k;
155
+ AccountMenu.propTypes = propTypes$j;
156
+ AccountMenu.defaultProps = defaultProps$i;
420
157
 
421
- var propTypes$j = {
158
+ var propTypes$i = {
422
159
  className: PropTypes__default["default"].string,
423
160
  itemClassName: PropTypes__default["default"].string,
424
161
  linkClassName: PropTypes__default["default"].string
425
162
  };
426
- var defaultProps$j = {
163
+ var defaultProps$h = {
427
164
  className: null,
428
165
  itemClassName: null,
429
166
  linkClassName: null
@@ -460,11 +197,11 @@ var ResourcesMenu = function ResourcesMenu(_ref) {
460
197
  linkClassName: linkClassName
461
198
  });
462
199
  };
463
- ResourcesMenu.propTypes = propTypes$j;
464
- ResourcesMenu.defaultProps = defaultProps$j;
200
+ ResourcesMenu.propTypes = propTypes$i;
201
+ ResourcesMenu.defaultProps = defaultProps$h;
465
202
 
466
- var propTypes$i = {};
467
- var defaultProps$i = {};
203
+ var propTypes$h = {};
204
+ var defaultProps$g = {};
468
205
  var MainNavbar = function MainNavbar(props) {
469
206
  var _usePanneau = contexts.usePanneau(),
470
207
  name = _usePanneau.name,
@@ -527,16 +264,16 @@ var MainNavbar = function MainNavbar(props) {
527
264
  className: "navbar-brand"
528
265
  }, name) : null, items);
529
266
  };
530
- MainNavbar.propTypes = propTypes$i;
531
- MainNavbar.defaultProps = defaultProps$i;
267
+ MainNavbar.propTypes = propTypes$h;
268
+ MainNavbar.defaultProps = defaultProps$g;
532
269
 
533
270
  var styles$1 = {};
534
271
 
535
- var propTypes$h = {
272
+ var propTypes$g = {
536
273
  children: PropTypes__default["default"].node.isRequired,
537
274
  fullscreen: PropTypes__default["default"].bool
538
275
  };
539
- var defaultProps$h = {
276
+ var defaultProps$f = {
540
277
  fullscreen: false
541
278
  };
542
279
  var MainLayout = function MainLayout(_ref) {
@@ -561,17 +298,17 @@ var MainLayout = function MainLayout(_ref) {
561
298
  }, _defineProperty__default["default"](_ref2, "bg-".concat(background), background !== null), _defineProperty__default["default"](_ref2, "text-".concat(text), text !== null), _ref2)])
562
299
  }, children), /*#__PURE__*/React__default["default"].createElement(elementModal.Modals, null));
563
300
  };
564
- MainLayout.propTypes = propTypes$h;
565
- MainLayout.defaultProps = defaultProps$h;
301
+ MainLayout.propTypes = propTypes$g;
302
+ MainLayout.defaultProps = defaultProps$f;
566
303
 
567
- var propTypes$g = {
304
+ var propTypes$f = {
568
305
  title: core.PropTypes.label,
569
306
  actions: PropTypes__default["default"].node,
570
307
  small: PropTypes__default["default"].bool,
571
308
  className: PropTypes__default["default"].string,
572
309
  children: PropTypes__default["default"].node
573
310
  };
574
- var defaultProps$g = {
311
+ var defaultProps$e = {
575
312
  title: null,
576
313
  actions: null,
577
314
  small: false,
@@ -608,13 +345,13 @@ var PageHeader = function PageHeader(_ref) {
608
345
  className: "col-12 col-md-8 col-lg-7"
609
346
  }, inner)) : inner), children);
610
347
  };
611
- PageHeader.propTypes = propTypes$g;
612
- PageHeader.defaultProps = defaultProps$g;
348
+ PageHeader.propTypes = propTypes$f;
349
+ PageHeader.defaultProps = defaultProps$e;
613
350
 
614
- var propTypes$f = {
351
+ var propTypes$e = {
615
352
  resource: core.PropTypes.resource.isRequired
616
353
  };
617
- var defaultProps$f = {};
354
+ var defaultProps$d = {};
618
355
  var ResourceCreatePage = function ResourceCreatePage(_ref) {
619
356
  var resource = _ref.resource;
620
357
  var navigate = reactRouter.useNavigate();
@@ -651,20 +388,20 @@ var ResourceCreatePage = function ResourceCreatePage(_ref) {
651
388
  className: "row justify-content-center"
652
389
  }, /*#__PURE__*/React__default["default"].createElement("div", {
653
390
  className: "col-12 col-md-8 col-lg-7"
654
- }, /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
391
+ }, /*#__PURE__*/React__default["default"].createElement(ResourceFormWrapper, {
655
392
  resource: resource,
656
393
  type: type,
657
394
  onSuccess: onSuccess
658
395
  }))))));
659
396
  };
660
- ResourceCreatePage.propTypes = propTypes$f;
661
- ResourceCreatePage.defaultProps = defaultProps$f;
397
+ ResourceCreatePage.propTypes = propTypes$e;
398
+ ResourceCreatePage.defaultProps = defaultProps$d;
662
399
 
663
400
  // import PropTypes from 'prop-types';
664
- var propTypes$e = {
401
+ var propTypes$d = {
665
402
  resource: core.PropTypes.resource.isRequired
666
403
  };
667
- var defaultProps$e = {};
404
+ var defaultProps$c = {};
668
405
  var ResourceDeletePage = function ResourceDeletePage(_ref) {
669
406
  var resource = _ref.resource;
670
407
  var _useParams = reactRouter.useParams(),
@@ -698,20 +435,20 @@ var ResourceDeletePage = function ResourceDeletePage(_ref) {
698
435
  className: "row justify-content-center"
699
436
  }, /*#__PURE__*/React__default["default"].createElement("div", {
700
437
  className: "col-12 col-md-8 col-lg-7"
701
- }, item !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
438
+ }, item !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFormWrapper, {
702
439
  resource: resource,
703
440
  item: item,
704
441
  onSuccess: onSuccess,
705
442
  isDelete: true
706
443
  }) : null)))));
707
444
  };
708
- ResourceDeletePage.propTypes = propTypes$e;
709
- ResourceDeletePage.defaultProps = defaultProps$e;
445
+ ResourceDeletePage.propTypes = propTypes$d;
446
+ ResourceDeletePage.defaultProps = defaultProps$c;
710
447
 
711
- var propTypes$d = {
448
+ var propTypes$c = {
712
449
  resource: core.PropTypes.resource.isRequired
713
450
  };
714
- var defaultProps$d = {};
451
+ var defaultProps$b = {};
715
452
  var ResourceEditPage = function ResourceEditPage(_ref) {
716
453
  var resource = _ref.resource;
717
454
  var _useParams = reactRouter.useParams(),
@@ -753,21 +490,21 @@ var ResourceEditPage = function ResourceEditPage(_ref) {
753
490
  className: "row justify-content-center"
754
491
  }, /*#__PURE__*/React__default["default"].createElement("div", {
755
492
  className: "col-12 col-md-8 col-lg-7"
756
- }, editItem !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
493
+ }, editItem !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFormWrapper, {
757
494
  resource: resource,
758
495
  item: editItem,
759
496
  type: type,
760
497
  onSuccess: onSuccess
761
498
  }) : null)))));
762
499
  };
763
- ResourceEditPage.propTypes = propTypes$d;
764
- ResourceEditPage.defaultProps = defaultProps$d;
500
+ ResourceEditPage.propTypes = propTypes$c;
501
+ ResourceEditPage.defaultProps = defaultProps$b;
765
502
 
766
- var propTypes$c = {
503
+ var propTypes$b = {
767
504
  resource: core.PropTypes.resource.isRequired,
768
505
  className: PropTypes__default["default"].string
769
506
  };
770
- var defaultProps$c = {
507
+ var defaultProps$a = {
771
508
  className: null
772
509
  };
773
510
  var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
@@ -836,227 +573,30 @@ var ResourceCreateButtom = function ResourceCreateButtom(_ref) {
836
573
  onClickOutside: onDropdownClickOutside
837
574
  })) : button;
838
575
  };
839
- ResourceCreateButtom.propTypes = propTypes$c;
840
- ResourceCreateButtom.defaultProps = defaultProps$c;
576
+ ResourceCreateButtom.propTypes = propTypes$b;
577
+ ResourceCreateButtom.defaultProps = defaultProps$a;
841
578
 
842
- var _excluded$4 = ["component", "name", "groupLabel"];
843
- var propTypes$b = {
844
- filters: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({
845
- id: PropTypes__default["default"].string,
846
- component: PropTypes__default["default"].string.isRequired
847
- })),
848
- value: PropTypes__default["default"].object,
849
- // eslint-disable-line react/forbid-prop-types
850
- onChange: PropTypes__default["default"].func,
851
- onReset: PropTypes__default["default"].func,
852
- withContainer: PropTypes__default["default"].bool,
853
- withReset: PropTypes__default["default"].bool,
854
- defaultValue: PropTypes__default["default"].objectOf(PropTypes__default["default"].object),
855
- // eslint-disable-line react/forbid-prop-types
856
- className: PropTypes__default["default"].string
857
- };
858
- var defaultProps$b = {
859
- filters: [],
860
- value: null,
861
- onChange: null,
862
- onReset: null,
863
- withContainer: false,
864
- withReset: true,
865
- defaultValue: {
866
- page: null
867
- },
868
- className: null
869
- };
870
- var ResourceFilters = function ResourceFilters(_ref) {
871
- var filters = _ref.filters,
872
- value = _ref.value,
873
- onChange = _ref.onChange,
874
- onReset = _ref.onReset,
875
- withContainer = _ref.withContainer,
876
- withReset = _ref.withReset,
877
- defaultValue = _ref.defaultValue,
878
- className = _ref.className;
879
- var FilterComponents = contexts.useFiltersComponents();
880
- var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
881
- background = _usePanneauColorSchem.background;
882
- var currentFilters = filters || [];
883
- var onFiltersReset = React.useCallback(function () {
884
- if (onReset !== null) {
885
- onReset(null);
886
- }
887
- }, [onReset]);
888
- var hasActiveFilter = (currentFilters || []).reduce(function (isActive, item) {
889
- if (value !== null && value[item.name]) {
890
- return true;
891
- }
892
- return isActive;
893
- }, false);
894
- var onFilterChange = React.useCallback(function (name, newFilterValue) {
895
- if (name !== null && onChange !== null) {
896
- onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, value), {}, _defineProperty__default["default"]({}, name, newFilterValue), defaultValue));
897
- }
898
- }, [onChange, value, defaultValue]);
899
- var onFilterClear = React.useCallback(function (name) {
900
- if (name !== null && onChange !== null) {
901
- var _ref2 = value || {};
902
- _ref2[name];
903
- var newValue = _objectWithoutProperties__default["default"](_ref2, [name].map(_toPropertyKey__default["default"]));
904
- onChange(_objectSpread__default["default"](_objectSpread__default["default"]({}, newValue), defaultValue));
905
- }
906
- }, [onChange, value, defaultValue]);
907
- return /*#__PURE__*/React__default["default"].createElement(Navbar__default["default"], {
908
- className: classNames__default["default"]([_defineProperty__default["default"]({
909
- 'navbar-expand-md': withContainer
910
- }, className, className !== null), 'justify-content-start', 'align-items-start', 'flex-column', 'flex-md-row']),
911
- theme: background,
912
- withoutCollapse: true
913
- }, currentFilters.map(function (_ref4, index) {
914
- var component = _ref4.component,
915
- name = _ref4.name,
916
- groupLabel = _ref4.groupLabel,
917
- filterProps = _objectWithoutProperties__default["default"](_ref4, _excluded$4);
918
- var FilterComponent = utils.getComponentFromName(component, FilterComponents, null);
919
- var filterValue = value !== null && value[name] ? value[name] : null;
920
- return FilterComponent !== null ? /*#__PURE__*/React__default["default"].createElement(FormGroup__default["default"], {
921
- key: "filter-".concat(name, "-").concat(index + 1),
922
- label: groupLabel,
923
- className: "mb-3 me-3"
924
- }, /*#__PURE__*/React__default["default"].createElement(FilterComponent, Object.assign({}, filterProps, {
925
- value: filterValue,
926
- onChange: function onChange(newValue) {
927
- return onFilterChange(name, newValue);
928
- },
929
- onClear: function onClear() {
930
- return onFilterClear(name);
931
- }
932
- }))) : null;
933
- }), withReset && hasActiveFilter && currentFilters.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
934
- theme: "primary",
935
- onClick: onFiltersReset
936
- }, /*#__PURE__*/React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, {
937
- icon: freeSolidSvgIcons.faUndo
938
- })) : null);
939
- };
940
- ResourceFilters.propTypes = propTypes$b;
941
- ResourceFilters.defaultProps = defaultProps$b;
942
-
943
- var _excluded$3 = ["component", "showPagination", "filters", "actions"],
944
- _excluded2$1 = ["page"];
579
+ var _excluded$3 = ["resource"];
945
580
  var propTypes$a = {
946
- resource: core.PropTypes.resource.isRequired,
947
- query: PropTypes__default["default"].object,
948
- // eslint-disable-line react/forbid-prop-types
949
- paginated: PropTypes__default["default"].bool,
950
- baseUrl: PropTypes__default["default"].string,
951
- component: PropTypes__default["default"].oneOfType([PropTypes__default["default"].elementType, PropTypes__default["default"].string]),
952
- componentProps: PropTypes__default["default"].object,
953
- // eslint-disable-line react/forbid-prop-types
954
- onQueryChange: PropTypes__default["default"].func,
955
- onQueryReset: PropTypes__default["default"].func,
956
- onClickPage: PropTypes__default["default"].func,
957
- showFilters: PropTypes__default["default"].bool,
958
- listProps: PropTypes__default["default"].shape({})
959
- };
960
- var defaultProps$a = {
961
- query: null,
962
- paginated: true,
963
- component: null,
964
- baseUrl: null,
965
- componentProps: null,
966
- onQueryChange: null,
967
- onQueryReset: null,
968
- onClickPage: null,
969
- showFilters: true,
970
- listProps: null
581
+ resource: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].shape({
582
+ id: PropTypes__default["default"].string
583
+ })]).isRequired
971
584
  };
585
+
586
+ // Kept for backward compatibility with exports
972
587
  var ResourceItemsList = function ResourceItemsList(_ref) {
973
588
  var resource = _ref.resource,
974
- query = _ref.query,
975
- baseUrl = _ref.baseUrl,
976
- onQueryChange = _ref.onQueryChange,
977
- onQueryReset = _ref.onQueryReset,
978
- onClickPage = _ref.onClickPage,
979
- paginated = _ref.paginated,
980
- showFilters = _ref.showFilters,
981
- customListProps = _ref.listProps;
982
- var _resource$index = resource.index,
983
- _resource$index2 = _resource$index === void 0 ? {} : _resource$index,
984
- _resource$index2$comp = _resource$index2.component,
985
- listComponent = _resource$index2$comp === void 0 ? null : _resource$index2$comp,
986
- _resource$index2$show = _resource$index2.showPagination,
987
- showPagination = _resource$index2$show === void 0 ? true : _resource$index2$show,
988
- _resource$index2$filt = _resource$index2.filters,
989
- filters = _resource$index2$filt === void 0 ? null : _resource$index2$filt;
990
- _resource$index2.actions;
991
- var listProps = _objectWithoutProperties__default["default"](_resource$index2, _excluded$3);
992
- var _usePanneauColorSchem = contexts.usePanneauColorScheme(),
993
- _usePanneauColorSchem2 = _usePanneauColorSchem.background,
994
- theme = _usePanneauColorSchem2 === void 0 ? null : _usePanneauColorSchem2;
995
- var ListComponents = contexts.useListsComponents();
996
- var _useMemo = React.useMemo(function () {
997
- var _ref2 = query || {},
998
- _ref2$page = _ref2.page,
999
- currentPage = _ref2$page === void 0 ? 1 : _ref2$page,
1000
- rest = _objectWithoutProperties__default["default"](_ref2, _excluded2$1);
1001
- return [currentPage, rest];
1002
- }, [query]),
1003
- _useMemo2 = _slicedToArray__default["default"](_useMemo, 2),
1004
- page = _useMemo2[0],
1005
- queryWithoutPage = _useMemo2[1];
1006
- var itemsProps = data.useResourceItems(resource, queryWithoutPage, paginated ? parseInt(page, 10) : null);
1007
- var _ref3 = itemsProps || {},
1008
- _ref3$loaded = _ref3.loaded,
1009
- loaded = _ref3$loaded === void 0 ? false : _ref3$loaded,
1010
- _ref3$loading = _ref3.loading,
1011
- loading = _ref3$loading === void 0 ? false : _ref3$loading,
1012
- _ref3$lastPage = _ref3.lastPage,
1013
- lastPage = _ref3$lastPage === void 0 ? 0 : _ref3$lastPage,
1014
- _ref3$total = _ref3.total,
1015
- total = _ref3$total === void 0 ? 0 : _ref3$total;
1016
- var finalEmpty = loaded && !loading && total === 0;
1017
- var ListComponent = utils.getComponentFromName(listComponent || 'table', ListComponents);
1018
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, showFilters && filters !== null ? /*#__PURE__*/React__default["default"].createElement(ResourceFilters, {
1019
- filters: filters,
1020
- value: query,
1021
- onChange: onQueryChange,
1022
- onReset: onQueryReset
1023
- }) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
1024
- page: page,
1025
- lastPage: lastPage,
1026
- total: total,
1027
- url: baseUrl,
1028
- query: query,
1029
- onClickPage: onClickPage,
1030
- className: "mt-1 mb-1"
1031
- }) : null, ListComponent !== null ? /*#__PURE__*/React__default["default"].createElement(ListComponent, Object.assign({}, itemsProps, listProps, {
1032
- resource: resource,
1033
- baseUrl: baseUrl,
1034
- query: query,
1035
- onQueryChange: onQueryChange,
1036
- onQueryReset: onQueryReset,
1037
- theme: theme,
1038
- showEmptyLabel: finalEmpty,
1039
- emptyLabel: /*#__PURE__*/React__default["default"].createElement("p", {
1040
- className: "my-2"
1041
- }, /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, {
1042
- id: "WgIC2T",
1043
- defaultMessage: [{
1044
- "type": 0,
1045
- "value": "No results found"
1046
- }]
1047
- }))
1048
- }, customListProps)) : null, paginated && showPagination ? /*#__PURE__*/React__default["default"].createElement(Pagination__default["default"], {
1049
- page: page,
1050
- lastPage: lastPage,
1051
- total: total,
1052
- url: baseUrl,
1053
- query: query,
1054
- onClickPage: onClickPage,
1055
- className: "mt-4 mb-1"
1056
- }) : null);
589
+ props = _objectWithoutProperties__default["default"](_ref, _excluded$3);
590
+ var _ref2 = isObject__default["default"](resource) ? resource : {
591
+ id: resource
592
+ },
593
+ _ref2$id = _ref2.id,
594
+ finalResource = _ref2$id === void 0 ? null : _ref2$id;
595
+ return /*#__PURE__*/React__default["default"].createElement(ResourceList__default["default"], Object.assign({
596
+ resource: finalResource
597
+ }, props));
1057
598
  };
1058
599
  ResourceItemsList.propTypes = propTypes$a;
1059
- ResourceItemsList.defaultProps = defaultProps$a;
1060
600
 
1061
601
  var _excluded$2 = ["id", "component"];
1062
602
  var propTypes$9 = {
@@ -1218,7 +758,7 @@ var ResourceShowPage = function ResourceShowPage(_ref) {
1218
758
  className: "row justify-content-center"
1219
759
  }, /*#__PURE__*/React__default["default"].createElement("div", {
1220
760
  className: "col-12 col-md-8 col-lg-7"
1221
- }, /*#__PURE__*/React__default["default"].createElement(ResourceForm, {
761
+ }, /*#__PURE__*/React__default["default"].createElement(ResourceFormWrapper, {
1222
762
  resource: resource,
1223
763
  item: item,
1224
764
  type: type,
@@ -1847,10 +1387,17 @@ var Container = function Container(_ref) {
1847
1387
  Container.propTypes = propTypes;
1848
1388
  Container.defaultProps = defaultProps;
1849
1389
 
1390
+ /* eslint-disable react/jsx-props-no-spreading */
1391
+
1392
+ // Kept for backward compatibility with exports
1393
+ var ResourceFilters = function ResourceFilters(props) {
1394
+ return /*#__PURE__*/React__default["default"].createElement(Filters__default["default"], props);
1395
+ };
1396
+
1850
1397
  exports.GuestLayout = GuestLayout;
1851
1398
  exports.MainLayout = MainLayout;
1852
1399
  exports.PageHeader = PageHeader;
1853
1400
  exports.ResourceFilters = ResourceFilters;
1854
- exports.ResourceForm = ResourceForm;
1401
+ exports.ResourceForm = ResourceFormWrapper;
1855
1402
  exports.ResourceItemsList = ResourceItemsList;
1856
1403
  exports["default"] = Container;