@micromag/editor 0.3.324 → 0.3.326

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 +48 -37
  2. package/lib/index.js +47 -36
  3. package/package.json +7 -7
package/es/index.js CHANGED
@@ -7,7 +7,7 @@ import React, { useMemo, useRef, useCallback, useState, forwardRef, useEffect }
7
7
  import { useIntl, FormattedMessage } from 'react-intl';
8
8
  import { PropTypes as PropTypes$1 } from '@micromag/core';
9
9
  import { Button, FieldForm, BackButton, Breadcrumb as Breadcrumb$1, Modal, ModalDialog, Label, Navbar, DropdownMenu, Empty, Tabs, ScreenPlaceholder, ScreenPreview, Modals } from '@micromag/core/components';
10
- import { useRoutes, useScreenDefinition, useFormsComponents, useScreensManager, useFieldsManager, useUrlGenerator, useRoutePush, ScreenProvider, useScreenSize, PlaybackProvider, ModalsProvider, PanelsProvider, ScreenSizeProvider, useFieldComponent, ComponentsProvider, FORMS_NAMESPACE, UppyProvider, StoryProvider, GoogleKeysProvider, GoogleMapsClientProvider, FontsProvider, EditorProvider, VisitorProvider, ComponentsContext, RoutesProvider } from '@micromag/core/contexts';
10
+ import { useRoutes, useScreenDefinition, useFormsComponents, useScreensManager, useFieldsManager, useFieldsComponentsManager, useUrlGenerator, useRoutePush, ScreenProvider, useScreenSize, PlaybackProvider, ModalsProvider, PanelsProvider, ScreenSizeProvider, useFieldComponent, ComponentsProvider, FORMS_NAMESPACE, UppyProvider, StoryProvider, GoogleKeysProvider, GoogleMapsClientProvider, FontsProvider, EditorProvider, VisitorProvider, ComponentsContext, RoutesProvider } from '@micromag/core/contexts';
11
11
  import { useParsedStory, useDimensionObserver, useScreenSizeFromElement, useMediasParser } from '@micromag/core/hooks';
12
12
  import { getScreenExtraField, isMessage, slug, getComponentFromName, getDeviceScreens } from '@micromag/core/utils';
13
13
  import { useRouteMatch, useHistory, Route, MemoryRouter } from 'react-router';
