@strapi/content-manager 5.38.1 → 5.40.0

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 (68) hide show
  1. package/dist/admin/hooks/useDocument.js +21 -5
  2. package/dist/admin/hooks/useDocument.js.map +1 -1
  3. package/dist/admin/hooks/useDocument.mjs +22 -6
  4. package/dist/admin/hooks/useDocument.mjs.map +1 -1
  5. package/dist/admin/pages/EditView/components/DocumentActions.js +1 -0
  6. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  7. package/dist/admin/pages/EditView/components/DocumentActions.mjs +3 -2
  8. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  9. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs +4 -4
  10. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.mjs.map +1 -1
  11. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +71 -44
  12. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  13. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +54 -46
  14. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  15. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +107 -88
  16. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  17. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +109 -90
  18. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  19. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +91 -106
  20. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +94 -109
  22. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +43 -23
  24. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +45 -25
  26. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +2 -2
  28. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +30 -19
  29. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  30. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +34 -23
  31. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  32. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +1 -1
  34. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.mjs +1 -1
  35. package/dist/admin/pages/EditView/components/FormLayout.js +23 -3
  36. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormLayout.mjs +4 -3
  38. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  39. package/dist/admin/pages/EditView/components/Header.js +3 -0
  40. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/Header.mjs +3 -0
  42. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/InputRenderer.js +19 -7
  44. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/InputRenderer.mjs +20 -8
  46. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  47. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +11 -15
  48. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  49. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +11 -16
  50. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  51. package/dist/admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +3 -2
  52. package/dist/admin/src/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +3 -2
  53. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +3 -3
  54. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +1 -1
  55. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  56. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +3 -0
  57. package/dist/admin/src/pages/ListView/components/Filters.d.ts +3 -0
  58. package/dist/server/services/utils/draft.js +8 -1
  59. package/dist/server/services/utils/draft.js.map +1 -1
  60. package/dist/server/services/utils/draft.mjs +8 -1
  61. package/dist/server/services/utils/draft.mjs.map +1 -1
  62. package/dist/server/services/utils/populate.js +16 -1
  63. package/dist/server/services/utils/populate.js.map +1 -1
  64. package/dist/server/services/utils/populate.mjs +16 -1
  65. package/dist/server/services/utils/populate.mjs.map +1 -1
  66. package/dist/server/src/services/utils/draft.d.ts.map +1 -1
  67. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  68. package/package.json +6 -6
@@ -1,23 +1,40 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
4
5
  var strapiAdmin = require('@strapi/admin/strapi-admin');
5
6
  var designSystem = require('@strapi/design-system');
6
7
  var reactIntl = require('react-intl');
7
- var useDocumentContext = require('../../../../../hooks/useDocumentContext.js');
8
+ var objects = require('../../../../../utils/objects.js');
8
9
  var FormLayout = require('../../FormLayout.js');
9
10
  var ComponentContext = require('../ComponentContext.js');
10
11
 
