@commercetools-frontend/experimental-components 6.2.4 → 6.3.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.
@@ -118,6 +118,24 @@ var get = require('lodash/get');
118
118
 
119
119
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
120
120
 
121
+ function _interopNamespace(e) {
122
+ if (e && e.__esModule) return e;
123
+ var n = Object.create(null);
124
+ if (e) {
125
+ Object.keys(e).forEach(function (k) {
126
+ if (k !== 'default') {
127
+ var d = Object.getOwnPropertyDescriptor(e, k);
128
+ Object.defineProperty(n, k, d.get ? d : {
129
+ enumerable: true,
130
+ get: function () { return e[k]; }
131
+ });
132
+ }
133
+ });
134
+ }
135
+ n["default"] = e;
136
+ return Object.freeze(n);
137
+ }
138
+
121
139
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
122
140
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
123
141
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
@@ -136,7 +154,7 @@ var isEmpty__default = /*#__PURE__*/_interopDefault(isEmpty$3);
136
154
  var omit__default = /*#__PURE__*/_interopDefault(omit);
137
155
  var pick__default = /*#__PURE__*/_interopDefault(pick);
138
156
  var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
139
- var React__default = /*#__PURE__*/_interopDefault(React);
157
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
140
158
  var _Map__default = /*#__PURE__*/_interopDefault(_Map);
141
159
  var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
142
160
  var _Promise__default = /*#__PURE__*/_interopDefault(_Promise);
@@ -677,7 +695,7 @@ var StatePickerInput$1 = StatePickerInput;
677
695
 
