@panneau/core 1.0.0-y.0 → 1.0.3-alpha.1

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
@@ -13,7 +13,7 @@ import { loadGoogleApi, loadGoogleMaps } from '@folklore/services';
13
13
  import { useIntl } from 'react-intl';
14
14
  import { getDisplayName } from '@panneau/core/utils';
15
15
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
16
- import { generatePath, useHistory } from 'react-router';
16
+ import { generatePath, useNavigate } from 'react-router';
17
17
  import { TrackingContext, TrackingContainer } from '@folklore/tracking';
18
18
  export { TrackingContext } from '@folklore/tracking';
19
19
  import { v1 } from 'uuid';
@@ -24,6 +24,7 @@ var FORMS_NAMESPACE = 'forms';
24
24
  var FILTERS_NAMESPACE = 'filters';
25
25
  var LISTS_NAMESPACE = 'lists';
26
26
  var DISPLAYS_NAMESPACE = 'displays';
27
+ var PAGES_NAMESPACE = 'pages';
27
28
  var APP_NAMESPACE = 'app';
28
29
  var ComponentsContext = /*#__PURE__*/React.createContext(null);
29
30
  /**
@@ -147,6 +148,21 @@ var useDisplayComponent = function useDisplayComponent(name) {
147
148
  var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
148
149
  return useComponent(name, defaultComponent, DISPLAYS_NAMESPACE);
149
150
  };
151
+ /**
152
+ * Pages hooks
153
+ */
154
+
155
+ var usePagesComponentsManager = function usePagesComponentsManager() {
156
+ return useComponentsManager(PAGES_NAMESPACE);
157
+ };
158
+ var usePagesComponents = function usePagesComponents() {
159
+ var defaultComponents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
160
+ return useComponents(PAGES_NAMESPACE, defaultComponents);
161
+ };
162
+ var usePageComponent = function usePageComponent(name) {
163
+ var defaultComponent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
164
+ return useComponent(name, defaultComponent, PAGES_NAMESPACE);
165
+ };
150
166
  /**
151
167
  * App hooks
152
168
  */
@@ -233,6 +249,14 @@ var toggle = PropTypes.shape({
233
249
  label: PropTypes.string
234
250
  });
235
251
  PropTypes.arrayOf(toggle);
252
+ var tableColumn = PropTypes.shape({
253
+ id: PropTypes.string,
254
+ component: PropTypes.string,
255
+ path: PropTypes.string,
256
+ field: PropTypes.string,
257
+ columnClassName: PropTypes.string
258
+ });
259
+ PropTypes.arrayOf(tableColumn);
236
260
  /**
237
261
  * Panneau Definitions
238
262
  */
@@ -244,6 +268,7 @@ var routes = PropTypes.shape({
244
268
  'resources.show': PropTypes.string.isRequired,
245
269
  'resources.edit': PropTypes.string.isRequired,
246
270
  'resources.update': PropTypes.string.isRequired,
271
+ 'resources.delete': PropTypes.string.isRequired,
247
272
  'resources.destroy': PropTypes.string.isRequired
248
273
  });