12
+ function _interopNamespaceDefault(e) {
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
30
+
11
31
  const NonRepeatableComponent = ({ attribute, name, children, layout })=>{
12
- const { formatMessage } = reactIntl.useIntl();
13
- const { value } = strapiAdmin.useField(name);
32
+ const componentId = strapiAdmin.useForm('NonRepeatableComponent', (state)=>objects.getIn(state.values, `${name}.id`));
14
33
  const level = ComponentContext.useComponent('NonRepeatableComponent', (state)=>state.level);
15
34
  const isNested = level > 0;
16
- const { currentDocument } = useDocumentContext.useDocumentContext('NonRepeatableComponent');
17
- strapiAdmin.createRulesEngine();
18
35
  const isMobile = strapiAdmin.useIsMobile();
19
36
  return /*#__PURE__*/ jsxRuntime.jsx(ComponentContext.ComponentProvider, {
20
- id: value?.id,
37
+ id: componentId,
21
38
  uid: attribute.component,
22
39
  level: level + 1,
23
40
  type: "component",
@@ -29,47 +46,57 @@ const NonRepeatableComponent = ({ attribute, name, children, layout })=>{
29
46
  },
30
47
  hasRadius: isNested,
31
48
  borderColor: isNested || isMobile ? 'neutral200' : undefined,
32
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
33
- direction: "column",
34
- alignItems: "stretch",
35
- gap: 6,
36
- children: layout.map((row, index)=>{
37
- return /*#__PURE__*/ jsxRuntime.jsx(FormLayout.ResponsiveGridRoot, {
38
- gap: {
39
- initial: 3,
40
- medium: 4
41
- },
42
- children: row.map(({ size, ...field })=>{
43
- /**
44
- * Layouts are built from schemas so they don't understand the complete
45
- * schema tree, for components we append the parent name to the field name
46
- * because this is the structure for the data & permissions also understand
47
- * the nesting involved.
48
- */ const completeFieldName = `${name}.${field.name}`;
49
- const translatedLabel = formatMessage({
50
- id: `content-manager.components.${attribute.component}.${field.name}`,
51
- defaultMessage: field.label
52
- });
53
- return /*#__PURE__*/ jsxRuntime.jsx(FormLayout.ResponsiveGridItem, {
54
- col: size,
55
- s: 12,
56
- xs: 12,
57
- direction: "column",
58
- alignItems: "stretch",
59
- children: children({
60
- ...field,
61
- label: translatedLabel,
62
- name: completeFieldName,
63
- document: currentDocument
64
- })
65
- }, completeFieldName);
66
- })
67
- }, index);
68
- })
49
+ children: /*#__PURE__*/ jsxRuntime.jsx(NonRepeatableComponentFields, {
50
+ attribute: attribute,
51
+ name: name,
52
+ layout: layout,
53
+ children: children
69
54
  })
70
55
  })
71
56
  });
72
57
  };
58
+ const NonRepeatableComponentFields = /*#__PURE__*/ React__namespace.memo(({ attribute, children, layout, name })=>{
59
+ const { formatMessage } = reactIntl.useIntl();
60
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
61
+ direction: "column",
62
+ alignItems: "stretch",
63
+ gap: 6,
64
+ children: layout.map((row, index)=>{
65
+ return /*#__PURE__*/ jsxRuntime.jsx(FormLayout.ResponsiveGridRoot, {
66
+ gap: {
67
+ initial: 3,
68
+ medium: 4
69
+ },
70
+ children: row.map(({ size, ...field })=>{
71
+ /**
72
+ * Layouts are built from schemas so they don't understand the complete
73
+ * schema tree, for components we append the parent name to the field name
74
+ * because this is the structure for the data & permissions also understand
75
+ * the nesting involved.
76
+ */ const completeFieldName = `${name}.${field.name}`;
77
+ const translatedLabel = formatMessage({
78
+ id: `content-manager.components.${attribute.component}.${field.name}`,
79
+ defaultMessage: field.label
80
+ });
81
+ return /*#__PURE__*/ jsxRuntime.jsx(FormLayout.ResponsiveGridItem, {
82
+ col: size,
83
+ s: 12,
84
+ xs: 12,
85
+ direction: "column",
86
+ alignItems: "stretch",
87
+ children: children({
88
+ ...field,
89
+ label: translatedLabel,
90
+ name: completeFieldName
91
+ })
92
+ }, completeFieldName);
93
+ })
94
+ }, index);
95
+ })
96
+ });
97
+ });
98
+ NonRepeatableComponentFields.displayName = 'NonRepeatableComponentFields';
99
+ const MemoizedNonRepeatableComponent = /*#__PURE__*/ React__namespace.memo(NonRepeatableComponent);
73
100
 