678
696
  function ownKeys$1q(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
679
697
  function _objectSpread$1q(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1q(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1q(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
680
- const TooltipWrapper = /*#__PURE__*/React__default["default"].forwardRef((props, ref) => jsxRuntime.jsx("div", _objectSpread$1q({
698
+ const TooltipWrapper = /*#__PURE__*/React__namespace["default"].forwardRef((props, ref) => jsxRuntime.jsx("div", _objectSpread$1q({
681
699
  ref: ref,
682
700
  style: {
683
701
  display: 'block',
@@ -1639,6 +1657,24 @@ const injectStorage = options => WrappedComponent => {
1639
1657
  };
1640
1658
  var injectStorage$1 = injectStorage;
1641
1659
 
1660
+ const useFormatLocalizedString = () => {
1661
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
1662
+ dataLocale: applicationContext.dataLocale,
1663
+ projectLanguages: applicationContext.project?.languages
1664
+ })),
1665
+ dataLocale = _useApplicationContex.dataLocale,
1666
+ projectLanguages = _useApplicationContex.projectLanguages;
1667
+ const localizedFormatString = React.useCallback((value, options) => l10n.formatLocalizedString({
1668
+ k: value
1669
+ }, {
1670
+ key: 'k',
1671
+ locale: dataLocale,
1672
+ fallbackOrder: projectLanguages,
1673
+ fallback: options?.fallback
1674
+ }), [dataLocale, projectLanguages]);
1675
+ return localizedFormatString;
1676
+ };
1677
+
1642
1678
  /**
1643
1679
  * @returns function with the following parameters
1644
1680
  * - {LocalizedStrings} localizedStrings - an array of graphql LocalizedString,
@@ -1649,23 +1685,13 @@ var injectStorage$1 = injectStorage;
1649
1685
  */
1650
1686
  // @TODO: expose through app-kit
1651
1687
  function useFormatLocalizedFieldToString() {
1652
- const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
1653
- dataLocale: context.dataLocale,
1654
- projectLanguages: context.project.languages
1655
- })),
1656
- dataLocale = _useApplicationContex.dataLocale,
1657
- projectLanguages = _useApplicationContex.projectLanguages;
1688
+ const formatLocalizedString = useFormatLocalizedString();
1658
1689
  const formatLocalizedFieldToString = React.useCallback((localizedField, fallback) => {
1659
- const localizedString = l10n.transformLocalizedFieldToLocalizedString(localizedField);
1660
- return l10n.formatLocalizedString({
1661
- localizedString
1662
- }, {
1663
- key: 'localizedString',
1664
- locale: dataLocale,
1665
- fallback,
1666
- fallbackOrder: projectLanguages
1690
+ const localizedString = l10n.transformLocalizedFieldToLocalizedString(localizedField ?? undefined);
1691
+ return formatLocalizedString(localizedString, {
1692
+ fallback
1667
1693
  });
1668
- }, [dataLocale, projectLanguages]);
1694
+ }, [formatLocalizedString]);
1669
1695
  return formatLocalizedFieldToString;
1670
1696
  }
1671
1697
 
@@ -5976,6 +6002,19 @@ function Divider(_ref) {
5976
6002
  }
5977
6003
  Divider.displayName = 'Divider';
5978
6004
 
6005
+ const FormattedLocalizedString = /*#__PURE__*/React__namespace.memo(_ref => {
6006
+ let value = _ref.value,
6007
+ fallback = _ref.fallback;
6008
+ const formatLocalizedString = useFormatLocalizedString();
6009
+ const formattedValue = formatLocalizedString(value, {
6010
+ fallback
6011
+ });
6012
+ return formattedValue ? jsxRuntime.jsx(jsxRuntime.Fragment, {
6013
+ children: formattedValue
6014
+ }) : jsxRuntime.jsx(jsxRuntime.Fragment, {});
6015
+ });
6016
+ FormattedLocalizedString.displayName = 'FormattedLocalizedString';
6017
+
5979
6018
  // eslint-disable-next-line import/prefer-default-export
5980
6019
  const CUSTOM_FIELD_TYPES = {
5981
6020
  text: 'text',
@@ -9879,6 +9918,11 @@ var messages$s = reactIntl.defineMessages({
9879
9918
  description: 'The label when there is no custom type selected',
9880
9919
  defaultMessage: 'No custom type is selected. Please select a custom type from the dropdown.'
9881
9920
  },
9921
+ noCustomTypeReadOnly: {
9922
+ id: 'CustomTypesSubform.noCustomTypeReadOnly',
9923
+ description: 'The label when there is no custom type selected',
9924
+ defaultMessage: 'No custom type is selected.'
9925
+ },
9882
9926
  noTypes: {
9883
9927
  id: 'CustomTypesSubform.noTypes',
9884
9928
  description: 'The label when there is no custom type defined in the project',
@@ -10024,6 +10068,9 @@ const CustomFieldsInputWrapper = _ref2 => {
10024
10068
  if (!typeDefinitionsExist(typeDefinitions)) {
10025
10069
  return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noTypes));
10026
10070
  }
10071
+ if (!typeDefinitionSelected(formValues, rootFieldName) && isReadOnly) {
10072
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noCustomTypeReadOnly));
10073
+ }
10027
10074
  if (!typeDefinitionSelected(formValues, rootFieldName)) {
10028
10075
  return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noCustomType));
10029
10076
  }
@@ -13705,6 +13752,7 @@ exports.Divider = Divider;
13705
13752
  exports.EMAIL_REGEX = EMAIL_REGEX;
13706
13753
  exports.FileInput = FileInput$1;
13707
13754
  exports.FormattedDateTime = FormattedDateTime$1;
13755
+ exports.FormattedLocalizedString = FormattedLocalizedString;
13708
13756
  exports.LabelRange = LabelRange$1;
13709
13757
  exports.MC_RESOURCES_WITH_KEYS = MC_RESOURCES_WITH_KEYS;
13710
13758
  exports.MissingValueField = MissingValueField$1;
@@ -13859,6 +13907,7 @@ exports.useCustomerGroupsPlatformLimits = useCustomerGroupsPlatformLimits$1;
13859
13907
  exports.useCustomersPlatformLimits = useCustomersPlatformLimits$1;
13860
13908
  exports.useDebouncedPromiseCallback = useDebouncedPromiseCallback$1;
13861
13909
  exports.useFormatLocalizedFieldToString = useFormatLocalizedFieldToString;
13910
+ exports.useFormatLocalizedString = useFormatLocalizedString;
13862
13911
  exports.useIsFieldDuplicated = useIsFieldDuplicated$1;
13863
13912
  exports.useLoadOptions = useLoadOptions$1;
13864
13913
  exports.useLocalizedKeyFallback = useLocalizedKeyFallback$1;
@@ -118,6 +118,24 @@ var get = require('lodash/get');
118
118
 
119
119
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
120
120
 
121
+ function _interopNamespace(e) {
122
+ if (e && e.__esModule) return e;
123
+ var n = Object.create(null);
124
+ if (e) {
125
+ Object.keys(e).forEach(function (k) {
126
+ if (k !== 'default') {
127
+ var d = Object.getOwnPropertyDescriptor(e, k);
128
+ Object.defineProperty(n, k, d.get ? d : {
129
+ enumerable: true,
130
+ get: function () { return e[k]; }
131
+ });
132
+ }
133
+ });
134
+ }
135
+ n["default"] = e;
136
+ return Object.freeze(n);
137
+ }
138
+
121
139
  var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
122
140
  var _Object$getOwnPropertySymbols__default = /*#__PURE__*/_interopDefault(_Object$getOwnPropertySymbols);
123
141
  var _filterInstanceProperty__default = /*#__PURE__*/_interopDefault(_filterInstanceProperty);
@@ -136,7 +154,7 @@ var isEmpty__default = /*#__PURE__*/_interopDefault(isEmpty$3);
136
154
  var omit__default = /*#__PURE__*/_interopDefault(omit);
137
155
  var pick__default = /*#__PURE__*/_interopDefault(pick);
138
156
  var _includesInstanceProperty__default = /*#__PURE__*/_interopDefault(_includesInstanceProperty);
139
- var React__default = /*#__PURE__*/_interopDefault(React);
157
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
140
158
  var _Map__default = /*#__PURE__*/_interopDefault(_Map);
141
159
  var _everyInstanceProperty__default = /*#__PURE__*/_interopDefault(_everyInstanceProperty);
142
160
  var _Promise__default = /*#__PURE__*/_interopDefault(_Promise);
@@ -676,7 +694,7 @@ var StatePickerInput$1 = StatePickerInput;
676
694
 
677
695
  function ownKeys$1q(e, r) { var t = _Object$keys__default["default"](e); if (_Object$getOwnPropertySymbols__default["default"]) { var o = _Object$getOwnPropertySymbols__default["default"](e); r && (o = _filterInstanceProperty__default["default"](o).call(o, function (r) { return _Object$getOwnPropertyDescriptor__default["default"](e, r).enumerable; })), t.push.apply(t, o); } return t; }
678
696
  function _objectSpread$1q(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$1q(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](e, _Object$getOwnPropertyDescriptors__default["default"](t)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$1q(Object(t))).call(_context2, function (r) { _Object$defineProperty__default["default"](e, r, _Object$getOwnPropertyDescriptor__default["default"](t, r)); }); } return e; }
679
- const TooltipWrapper = /*#__PURE__*/React__default["default"].forwardRef((props, ref) => jsxRuntime.jsx("div", _objectSpread$1q({
697
+ const TooltipWrapper = /*#__PURE__*/React__namespace["default"].forwardRef((props, ref) => jsxRuntime.jsx("div", _objectSpread$1q({
680
698
  ref: ref,
681
699
  style: {
682
700
  display: 'block',
@@ -1638,6 +1656,24 @@ const injectStorage = options => WrappedComponent => {
1638
1656
  };
1639
1657
  var injectStorage$1 = injectStorage;
1640
1658
 
1659
+ const useFormatLocalizedString = () => {
1660
+ const _useApplicationContex = applicationShellConnectors.useApplicationContext(applicationContext => ({
1661
+ dataLocale: applicationContext.dataLocale,
1662
+ projectLanguages: applicationContext.project?.languages
1663
+ })),
1664
+ dataLocale = _useApplicationContex.dataLocale,
1665
+ projectLanguages = _useApplicationContex.projectLanguages;
1666
+ const localizedFormatString = React.useCallback((value, options) => l10n.formatLocalizedString({
1667
+ k: value
1668
+ }, {
1669
+ key: 'k',
1670
+ locale: dataLocale,
1671
+ fallbackOrder: projectLanguages,
1672
+ fallback: options?.fallback
1673
+ }), [dataLocale, projectLanguages]);
1674
+ return localizedFormatString;
1675
+ };
1676
+
1641
1677
  /**
1642
1678
  * @returns function with the following parameters
1643
1679
  * - {LocalizedStrings} localizedStrings - an array of graphql LocalizedString,
@@ -1648,23 +1684,13 @@ var injectStorage$1 = injectStorage;
1648
1684
  */
1649
1685
  // @TODO: expose through app-kit
1650
1686
  function useFormatLocalizedFieldToString() {
1651
- const _useApplicationContex = applicationShellConnectors.useApplicationContext(context => ({
1652
- dataLocale: context.dataLocale,
1653
- projectLanguages: context.project.languages
1654
- })),
1655
- dataLocale = _useApplicationContex.dataLocale,
1656
- projectLanguages = _useApplicationContex.projectLanguages;
1687
+ const formatLocalizedString = useFormatLocalizedString();
1657
1688
  const formatLocalizedFieldToString = React.useCallback((localizedField, fallback) => {
1658
- const localizedString = l10n.transformLocalizedFieldToLocalizedString(localizedField);
1659
- return l10n.formatLocalizedString({
1660
- localizedString
1661
- }, {
1662
- key: 'localizedString',
1663
- locale: dataLocale,
1664
- fallback,
1665
- fallbackOrder: projectLanguages
1689
+ const localizedString = l10n.transformLocalizedFieldToLocalizedString(localizedField ?? undefined);
1690
+ return formatLocalizedString(localizedString, {
1691
+ fallback
1666
1692
  });
1667
- }, [dataLocale, projectLanguages]);
1693
+ }, [formatLocalizedString]);
1668
1694
  return formatLocalizedFieldToString;
1669
1695
  }
1670
1696
 
@@ -5975,6 +6001,19 @@ function Divider(_ref) {
5975
6001
  }
5976
6002
  Divider.displayName = 'Divider';
5977
6003
 
6004
+ const FormattedLocalizedString = /*#__PURE__*/React__namespace.memo(_ref => {
6005
+ let value = _ref.value,
6006
+ fallback = _ref.fallback;
6007
+ const formatLocalizedString = useFormatLocalizedString();
6008
+ const formattedValue = formatLocalizedString(value, {
6009
+ fallback
6010
+ });
6011
+ return formattedValue ? jsxRuntime.jsx(jsxRuntime.Fragment, {
6012
+ children: formattedValue
6013
+ }) : jsxRuntime.jsx(jsxRuntime.Fragment, {});
6014
+ });
6015
+ FormattedLocalizedString.displayName = 'FormattedLocalizedString';
6016
+
5978
6017
  // eslint-disable-next-line import/prefer-default-export
5979
6018
  const CUSTOM_FIELD_TYPES = {
5980
6019
  text: 'text',
@@ -9858,6 +9897,11 @@ var messages$s = reactIntl.defineMessages({
9858
9897
  description: 'The label when there is no custom type selected',
9859
9898
  defaultMessage: 'No custom type is selected. Please select a custom type from the dropdown.'
9860
9899
  },
9900
+ noCustomTypeReadOnly: {
9901
+ id: 'CustomTypesSubform.noCustomTypeReadOnly',
9902
+ description: 'The label when there is no custom type selected',
9903
+ defaultMessage: 'No custom type is selected.'
9904
+ },
9861
9905
  noTypes: {
9862
9906
  id: 'CustomTypesSubform.noTypes',
9863
9907
  description: 'The label when there is no custom type defined in the project',
@@ -10003,6 +10047,9 @@ const CustomFieldsInputWrapper = _ref2 => {
10003
10047
  if (!typeDefinitionsExist(typeDefinitions)) {
10004
10048
  return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noTypes));
10005
10049
  }
10050
+ if (!typeDefinitionSelected(formValues, rootFieldName) && isReadOnly) {
10051
+ return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noCustomTypeReadOnly));
10052
+ }
10006
10053
  if (!typeDefinitionSelected(formValues, rootFieldName)) {
10007
10054
  return jsxRuntime.jsx(reactIntl.FormattedMessage, _objectSpread$t({}, messages$s.noCustomType));
10008
10055
  }
@@ -13684,6 +13731,7 @@ exports.Divider = Divider;
13684
13731
  exports.EMAIL_REGEX = EMAIL_REGEX;
13685
13732
  exports.FileInput = FileInput$1;
13686
13733
  exports.FormattedDateTime = FormattedDateTime$1;
13734
+ exports.FormattedLocalizedString = FormattedLocalizedString;
13687
13735
  exports.LabelRange = LabelRange$1;
13688
13736
  exports.MC_RESOURCES_WITH_KEYS = MC_RESOURCES_WITH_KEYS;
13689
13737
  exports.MissingValueField = MissingValueField$1;
@@ -13838,6 +13886,7 @@ exports.useCustomerGroupsPlatformLimits = useCustomerGroupsPlatformLimits$1;
13838
13886
  exports.useCustomersPlatformLimits = useCustomersPlatformLimits$1;
13839
13887
  exports.useDebouncedPromiseCallback = useDebouncedPromiseCallback$1;
13840
13888
  exports.useFormatLocalizedFieldToString = useFormatLocalizedFieldToString;
13889
+ exports.useFormatLocalizedString = useFormatLocalizedString;
13841
13890
  exports.useIsFieldDuplicated = useIsFieldDuplicated$1;
13842
13891
  exports.useLoadOptions = useLoadOptions$1;
13843
13892
  exports.useLocalizedKeyFallback = useLocalizedKeyFallback$1;
@@ -19,9 +19,10 @@ import _valuesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/insta
19
19
  import isEmpty$3 from 'lodash/isEmpty';
20
20
  import omit from 'lodash/omit';
21
21
  import pick from 'lodash/pick';
22
- import { transformLocalizedFieldToLocalizedString, formatLocalizedString, applyTransformedLocalizedFields, transformLocalizedStringToLocalizedField } from '@commercetools-frontend/l10n';
22
+ import { formatLocalizedString, transformLocalizedFieldToLocalizedString, applyTransformedLocalizedFields, transformLocalizedStringToLocalizedField } from '@commercetools-frontend/l10n';
23
23
  import _includesInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/includes';
24
- import React, { useMemo, useState, useCallback, useEffect, PureComponent, Component, useRef, createContext, memo, useContext, forwardRef } from 'react';
24
+ import * as React from 'react';
25
+ import React__default, { useMemo, useState, useCallback, useEffect, PureComponent, Component, useRef, createContext, memo, useContext, forwardRef } from 'react';
25
26
  import { useApolloClient, useQuery as useQuery$1 } from '@apollo/client';
26
27
  import { useQuery, useApolloClient as useApolloClient$1 } from '@apollo/client/react';
27
28
  import { defineMessages, useIntl, injectIntl, FormattedMessage } from 'react-intl';
@@ -594,7 +595,7 @@ var StatePickerInput$1 = StatePickerInput;
594
595
 
595
596
  function ownKeys$1q(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
596
597
  function _objectSpread$1q(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys$1q(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys$1q(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
597
- const TooltipWrapper = /*#__PURE__*/React.forwardRef((props, ref) => jsx("div", _objectSpread$1q({
598
+ const TooltipWrapper = /*#__PURE__*/React__default.forwardRef((props, ref) => jsx("div", _objectSpread$1q({
598
599
  ref: ref,
599
600
  style: {
600
601
  display: 'block',
@@ -1556,6 +1557,24 @@ const injectStorage = options => WrappedComponent => {
1556
1557
  };
1557
1558
  var injectStorage$1 = injectStorage;
1558
1559
 
1560
+ const useFormatLocalizedString = () => {
1561
+ const _useApplicationContex = useApplicationContext(applicationContext => ({
1562
+ dataLocale: applicationContext.dataLocale,
1563
+ projectLanguages: applicationContext.project?.languages
1564
+ })),
1565
+ dataLocale = _useApplicationContex.dataLocale,
1566
+ projectLanguages = _useApplicationContex.projectLanguages;
1567
+ const localizedFormatString = useCallback((value, options) => formatLocalizedString({
1568
+ k: value
1569
+ }, {
1570
+ key: 'k',
1571
+ locale: dataLocale,
1572
+ fallbackOrder: projectLanguages,
1573
+ fallback: options?.fallback
1574
+ }), [dataLocale, projectLanguages]);
1575
+ return localizedFormatString;
1576
+ };
1577
+
1559
1578
  /**
1560
1579
  * @returns function with the following parameters
1561
1580
  * - {LocalizedStrings} localizedStrings - an array of graphql LocalizedString,
@@ -1566,23 +1585,13 @@ var injectStorage$1 = injectStorage;
1566
1585
  */
1567
1586
  // @TODO: expose through app-kit
1568
1587
  function useFormatLocalizedFieldToString() {
1569
- const _useApplicationContex = useApplicationContext(context => ({
1570
- dataLocale: context.dataLocale,
1571
- projectLanguages: context.project.languages
1572
- })),
1573
- dataLocale = _useApplicationContex.dataLocale,
1574
- projectLanguages = _useApplicationContex.projectLanguages;
1588
+ const formatLocalizedString = useFormatLocalizedString();
1575
1589
  const formatLocalizedFieldToString = useCallback((localizedField, fallback) => {
1576
- const localizedString = transformLocalizedFieldToLocalizedString(localizedField);
1577
- return formatLocalizedString({
1578
- localizedString
1579
- }, {
1580
- key: 'localizedString',
1581
- locale: dataLocale,
1582
- fallback,
1583
- fallbackOrder: projectLanguages
1590
+ const localizedString = transformLocalizedFieldToLocalizedString(localizedField ?? undefined);
1591
+ return formatLocalizedString(localizedString, {
1592
+ fallback
1584
1593
  });
1585
- }, [dataLocale, projectLanguages]);
1594
+ }, [formatLocalizedString]);
1586
1595
  return formatLocalizedFieldToString;
1587
1596
  }
1588
1597
 
@@ -5893,6 +5902,19 @@ function Divider(_ref) {
5893
5902
  }
5894
5903
  Divider.displayName = 'Divider';
5895
5904
 
5905
+ const FormattedLocalizedString = /*#__PURE__*/React.memo(_ref => {
5906
+ let value = _ref.value,
5907
+ fallback = _ref.fallback;
5908
+ const formatLocalizedString = useFormatLocalizedString();
5909
+ const formattedValue = formatLocalizedString(value, {
5910
+ fallback
5911
+ });
5912
+ return formattedValue ? jsx(Fragment, {
5913
+ children: formattedValue
5914
+ }) : jsx(Fragment, {});
5915
+ });
5916
+ FormattedLocalizedString.displayName = 'FormattedLocalizedString';
5917
+
5896
5918
  // eslint-disable-next-line import/prefer-default-export
5897
5919
  const CUSTOM_FIELD_TYPES = {
5898
5920
  text: 'text',
@@ -9796,6 +9818,11 @@ var messages$s = defineMessages({
9796
9818
  description: 'The label when there is no custom type selected',
9797
9819
  defaultMessage: 'No custom type is selected. Please select a custom type from the dropdown.'
9798
9820
  },
9821
+ noCustomTypeReadOnly: {
9822
+ id: 'CustomTypesSubform.noCustomTypeReadOnly',
9823
+ description: 'The label when there is no custom type selected',
9824
+ defaultMessage: 'No custom type is selected.'
9825
+ },
9799
9826
  noTypes: {
9800
9827
  id: 'CustomTypesSubform.noTypes',
9801
9828
  description: 'The label when there is no custom type defined in the project',
@@ -9941,6 +9968,9 @@ const CustomFieldsInputWrapper = _ref2 => {
9941
9968
  if (!typeDefinitionsExist(typeDefinitions)) {
9942
9969
  return jsx(FormattedMessage, _objectSpread$t({}, messages$s.noTypes));
9943
9970
  }
9971
+ if (!typeDefinitionSelected(formValues, rootFieldName) && isReadOnly) {
9972
+ return jsx(FormattedMessage, _objectSpread$t({}, messages$s.noCustomTypeReadOnly));
9973
+ }
9944
9974
  if (!typeDefinitionSelected(formValues, rootFieldName)) {
9945
9975
  return jsx(FormattedMessage, _objectSpread$t({}, messages$s.noCustomType));
9946
9976
  }
@@ -13602,4 +13632,4 @@ function withPendingRequests() {
13602
13632
 
13603
13633
  var CategorySearchPickerOptionFragment = { kind: "Document", definitions: [{ kind: "FragmentDefinition", name: { kind: "Name", value: "CategorySearchPickerOptionFragment" }, typeCondition: { kind: "NamedType", name: { kind: "Name", value: "CategorySearch" } }, directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "id" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "externalId" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "slugAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }, { kind: "Field", name: { kind: "Name", value: "parent" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }, { kind: "Field", name: { kind: "Name", value: "ancestors" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "nameAllLocales" }, arguments: [], directives: [], selectionSet: { kind: "SelectionSet", selections: [{ kind: "Field", name: { kind: "Name", value: "locale" }, arguments: [], directives: [] }, { kind: "Field", name: { kind: "Name", value: "value" }, arguments: [], directives: [] }] } }] } }] } }], loc: { start: 0, end: 685, source: { body: "query SearchCategoryReference($locale: Locale!, $text: String!) {\n categories: categoryAutocomplete(locale: $locale, text: $text) {\n results {\n ...CategorySearchPickerOptionFragment\n }\n }\n}\n\nquery FetchCategoriesByIds($where: String!) {\n categories(where: $where) {\n results {\n id\n nameAllLocales {\n locale\n value\n }\n }\n }\n}\n\nfragment CategorySearchPickerOptionFragment on CategorySearch {\n id\n externalId\n nameAllLocales {\n locale\n value\n }\n slugAllLocales {\n locale\n value\n }\n parent {\n nameAllLocales {\n locale\n value\n }\n }\n ancestors {\n nameAllLocales {\n locale\n value\n }\n }\n}\n", name: "GraphQL request", locationOffset: { line: 1, column: 1 } } } };
13604
13634
 
13605
- export { booleanField as BooleanField, Button$1 as Button, CartDiscountReferenceSearch, CategoryReferenceSearch, CategorySearchPickerOptionFragment, CenteredLoadingSpinner$1 as CenteredLoadingSpinner, ChannelPickerInput$1 as ChannelPickerInput, CountriesPicker, customFieldDefinitionsConnector as CustomFieldDefinitionsConnector, CustomFieldTooltip$1 as CustomFieldTooltip, CustomFieldTypeDefinitionsConnector$1 as CustomFieldTypeDefinitionsConnector, CustomFields$1 as CustomFields, CustomFieldsErrorTextNotification$1 as CustomFieldsErrorTextNotification, CustomFieldsFormField$1 as CustomFieldsFormField, CustomerGroupPickerInput$1 as CustomerGroupPickerInput, DefaultPageSizes, Divider, EMAIL_REGEX, FileInput$1 as FileInput, FormattedDateTime$1 as FormattedDateTime, LabelRange$1 as LabelRange, MC_RESOURCES_WITH_KEYS, MissingValueField$1 as MissingValueField, MultiValueSearchInput$1 as MultiValueSearchInput, numericFormatInput as NumericFormatInput, Option$2 as Option, PRECISION_TYPES, pimIndexerProvider as PimIndexerProvider, ProductAttributeInput, ProductAttributes, ProductPickerInput$1 as ProductPickerInput, ProductSelectionsPicker as ProductSelectionPicker, RequestCache$1 as RequestCache, RequiredIndicator$1 as RequiredIndicator, ScrollToFieldError$1 as ScrollToFieldError, searchInput as SearchInput, SelectableFieldSearchInput$1 as SelectableFieldSearchInput, StoreSelectField$1 as StoreSelectField, StoreSelectInput$1 as StoreSelectInput, ThrottledField$1 as ThrottledField, VALIDATOR_INTEGER, VALIDATOR_NUMERIC, VALIDATOR_REQUIRED, WithPimIndexer$1 as WithPimIndexer, allowedProperties, and, attributesMapToNameValuePairs, base64ToString, messages$c as booleanMessages, buildSearchQuery$1 as buildSearchQuery, businessRoleConstants$1 as businessRoleConstants, messages$7 as businessRoleMessages, businessRoleKeys$1 as businessRoles, capitalizeFirst, clone, coerceToInteger, computedProperties, convertApolloNetworkStatusToLoadingState, convertApolloQueryDataToConnectorData, convertProductSelectionFromGraphQl, convertRatioToPercentage, createGraphQlUpdateActions, createNextSortDefinition$1 as createNextSortDefinition, createReducer, createResourceReducer, customFields as customFieldsTransformer, dateTransformer$1 as dateTransformer, exact, exists, extractErrorFromGraphQlResponse, filterCustomTypeUpdateActionValues, filterDataAttributes, filterEmptyValues, formatCustomField, formatCustomerAddress, formatCustomerName, formatDateRangeValue, formatDateTime$1 as formatDateTime, formatDiscount, formatMoney$2 as formatMoney, formatMoneyRangeValue, formatMoneyValue, formatPercentage, formatAttribute as formatProductAttribute, getAncestors, getAttributeValueByType, getAttributeValueType, getBottomOption, getBulkNotification, getCategoryLevel, getCountsFromBulkSummary, getDiscountValue, getDisplayName$1 as getDisplayName, getFractionedAmount, getIndexesOfInvalidValues, getMinimumPricesByCurrencyCode, getNetUnitPrice, getPathName, getPrefixSearchBounds$1 as getPrefixSearchBounds, getPriceChannelName, getReferenceTypeId, getSelectedPrice, getTimeZoneId, getTimeZoneLabel, getTypeNameOfType, graphqlCategoryLevelTransformer, dateTransformer as graphqlDateTransformer, missingLocaleTransformer as graphqlMissingLocaleTransformer, missingTransformer as graphqlMissingTransformer, numberTransformer as graphqlNumberTransformer, graphqlQueryBuilder, referenceTransformer as graphqlReferenceTransformer, textTransformer as graphqlTextTransformer, hasInvalidInputError$1 as hasInvalidInputError, hasSemanticError$1 as hasSemanticError, injectCustomerGroupsPlatformLimits$1 as injectCustomerGroupsPlatformLimits, injectCustomersPlatformLimits$1 as injectCustomersPlatformLimits, injectDataTablePaginationState$1 as injectDataTablePaginationState, injectModalState$3 as injectModalState, injectNotifications$1 as injectNotifications, injectPimIndexer, injectShippingMethodsPlatformLimits$1 as injectShippingMethodsPlatformLimits, injectStorage$1 as injectStorage, injectTaxCategoriesPlatformLimits$1 as injectTaxCategoriesPlatformLimits, injectModalState$1 as injectToggleState, injectZonesPlatformLimits$1 as injectZonesPlatformLimits, isEmptyFilter as isEmpty, isEmptyValue, isUUID$1 as isUUID, isValidISODate, isValidISODateTime, isValidISOTime, keepDisplayName$1 as keepDisplayName, mapStoresToOptions, mapTimeZonesToOptions, minusify, messages$9 as missingValueMessages, nameValuePairsToMap, normalizeProductSettings, not, omitDeep, omitSetsOfSets, or, pickerMessages$1 as pickerMessages, range, reorderArrayItems, resolveStatusType, safelyAddFallback, sanitize, searchCategories, messages$M as searchInputMessages, setDisplayName$1 as setDisplayName, setToArray, shallowEqual, shouldUpdateAttributeInput, slugify, sortDataByIdsArray, sortRequiresLanguage, splitVariantAttributesByConstraint, stringToBase64, swapArrayItems, transformAllToProperNounCase, transformCustomFieldsRawToCustomFields, transformLocalizedFieldsForCategory, truncate, unique, uniqueObjects, useCachedCategoryOptions, useCurrentOption, useDnDContext as useCustomFieldsDnDContext, useCustomerGroupsPlatformLimits$1 as useCustomerGroupsPlatformLimits, useCustomersPlatformLimits$1 as useCustomersPlatformLimits, useDebouncedPromiseCallback$1 as useDebouncedPromiseCallback, useFormatLocalizedFieldToString, useIsFieldDuplicated$1 as useIsFieldDuplicated, useLoadOptions$1 as useLoadOptions, useLocalizedKeyFallback$1 as useLocalizedKeyFallback, usePendingRequests, usePersistedTableConfiguration$1 as usePersistedTableConfiguration, usePimIndexer, usePrevious$1 as usePrevious, useProductSelectionsFetcher$1 as useProductSelectionsFetcher, useProductSelectionsTotalFetcher$1 as useProductSelectionsTotalFetcher, useRoleNotificationEffect$1 as useRoleNotificationEffect, useShippingMethodsPlatformLimits, useStorage$1 as useStorage, useStoreKeysInDataFences$1 as useStoreKeysInDataFences, useStoresListFetcher$1 as useStoresListFetcher, useTaxCategoriesPlatformLimits, useTotalNumberOfStoresFetcher$1 as useTotalNumberOfStoresFetcher, validateFilter$2 as validateCustomField, validations as validateCustomFields, validateFilter$1 as validateDate, validateMultiOptionEnum, validateFilter as validateNumber, validateSingleOptionEnum, validateText, validatedInput, validationMessages, withPendingRequests, withProps$1 as withProps, withRedirectTo$1 as withRedirectTo, withoutEmptyErrorsByField$1 as withoutEmptyErrorsByField, wrapDisplayName$1 as wrapDisplayName };
13635
+ export { booleanField as BooleanField, Button$1 as Button, CartDiscountReferenceSearch, CategoryReferenceSearch, CategorySearchPickerOptionFragment, CenteredLoadingSpinner$1 as CenteredLoadingSpinner, ChannelPickerInput$1 as ChannelPickerInput, CountriesPicker, customFieldDefinitionsConnector as CustomFieldDefinitionsConnector, CustomFieldTooltip$1 as CustomFieldTooltip, CustomFieldTypeDefinitionsConnector$1 as CustomFieldTypeDefinitionsConnector, CustomFields$1 as CustomFields, CustomFieldsErrorTextNotification$1 as CustomFieldsErrorTextNotification, CustomFieldsFormField$1 as CustomFieldsFormField, CustomerGroupPickerInput$1 as CustomerGroupPickerInput, DefaultPageSizes, Divider, EMAIL_REGEX, FileInput$1 as FileInput, FormattedDateTime$1 as FormattedDateTime, FormattedLocalizedString, LabelRange$1 as LabelRange, MC_RESOURCES_WITH_KEYS, MissingValueField$1 as MissingValueField, MultiValueSearchInput$1 as MultiValueSearchInput, numericFormatInput as NumericFormatInput, Option$2 as Option, PRECISION_TYPES, pimIndexerProvider as PimIndexerProvider, ProductAttributeInput, ProductAttributes, ProductPickerInput$1 as ProductPickerInput, ProductSelectionsPicker as ProductSelectionPicker, RequestCache$1 as RequestCache, RequiredIndicator$1 as RequiredIndicator, ScrollToFieldError$1 as ScrollToFieldError, searchInput as SearchInput, SelectableFieldSearchInput$1 as SelectableFieldSearchInput, StoreSelectField$1 as StoreSelectField, StoreSelectInput$1 as StoreSelectInput, ThrottledField$1 as ThrottledField, VALIDATOR_INTEGER, VALIDATOR_NUMERIC, VALIDATOR_REQUIRED, WithPimIndexer$1 as WithPimIndexer, allowedProperties, and, attributesMapToNameValuePairs, base64ToString, messages$c as booleanMessages, buildSearchQuery$1 as buildSearchQuery, businessRoleConstants$1 as businessRoleConstants, messages$7 as businessRoleMessages, businessRoleKeys$1 as businessRoles, capitalizeFirst, clone, coerceToInteger, computedProperties, convertApolloNetworkStatusToLoadingState, convertApolloQueryDataToConnectorData, convertProductSelectionFromGraphQl, convertRatioToPercentage, createGraphQlUpdateActions, createNextSortDefinition$1 as createNextSortDefinition, createReducer, createResourceReducer, customFields as customFieldsTransformer, dateTransformer$1 as dateTransformer, exact, exists, extractErrorFromGraphQlResponse, filterCustomTypeUpdateActionValues, filterDataAttributes, filterEmptyValues, formatCustomField, formatCustomerAddress, formatCustomerName, formatDateRangeValue, formatDateTime$1 as formatDateTime, formatDiscount, formatMoney$2 as formatMoney, formatMoneyRangeValue, formatMoneyValue, formatPercentage, formatAttribute as formatProductAttribute, getAncestors, getAttributeValueByType, getAttributeValueType, getBottomOption, getBulkNotification, getCategoryLevel, getCountsFromBulkSummary, getDiscountValue, getDisplayName$1 as getDisplayName, getFractionedAmount, getIndexesOfInvalidValues, getMinimumPricesByCurrencyCode, getNetUnitPrice, getPathName, getPrefixSearchBounds$1 as getPrefixSearchBounds, getPriceChannelName, getReferenceTypeId, getSelectedPrice, getTimeZoneId, getTimeZoneLabel, getTypeNameOfType, graphqlCategoryLevelTransformer, dateTransformer as graphqlDateTransformer, missingLocaleTransformer as graphqlMissingLocaleTransformer, missingTransformer as graphqlMissingTransformer, numberTransformer as graphqlNumberTransformer, graphqlQueryBuilder, referenceTransformer as graphqlReferenceTransformer, textTransformer as graphqlTextTransformer, hasInvalidInputError$1 as hasInvalidInputError, hasSemanticError$1 as hasSemanticError, injectCustomerGroupsPlatformLimits$1 as injectCustomerGroupsPlatformLimits, injectCustomersPlatformLimits$1 as injectCustomersPlatformLimits, injectDataTablePaginationState$1 as injectDataTablePaginationState, injectModalState$3 as injectModalState, injectNotifications$1 as injectNotifications, injectPimIndexer, injectShippingMethodsPlatformLimits$1 as injectShippingMethodsPlatformLimits, injectStorage$1 as injectStorage, injectTaxCategoriesPlatformLimits$1 as injectTaxCategoriesPlatformLimits, injectModalState$1 as injectToggleState, injectZonesPlatformLimits$1 as injectZonesPlatformLimits, isEmptyFilter as isEmpty, isEmptyValue, isUUID$1 as isUUID, isValidISODate, isValidISODateTime, isValidISOTime, keepDisplayName$1 as keepDisplayName, mapStoresToOptions, mapTimeZonesToOptions, minusify, messages$9 as missingValueMessages, nameValuePairsToMap, normalizeProductSettings, not, omitDeep, omitSetsOfSets, or, pickerMessages$1 as pickerMessages, range, reorderArrayItems, resolveStatusType, safelyAddFallback, sanitize, searchCategories, messages$M as searchInputMessages, setDisplayName$1 as setDisplayName, setToArray, shallowEqual, shouldUpdateAttributeInput, slugify, sortDataByIdsArray, sortRequiresLanguage, splitVariantAttributesByConstraint, stringToBase64, swapArrayItems, transformAllToProperNounCase, transformCustomFieldsRawToCustomFields, transformLocalizedFieldsForCategory, truncate, unique, uniqueObjects, useCachedCategoryOptions, useCurrentOption, useDnDContext as useCustomFieldsDnDContext, useCustomerGroupsPlatformLimits$1 as useCustomerGroupsPlatformLimits, useCustomersPlatformLimits$1 as useCustomersPlatformLimits, useDebouncedPromiseCallback$1 as useDebouncedPromiseCallback, useFormatLocalizedFieldToString, useFormatLocalizedString, useIsFieldDuplicated$1 as useIsFieldDuplicated, useLoadOptions$1 as useLoadOptions, useLocalizedKeyFallback$1 as useLocalizedKeyFallback, usePendingRequests, usePersistedTableConfiguration$1 as usePersistedTableConfiguration, usePimIndexer, usePrevious$1 as usePrevious, useProductSelectionsFetcher$1 as useProductSelectionsFetcher, useProductSelectionsTotalFetcher$1 as useProductSelectionsTotalFetcher, useRoleNotificationEffect$1 as useRoleNotificationEffect, useShippingMethodsPlatformLimits, useStorage$1 as useStorage, useStoreKeysInDataFences$1 as useStoreKeysInDataFences, useStoresListFetcher$1 as useStoresListFetcher, useTaxCategoriesPlatformLimits, useTotalNumberOfStoresFetcher$1 as useTotalNumberOfStoresFetcher, validateFilter$2 as validateCustomField, validations as validateCustomFields, validateFilter$1 as validateDate, validateMultiOptionEnum, validateFilter as validateNumber, validateSingleOptionEnum, validateText, validatedInput, validationMessages, withPendingRequests, withProps$1 as withProps, withRedirectTo$1 as withRedirectTo, withoutEmptyErrorsByField$1 as withoutEmptyErrorsByField, wrapDisplayName$1 as wrapDisplayName };
package/dist/styles.css CHANGED
@@ -589,16 +589,16 @@
589
589
  .set-buttons-module__gap___38Qr0 {
590
590
  padding: 20px;
591
591
  }
592
- /* imported from platform-limits-customers-combined.module.css */
593
-
594
- .platform-limits-customers-combined-module__combined___OszDd {
595
- margin-bottom: var(--spacing-s);
596
- }
597
592
  /* imported from platform-limits-customers-status.module.css */
598
593
 
599
594
  .platform-limits-customers-status-module__status___3rXYM {
600
595
  min-width: max-content;
601
596
  }
597
+ /* imported from platform-limits-customers-combined.module.css */
598
+
599
+ .platform-limits-customers-combined-module__combined___OszDd {
600
+ margin-bottom: var(--spacing-s);
601
+ }
602
602
  /* imported from platform-limits-customer-groups-status.module.css */
603
603
 
604
604
  .platform-limits-customer-groups-status-module__status___6099G {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools-frontend/experimental-components",
3
- "version": "6.2.4",
3
+ "version": "6.3.1",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,18 +26,18 @@
26
26
  "@babel/core": "^7.22.11",
27
27
  "@babel/runtime": "^7.21.0",
28
28
  "@babel/runtime-corejs3": "^7.21.0",
29
- "@commercetools-frontend/actions-global": "npm:@commercetools-frontend/actions-global@^22.33.0",
30
- "@commercetools-frontend/application-components": "npm:@commercetools-frontend/application-components@^22.33.0",
31
- "@commercetools-frontend/application-shell": "npm:@commercetools-frontend/application-shell@^22.33.0",
32
- "@commercetools-frontend/application-shell-connectors": "npm:@commercetools-frontend/application-shell-connectors@^22.33.0",
33
- "@commercetools-frontend/constants": "npm:@commercetools-frontend/constants@^22.33.0",
34
- "@commercetools-frontend/l10n": "npm:@commercetools-frontend/l10n@^22.33.0",
35
- "@commercetools-frontend/sdk": "npm:@commercetools-frontend/sdk@^22.33.0",
36
- "@commercetools-frontend/sentry": "npm:@commercetools-frontend/sentry@^22.33.0",
37
- "@commercetools-frontend/ui-kit": "npm:@commercetools-frontend/ui-kit@^19.11.0",
38
- "@commercetools-uikit/design-system": "npm:@commercetools-uikit/design-system@^19.11.0",
39
- "@commercetools-uikit/select-utils": "npm:@commercetools-uikit/select-utils@^19.11.0",
40
- "@commercetools-uikit/utils": "npm:@commercetools-uikit/utils@^19.11.0",
29
+ "@commercetools-frontend/actions-global": "npm:@commercetools-frontend/actions-global@^22.35.0",
30
+ "@commercetools-frontend/application-components": "npm:@commercetools-frontend/application-components@^22.35.0",
31
+ "@commercetools-frontend/application-shell": "npm:@commercetools-frontend/application-shell@^22.35.0",
32
+ "@commercetools-frontend/application-shell-connectors": "npm:@commercetools-frontend/application-shell-connectors@^22.35.0",
33
+ "@commercetools-frontend/constants": "npm:@commercetools-frontend/constants@^22.35.0",
34
+ "@commercetools-frontend/l10n": "npm:@commercetools-frontend/l10n@^22.35.0",
35
+ "@commercetools-frontend/sdk": "npm:@commercetools-frontend/sdk@^22.35.0",
36
+ "@commercetools-frontend/sentry": "npm:@commercetools-frontend/sentry@^22.35.0",
37
+ "@commercetools-frontend/ui-kit": "npm:@commercetools-frontend/ui-kit@^19.13.0",
38
+ "@commercetools-uikit/design-system": "npm:@commercetools-uikit/design-system@^19.13.0",
39
+ "@commercetools-uikit/select-utils": "npm:@commercetools-uikit/select-utils@^19.13.0",
40
+ "@commercetools-uikit/utils": "npm:@commercetools-uikit/utils@^19.13.0",
41
41
  "@emotion/react": "11.13.3",
42
42
  "classnames": "2.5.1",
43
43
  "cleave.js": "1.5.10",
@@ -81,8 +81,8 @@
81
81
  "react-test-renderer": "17.0.2",
82
82
  "redux": "4.2.1",
83
83
  "typescript": "5.2.2",
84
- "@commercetools-local/test-data": "1.2.12",
85
- "@commercetools-local/test-utils": "1.2.13"
84
+ "@commercetools-local/test-data": "1.2.13",
85
+ "@commercetools-local/test-utils": "1.2.14"
86
86
  },
87
87
  "peerDependencies": {
88
88
  "@apollo/client": "3.x",