@panneau/core 1.0.0-alpha.21 → 1.0.0-alpha.224

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
@@ -10,13 +10,13 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
10
  import isObject from 'lodash/isObject';
11
11
  import { getJSON } from '@folklore/fetch';
12
12
  import { loadGoogleApi, loadGoogleMaps } from '@folklore/services';
13
+ import { useIntl } from 'react-intl';
13
14
  import { getDisplayName } from '@panneau/core/utils';
14
15
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
15
16
  import { generatePath, useHistory } from 'react-router';
16
17
  import { TrackingContext, TrackingContainer } from '@folklore/tracking';
17
18
  export { TrackingContext } from '@folklore/tracking';
18
19
  import { v1 } from 'uuid';
19
- import { useIntl } from 'react-intl';
20
20
 
21
21
  var MODALS_NAMESPACE = 'modals';
22
22
  var FIELDS_NAMESPACE = 'fields';
@@ -233,6 +233,14 @@ var toggle = PropTypes.shape({
233
233
  label: PropTypes.string
234
234
  });
235
235
  PropTypes.arrayOf(toggle);
236
+ var tableColumn = PropTypes.shape({
237
+ id: PropTypes.string,
238
+ component: PropTypes.string,
239
+ path: PropTypes.string,
240
+ field: PropTypes.string,
241
+ columnClassName: PropTypes.string
242
+ });
243
+ PropTypes.arrayOf(tableColumn);
236
244
  /**
237
245
  * Panneau Definitions
238
246
  */
@@ -244,6 +252,7 @@ var routes = PropTypes.shape({
244
252
  'resources.show': PropTypes.string.isRequired,
245
253
  'resources.edit': PropTypes.string.isRequired,
246
254
  'resources.update': PropTypes.string.isRequired,
255
+ 'resources.delete': PropTypes.string.isRequired,
247
256
  'resources.destroy': PropTypes.string.isRequired
248
257
  });