74
- exports.NonRepeatableComponent = NonRepeatableComponent;
101
+ exports.NonRepeatableComponent = MemoizedNonRepeatableComponent;
75
102
  //# sourceMappingURL=NonRepeatable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NonRepeatable.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.tsx"],"sourcesContent":["import { useField, createRulesEngine, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentContext } from '../../../../../hooks/useDocumentContext';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport type { ComponentInputProps } from './Input';\n\ntype NonRepeatableComponentProps = Omit<ComponentInputProps, 'required' | 'label'>;\n\nconst NonRepeatableComponent = ({\n attribute,\n name,\n children,\n layout,\n}: NonRepeatableComponentProps) => {\n const { formatMessage } = useIntl();\n const { value } = useField(name);\n const level = useComponent('NonRepeatableComponent', (state) => state.level);\n const isNested = level > 0;\n const { currentDocument } = useDocumentContext('NonRepeatableComponent');\n const rulesEngine = createRulesEngine();\n const isMobile = useIsMobile();\n\n return (\n <ComponentProvider id={value?.id} uid={attribute.component} level={level + 1} type=\"component\">\n <Box\n background={'neutral100'}\n padding={{ initial: 4, medium: 6 }}\n hasRadius={isNested}\n borderColor={isNested || isMobile ? 'neutral200' : undefined}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((row, index) => {\n return (\n <ResponsiveGridRoot gap={{ initial: 3, medium: 4 }} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n const translatedLabel = formatMessage({\n id: `content-manager.components.${attribute.component}.${field.name}`,\n defaultMessage: field.label,\n });\n\n return (\n <ResponsiveGridItem\n col={size}\n key={completeFieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children({\n ...field,\n label: translatedLabel,\n name: completeFieldName,\n document: currentDocument,\n })}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n </ComponentProvider>\n );\n};\n\nexport { NonRepeatableComponent };\nexport type { NonRepeatableComponentProps };\n"],"names":["NonRepeatableComponent","attribute","name","children","layout","formatMessage","useIntl","value","useField","level","useComponent","state","isNested","currentDocument","useDocumentContext","createRulesEngine","isMobile","useIsMobile","_jsx","ComponentProvider","id","uid","component","type","Box","background","padding","initial","medium","hasRadius","borderColor","undefined","Flex","direction","alignItems","gap","map","row","index","ResponsiveGridRoot","size","field","completeFieldName","translatedLabel","defaultMessage","label","ResponsiveGridItem","col","s","xs","document"],"mappings":";;;;;;;;;;AAYA,MAAMA,sBAAAA,GAAyB,CAAC,EAC9BC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,MAAM,EACsB,GAAA;IAC5B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,oBAAAA,CAASN,IAAAA,CAAAA;AAC3B,IAAA,MAAMO,QAAQC,6BAAAA,CAAa,wBAAA,EAA0B,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC3E,IAAA,MAAMG,WAAWH,KAAAA,GAAQ,CAAA;AACzB,IAAA,MAAM,EAAEI,eAAe,EAAE,GAAGC,qCAAAA,CAAmB,wBAAA,CAAA;AAC/C,IAAoBC,6BAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,uBAAAA,EAAAA;AAEjB,IAAA,qBACEC,cAAA,CAACC,kCAAAA,EAAAA;AAAkBC,QAAAA,EAAAA,EAAIb,KAAAA,EAAOa,EAAAA;AAAIC,QAAAA,GAAAA,EAAKpB,UAAUqB,SAAS;AAAEb,QAAAA,KAAAA,EAAOA,KAAAA,GAAQ,CAAA;QAAGc,IAAAA,EAAK,WAAA;AACjF,QAAA,QAAA,gBAAAL,cAAA,CAACM,gBAAAA,EAAAA;YACCC,UAAAA,EAAY,YAAA;YACZC,OAAAA,EAAS;gBAAEC,OAAAA,EAAS,CAAA;gBAAGC,MAAAA,EAAQ;AAAE,aAAA;YACjCC,SAAAA,EAAWjB,QAAAA;YACXkB,WAAAA,EAAalB,QAAAA,IAAYI,WAAW,YAAA,GAAee,SAAAA;AAEnD,YAAA,QAAA,gBAAAb,cAAA,CAACc,iBAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;0BAChD/B,MAAAA,CAAOgC,GAAG,CAAC,CAACC,GAAAA,EAAKC,KAAAA,GAAAA;AAChB,oBAAA,qBACEpB,cAAA,CAACqB,6BAAAA,EAAAA;wBAAmBJ,GAAAA,EAAK;4BAAER,OAAAA,EAAS,CAAA;4BAAGC,MAAAA,EAAQ;AAAE,yBAAA;AAC9CS,wBAAAA,QAAAA,EAAAA,GAAAA,CAAID,GAAG,CAAC,CAAC,EAAEI,IAAI,EAAE,GAAGC,KAAAA,EAAO,GAAA;AAC1B;;;;;sBAMA,MAAMC,oBAAoB,CAAA,EAAGxC,IAAAA,CAAK,CAAC,EAAEuC,KAAAA,CAAMvC,IAAI,CAAA,CAAE;AAEjD,4BAAA,MAAMyC,kBAAkBtC,aAAAA,CAAc;gCACpCe,EAAAA,EAAI,CAAC,2BAA2B,EAAEnB,SAAAA,CAAUqB,SAAS,CAAC,CAAC,EAAEmB,KAAAA,CAAMvC,IAAI,CAAA,CAAE;AACrE0C,gCAAAA,cAAAA,EAAgBH,MAAMI;AACxB,6BAAA,CAAA;AAEA,4BAAA,qBACE3B,cAAA,CAAC4B,6BAAAA,EAAAA;gCACCC,GAAAA,EAAKP,IAAAA;gCAELQ,CAAAA,EAAG,EAAA;gCACHC,EAAAA,EAAI,EAAA;gCACJhB,SAAAA,EAAU,QAAA;gCACVC,UAAAA,EAAW,SAAA;0CAEV/B,QAAAA,CAAS;AACR,oCAAA,GAAGsC,KAAK;oCACRI,KAAAA,EAAOF,eAAAA;oCACPzC,IAAAA,EAAMwC,iBAAAA;oCACNQ,QAAAA,EAAUrC;AACZ,iCAAA;AAXK6B,6BAAAA,EAAAA,iBAAAA,CAAAA;AAcX,wBAAA,CAAA;AAhCuDJ,qBAAAA,EAAAA,KAAAA,CAAAA;AAmC7D,gBAAA,CAAA;;;;AAKV;;;;"}