249
274
  var intl = PropTypes.shape({
@@ -256,10 +281,10 @@ var page = PropTypes.shape({
256
281
  });
257
282
  var pages = PropTypes.objectOf(page);
258
283
  var field = PropTypes.shape({
259
- // type: PropTypes.string.isRequired,
260
- name: PropTypes.isRequired,
261
- component: PropTypes.string.isRequired,
262
- label: PropTypes.isRequired
284
+ name: PropTypes.string.isRequired,
285
+ type: PropTypes.string,
286
+ component: PropTypes.string,
287
+ label: PropTypes.node
263
288
  });
264
289
  var fields = PropTypes.arrayOf(field);
265
290
  var form = PropTypes.shape({
@@ -270,11 +295,10 @@ var form = PropTypes.shape({
270
295
  PropTypes.arrayOf(form);
271
296
  var resource = PropTypes.shape({
272
297
  id: PropTypes.string.isRequired,
273
- label: PropTypes.string.isRequired,
298
+ name: PropTypes.string.isRequired,
274
299
  intl: intl,
275
300
  fields: fields,
276
301
  forms: PropTypes.shape({}),
277
- has_routes: PropTypes.bool,
278
302
  shows_in_navbar: PropTypes.bool
279
303
  });
280
304
  var resources = PropTypes.arrayOf(resource);
@@ -311,6 +335,11 @@ var formError = PropTypes.shape({
311
335
  message: PropTypes.string
312
336
  });
313
337
  PropTypes.arrayOf(formError);
338
+ PropTypes.shape({
339
+ tus: PropTypes.object
340
+ }); // eslint-disable-line
341
+
342
+ PropTypes.string;
314
343
 
315
344
  /* eslint-disable react/jsx-props-no-spreading */
316
345
  var DefinitionContext = /*#__PURE__*/React.createContext(null);
@@ -1063,14 +1092,16 @@ var useUrlGenerator = function useUrlGenerator() {
1063
1092
  };
1064
1093
  var useRoutePush = function useRoutePush() {
1065
1094
  var url = useUrlGenerator();
1066
- var history = useHistory();
1095
+ var navigate = useNavigate();
1067
1096
  var push = useCallback(function (route, data) {
1068
1097
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1069
1098
  args[_key - 2] = arguments[_key];
1070
1099
  }
1071
1100
 
1072
1101
  if (isString(route)) {
1073
- history.push.apply(history, [url(route, data)].concat(args));
1102
+ var _history;
1103
+
1104
+ (_history = history).push.apply(_history, [url(route, data)].concat(args));
1074
1105
  } else {
1075
1106
  var _ref = route || {},
1076
1107
  _ref$pathname = _ref.pathname,
@@ -1078,20 +1109,20 @@ var useRoutePush = function useRoutePush() {
1078
1109
  _ref$search = _ref.search,
1079
1110
  search = _ref$search === void 0 ? null : _ref$search;
1080
1111
 
1081
- history.push.apply(history, [{
1112
+ navigate.apply(void 0, [{
1082
1113
  pathname: url(pathname, data),
1083
1114
  search: search
1084
1115
  }].concat(args));
1085
1116
  }
1086
- }, [history, url]);
1117
+ }, [navigate, url]);
1087
1118
  return push;
1088
1119
  };
1089
1120
  var useRouteBack = function useRouteBack() {
1090
1121
  var url = useUrlGenerator();
1091
- var history = useHistory();
1122
+ var navigate = useNavigate();
1092
1123
  var back = useCallback(function () {
1093
- return history.goBack();
1094
- }, [history, url]);
1124
+ return navigate(-1);
1125
+ }, [navigate, url]);
1095
1126
  return back;
1096
1127
  };
1097
1128
  var propTypes$2 = {
@@ -1175,7 +1206,7 @@ var useUppyCore = function useUppyCore() {
1175
1206
  }
1176
1207
 
1177
1208
  import('@uppy/core').then(function (_ref) {
1178
- var Uppy = _ref.Uppy;
1209
+ var Uppy = _ref["default"];
1179
1210
  packageCache = Uppy;
1180
1211
 
1181
1212
  if (!canceled) {
@@ -1251,71 +1282,6 @@ var _excluded$2 = ["default"];
1251
1282
 
1252
1283
  var packagesCache$1 = {};
1253
1284
  var defaultPackagesMap$1 = {
1254
- transloadit: function transloadit() {
1255
- return import('@uppy/transloadit');
1256
- },
1257
- tus: function tus() {
1258
- return import('@uppy/tus');
1259
- },
1260
- xhr: function xhr() {
1261
- return import('@uppy/xhr-upload');
1262
- }
1263
- };
1264
-
1265
- var useUppyTransport = function useUppyTransport(transport) {
1266
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1267
- _ref$packagesMap = _ref.packagesMap,
1268
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1269
-
1270
- // transport
1271
- var _useState = useState({
1272
- "package": packagesCache$1[transport] || null
1273
- }),
1274
- _useState2 = _slicedToArray(_useState, 2),
1275
- loadedPackage = _useState2[0]["package"],
1276
- setLoadedPackage = _useState2[1];
1277
-
1278
- var packageLoader = packagesMap[transport] || null;
1279
- useEffect(function () {
1280
- var canceled = false;
1281
-
1282
- if (loadedPackage !== null || packageLoader === null) {
1283
- return function () {
1284
- canceled = true;
1285
- };
1286
- }
1287
-
1288
- packageLoader().then(function (_ref2) {
1289
- var pack = _ref2["default"],
1290
- others = _objectWithoutProperties(_ref2, _excluded$2);
1291
-
1292
- var dep = Object.keys(others).reduce(function (map, key) {
1293
- map[key] = others[key]; // eslint-disable-line no-param-reassign
1294
-
1295
- return map;
1296
- }, pack);
1297
- packagesCache$1[transport] = dep;
1298
-
1299
- if (!canceled) {
1300
- setLoadedPackage({
1301
- "package": dep
1302
- });
1303
- }
1304
- });
1305
- return function () {
1306
- canceled = true;
1307
- };
1308
- }, [packageLoader, loadedPackage, setLoadedPackage]);
1309
- return loadedPackage;
1310
- };
1311
-
1312
- var _excluded$1 = ["default"];
1313
- /**
1314
- * Locale loader
1315
- */
1316
-
1317
- var packagesCache = {};
1318
- var defaultPackagesMap = {
1319
1285
  webcam: function webcam() {
1320
1286
  return import('@uppy/webcam');
1321
1287
  },
@@ -1336,12 +1302,12 @@ var defaultPackagesMap = {
1336
1302
  var useUppySources = function useUppySources(sources) {
1337
1303
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1338
1304
  _ref$packagesMap = _ref.packagesMap,
1339
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1305
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1340
1306
 
1341
1307
  // transport
1342
1308
  var _useState = useState({
1343
1309
  packages: sources.reduce(function (map, source) {
1344
- var sourcePackage = packagesCache[source] || null;
1310
+ var sourcePackage = packagesCache$1[source] || null;
1345
1311
 
1346
1312
  if (sourcePackage === null) {
1347
1313
  return map;
@@ -1383,7 +1349,7 @@ var useUppySources = function useUppySources(sources) {
1383
1349
  var newLoadedPackages = sourcesToLoad.reduce(function (map, source, index) {
1384
1350
  var _packagesLoaded$index = packagesLoaded[index],
1385
1351
  pack = _packagesLoaded$index["default"],
1386
- others = _objectWithoutProperties(_packagesLoaded$index, _excluded$1);
1352
+ others = _objectWithoutProperties(_packagesLoaded$index, _excluded$2);
1387
1353
 
1388
1354
  return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, source, Object.keys(others).reduce(function (otherMap, key) {
1389
1355
  otherMap[key] = others[key]; // eslint-disable-line no-param-reassign
@@ -1391,7 +1357,7 @@ var useUppySources = function useUppySources(sources) {
1391
1357
  return otherMap;
1392
1358
  }, pack)));
1393
1359
  }, {});
1394
- packagesCache = _objectSpread(_objectSpread({}, packagesCache), newLoadedPackages);
1360
+ packagesCache$1 = _objectSpread(_objectSpread({}, packagesCache$1), newLoadedPackages);
1395
1361
 
1396
1362
  if (!canceled) {
1397
1363
  setLoadedPackages({
@@ -1406,6 +1372,71 @@ var useUppySources = function useUppySources(sources) {
1406
1372
  return sourcesToLoad.length === 0 ? loadedPackages : null;
1407
1373
  };
1408
1374
 
1375
+ var _excluded$1 = ["default"];
1376
+ /**
1377
+ * Locale loader
1378
+ */
1379
+
1380
+ var packagesCache = {};
1381
+ var defaultPackagesMap = {
1382
+ transloadit: function transloadit() {
1383
+ return import('@uppy/transloadit');
1384
+ },
1385
+ tus: function tus() {
1386
+ return import('@uppy/tus');
1387
+ },
1388
+ xhr: function xhr() {
1389
+ return import('@uppy/xhr-upload');
1390
+ }
1391
+ };
1392
+
1393
+ var useUppyTransport = function useUppyTransport(transport) {
1394
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1395
+ _ref$packagesMap = _ref.packagesMap,
1396
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1397
+
1398
+ // transport
1399
+ var _useState = useState({
1400
+ "package": packagesCache[transport] || null
1401
+ }),
1402
+ _useState2 = _slicedToArray(_useState, 2),
1403
+ loadedPackage = _useState2[0]["package"],
1404
+ setLoadedPackage = _useState2[1];
1405
+
1406
+ var packageLoader = packagesMap[transport] || null;
1407
+ useEffect(function () {
1408
+ var canceled = false;
1409
+
1410
+ if (loadedPackage !== null || packageLoader === null) {
1411
+ return function () {
1412
+ canceled = true;
1413
+ };
1414
+ }
1415
+
1416
+ packageLoader().then(function (_ref2) {
1417
+ var pack = _ref2["default"],
1418
+ others = _objectWithoutProperties(_ref2, _excluded$1);
1419
+
1420
+ var dep = Object.keys(others).reduce(function (map, key) {
1421
+ map[key] = others[key]; // eslint-disable-line no-param-reassign
1422
+
1423
+ return map;
1424
+ }, pack);
1425
+ packagesCache[transport] = dep;
1426
+
1427
+ if (!canceled) {
1428
+ setLoadedPackage({
1429
+ "package": dep
1430
+ });
1431
+ }
1432
+ });
1433
+ return function () {
1434
+ canceled = true;
1435
+ };
1436
+ }, [packageLoader, loadedPackage, setLoadedPackage]);
1437
+ return loadedPackage;
1438
+ };
1439
+
1409
1440
  var convertToMedia = function convertToMedia(it) {
1410
1441
  // console.log('upload', it);
1411
1442
  var type = it.data.type.split('/')[0];
@@ -1466,12 +1497,16 @@ var useUppy = function useUppy() {
1466
1497
  } : _ref$getFileName,
1467
1498
  _ref$meta = _ref.meta,
1468
1499
  meta = _ref$meta === void 0 ? null : _ref$meta,
1500
+ _ref$allowMultipleUpl = _ref.allowMultipleUploads,
1501
+ allowMultipleUploads = _ref$allowMultipleUpl === void 0 ? false : _ref$allowMultipleUpl,
1469
1502
  _ref$maxNumberOfFiles = _ref.maxNumberOfFiles,
1470
- maxNumberOfFiles = _ref$maxNumberOfFiles === void 0 ? 30 : _ref$maxNumberOfFiles,
1503
+ maxNumberOfFiles = _ref$maxNumberOfFiles === void 0 ? 1 : _ref$maxNumberOfFiles,
1471
1504
  _ref$allowedFileTypes = _ref.allowedFileTypes,
1472
1505
  allowedFileTypes = _ref$allowedFileTypes === void 0 ? null : _ref$allowedFileTypes,
1473
1506
  _ref$autoProceed = _ref.autoProceed,
1474
- autoProceed = _ref$autoProceed === void 0 ? false : _ref$autoProceed;
1507
+ autoProceed = _ref$autoProceed === void 0 ? false : _ref$autoProceed,
1508
+ _ref$debug = _ref.debug,
1509
+ debug = _ref$debug === void 0 ? false : _ref$debug;
1475
1510
 
1476
1511
  var _ref3 = useContext(UppyContext) || null,
1477
1512
  buildUppy = _ref3.buildUppy,
@@ -1480,13 +1515,15 @@ var useUppy = function useUppy() {
1480
1515
  var uppy = useMemo(function () {
1481
1516
  return buildUppy !== null ? buildUppy({
1482
1517
  meta: meta,
1518
+ allowMultipleUploads: allowMultipleUploads,
1483
1519
  restrictions: {
1484
1520
  maxNumberOfFiles: maxNumberOfFiles,
1485
1521
  allowedFileTypes: allowedFileTypes
1486
1522
  },
1487
- autoProceed: autoProceed
1523
+ autoProceed: autoProceed,
1524
+ debug: debug
1488
1525
  }) : null;
1489
- }, [buildUppy, meta, maxNumberOfFiles, allowedFileTypes, autoProceed]);
1526
+ }, [buildUppy, meta, allowMultipleUploads, debug, maxNumberOfFiles, allowedFileTypes, autoProceed]);
1490
1527
  useEffect(function () {
1491
1528
  if (uppy === null) {
1492
1529
  return function () {};
@@ -1548,6 +1585,7 @@ var useUppy = function useUppy() {
1548
1585
  return uppy;
1549
1586
  };
1550
1587
  var propTypes = {
1588
+ id: PropTypes.string,
1551
1589
  children: PropTypes.node.isRequired,
1552
1590
  transport: PropTypes.oneOf(['xhr', 'transloadit', 'tus']),
1553
1591
  locale: PropTypes.string,
@@ -1569,6 +1607,7 @@ var propTypes = {
1569
1607
  })])
1570
1608
  };
1571
1609
  var defaultProps = {
1610
+ id: 'uppy',
1572
1611
  transport: null,
1573
1612
  locale: null,
1574
1613
  sources: null,
@@ -1578,7 +1617,8 @@ var defaultProps = {
1578
1617
  xhr: null
1579
1618
  };
1580
1619
  var UppyProvider = function UppyProvider(_ref5) {
1581
- var children = _ref5.children,
1620
+ var id = _ref5.id,
1621
+ children = _ref5.children,
1582
1622
  providedTransport = _ref5.transport,
1583
1623
  providedLocale = _ref5.locale,
1584
1624
  providedSources = _ref5.sources,
@@ -1631,6 +1671,7 @@ var UppyProvider = function UppyProvider(_ref5) {
1631
1671
  uppyOpts = _objectWithoutProperties(_ref7, _excluded);
1632
1672
 
1633
1673
  var newUppy = new Uppy(_objectSpread({
1674
+ id: id,
1634
1675
  locale: uppyLocale
1635
1676
  }, uppyOpts));
1636
1677
 
@@ -1687,9 +1728,10 @@ var UppyProvider = function UppyProvider(_ref5) {
1687
1728
 
1688
1729
  return newUppy;
1689
1730
  };
1690
- }, [Uppy, uppyLocale, uppyTransport, uppySources, transport, sources, transloadit, companion, tus, xhr]);
1691
- return /*#__PURE__*/React.createElement(UppyContext.Provider, {
1692
- value: {
1731
+ }, [id, Uppy, uppyLocale, uppyTransport, uppySources, transport, sources, transloadit, companion, tus, xhr]);
1732
+ var value = useMemo(function () {
1733
+ return {
1734
+ id: id,
1693
1735
  transport: transport,
1694
1736
  locale: locale,
1695
1737
  sources: sources,
@@ -1702,10 +1744,13 @@ var UppyProvider = function UppyProvider(_ref5) {
1702
1744
  uppySources: uppySources,
1703
1745
  uppyLocale: uppyLocale,
1704
1746
  buildUppy: buildUppy
1705
- }
1747
+ };
1748
+ }, [id, transport, locale, sources, transloadit, companion, tus, xhr, Uppy, uppyTransport, uppySources, uppyLocale, buildUppy]);
1749
+ return /*#__PURE__*/React.createElement(UppyContext.Provider, {
1750
+ value: value
1706
1751
  }, children);
1707
1752
  };
1708
1753
  UppyProvider.propTypes = propTypes;
1709
1754
  UppyProvider.defaultProps = defaultProps;
1710
1755
 
1711
- export { APP_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, RoutesContext, RoutesProvider, TrackingProvider, UppyContext, UppyProvider, useAppComponent, useAppComponents, useAppComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager, useField, useFieldComponent, useFields, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFilterComponent, useFiltersComponents, useFiltersComponentsManager, useFonts, useForm, useFormComponent, useFormSetValue, useFormValue, useFormsComponents, useFormsComponentsManager, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useListComponent, useListsComponents, useListsComponentsManager, useLocales, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, useOtherLocales, usePanels, usePanneau, usePanneauAuth, usePanneauColorScheme, usePanneauComponent, usePanneauComponents, usePanneauResource, usePanneauResources, usePanneauSettings, useResource, useRouteBack, useRoutePush, useRoutes, useTracking, useUppy, useUrlGenerator, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
1756
+ export { APP_NAMESPACE, ComponentsContext, ComponentsProvider, DISPLAYS_NAMESPACE, DefinitionProvider, FIELDS_NAMESPACE, FILTERS_NAMESPACE, FORMS_NAMESPACE, FieldsContext, FieldsProvider, FontsContext, FontsProvider, FormProvider, GoogleApiClientContext, GoogleApiClientProvider, GoogleKeysContext, GoogleKeysProvider, GoogleMapsClientContext, GoogleMapsClientProvider, LISTS_NAMESPACE, LocalesContext, LocalesProvider, MODALS_NAMESPACE, ModalsContext, ModalsProvider, PAGES_NAMESPACE, PanelsContext, PanelsProvider, PanneauProvider, ResourceProvider, RoutesContext, RoutesProvider, TrackingProvider, UppyContext, UppyProvider, useAppComponent, useAppComponents, useAppComponentsManager, useComponent, useComponents, useComponentsManager, useDefinition, useDefinitionContext, useDisplayComponent, useDisplaysComponents, useDisplaysComponentsManager, useField, useFieldComponent, useFields, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFilterComponent, useFiltersComponents, useFiltersComponentsManager, useFonts, useForm, useFormComponent, useFormSetValue, useFormValue, useFormsComponents, useFormsComponentsManager, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useListComponent, useListsComponents, useListsComponentsManager, useLocales, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, useOtherLocales, usePageComponent, usePagesComponents, usePagesComponentsManager, usePanels, usePanneau, usePanneauAuth, usePanneauColorScheme, usePanneauComponent, usePanneauComponents, usePanneauResource, usePanneauResources, usePanneauSettings, useResource, useRouteBack, useRoutePush, useRoutes, useTracking, useUppy, useUrlGenerator, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
package/es/hooks.js CHANGED
@@ -10,8 +10,10 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
10
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
11
11
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import { getCsrfToken, postJSON, getCSRFHeaders } from '@folklore/fetch';
13
+ import get from 'lodash/get';
14
+ import isArray from 'lodash/isArray';
13
15
  import isObject from 'lodash/isObject';
14
- import { useFieldsManager, usePanneauResources, useUrlGenerator } from '@panneau/core/contexts';
16
+ import { useFieldsManager, usePanneauResources, useResource, useUrlGenerator } from '@panneau/core/contexts';
15
17
  import { match } from 'css-mediaquery';
16
18
 
17
19
  var useAnimationFrame = function useAnimationFrame(onFrame) {
@@ -116,6 +118,7 @@ var getFieldsPropsFromFields = function getFieldsPropsFromFields(fields, _ref) {
116
118
  _onChange = _ref.onChange,
117
119
  props = _objectWithoutProperties(_ref, _excluded$1);
118
120
 
121
+ var locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
119
122
  return fields.reduce(function (allFields, field) {
120
123
  var _ref2 = isObject(field) ? field : {},
121
124
  _ref2$name = _ref2.name,
@@ -123,11 +126,18 @@ var getFieldsPropsFromFields = function getFieldsPropsFromFields(fields, _ref) {
123
126
  _ref2$component = _ref2.component,
124
127
  component = _ref2$component === void 0 ? null : _ref2$component;
125
128
 
129
+ var fieldErrors = errors !== null ? errors[name] || [] : [];
130
+ var localizedErrors = component === 'localized' ? (locales || []).reduce(function (previousErrors, locale) {
131
+ var items = errors !== null ? get(errors, "".concat(name, ".").concat(locale), []) || [] : [];
132
+ var finalItems = isArray(items) ? items : [items];
133
+ var finalPrevious = isArray(previousErrors) ? previousErrors : [];
134
+ return [].concat(_toConsumableArray(finalPrevious), _toConsumableArray(finalItems));
135
+ }, fieldErrors) : fieldErrors;
126
136
  return [].concat(_toConsumableArray(allFields), [_objectSpread(_objectSpread({}, isObject(field) ? field : null), {}, {
127
137
  name: name,
128
138
  component: component,
129
139
  value: value !== null ? value[name] || null : null,
130
- errors: errors !== null ? errors[name] || null : null,
140
+ errors: localizedErrors.length > 0 ? localizedErrors : null,
131
141
  onChange: function onChange(fieldValue) {
132
142
  return _onChange(name, fieldValue);
133
143
  }
@@ -162,7 +172,9 @@ var useForm = function useForm() {
162
172
  _opts$setValue = opts.setValue,
163
173
  setProvidedValue = _opts$setValue === void 0 ? null : _opts$setValue,
164
174
  _opts$onComplete = opts.onComplete,
165
- onComplete = _opts$onComplete === void 0 ? null : _opts$onComplete;
175
+ onComplete = _opts$onComplete === void 0 ? null : _opts$onComplete,
176
+ _opts$locales = opts.locales,
177
+ locales = _opts$locales === void 0 ? [] : _opts$locales;
166
178
 
167
179
  var _useState = useState(initialValue || providedValue),
168
180
  _useState2 = _slicedToArray(_useState, 2),
@@ -202,7 +214,7 @@ var useForm = function useForm() {
202
214
  var hasProvidedGeneralError = setProvidedGeneralError !== null;
203
215
  var generalError = hasProvidedGeneralError ? providedGeneralError : stateGeneralError;
204
216
  var setGeneralError = hasProvidedGeneralError ? setProvidedGeneralError : setStateGeneralError;
205
- var fieldsKey = [value, errors].concat(fields);
217
+ var fieldsKey = [value, errors, locales].concat(fields);
206
218
  var onFieldChange = useCallback(function (fieldName, fieldValue) {
207
219
  var fieldErrors = errors !== null ? errors[fieldName] || null : null;
208
220
 
@@ -217,7 +229,7 @@ var useForm = function useForm() {
217
229
  value: value,
218
230
  errors: errors,
219
231
  onChange: onFieldChange
220
- });
232
+ }, locales);
221
233
  }, fieldsKey);
222
234
  var csrfToken = useMemo(function () {
223
235
  return getCsrfToken();
@@ -248,7 +260,10 @@ var useForm = function useForm() {
248
260
  error: false
249
261
  });
250
262
  setResponse(resp);
251
- onComplete(resp);
263
+
264
+ if (onComplete !== null) {
265
+ onComplete(resp);
266
+ }
252
267
  };
253
268
 
254
269
  var finalPostForm = useCallback(function (postAction, postData) {
@@ -952,21 +967,27 @@ var getResource = function getResource(resources, resourceId) {
952
967
  var useResourceUrlGenerator = function useResourceUrlGenerator() {
953
968
  var resourceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
954
969
  var resources = usePanneauResources();
955
- var resource = getResource(resources, resourceId);
970
+ var contextResource = useResource();
971
+ var resource = getResource(resources, resourceId) || contextResource;
956
972
  var route = useUrlGenerator();
957
973
  return function (routeResourceId) {
958
974
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
959
975
  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
960
976
  var finalRouteName = resourceId !== null ? routeResourceId : routeName;
961
977
  var finalParams = resourceId !== null ? routeName : params;
962
- var finalResource = resource || getResource(resources, routeResourceId);
963
- var id = finalResource.id,
964
- _finalResource$has_ro = finalResource.has_routes,
965
- hasRoutes = _finalResource$has_ro === void 0 ? false : _finalResource$has_ro;
966
- var routePrefix = hasRoutes ? "resources.".concat(id) : 'resources';
967
- return route("".concat(routePrefix, ".").concat(finalRouteName), _objectSpread(_objectSpread({}, finalParams), {}, {
978
+ var finalResource = getResource(resources, routeResourceId) || resource;
979
+
980
+ var _ref = finalResource || {},
981
+ _ref$id = _ref.id,
982
+ id = _ref$id === void 0 ? null : _ref$id; // console.log('gen', finalRouteName, route(`resources.${finalRouteName}`, {
983
+ // ...finalParams,
984
+ // resource: id,
985
+ // }));
986
+
987
+
988
+ return id !== null ? route("resources.".concat(finalRouteName), _objectSpread(_objectSpread({}, finalParams), {}, {
968
989
  resource: id
969
- }));
990
+ })) : null;
970
991
  };
971
992
  };
972
993
 
package/es/index.js CHANGED
@@ -11,10 +11,13 @@ import 'snake-case';
11
11
  import isObject from 'lodash/isObject';
12
12
  import 'react';
13
13
  import { pascalCase } from 'change-case';
14
- import 'lodash/isString';
14
+ import ReactIs from 'react-is';
15
15
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
16
+ import 'lodash/isString';
16
17
  import isArray from 'lodash/isArray';
17
18
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
19
+ import 'lodash/get';
20
+ import 'lodash/capitalize';
18
21
  import 'slugify';
19
22
  import uniqBy from 'lodash/uniqBy';
20
23
  import uniq from 'lodash/uniq';
@@ -60,6 +63,14 @@ var toggle = PropTypes$1.shape({
60
63
  label: PropTypes$1.string
61
64
  });
62
65
  var toggles = PropTypes$1.arrayOf(toggle);
66
+ var tableColumn = PropTypes$1.shape({
67
+ id: PropTypes$1.string,
68
+ component: PropTypes$1.string,
69
+ path: PropTypes$1.string,
70
+ field: PropTypes$1.string,
71
+ columnClassName: PropTypes$1.string
72
+ });
73
+ var tableColumns = PropTypes$1.arrayOf(tableColumn);
63
74
  /**
64
75
  * Panneau Definitions
65
76
  */
@@ -71,6 +82,7 @@ var routes = PropTypes$1.shape({
71
82
  'resources.show': PropTypes$1.string.isRequired,
72
83
  'resources.edit': PropTypes$1.string.isRequired,
73
84
  'resources.update': PropTypes$1.string.isRequired,
85
+ 'resources.delete': PropTypes$1.string.isRequired,
74
86
  'resources.destroy': PropTypes$1.string.isRequired
75
87
  });
76
88
  var intl = PropTypes$1.shape({
@@ -83,10 +95,10 @@ var page = PropTypes$1.shape({
83
95
  });
84
96
  var pages = PropTypes$1.objectOf(page);
85
97
  var field = PropTypes$1.shape({
86
- // type: PropTypes.string.isRequired,
87
- name: PropTypes$1.isRequired,
88
- component: PropTypes$1.string.isRequired,
89
- label: PropTypes$1.isRequired
98
+ name: PropTypes$1.string.isRequired,
99
+ type: PropTypes$1.string,
100
+ component: PropTypes$1.string,
101
+ label: PropTypes$1.node
90
102
  });
91
103
  var fields = PropTypes$1.arrayOf(field);
92
104
  var form = PropTypes$1.shape({
@@ -97,11 +109,10 @@ var form = PropTypes$1.shape({
97
109
  var forms = PropTypes$1.arrayOf(form);
98
110
  var resource = PropTypes$1.shape({
99
111
  id: PropTypes$1.string.isRequired,
100
- label: PropTypes$1.string.isRequired,
112
+ name: PropTypes$1.string.isRequired,
101
113
  intl: intl,
102
114
  fields: fields,
103
115
  forms: PropTypes$1.shape({}),
104
- has_routes: PropTypes$1.bool,
105
116
  shows_in_navbar: PropTypes$1.bool
106
117
  });
107
118
  var resources = PropTypes$1.arrayOf(resource);
@@ -138,6 +149,11 @@ var formError = PropTypes$1.shape({
138
149
  message: PropTypes$1.string
139
150
  });
140
151
  var formErrors = PropTypes$1.arrayOf(formError);
152
+ var uppy = PropTypes$1.shape({
153
+ tus: PropTypes$1.object
154
+ }); // eslint-disable-line
155
+
156
+ var triggerUpdate = PropTypes$1.string;
141
157
 
142
158
  var PropTypes = /*#__PURE__*/Object.freeze({
143
159
  __proto__: null,
@@ -158,6 +174,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
158
174
  fieldOptions: fieldOptions,
159
175
  toggle: toggle,
160
176
  toggles: toggles,
177
+ tableColumn: tableColumn,
178
+ tableColumns: tableColumns,
161
179
  routes: routes,
162
180
  intl: intl,
163
181
  page: page,
@@ -178,9 +196,23 @@ var PropTypes = /*#__PURE__*/Object.freeze({
178
196
  selectOptions: selectOptions,
179
197
  feedback: feedback,
180
198
  formError: formError,
181
- formErrors: formErrors
199
+ formErrors: formErrors,
200
+ uppy: uppy,
201
+ triggerUpdate: triggerUpdate
182
202
  });
183
203
 
204
+ var flattenComponents = function flattenComponents(components) {
205
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
206
+
207
+ if (components === null) {
208
+ return null;
209
+ }
210
+
211
+ return Object.keys(components).reduce(function (newMap, key) {
212
+ 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));
213
+ }, {});
214
+ };
215
+
184
216
  var getComponentFromName = function getComponentFromName() {
185
217
  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
186
218
  var components = arguments.length > 1 ? arguments[1] : undefined;
@@ -213,7 +245,7 @@ var ComponentsManager = /*#__PURE__*/function (_EventEmitter) {
213
245
  _classCallCheck(this, ComponentsManager);
214
246
 
215
247
  _this = _super.call(this);
216
- _this.components = components;
248
+ _this.components = flattenComponents(components);
217
249
  return _this;
218
250
  }
219
251
 
@@ -453,7 +485,7 @@ var FieldsManager$1 = /*#__PURE__*/function (_DefinitionsManager) {
453
485
  return _super.apply(this, arguments);
454
486
  }
455
487
 
456
- return FieldsManager;
488
+ return _createClass(FieldsManager);
457
489
  }(DefinitionsManager);
458
490
 
459
491
  var _excluded$2 = ["fonts"];
@@ -598,7 +630,7 @@ var FieldsManager = /*#__PURE__*/function (_ComponentsManager) {
598
630
  return _super.apply(this, arguments);
599
631
  }
600
632
 
601
- return FieldsManager;
633
+ return _createClass(FieldsManager);
602
634
  }(ComponentsManager);
603
635
 
604
636
  var _excluded$1 = ["medias"];