@@ -422,6 +422,7 @@ var Breadcrumb = function Breadcrumb(_ref) {
422
422
  var history = useHistory();
423
423
  var screensManager = useScreensManager();
424
424
  var fieldsManager = useFieldsManager();
425
+ var fieldsComponentManager = useFieldsComponentsManager();
425
426
  var route = useUrlGenerator();
426
427
  var _useMemo = useMemo(function () {
427
428
  var screenIndex = screens.findIndex(function (it) {
@@ -495,13 +496,18 @@ var Breadcrumb = function Breadcrumb(_ref) {
495
496
  _ref7$settings = _ref7.settings,
496
497
  settings = _ref7$settings === void 0 ? null : _ref7$settings,
497
498
  _ref7$itemsField = _ref7.itemsField,
498
- defItemsField = _ref7$itemsField === void 0 ? null : _ref7$itemsField;
499
+ defItemsField = _ref7$itemsField === void 0 ? null : _ref7$itemsField,
500
+ _ref7$component = _ref7.component,
501
+ defComponent = _ref7$component === void 0 ? null : _ref7$component;
502
+ var _ref8 = fieldsComponentManager.getComponent(defComponent) || {},
503
+ _ref8$withForm = _ref8.withForm,
504
+ withForm = _ref8$withForm === void 0 ? false : _ref8$withForm;
499
505
  var itemsField = currentItemsField || defItemsField;
500
506
  var subFields = currentSubFields || defSubFields;
501
- var currentSubfields = subFields !== null ? getFieldByName(subFields, key) : null;
502
- var currentSettings = settings !== null ? getFieldByName(settings, key) : null;
503
- var isCurrentSubfields = currentSubfields !== null;
504
- var isCurrentSettings = currentSettings !== null;
507
+ var finalSubField = subFields !== null ? getFieldByName(subFields, key) : null;
508
+ var finalSettingsField = settings !== null ? getFieldByName(settings, key) : null;
509
+ var isCurrentSubField = finalSubField !== null;
510
+ var isCurrentSettingsField = finalSettingsField !== null;
505
511
  var isListItems = itemsField !== null && !!key.match(/^[0-9]+$/);
506
512
  var isLastIndex = keyIndex === lastKeyIndex;
507
513
  var pathPrefix = route('screen.field', {
@@ -513,30 +519,35 @@ var Breadcrumb = function Breadcrumb(_ref) {
513
519
  var pathSuffix = isLastIndex && form !== null ? "/".concat(form) : '';
514
520
  var addNewItem = isLastIndex || isListItems;
515
521
  var itemPath = "".concat(pathPrefix).concat(pathSuffix);
516
- var nextFields = null;
517
- if (isCurrentSubfields) {
518
- nextFields = currentSubfields;
519
- } else if (isCurrentSettings) {
520
- nextFields = currentSettings;
521
- if (parentItem !== null) {
522
- fieldItems.push(_objectSpread(_objectSpread({}, parentItem), {}, {
523
- url: route('screen.field.form', {
524
- screen: screenId,
525
- field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex))).filter(function (it) {
526
- return it !== null;
527
- }),
528
- form: 'settings'
522
+ if (parentItem !== null && (withForm || isCurrentSettingsField)) {
523
+ fieldItems.push(_objectSpread(_objectSpread({}, parentItem), {}, {
524
+ url: isCurrentSettingsField ? route('screen.field.form', {
525
+ screen: screenId,
526
+ field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex))).filter(function (it) {
527
+ return it !== null;
528
+ }),
529
+ form: 'settings'
530
+ }) : route('screen.field', {
531
+ screen: screenId,
532
+ field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray(finalFieldPath.slice(0, keyIndex))).filter(function (it) {
533
+ return it !== null;
529
534
  })
530
- }));
531
- }
535
+ })
536
+ }));
537
+ }
538
+ var nextField = null;
539
+ if (isCurrentSubField) {
540
+ nextField = finalSubField;
541
+ } else if (isCurrentSettingsField) {
542
+ nextField = finalSettingsField;
532
543
  } else if (isListItems) {
533
- nextFields = itemsField;
544
+ nextField = itemsField;
534
545
  }
535
- var fieldLabel = nextFields ? nextFields.breadcrumbLabel || nextFields.label : null;
546
+ var fieldLabel = nextField ? nextField.breadcrumbLabel || nextField.label : null;
536
547
  var itemLabel = isMessage(fieldLabel) ? intl.formatMessage(fieldLabel) : fieldLabel;
537
- var _ref8 = parentItem || {},
538
- _ref8$label = _ref8.label,
539
- parentItemLabel = _ref8$label === void 0 ? null : _ref8$label;
548
+ var _ref9 = parentItem || {},
549
+ _ref9$label = _ref9.label,
550
+ parentItemLabel = _ref9$label === void 0 ? null : _ref9$label;
540
551
  var finalItemLabel = isListItems ? "".concat(itemLabel, " #").concat(parseInt(key, 10) + 1) : itemLabel || parentItemLabel;
541
552
  var item = {
542
553
  url: itemPath,
@@ -546,22 +557,22 @@ var Breadcrumb = function Breadcrumb(_ref) {
546
557
  if (addNewItem) {
547
558
  fieldItems.push(item);
548
559
  }
549
- parentItem = item;
550
- return nextFields;
560
+ parentItem = !addNewItem ? item : null;
561
+ return nextField;
551
562
  }, {
552
- fields: stateId === null ? screenFields : screenFields.filter(function (_ref9) {
553
- var _ref9$stateId = _ref9.stateId,
554
- fieldStateId = _ref9$stateId === void 0 ? null : _ref9$stateId;
563
+ fields: stateId === null ? screenFields : screenFields.filter(function (_ref10) {
564
+ var _ref10$stateId = _ref10.stateId,
565
+ fieldStateId = _ref10$stateId === void 0 ? null : _ref10$stateId;
555
566
  return fieldStateId === null || fieldStateId === stateId;
556
567
  })
557
568
  });
558
569
  }
559
- var _ref10 = screenParameters || {},
560
- _ref10$metadata = _ref10.metadata,
561
- metadata = _ref10$metadata === void 0 ? null : _ref10$metadata;
562
- var _ref11 = metadata || {},
563
- _ref11$title = _ref11.title,
564
- title = _ref11$title === void 0 ? null : _ref11$title;
570
+ var _ref11 = screenParameters || {},
571
+ _ref11$metadata = _ref11.metadata,
572
+ metadata = _ref11$metadata === void 0 ? null : _ref11$metadata;
573
+ var _ref12 = metadata || {},
574
+ _ref12$title = _ref12.title,
575
+ title = _ref12$title === void 0 ? null : _ref12$title;
565
576
  var typeTitle = screenTitle !== null ? /*#__PURE__*/React.createElement(FormattedMessage, screenTitle) : null;
566
577
  var parametersMessage = intl.formatMessage({
567
578
  id: "AHvHaY",
package/lib/index.js CHANGED
@@ -442,6 +442,7 @@ var Breadcrumb = function Breadcrumb(_ref) {
442
442
  var history = reactRouter.useHistory();
443
443
  var screensManager = contexts.useScreensManager();
444
444
  var fieldsManager = contexts.useFieldsManager();
445
+ var fieldsComponentManager = contexts.useFieldsComponentsManager();
445
446
  var route = contexts.useUrlGenerator();
446
447
  var _useMemo = React.useMemo(function () {
447
448
  var screenIndex = screens.findIndex(function (it) {
@@ -515,13 +516,18 @@ var Breadcrumb = function Breadcrumb(_ref) {
515
516
  _ref7$settings = _ref7.settings,
516
517
  settings = _ref7$settings === void 0 ? null : _ref7$settings,
517
518
  _ref7$itemsField = _ref7.itemsField,
518
- defItemsField = _ref7$itemsField === void 0 ? null : _ref7$itemsField;
519
+ defItemsField = _ref7$itemsField === void 0 ? null : _ref7$itemsField,
520
+ _ref7$component = _ref7.component,
521
+ defComponent = _ref7$component === void 0 ? null : _ref7$component;
522
+ var _ref8 = fieldsComponentManager.getComponent(defComponent) || {},
523
+ _ref8$withForm = _ref8.withForm,
524
+ withForm = _ref8$withForm === void 0 ? false : _ref8$withForm;
519
525
  var itemsField = currentItemsField || defItemsField;
520
526
  var subFields = currentSubFields || defSubFields;
521
- var currentSubfields = subFields !== null ? getFieldByName(subFields, key) : null;
522
- var currentSettings = settings !== null ? getFieldByName(settings, key) : null;
523
- var isCurrentSubfields = currentSubfields !== null;
524
- var isCurrentSettings = currentSettings !== null;
527
+ var finalSubField = subFields !== null ? getFieldByName(subFields, key) : null;
528
+ var finalSettingsField = settings !== null ? getFieldByName(settings, key) : null;
529
+ var isCurrentSubField = finalSubField !== null;
530
+ var isCurrentSettingsField = finalSettingsField !== null;
525
531
  var isListItems = itemsField !== null && !!key.match(/^[0-9]+$/);
526
532
  var isLastIndex = keyIndex === lastKeyIndex;
527
533
  var pathPrefix = route('screen.field', {
@@ -533,30 +539,35 @@ var Breadcrumb = function Breadcrumb(_ref) {
533
539
  var pathSuffix = isLastIndex && form !== null ? "/".concat(form) : '';
534
540
  var addNewItem = isLastIndex || isListItems;
535
541
  var itemPath = "".concat(pathPrefix).concat(pathSuffix);
536
- var nextFields = null;
537
- if (isCurrentSubfields) {
538
- nextFields = currentSubfields;
539
- } else if (isCurrentSettings) {
540
- nextFields = currentSettings;
541
- if (parentItem !== null) {
542
- fieldItems.push(_objectSpread__default["default"](_objectSpread__default["default"]({}, parentItem), {}, {
543
- url: route('screen.field.form', {
544
- screen: screenId,
545
- field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray__default["default"](finalFieldPath.slice(0, keyIndex))).filter(function (it) {
546
- return it !== null;
547
- }),
548
- form: 'settings'
542
+ if (parentItem !== null && (withForm || isCurrentSettingsField)) {
543
+ fieldItems.push(_objectSpread__default["default"](_objectSpread__default["default"]({}, parentItem), {}, {
544
+ url: isCurrentSettingsField ? route('screen.field.form', {
545
+ screen: screenId,
546
+ field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray__default["default"](finalFieldPath.slice(0, keyIndex))).filter(function (it) {
547
+ return it !== null;
548
+ }),
549
+ form: 'settings'
550
+ }) : route('screen.field', {
551
+ screen: screenId,
552
+ field: [currentState !== null ? currentState.id : null].concat(_toConsumableArray__default["default"](finalFieldPath.slice(0, keyIndex))).filter(function (it) {
553
+ return it !== null;
549
554
  })
550
- }));
551
- }
555
+ })
556
+ }));
557
+ }
558
+ var nextField = null;
559
+ if (isCurrentSubField) {
560
+ nextField = finalSubField;
561
+ } else if (isCurrentSettingsField) {
562
+ nextField = finalSettingsField;
552
563
  } else if (isListItems) {
553
- nextFields = itemsField;
564
+ nextField = itemsField;
554
565
  }
555
- var fieldLabel = nextFields ? nextFields.breadcrumbLabel || nextFields.label : null;
566
+ var fieldLabel = nextField ? nextField.breadcrumbLabel || nextField.label : null;
556
567
  var itemLabel = utils.isMessage(fieldLabel) ? intl.formatMessage(fieldLabel) : fieldLabel;
557
- var _ref8 = parentItem || {},
558
- _ref8$label = _ref8.label,
559
- parentItemLabel = _ref8$label === void 0 ? null : _ref8$label;
568
+ var _ref9 = parentItem || {},
569
+ _ref9$label = _ref9.label,
570
+ parentItemLabel = _ref9$label === void 0 ? null : _ref9$label;
560
571
  var finalItemLabel = isListItems ? "".concat(itemLabel, " #").concat(parseInt(key, 10) + 1) : itemLabel || parentItemLabel;
561
572
  var item = {
562
573
  url: itemPath,
@@ -566,22 +577,22 @@ var Breadcrumb = function Breadcrumb(_ref) {
566
577
  if (addNewItem) {
567
578
  fieldItems.push(item);
568
579
  }
569
- parentItem = item;
570
- return nextFields;
580
+ parentItem = !addNewItem ? item : null;
581
+ return nextField;
571
582
  }, {
572
- fields: stateId === null ? screenFields : screenFields.filter(function (_ref9) {
573
- var _ref9$stateId = _ref9.stateId,
574
- fieldStateId = _ref9$stateId === void 0 ? null : _ref9$stateId;
583
+ fields: stateId === null ? screenFields : screenFields.filter(function (_ref10) {
584
+ var _ref10$stateId = _ref10.stateId,
585
+ fieldStateId = _ref10$stateId === void 0 ? null : _ref10$stateId;
575
586
  return fieldStateId === null || fieldStateId === stateId;
576
587
  })
577
588
  });
578
589
  }
579
- var _ref10 = screenParameters || {},
580
- _ref10$metadata = _ref10.metadata,
581
- metadata = _ref10$metadata === void 0 ? null : _ref10$metadata;
582
- var _ref11 = metadata || {},
583
- _ref11$title = _ref11.title,
584
- title = _ref11$title === void 0 ? null : _ref11$title;
590
+ var _ref11 = screenParameters || {},
591
+ _ref11$metadata = _ref11.metadata,
592
+ metadata = _ref11$metadata === void 0 ? null : _ref11$metadata;
593
+ var _ref12 = metadata || {},
594
+ _ref12$title = _ref12.title,
595
+ title = _ref12$title === void 0 ? null : _ref12$title;
585
596
  var typeTitle = screenTitle !== null ? /*#__PURE__*/React__default["default"].createElement(reactIntl.FormattedMessage, screenTitle) : null;
586
597
  var parametersMessage = intl.formatMessage({
587
598
  id: "AHvHaY",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/editor",
3
- "version": "0.3.324",
3
+ "version": "0.3.326",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -62,11 +62,11 @@
62
62
  "@fortawesome/fontawesome-svg-core": "^1.2.32",
63
63
  "@fortawesome/free-solid-svg-icons": "^5.15.1",
64
64
  "@fortawesome/react-fontawesome": "^0.1.13",
65
- "@micromag/core": "^0.3.323",
66
- "@micromag/elements": "^0.3.323",
67
- "@micromag/fields": "^0.3.323",
68
- "@micromag/screens": "^0.3.324",
69
- "@micromag/viewer": "^0.3.324",
65
+ "@micromag/core": "^0.3.325",
66
+ "@micromag/elements": "^0.3.325",
67
+ "@micromag/fields": "^0.3.326",
68
+ "@micromag/screens": "^0.3.326",
69
+ "@micromag/viewer": "^0.3.326",
70
70
  "classnames": "^2.2.6",
71
71
  "lodash": "^4.17.21",
72
72
  "prop-types": "^15.7.2",
@@ -81,5 +81,5 @@
81
81
  "publishConfig": {
82
82
  "access": "public"
83
83
  },
84
- "gitHead": "b15f8d8d58ae9516151b72df1609290fecec1a9b"
84
+ "gitHead": "54b9410aeb770aa362e9f1c68876e5bdb67411ad"
85
85
  }