1
+ {"version":3,"file":"NonRepeatable.js","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getIn } from '../../../../../utils/objects';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport type { ComponentInputProps } from './Input';\n\ntype NonRepeatableComponentProps = Omit<ComponentInputProps, 'required' | 'label'>;\n\nconst NonRepeatableComponent = ({\n attribute,\n name,\n children,\n layout,\n}: NonRepeatableComponentProps) => {\n const componentId = useForm(\n 'NonRepeatableComponent',\n (state) => getIn(state.values, `${name}.id`) as number | undefined\n );\n const level = useComponent('NonRepeatableComponent', (state) => state.level);\n const isNested = level > 0;\n const isMobile = useIsMobile();\n\n return (\n <ComponentProvider\n id={componentId}\n uid={attribute.component}\n level={level + 1}\n type=\"component\"\n >\n <Box\n background={'neutral100'}\n padding={{ initial: 4, medium: 6 }}\n hasRadius={isNested}\n borderColor={isNested || isMobile ? 'neutral200' : undefined}\n >\n <NonRepeatableComponentFields attribute={attribute} name={name} layout={layout}>\n {children}\n </NonRepeatableComponentFields>\n </Box>\n </ComponentProvider>\n );\n};\n\ninterface NonRepeatableComponentFieldsProps\n extends Pick<NonRepeatableComponentProps, 'attribute' | 'children' | 'layout' | 'name'> {}\n\nconst NonRepeatableComponentFields = React.memo(\n ({ attribute, children, layout, name }: NonRepeatableComponentFieldsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((row, index) => {\n return (\n <ResponsiveGridRoot gap={{ initial: 3, medium: 4 }} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n const translatedLabel = formatMessage({\n id: `content-manager.components.${attribute.component}.${field.name}`,\n defaultMessage: field.label,\n });\n\n return (\n <ResponsiveGridItem\n col={size}\n key={completeFieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children({\n ...field,\n label: translatedLabel,\n name: completeFieldName,\n })}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n );\n }\n);\n\nNonRepeatableComponentFields.displayName = 'NonRepeatableComponentFields';\n\nconst MemoizedNonRepeatableComponent = React.memo(NonRepeatableComponent);\n\nexport { MemoizedNonRepeatableComponent as NonRepeatableComponent };\nexport type { NonRepeatableComponentProps };\n"],"names":["NonRepeatableComponent","attribute","name","children","layout","componentId","useForm","state","getIn","values","level","useComponent","isNested","isMobile","useIsMobile","_jsx","ComponentProvider","id","uid","component","type","Box","background","padding","initial","medium","hasRadius","borderColor","undefined","NonRepeatableComponentFields","React","memo","formatMessage","useIntl","Flex","direction","alignItems","gap","map","row","index","ResponsiveGridRoot","size","field","completeFieldName","translatedLabel","defaultMessage","label","ResponsiveGridItem","col","s","xs","displayName","MemoizedNonRepeatableComponent"],"mappings":"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"}
@@ -1,21 +1,19 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useField, createRulesEngine, useIsMobile } from '@strapi/admin/strapi-admin';
3
- import { Box, Flex } from '@strapi/design-system';
2
+ import * as React from 'react';
3
+ import { useForm, useIsMobile } from '@strapi/admin/strapi-admin';
4
+ import { Flex, Box } from '@strapi/design-system';
4
5
  import { useIntl } from 'react-intl';