249
258
  var intl = PropTypes.shape({
@@ -258,8 +267,9 @@ var pages = PropTypes.objectOf(page);
258
267
  var field = PropTypes.shape({
259
268
  // type: PropTypes.string.isRequired,
260
269
  name: PropTypes.isRequired,
261
- component: PropTypes.string.isRequired,
262
- label: PropTypes.isRequired
270
+ type: PropTypes.string,
271
+ component: PropTypes.string,
272
+ label: PropTypes.node
263
273
  });
264
274
  var fields = PropTypes.arrayOf(field);
265
275
  var form = PropTypes.shape({
@@ -270,11 +280,10 @@ var form = PropTypes.shape({
270
280
  PropTypes.arrayOf(form);
271
281
  var resource = PropTypes.shape({
272
282
  id: PropTypes.string.isRequired,
273
- label: PropTypes.string.isRequired,
283
+ name: PropTypes.string.isRequired,
274
284
  intl: intl,
275
285
  fields: fields,
276
286
  forms: PropTypes.shape({}),
277
- has_routes: PropTypes.bool,
278
287
  shows_in_navbar: PropTypes.bool
279
288
  });
280
289
  var resources = PropTypes.arrayOf(resource);
@@ -311,6 +320,11 @@ var formError = PropTypes.shape({
311
320
  message: PropTypes.string
312
321
  });
313
322
  PropTypes.arrayOf(formError);
323
+ PropTypes.shape({
324
+ tus: PropTypes.object
325
+ }); // eslint-disable-line
326
+
327
+ PropTypes.string;
314
328
 
315
329
  /* eslint-disable react/jsx-props-no-spreading */
316
330
  var DefinitionContext = /*#__PURE__*/React.createContext(null);
@@ -343,11 +357,11 @@ var FieldsContext = /*#__PURE__*/React.createContext(null);
343
357
  var useFieldsManager = function useFieldsManager() {
344
358
  return useContext(FieldsContext);
345
359
  };
346
- var useFieldDefinition = function useFieldDefinition(id) {
360
+ var useField = function useField(id) {
347
361
  var manager = useFieldsManager();
348
362
  return manager.getDefinition(id);
349
363
  };
350
- var useFieldDefinitions = function useFieldDefinitions() {
364
+ var useFields = function useFields() {
351
365
  var manager = useFieldsManager();
352
366
  return manager.getDefinitions();
353
367
  };
@@ -709,41 +723,43 @@ GoogleMapsClientProvider.propTypes = propTypes$8;
709
723
  GoogleMapsClientProvider.defaultProps = defaultProps$8;
710
724
 
711
725
  /* eslint-disable react/jsx-props-no-spreading */
712
- var LocalesContext = /*#__PURE__*/React.createContext(null);
713
- var useLocalesContext = function useLocalesContext() {
714
- return useContext(LocalesContext);
715
- };
716
- var useLocale = function useLocale() {
717
- var _useLocalesContext = useLocalesContext(),
718
- _useLocalesContext$lo = _useLocalesContext.locale,
719
- locale = _useLocalesContext$lo === void 0 ? null : _useLocalesContext$lo;
720
-
721
- return locale;
722
- };
726
+ var defaultLocales = ['en', 'fr'];
727
+ var LocalesContext = /*#__PURE__*/React.createContext({
728
+ locales: defaultLocales
729
+ });
723
730
  var useLocales = function useLocales() {
724
- var _useLocalesContext2 = useLocalesContext(),
725
- _useLocalesContext2$l = _useLocalesContext2.locales,
726
- locales = _useLocalesContext2$l === void 0 ? [] : _useLocalesContext2$l;
731
+ var _useContext = useContext(LocalesContext),
732
+ locales = _useContext.locales;
727
733
 
728
734
  return locales;
729
735
  };
736
+ var useOtherLocales = function useOtherLocales() {
737
+ var _useLocales = useLocales(),
738
+ locales = _useLocales.locales;
739
+
740
+ var _useIntl = useIntl(),
741
+ locale = _useIntl.locale;
742
+
743
+ var otherLocales = useMemo(function () {
744
+ return locales.filter(function (it) {
745
+ return it !== locale;
746
+ });
747
+ }, [locales, locale]);
748
+ return otherLocales;
749
+ };
730
750
  var propTypes$7 = {
731
751
  locales: PropTypes.arrayOf(PropTypes.string),
732
- locale: PropTypes.string,
733
752
  children: PropTypes.node.isRequired
734
753
  };
735
754
  var defaultProps$7 = {
736
- locales: [],
737
- locale: 'fr'
755
+ locales: []
738
756
  };
739
757
  var LocalesProvider = function LocalesProvider(_ref) {
740
758
  var locales = _ref.locales,
741
- locale = _ref.locale,
742
759
  children = _ref.children;
743
760
  return /*#__PURE__*/React.createElement(LocalesContext.Provider, {
744
761
  value: {
745
- locales: locales,
746
- locale: locale
762
+ locales: locales
747
763
  }
748
764
  }, children);
749
765
  };
@@ -926,6 +942,7 @@ var PanelsProvider = function PanelsProvider(_ref2) {
926
942
  PanelsProvider.propTypes = propTypes$5;
927
943
  PanelsProvider.defaultProps = defaultProps$5;
928
944
 
945
+ var _excluded$3 = ["component"];
929
946
  var PanneauContext = /*#__PURE__*/React.createContext(null);
930
947
  var usePanneau = function usePanneau() {
931
948
  return useContext(PanneauContext);
@@ -982,7 +999,7 @@ var usePanneauComponent = function usePanneauComponent(namespace, name) {
982
999
  if (isObject(component) && isString(component === null || component === void 0 ? void 0 : component.componnent)) {
983
1000
  // eslint-disable-next-line no-unused-vars
984
1001
  component.component;
985
- _objectWithoutProperties(component, ["component"]);
1002
+ _objectWithoutProperties(component, _excluded$3);
986
1003
 
987
1004
  return component.component;
988
1005
  }
@@ -1241,76 +1258,13 @@ var useUppyLocale = function useUppyLocale(locale) {
1241
1258
  return loadedPackage;
1242
1259
  };
1243
1260
 
1261
+ var _excluded$2 = ["default"];
1244
1262
  /**
1245
1263
  * Locale loader
1246
1264
  */
1247
1265
 
1248
1266
  var packagesCache$1 = {};
1249
1267
  var defaultPackagesMap$1 = {
1250
- transloadit: function transloadit() {
1251
- return import('@uppy/transloadit');
1252
- },
1253
- tus: function tus() {
1254
- return import('@uppy/tus');
1255
- },
1256
- xhr: function xhr() {
1257
- return import('@uppy/xhr-upload');
1258
- }
1259
- };
1260
-
1261
- var useUppyTransport = function useUppyTransport(transport) {
1262
- var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1263
- _ref$packagesMap = _ref.packagesMap,
1264
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1265
-
1266
- // transport
1267
- var _useState = useState({
1268
- "package": packagesCache$1[transport] || null
1269
- }),
1270
- _useState2 = _slicedToArray(_useState, 2),
1271
- loadedPackage = _useState2[0]["package"],
1272
- setLoadedPackage = _useState2[1];
1273
-
1274
- var packageLoader = packagesMap[transport] || null;
1275
- useEffect(function () {
1276
- var canceled = false;
1277
-
1278
- if (loadedPackage !== null || packageLoader === null) {
1279
- return function () {
1280
- canceled = true;
1281
- };
1282
- }
1283
-
1284
- packageLoader().then(function (_ref2) {
1285
- var pack = _ref2["default"],
1286
- others = _objectWithoutProperties(_ref2, ["default"]);
1287
-
1288
- var dep = Object.keys(others).reduce(function (map, key) {
1289
- map[key] = others[key]; // eslint-disable-line no-param-reassign
1290
-
1291
- return map;
1292
- }, pack);
1293
- packagesCache$1[transport] = dep;
1294
-
1295
- if (!canceled) {
1296
- setLoadedPackage({
1297
- "package": dep
1298
- });
1299
- }
1300
- });
1301
- return function () {
1302
- canceled = true;
1303
- };
1304
- }, [packageLoader, loadedPackage, setLoadedPackage]);
1305
- return loadedPackage;
1306
- };
1307
-
1308
- /**
1309
- * Locale loader
1310
- */
1311
-
1312
- var packagesCache = {};
1313
- var defaultPackagesMap = {
1314
1268
  webcam: function webcam() {
1315
1269
  return import('@uppy/webcam');
1316
1270
  },
@@ -1331,12 +1285,12 @@ var defaultPackagesMap = {
1331
1285
  var useUppySources = function useUppySources(sources) {
1332
1286
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1333
1287
  _ref$packagesMap = _ref.packagesMap,
1334
- packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1288
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap$1 : _ref$packagesMap;
1335
1289
 
1336
1290
  // transport
1337
1291
  var _useState = useState({
1338
1292
  packages: sources.reduce(function (map, source) {
1339
- var sourcePackage = packagesCache[source] || null;
1293
+ var sourcePackage = packagesCache$1[source] || null;
1340
1294
 
1341
1295
  if (sourcePackage === null) {
1342
1296
  return map;
@@ -1378,7 +1332,7 @@ var useUppySources = function useUppySources(sources) {
1378
1332
  var newLoadedPackages = sourcesToLoad.reduce(function (map, source, index) {
1379
1333
  var _packagesLoaded$index = packagesLoaded[index],
1380
1334
  pack = _packagesLoaded$index["default"],
1381
- others = _objectWithoutProperties(_packagesLoaded$index, ["default"]);
1335
+ others = _objectWithoutProperties(_packagesLoaded$index, _excluded$2);
1382
1336
 
1383
1337
  return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, source, Object.keys(others).reduce(function (otherMap, key) {
1384
1338
  otherMap[key] = others[key]; // eslint-disable-line no-param-reassign
@@ -1386,7 +1340,7 @@ var useUppySources = function useUppySources(sources) {
1386
1340
  return otherMap;
1387
1341
  }, pack)));
1388
1342
  }, {});
1389
- packagesCache = _objectSpread(_objectSpread({}, packagesCache), newLoadedPackages);
1343
+ packagesCache$1 = _objectSpread(_objectSpread({}, packagesCache$1), newLoadedPackages);
1390
1344
 
1391
1345
  if (!canceled) {
1392
1346
  setLoadedPackages({
@@ -1401,6 +1355,71 @@ var useUppySources = function useUppySources(sources) {
1401
1355
  return sourcesToLoad.length === 0 ? loadedPackages : null;
1402
1356
  };
1403
1357
 
1358
+ var _excluded$1 = ["default"];
1359
+ /**
1360
+ * Locale loader
1361
+ */
1362
+
1363
+ var packagesCache = {};
1364
+ var defaultPackagesMap = {
1365
+ transloadit: function transloadit() {
1366
+ return import('@uppy/transloadit');
1367
+ },
1368
+ tus: function tus() {
1369
+ return import('@uppy/tus');
1370
+ },
1371
+ xhr: function xhr() {
1372
+ return import('@uppy/xhr-upload');
1373
+ }
1374
+ };
1375
+
1376
+ var useUppyTransport = function useUppyTransport(transport) {
1377
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1378
+ _ref$packagesMap = _ref.packagesMap,
1379
+ packagesMap = _ref$packagesMap === void 0 ? defaultPackagesMap : _ref$packagesMap;
1380
+
1381
+ // transport
1382
+ var _useState = useState({
1383
+ "package": packagesCache[transport] || null
1384
+ }),
1385
+ _useState2 = _slicedToArray(_useState, 2),
1386
+ loadedPackage = _useState2[0]["package"],
1387
+ setLoadedPackage = _useState2[1];
1388
+
1389
+ var packageLoader = packagesMap[transport] || null;
1390
+ useEffect(function () {
1391
+ var canceled = false;
1392
+
1393
+ if (loadedPackage !== null || packageLoader === null) {
1394
+ return function () {
1395
+ canceled = true;
1396
+ };
1397
+ }
1398
+
1399
+ packageLoader().then(function (_ref2) {
1400
+ var pack = _ref2["default"],
1401
+ others = _objectWithoutProperties(_ref2, _excluded$1);
1402
+
1403
+ var dep = Object.keys(others).reduce(function (map, key) {
1404
+ map[key] = others[key]; // eslint-disable-line no-param-reassign
1405
+
1406
+ return map;
1407
+ }, pack);
1408
+ packagesCache[transport] = dep;
1409
+
1410
+ if (!canceled) {
1411
+ setLoadedPackage({
1412
+ "package": dep
1413
+ });
1414
+ }
1415
+ });
1416
+ return function () {
1417
+ canceled = true;
1418
+ };
1419
+ }, [packageLoader, loadedPackage, setLoadedPackage]);
1420
+ return loadedPackage;
1421
+ };
1422
+
1404
1423
  var convertToMedia = function convertToMedia(it) {
1405
1424
  // console.log('upload', it);
1406
1425
  var type = it.data.type.split('/')[0];
@@ -1444,6 +1463,8 @@ var getTransloaditMediasFromResponse = function getTransloaditMediasFromResponse
1444
1463
  });
1445
1464
  };
1446
1465
 
1466
+ var _excluded = ["sources"],
1467
+ _excluded2 = ["key", "templateId", "waitForEncoding"];
1447
1468
  var UppyContext = /*#__PURE__*/React.createContext(null);
1448
1469
  var useUppy = function useUppy() {
1449
1470
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
@@ -1459,12 +1480,16 @@ var useUppy = function useUppy() {
1459
1480
  } : _ref$getFileName,
1460
1481
  _ref$meta = _ref.meta,
1461
1482
  meta = _ref$meta === void 0 ? null : _ref$meta,
1483
+ _ref$allowMultipleUpl = _ref.allowMultipleUploads,
1484
+ allowMultipleUploads = _ref$allowMultipleUpl === void 0 ? false : _ref$allowMultipleUpl,
1462
1485
  _ref$maxNumberOfFiles = _ref.maxNumberOfFiles,
1463
- maxNumberOfFiles = _ref$maxNumberOfFiles === void 0 ? 30 : _ref$maxNumberOfFiles,
1486
+ maxNumberOfFiles = _ref$maxNumberOfFiles === void 0 ? 1 : _ref$maxNumberOfFiles,
1464
1487
  _ref$allowedFileTypes = _ref.allowedFileTypes,
1465
1488
  allowedFileTypes = _ref$allowedFileTypes === void 0 ? null : _ref$allowedFileTypes,
1466
1489
  _ref$autoProceed = _ref.autoProceed,
1467
- autoProceed = _ref$autoProceed === void 0 ? false : _ref$autoProceed;
1490
+ autoProceed = _ref$autoProceed === void 0 ? false : _ref$autoProceed,
1491
+ _ref$debug = _ref.debug,
1492
+ debug = _ref$debug === void 0 ? false : _ref$debug;
1468
1493
 
1469
1494
  var _ref3 = useContext(UppyContext) || null,
1470
1495
  buildUppy = _ref3.buildUppy,
@@ -1473,13 +1498,15 @@ var useUppy = function useUppy() {
1473
1498
  var uppy = useMemo(function () {
1474
1499
  return buildUppy !== null ? buildUppy({
1475
1500
  meta: meta,
1501
+ allowMultipleUploads: allowMultipleUploads,
1476
1502
  restrictions: {
1477
1503
  maxNumberOfFiles: maxNumberOfFiles,
1478
1504
  allowedFileTypes: allowedFileTypes
1479
1505
  },
1480
- autoProceed: autoProceed
1506
+ autoProceed: autoProceed,
1507
+ debug: debug
1481
1508
  }) : null;
1482
- }, [buildUppy, meta, maxNumberOfFiles, allowedFileTypes, autoProceed]);
1509
+ }, [buildUppy, meta, allowMultipleUploads, debug, maxNumberOfFiles, allowedFileTypes, autoProceed]);
1483
1510
  useEffect(function () {
1484
1511
  if (uppy === null) {
1485
1512
  return function () {};
@@ -1621,7 +1648,7 @@ var UppyProvider = function UppyProvider(_ref5) {
1621
1648
  var _ref7 = opts || {},
1622
1649
  _ref7$sources = _ref7.sources,
1623
1650
  customSources = _ref7$sources === void 0 ? sources : _ref7$sources,
1624
- uppyOpts = _objectWithoutProperties(_ref7, ["sources"]);
1651
+ uppyOpts = _objectWithoutProperties(_ref7, _excluded);
1625
1652
 
1626
1653
  var newUppy = new Uppy(_objectSpread({
1627
1654
  locale: uppyLocale
@@ -1632,7 +1659,7 @@ var UppyProvider = function UppyProvider(_ref5) {
1632
1659
  templateId = transloadit.templateId,
1633
1660
  _transloadit$waitForE = transloadit.waitForEncoding,
1634
1661
  waitForEncoding = _transloadit$waitForE === void 0 ? true : _transloadit$waitForE,
1635
- transloaditOpts = _objectWithoutProperties(transloadit, ["key", "templateId", "waitForEncoding"]);
1662
+ transloaditOpts = _objectWithoutProperties(transloadit, _excluded2);
1636
1663
 
1637
1664
  newUppy.use(uppyTransport, {
1638
1665
  params: _objectSpread({
@@ -1701,4 +1728,4 @@ var UppyProvider = function UppyProvider(_ref5) {
1701
1728
  UppyProvider.propTypes = propTypes;
1702
1729
  UppyProvider.defaultProps = defaultProps;
1703
1730
 
1704
- 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, 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, useFieldComponent, useFieldDefinition, useFieldDefinitions, useFieldsComponents, useFieldsComponentsManager, useFieldsManager, useFilterComponent, useFiltersComponents, useFiltersComponentsManager, useFonts, useForm, useFormComponent, useFormSetValue, useFormValue, useFormsComponents, useFormsComponentsManager, useGoogleApiClient, useGoogleFonts, useGoogleKeys, useGoogleMapsClient, useListComponent, useListsComponents, useListsComponentsManager, useLocale, useLocales, useLocalesContext, useModalComponent, useModals, useModalsComponents, useModalsComponentsManager, usePanels, usePanneau, usePanneauAuth, usePanneauColorScheme, usePanneauComponent, usePanneauComponents, usePanneauResource, usePanneauResources, usePanneauSettings, useResource, useRouteBack, useRoutePush, useRoutes, useTracking, useUppy, useUrlGenerator, withGoogleApiClient, withGoogleMapsClient, withModals, withPanels };
1731
+ 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 };
package/es/hooks.js CHANGED
@@ -11,7 +11,9 @@ 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
13
  import isObject from 'lodash/isObject';
14
- import { useFieldsManager, usePanneauResources, useUrlGenerator } from '@panneau/core/contexts';
14
+ import isArray from 'lodash/isArray';
15
+ import get from 'lodash/get';
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) {
@@ -108,12 +110,15 @@ var useFormattedTime = function useFormattedTime() {
108
110
  var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
109
111
  var useDocumentEvent = createUseEvent(eventsManager$1);
110
112
 
113
+ var _excluded$1 = ["value", "errors", "onChange"];
114
+
111
115
  var getFieldsPropsFromFields = function getFieldsPropsFromFields(fields, _ref) {
112
116
  var value = _ref.value,
113
117
  errors = _ref.errors,
114
118
  _onChange = _ref.onChange,
115
- props = _objectWithoutProperties(_ref, ["value", "errors", "onChange"]);
119
+ props = _objectWithoutProperties(_ref, _excluded$1);
116
120
 
121
+ var locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
117
122
  return fields.reduce(function (allFields, field) {
118
123
  var _ref2 = isObject(field) ? field : {},
119
124
  _ref2$name = _ref2.name,
@@ -121,12 +126,18 @@ var getFieldsPropsFromFields = function getFieldsPropsFromFields(fields, _ref) {
121
126
  _ref2$component = _ref2.component,
122
127
  component = _ref2$component === void 0 ? null : _ref2$component;
123
128
 
124
- console.log('f', field);
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;
125
136
  return [].concat(_toConsumableArray(allFields), [_objectSpread(_objectSpread({}, isObject(field) ? field : null), {}, {
126
137
  name: name,
127
138
  component: component,
128
139
  value: value !== null ? value[name] || null : null,
129
- errors: errors !== null ? errors[name] || null : null,
140
+ errors: localizedErrors.length > 0 ? localizedErrors : null,
130
141
  onChange: function onChange(fieldValue) {
131
142
  return _onChange(name, fieldValue);
132
143
  }
@@ -161,7 +172,9 @@ var useForm = function useForm() {
161
172
  _opts$setValue = opts.setValue,
162
173
  setProvidedValue = _opts$setValue === void 0 ? null : _opts$setValue,
163
174
  _opts$onComplete = opts.onComplete,
164
- 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;
165
178
 
166
179
  var _useState = useState(initialValue || providedValue),
167
180
  _useState2 = _slicedToArray(_useState, 2),
@@ -201,7 +214,7 @@ var useForm = function useForm() {
201
214
  var hasProvidedGeneralError = setProvidedGeneralError !== null;
202
215
  var generalError = hasProvidedGeneralError ? providedGeneralError : stateGeneralError;
203
216
  var setGeneralError = hasProvidedGeneralError ? setProvidedGeneralError : setStateGeneralError;
204
- var fieldsKey = [value, errors].concat(fields);
217
+ var fieldsKey = [value, errors, locales].concat(fields);
205
218
  var onFieldChange = useCallback(function (fieldName, fieldValue) {
206
219
  var fieldErrors = errors !== null ? errors[fieldName] || null : null;
207
220
 
@@ -216,7 +229,7 @@ var useForm = function useForm() {
216
229
  value: value,
217
230
  errors: errors,
218
231
  onChange: onFieldChange
219
- });
232
+ }, locales);
220
233
  }, fieldsKey);
221
234
  var csrfToken = useMemo(function () {
222
235
  return getCsrfToken();
@@ -951,24 +964,32 @@ var getResource = function getResource(resources, resourceId) {
951
964
  var useResourceUrlGenerator = function useResourceUrlGenerator() {
952
965
  var resourceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
953
966
  var resources = usePanneauResources();
954
- var resource = getResource(resources, resourceId);
967
+ var contextResource = useResource();
968
+ var resource = getResource(resources, resourceId) || contextResource;
955
969
  var route = useUrlGenerator();
956
970
  return function (routeResourceId) {
957
971
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
958
972
  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
959
973
  var finalRouteName = resourceId !== null ? routeResourceId : routeName;
960
974
  var finalParams = resourceId !== null ? routeName : params;
961
- var finalResource = resource || getResource(resources, routeResourceId);
962
- var id = finalResource.id,
963
- _finalResource$has_ro = finalResource.has_routes,
964
- hasRoutes = _finalResource$has_ro === void 0 ? false : _finalResource$has_ro;
965
- var routePrefix = hasRoutes ? "resources.".concat(id) : 'resources';
966
- return route("".concat(routePrefix, ".").concat(finalRouteName), _objectSpread(_objectSpread({}, finalParams), {}, {
975
+ var finalResource = getResource(resources, routeResourceId) || resource;
976
+
977
+ var _ref = finalResource || {},
978
+ _ref$id = _ref.id,
979
+ id = _ref$id === void 0 ? null : _ref$id; // console.log('gen', finalRouteName, route(`resources.${finalRouteName}`, {
980
+ // ...finalParams,
981
+ // resource: id,
982
+ // }));
983
+
984
+
985
+ return id !== null ? route("resources.".concat(finalRouteName), _objectSpread(_objectSpread({}, finalParams), {}, {
967
986
  resource: id
968
- }));
987
+ })) : null;
969
988
  };
970
989
  };
971
990
 
991
+ var _excluded = ["width", "height"];
992
+
972
993
  var useScreenSize = function useScreenSize(_ref) {
973
994
  var _ref$width = _ref.width,
974
995
  width = _ref$width === void 0 ? null : _ref$width,
@@ -1016,7 +1037,7 @@ var useScreenSizeFromElement = function useScreenSizeFromElement() {
1016
1037
  width = _ref4$width === void 0 ? null : _ref4$width,
1017
1038
  _ref4$height = _ref4.height,
1018
1039
  height = _ref4$height === void 0 ? null : _ref4$height,
1019
- opts = _objectWithoutProperties(_ref4, ["width", "height"]);
1040
+ opts = _objectWithoutProperties(_ref4, _excluded);
1020
1041
 
1021
1042
  var _useResizeObserver = useResizeObserver(),
1022
1043
  ref = _useResizeObserver.ref,