5
- import { useDocumentContext } from '../../../../../hooks/useDocumentContext.mjs';
6
+ import { getIn } from '../../../../../utils/objects.mjs';
6
7
  import { ResponsiveGridRoot, ResponsiveGridItem } from '../../FormLayout.mjs';
7
8
  import { useComponent, ComponentProvider } from '../ComponentContext.mjs';
8
9
 
9
10
  const NonRepeatableComponent = ({ attribute, name, children, layout })=>{
10
- const { formatMessage } = useIntl();
11
- const { value } = useField(name);
11
+ const componentId = useForm('NonRepeatableComponent', (state)=>getIn(state.values, `${name}.id`));
12
12
  const level = useComponent('NonRepeatableComponent', (state)=>state.level);
13
13
  const isNested = level > 0;
14
- const { currentDocument } = useDocumentContext('NonRepeatableComponent');
15
- createRulesEngine();
16
14
  const isMobile = useIsMobile();
17
15
  return /*#__PURE__*/ jsx(ComponentProvider, {
18
- id: value?.id,
16
+ id: componentId,
19
17
  uid: attribute.component,
20
18
  level: level + 1,
21
19
  type: "component",
@@ -27,47 +25,57 @@ const NonRepeatableComponent = ({ attribute, name, children, layout })=>{
27
25
  },
28
26
  hasRadius: isNested,
29
27
  borderColor: isNested || isMobile ? 'neutral200' : undefined,
30
- children: /*#__PURE__*/ jsx(Flex, {
31
- direction: "column",
32
- alignItems: "stretch",
33
- gap: 6,
34
- children: layout.map((row, index)=>{
35
- return /*#__PURE__*/ jsx(ResponsiveGridRoot, {
36
- gap: {
37
- initial: 3,
38
- medium: 4
39
- },
40
- children: row.map(({ size, ...field })=>{
41
- /**
42
- * Layouts are built from schemas so they don't understand the complete
43
- * schema tree, for components we append the parent name to the field name
44
- * because this is the structure for the data & permissions also understand
45
- * the nesting involved.
46
- */ const completeFieldName = `${name}.${field.name}`;
47
- const translatedLabel = formatMessage({
48
- id: `content-manager.components.${attribute.component}.${field.name}`,
49
- defaultMessage: field.label
50
- });
51
- return /*#__PURE__*/ jsx(ResponsiveGridItem, {
52
- col: size,
53
- s: 12,
54
- xs: 12,
55
- direction: "column",
56
- alignItems: "stretch",
57
- children: children({
58
- ...field,
59
- label: translatedLabel,
60
- name: completeFieldName,
61
- document: currentDocument
62
- })
63
- }, completeFieldName);
64
- })
65
- }, index);
66
- })
28
+ children: /*#__PURE__*/ jsx(NonRepeatableComponentFields, {
29
+ attribute: attribute,
30
+ name: name,
31
+ layout: layout,
32
+ children: children
67
33
  })
68
34
  })
69
35
  });
70
36
  };
37
+ const NonRepeatableComponentFields = /*#__PURE__*/ React.memo(({ attribute, children, layout, name })=>{
38
+ const { formatMessage } = useIntl();
39
+ return /*#__PURE__*/ jsx(Flex, {
40
+ direction: "column",
41
+ alignItems: "stretch",
42
+ gap: 6,
43
+ children: layout.map((row, index)=>{
44
+ return /*#__PURE__*/ jsx(ResponsiveGridRoot, {
45
+ gap: {
46
+ initial: 3,
47
+ medium: 4
48
+ },
49
+ children: row.map(({ size, ...field })=>{
50
+ /**
51
+ * Layouts are built from schemas so they don't understand the complete
52
+ * schema tree, for components we append the parent name to the field name
53
+ * because this is the structure for the data & permissions also understand
54
+ * the nesting involved.
55
+ */ const completeFieldName = `${name}.${field.name}`;
56
+ const translatedLabel = formatMessage({
57
+ id: `content-manager.components.${attribute.component}.${field.name}`,
58
+ defaultMessage: field.label
59
+ });
60
+ return /*#__PURE__*/ jsx(ResponsiveGridItem, {
61
+ col: size,
62
+ s: 12,
63
+ xs: 12,
64
+ direction: "column",
65
+ alignItems: "stretch",
66
+ children: children({
67
+ ...field,
68
+ label: translatedLabel,
69
+ name: completeFieldName
70
+ })
71
+ }, completeFieldName);
72
+ })
73
+ }, index);
74
+ })
75
+ });
76
+ });
77
+ NonRepeatableComponentFields.displayName = 'NonRepeatableComponentFields';
78
+ const MemoizedNonRepeatableComponent = /*#__PURE__*/ React.memo(NonRepeatableComponent);
71
79
 
72
- export { NonRepeatableComponent };
80
+ export { MemoizedNonRepeatableComponent as NonRepeatableComponent };
73
81
  //# sourceMappingURL=NonRepeatable.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NonRepeatable.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.tsx"],"sourcesContent":["import { useField, createRulesEngine, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDocumentContext } from '../../../../../hooks/useDocumentContext';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport type { ComponentInputProps } from './Input';\n\ntype NonRepeatableComponentProps = Omit<ComponentInputProps, 'required' | 'label'>;\n\nconst NonRepeatableComponent = ({\n attribute,\n name,\n children,\n layout,\n}: NonRepeatableComponentProps) => {\n const { formatMessage } = useIntl();\n const { value } = useField(name);\n const level = useComponent('NonRepeatableComponent', (state) => state.level);\n const isNested = level > 0;\n const { currentDocument } = useDocumentContext('NonRepeatableComponent');\n const rulesEngine = createRulesEngine();\n const isMobile = useIsMobile();\n\n return (\n <ComponentProvider id={value?.id} uid={attribute.component} level={level + 1} type=\"component\">\n <Box\n background={'neutral100'}\n padding={{ initial: 4, medium: 6 }}\n hasRadius={isNested}\n borderColor={isNested || isMobile ? 'neutral200' : undefined}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((row, index) => {\n return (\n <ResponsiveGridRoot gap={{ initial: 3, medium: 4 }} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n const translatedLabel = formatMessage({\n id: `content-manager.components.${attribute.component}.${field.name}`,\n defaultMessage: field.label,\n });\n\n return (\n <ResponsiveGridItem\n col={size}\n key={completeFieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children({\n ...field,\n label: translatedLabel,\n name: completeFieldName,\n document: currentDocument,\n })}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n </Box>\n </ComponentProvider>\n );\n};\n\nexport { NonRepeatableComponent };\nexport type { NonRepeatableComponentProps };\n"],"names":["NonRepeatableComponent","attribute","name","children","layout","formatMessage","useIntl","value","useField","level","useComponent","state","isNested","currentDocument","useDocumentContext","createRulesEngine","isMobile","useIsMobile","_jsx","ComponentProvider","id","uid","component","type","Box","background","padding","initial","medium","hasRadius","borderColor","undefined","Flex","direction","alignItems","gap","map","row","index","ResponsiveGridRoot","size","field","completeFieldName","translatedLabel","defaultMessage","label","ResponsiveGridItem","col","s","xs","document"],"mappings":";;;;;;;;AAYA,MAAMA,sBAAAA,GAAyB,CAAC,EAC9BC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,MAAM,EACsB,GAAA;IAC5B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,EAAEC,KAAK,EAAE,GAAGC,QAAAA,CAASN,IAAAA,CAAAA;AAC3B,IAAA,MAAMO,QAAQC,YAAAA,CAAa,wBAAA,EAA0B,CAACC,KAAAA,GAAUA,MAAMF,KAAK,CAAA;AAC3E,IAAA,MAAMG,WAAWH,KAAAA,GAAQ,CAAA;AACzB,IAAA,MAAM,EAAEI,eAAe,EAAE,GAAGC,kBAAAA,CAAmB,wBAAA,CAAA;AAC/C,IAAoBC,iBAAAA;AACpB,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AAEjB,IAAA,qBACEC,GAAA,CAACC,iBAAAA,EAAAA;AAAkBC,QAAAA,EAAAA,EAAIb,KAAAA,EAAOa,EAAAA;AAAIC,QAAAA,GAAAA,EAAKpB,UAAUqB,SAAS;AAAEb,QAAAA,KAAAA,EAAOA,KAAAA,GAAQ,CAAA;QAAGc,IAAAA,EAAK,WAAA;AACjF,QAAA,QAAA,gBAAAL,GAAA,CAACM,GAAAA,EAAAA;YACCC,UAAAA,EAAY,YAAA;YACZC,OAAAA,EAAS;gBAAEC,OAAAA,EAAS,CAAA;gBAAGC,MAAAA,EAAQ;AAAE,aAAA;YACjCC,SAAAA,EAAWjB,QAAAA;YACXkB,WAAAA,EAAalB,QAAAA,IAAYI,WAAW,YAAA,GAAee,SAAAA;AAEnD,YAAA,QAAA,gBAAAb,GAAA,CAACc,IAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;0BAChD/B,MAAAA,CAAOgC,GAAG,CAAC,CAACC,GAAAA,EAAKC,KAAAA,GAAAA;AAChB,oBAAA,qBACEpB,GAAA,CAACqB,kBAAAA,EAAAA;wBAAmBJ,GAAAA,EAAK;4BAAER,OAAAA,EAAS,CAAA;4BAAGC,MAAAA,EAAQ;AAAE,yBAAA;AAC9CS,wBAAAA,QAAAA,EAAAA,GAAAA,CAAID,GAAG,CAAC,CAAC,EAAEI,IAAI,EAAE,GAAGC,KAAAA,EAAO,GAAA;AAC1B;;;;;sBAMA,MAAMC,oBAAoB,CAAA,EAAGxC,IAAAA,CAAK,CAAC,EAAEuC,KAAAA,CAAMvC,IAAI,CAAA,CAAE;AAEjD,4BAAA,MAAMyC,kBAAkBtC,aAAAA,CAAc;gCACpCe,EAAAA,EAAI,CAAC,2BAA2B,EAAEnB,SAAAA,CAAUqB,SAAS,CAAC,CAAC,EAAEmB,KAAAA,CAAMvC,IAAI,CAAA,CAAE;AACrE0C,gCAAAA,cAAAA,EAAgBH,MAAMI;AACxB,6BAAA,CAAA;AAEA,4BAAA,qBACE3B,GAAA,CAAC4B,kBAAAA,EAAAA;gCACCC,GAAAA,EAAKP,IAAAA;gCAELQ,CAAAA,EAAG,EAAA;gCACHC,EAAAA,EAAI,EAAA;gCACJhB,SAAAA,EAAU,QAAA;gCACVC,UAAAA,EAAW,SAAA;0CAEV/B,QAAAA,CAAS;AACR,oCAAA,GAAGsC,KAAK;oCACRI,KAAAA,EAAOF,eAAAA;oCACPzC,IAAAA,EAAMwC,iBAAAA;oCACNQ,QAAAA,EAAUrC;AACZ,iCAAA;AAXK6B,6BAAAA,EAAAA,iBAAAA,CAAAA;AAcX,wBAAA,CAAA;AAhCuDJ,qBAAAA,EAAAA,KAAAA,CAAAA;AAmC7D,gBAAA,CAAA;;;;AAKV;;;;"}
1
+ {"version":3,"file":"NonRepeatable.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Component/NonRepeatable.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useForm, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getIn } from '../../../../../utils/objects';\nimport { ResponsiveGridItem, ResponsiveGridRoot } from '../../FormLayout';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport type { ComponentInputProps } from './Input';\n\ntype NonRepeatableComponentProps = Omit<ComponentInputProps, 'required' | 'label'>;\n\nconst NonRepeatableComponent = ({\n attribute,\n name,\n children,\n layout,\n}: NonRepeatableComponentProps) => {\n const componentId = useForm(\n 'NonRepeatableComponent',\n (state) => getIn(state.values, `${name}.id`) as number | undefined\n );\n const level = useComponent('NonRepeatableComponent', (state) => state.level);\n const isNested = level > 0;\n const isMobile = useIsMobile();\n\n return (\n <ComponentProvider\n id={componentId}\n uid={attribute.component}\n level={level + 1}\n type=\"component\"\n >\n <Box\n background={'neutral100'}\n padding={{ initial: 4, medium: 6 }}\n hasRadius={isNested}\n borderColor={isNested || isMobile ? 'neutral200' : undefined}\n >\n <NonRepeatableComponentFields attribute={attribute} name={name} layout={layout}>\n {children}\n </NonRepeatableComponentFields>\n </Box>\n </ComponentProvider>\n );\n};\n\ninterface NonRepeatableComponentFieldsProps\n extends Pick<NonRepeatableComponentProps, 'attribute' | 'children' | 'layout' | 'name'> {}\n\nconst NonRepeatableComponentFields = React.memo(\n ({ attribute, children, layout, name }: NonRepeatableComponentFieldsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((row, index) => {\n return (\n <ResponsiveGridRoot gap={{ initial: 3, medium: 4 }} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n const translatedLabel = formatMessage({\n id: `content-manager.components.${attribute.component}.${field.name}`,\n defaultMessage: field.label,\n });\n\n return (\n <ResponsiveGridItem\n col={size}\n key={completeFieldName}\n s={12}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {children({\n ...field,\n label: translatedLabel,\n name: completeFieldName,\n })}\n </ResponsiveGridItem>\n );\n })}\n </ResponsiveGridRoot>\n );\n })}\n </Flex>\n );\n }\n);\n\nNonRepeatableComponentFields.displayName = 'NonRepeatableComponentFields';\n\nconst MemoizedNonRepeatableComponent = React.memo(NonRepeatableComponent);\n\nexport { MemoizedNonRepeatableComponent as NonRepeatableComponent };\nexport type { NonRepeatableComponentProps };\n"],"names":["NonRepeatableComponent","attribute","name","children","layout","componentId","useForm","state","getIn","values","level","useComponent","isNested","isMobile","useIsMobile","_jsx","ComponentProvider","id","uid","component","type","Box","background","padding","initial","medium","hasRadius","borderColor","undefined","NonRepeatableComponentFields","React","memo","formatMessage","useIntl","Flex","direction","alignItems","gap","map","row","index","ResponsiveGridRoot","size","field","completeFieldName","translatedLabel","defaultMessage","label","ResponsiveGridItem","col","s","xs","displayName","MemoizedNonRepeatableComponent"],"mappings":"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"}