@webiny/app-headless-cms 6.0.0-rc.3 → 6.0.0-rc.5

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 (99) hide show
  1. package/admin/components/CmsModelFieldRenderer.d.ts +4 -0
  2. package/admin/components/CmsModelFieldRenderer.js +14 -0
  3. package/admin/components/CmsModelFieldRenderer.js.map +1 -0
  4. package/admin/components/CmsModelFieldType.d.ts +4 -0
  5. package/admin/components/CmsModelFieldType.js +14 -0
  6. package/admin/components/CmsModelFieldType.js.map +1 -0
  7. package/admin/components/CmsModelLayoutFieldRenderer.d.ts +13 -0
  8. package/admin/components/CmsModelLayoutFieldRenderer.js +15 -0
  9. package/admin/components/CmsModelLayoutFieldRenderer.js.map +1 -0
  10. package/admin/components/CmsModelLayoutFieldType.d.ts +2 -0
  11. package/admin/components/CmsModelLayoutFieldType.js +14 -0
  12. package/admin/components/CmsModelLayoutFieldType.js.map +1 -0
  13. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
  14. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  15. package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +3 -3
  16. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
  17. package/admin/components/FieldEditor/FieldEditor.js +10 -10
  18. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  19. package/admin/components/FieldEditor/FieldEditorContext.d.ts +11 -11
  20. package/admin/components/FieldEditor/FieldEditorContext.js +41 -41
  21. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  22. package/admin/components/FieldEditor/LayoutCell.d.ts +3 -3
  23. package/admin/components/FieldEditor/LayoutCell.js +6 -6
  24. package/admin/components/FieldEditor/LayoutCell.js.map +1 -1
  25. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +2 -2
  26. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
  27. package/admin/plugins/fieldRenderers/checkboxes.js +2 -2
  28. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
  29. package/admin/plugins/fieldRenderers/dateTime/Input.js +2 -2
  30. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  31. package/admin/plugins/fieldRenderers/dateTime/Select.js +2 -2
  32. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
  33. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +2 -2
  34. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
  35. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +2 -2
  36. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
  37. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +2 -2
  38. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -1
  39. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +2 -2
  40. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
  41. package/admin/plugins/fieldRenderers/longText/longText.js +2 -2
  42. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
  43. package/admin/plugins/fieldRenderers/longText/longTexts.js +2 -2
  44. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
  45. package/admin/plugins/fieldRenderers/number/numberInput.js +2 -2
  46. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
  47. package/admin/plugins/fieldRenderers/number/numberInputs.js +2 -2
  48. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
  49. package/admin/plugins/fieldRenderers/object/MultiValueContainer.js +2 -2
  50. package/admin/plugins/fieldRenderers/object/MultiValueContainer.js.map +1 -1
  51. package/admin/plugins/fieldRenderers/radioButtons.js +2 -2
  52. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
  53. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +2 -2
  54. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
  55. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +2 -2
  56. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
  57. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +2 -2
  58. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  59. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +2 -2
  60. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  61. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +2 -2
  62. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
  63. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +2 -2
  64. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
  65. package/admin/plugins/fieldRenderers/select.js +2 -2
  66. package/admin/plugins/fieldRenderers/select.js.map +1 -1
  67. package/admin/plugins/fieldRenderers/text/tags.js +2 -2
  68. package/admin/plugins/fieldRenderers/text/tags.js.map +1 -1
  69. package/admin/plugins/fieldRenderers/text/textInput.js +2 -2
  70. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
  71. package/admin/plugins/fieldRenderers/text/textInputs.js +2 -2
  72. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
  73. package/admin/plugins/fields/ui/TabsLayoutEditor.d.ts +4 -4
  74. package/admin/plugins/fields/ui/TabsLayoutEditor.js +44 -44
  75. package/admin/plugins/fields/ui/TabsLayoutEditor.js.map +1 -1
  76. package/admin/plugins/fields/ui/alert.d.ts +2 -2
  77. package/admin/plugins/fields/ui/alert.js +11 -11
  78. package/admin/plugins/fields/ui/alert.js.map +1 -1
  79. package/admin/plugins/fields/ui/separator.d.ts +2 -2
  80. package/admin/plugins/fields/ui/separator.js +10 -10
  81. package/admin/plugins/fields/ui/separator.js.map +1 -1
  82. package/admin/plugins/fields/ui/tabs.d.ts +2 -2
  83. package/admin/plugins/fields/ui/tabs.js +10 -10
  84. package/admin/plugins/fields/ui/tabs.js.map +1 -1
  85. package/allPlugins.d.ts +1 -1
  86. package/exports/admin/cms/{fieldRenderers/dynamicZone.js → field-renderers/dynamic-zone.js} +1 -1
  87. package/exports/admin/cms/field-renderers/dynamic-zone.js.map +1 -0
  88. package/exports/admin/cms.d.ts +4 -0
  89. package/exports/admin/cms.js +4 -0
  90. package/exports/admin/cms.js.map +1 -1
  91. package/package.json +23 -23
  92. package/types.d.ts +1 -1
  93. package/types.js +1 -1
  94. package/types.js.map +1 -1
  95. package/exports/admin/cms/fieldRenderers/dynamicZone.js.map +0 -1
  96. /package/exports/admin/cms/{fieldRenderers/dynamicZone.d.ts → field-renderers/dynamic-zone.d.ts} +0 -0
  97. /package/exports/admin/cms/{fieldRenderers → field-renderers}/object.d.ts +0 -0
  98. /package/exports/admin/cms/{fieldRenderers → field-renderers}/object.js +0 -0
  99. /package/exports/admin/cms/{fieldRenderers → field-renderers}/object.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","get","i18n","DelayedOnChange","Input","useEffectiveRules","useModelField","t","ns","plugin","type","name","renderer","rendererName","description","canUse","field","list","render","getBind","rules","disabled","canEdit","Bind","createElement","bind","ValidationContainer","value","onChange","onBlur","validate","label","placeholder","hint","help","note","validation"],"sources":["textInput.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { DelayedOnChange } from \"@webiny/ui/DelayedOnChange/index.js\";\nimport type { CmsModelFieldRendererPlugin } from \"~/types.js\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { useEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-text\",\n renderer: {\n rendererName: \"text-input\",\n name: t`Text Input`,\n description: t`Renders a simple input with its type set to \"text\".`,\n canUse({ field }) {\n return field.type === \"text\" && !field.list && !get(field, \"predefinedValues.enabled\");\n },\n render({ getBind }) {\n const { field } = useModelField();\n const rules = useEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n const Bind = getBind();\n\n return (\n <Bind>\n {bind => (\n <Bind.ValidationContainer>\n <DelayedOnChange\n value={bind.value}\n onChange={bind.onChange}\n onBlur={bind.validate}\n >\n <Input\n disabled={disabled}\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n hint={field.help}\n note={field.note}\n data-testid={`fr.input.text.${field.label}`}\n validation={bind.validation}\n />\n </DelayedOnChange>\n </Bind.ValidationContainer>\n )}\n </Bind>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,eAAe,QAAQ,qCAAqC;AAErE,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,iBAAiB,EAAEC,aAAa,QAAQ,iCAAiC;AAElF,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,oCAAoC,CAAC;AAEvD,MAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,gCAAgC;EACtCC,QAAQ,EAAE;IACNC,YAAY,EAAE,YAAY;IAC1BF,IAAI,EAAEJ,CAAC,YAAY;IACnBO,WAAW,EAAEP,CAAC,qDAAqD;IACnEQ,MAAMA,CAAC;MAAEC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAACN,IAAI,KAAK,MAAM,IAAI,CAACM,KAAK,CAACC,IAAI,IAAI,CAAChB,GAAG,CAACe,KAAK,EAAE,0BAA0B,CAAC;IAC1F,CAAC;IACDE,MAAMA,CAAC;MAAEC;IAAQ,CAAC,EAAE;MAChB,MAAM;QAAEH;MAAM,CAAC,GAAGV,aAAa,CAAC,CAAC;MACjC,MAAMc,KAAK,GAAGf,iBAAiB,CAACW,KAAK,CAAC;MACtC,MAAMK,QAAQ,GAAG,CAACD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACC,QAAQ;MACjD,MAAME,IAAI,GAAGJ,OAAO,CAAC,CAAC;MAEtB,oBACInB,KAAA,CAAAwB,aAAA,CAACD,IAAI,QACAE,IAAI,iBACDzB,KAAA,CAAAwB,aAAA,CAACD,IAAI,CAACG,mBAAmB,qBACrB1B,KAAA,CAAAwB,aAAA,CAACrB,eAAe;QACZwB,KAAK,EAAEF,IAAI,CAACE,KAAM;QAClBC,QAAQ,EAAEH,IAAI,CAACG,QAAS;QACxBC,MAAM,EAAEJ,IAAI,CAACK;MAAS,gBAEtB9B,KAAA,CAAAwB,aAAA,CAACpB,KAAK;QACFiB,QAAQ,EAAEA,QAAS;QACnBU,KAAK,EAAEf,KAAK,CAACe,KAAM;QACnBC,WAAW,EAAEhB,KAAK,CAACgB,WAAY;QAC/BlB,WAAW,EAAEE,KAAK,CAACF,WAAY;QAC/BmB,IAAI,EAAEjB,KAAK,CAACkB,IAAK;QACjBC,IAAI,EAAEnB,KAAK,CAACmB,IAAK;QACjB,eAAa,iBAAiBnB,KAAK,CAACe,KAAK,EAAG;QAC5CK,UAAU,EAAEX,IAAI,CAACW;MAAW,CAC/B,CACY,CACK,CAE5B,CAAC;IAEf;EACJ;AACJ,CAAC;AAED,eAAe3B,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["React","get","i18n","DelayedOnChange","Input","useFieldEffectiveRules","useModelField","t","ns","plugin","type","name","renderer","rendererName","description","canUse","field","list","render","getBind","rules","disabled","canEdit","Bind","createElement","bind","ValidationContainer","value","onChange","onBlur","validate","label","placeholder","hint","help","note","validation"],"sources":["textInput.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { DelayedOnChange } from \"@webiny/ui/DelayedOnChange/index.js\";\nimport type { CmsModelFieldRendererPlugin } from \"~/types.js\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { useFieldEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-text\",\n renderer: {\n rendererName: \"text-input\",\n name: t`Text Input`,\n description: t`Renders a simple input with its type set to \"text\".`,\n canUse({ field }) {\n return field.type === \"text\" && !field.list && !get(field, \"predefinedValues.enabled\");\n },\n render({ getBind }) {\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n const Bind = getBind();\n\n return (\n <Bind>\n {bind => (\n <Bind.ValidationContainer>\n <DelayedOnChange\n value={bind.value}\n onChange={bind.onChange}\n onBlur={bind.validate}\n >\n <Input\n disabled={disabled}\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n hint={field.help}\n note={field.note}\n data-testid={`fr.input.text.${field.label}`}\n validation={bind.validation}\n />\n </DelayedOnChange>\n </Bind.ValidationContainer>\n )}\n </Bind>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,eAAe,QAAQ,qCAAqC;AAErE,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,sBAAsB,EAAEC,aAAa,QAAQ,iCAAiC;AAEvF,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,oCAAoC,CAAC;AAEvD,MAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,gCAAgC;EACtCC,QAAQ,EAAE;IACNC,YAAY,EAAE,YAAY;IAC1BF,IAAI,EAAEJ,CAAC,YAAY;IACnBO,WAAW,EAAEP,CAAC,qDAAqD;IACnEQ,MAAMA,CAAC;MAAEC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAACN,IAAI,KAAK,MAAM,IAAI,CAACM,KAAK,CAACC,IAAI,IAAI,CAAChB,GAAG,CAACe,KAAK,EAAE,0BAA0B,CAAC;IAC1F,CAAC;IACDE,MAAMA,CAAC;MAAEC;IAAQ,CAAC,EAAE;MAChB,MAAM;QAAEH;MAAM,CAAC,GAAGV,aAAa,CAAC,CAAC;MACjC,MAAMc,KAAK,GAAGf,sBAAsB,CAACW,KAAK,CAAC;MAC3C,MAAMK,QAAQ,GAAG,CAACD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACC,QAAQ;MACjD,MAAME,IAAI,GAAGJ,OAAO,CAAC,CAAC;MAEtB,oBACInB,KAAA,CAAAwB,aAAA,CAACD,IAAI,QACAE,IAAI,iBACDzB,KAAA,CAAAwB,aAAA,CAACD,IAAI,CAACG,mBAAmB,qBACrB1B,KAAA,CAAAwB,aAAA,CAACrB,eAAe;QACZwB,KAAK,EAAEF,IAAI,CAACE,KAAM;QAClBC,QAAQ,EAAEH,IAAI,CAACG,QAAS;QACxBC,MAAM,EAAEJ,IAAI,CAACK;MAAS,gBAEtB9B,KAAA,CAAAwB,aAAA,CAACpB,KAAK;QACFiB,QAAQ,EAAEA,QAAS;QACnBU,KAAK,EAAEf,KAAK,CAACe,KAAM;QACnBC,WAAW,EAAEhB,KAAK,CAACgB,WAAY;QAC/BlB,WAAW,EAAEE,KAAK,CAACF,WAAY;QAC/BmB,IAAI,EAAEjB,KAAK,CAACkB,IAAK;QACjBC,IAAI,EAAEnB,KAAK,CAACmB,IAAK;QACjB,eAAa,iBAAiBnB,KAAK,CAACe,KAAK,EAAG;QAC5CK,UAAU,EAAEX,IAAI,CAACW;MAAW,CAC/B,CACY,CACK,CAE5B,CAAC;IAEf;EACJ;AACJ,CAAC;AAED,eAAe3B,MAAM","ignoreList":[]}
@@ -5,7 +5,7 @@ import { ReactComponent as DeleteIcon } from "@webiny/icons/delete.svg";
5
5
  import DynamicSection from "../DynamicSection.js";
6
6
  import { MultiValueRendererSettings } from "../MultiValueRendererSettings.js";
7
7
  import { DelayedOnChange, Icon, Input } from "@webiny/admin-ui";
8
- import { CanEditField, useEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
8
+ import { CanEditField, useFieldEffectiveRules, useModelField } from "@webiny/app-headless-cms-common";
9
9
  const t = i18n.ns("app-headless-cms/admin/fields/text");
10
10
  const plugin = {
11
11
  type: "cms-editor-field-renderer",
@@ -23,7 +23,7 @@ const plugin = {
23
23
  const {
24
24
  field
25
25
  } = useModelField();
26
- const rules = useEffectiveRules(field);
26
+ const rules = useFieldEffectiveRules(field);
27
27
  const disabled = !rules.canEdit || rules.disabled;
28
28
  return /*#__PURE__*/React.createElement(DynamicSection, Object.assign({}, props, {
29
29
  disabled: disabled
@@ -1 +1 @@
1
- {"version":3,"names":["React","get","i18n","ReactComponent","DeleteIcon","DynamicSection","MultiValueRendererSettings","DelayedOnChange","Icon","Input","CanEditField","useEffectiveRules","useModelField","t","ns","plugin","type","name","renderer","rendererName","description","canUse","field","list","render","props","rules","disabled","canEdit","createElement","Object","assign","bind","index","value","onChange","onBlur","validate","validation","onEnter","appendValue","label","number","placeholder","endIcon","icon","onClick","removeValue","className","renderSettings"],"sources":["textInputs.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport type { CmsModelFieldRendererPlugin } from \"~/types.js\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport DynamicSection from \"../DynamicSection.js\";\nimport { MultiValueRendererSettings } from \"~/admin/plugins/fieldRenderers/MultiValueRendererSettings.js\";\nimport { DelayedOnChange, Icon, Input } from \"@webiny/admin-ui\";\nimport { CanEditField, useEffectiveRules, useModelField } from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-text-inputs\",\n renderer: {\n rendererName: \"text-inputs\",\n name: t`Text Inputs`,\n description: t`Renders a simple list of text inputs.`,\n canUse({ field }) {\n return field.type === \"text\" && !!field.list && !get(field, \"predefinedValues.enabled\");\n },\n render(props) {\n const { field } = useModelField();\n const rules = useEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n\n return (\n <DynamicSection {...props} disabled={disabled}>\n {({ bind, index }) => (\n <DelayedOnChange\n value={bind.index.value}\n onChange={bind.index.onChange}\n onBlur={bind.index.validate}\n >\n <Input\n disabled={disabled}\n validation={bind.index.validation}\n onEnter={() => bind.field.appendValue(\"\")}\n label={t`Value {number}`({ number: index + 1 })}\n placeholder={props.field.placeholder}\n data-testid={`fr.input.texts.${props.field.label}.${index + 1}`}\n endIcon={\n <CanEditField>\n <Icon\n icon={<DeleteIcon />}\n label={\"Delete\"}\n onClick={() => bind.field.removeValue(index)}\n className={\"cursor-pointer\"}\n />\n </CanEditField>\n }\n />\n </DelayedOnChange>\n )}\n </DynamicSection>\n );\n },\n renderSettings(props) {\n return <MultiValueRendererSettings {...props} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,IAAI,QAAQ,2BAA2B;AAEhD,SAASC,cAAc,IAAIC,UAAU,QAAQ,0BAA0B;AACvE,OAAOC,cAAc;AACrB,SAASC,0BAA0B;AACnC,SAASC,eAAe,EAAEC,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;AAC/D,SAASC,YAAY,EAAEC,iBAAiB,EAAEC,aAAa,QAAQ,iCAAiC;AAEhG,MAAMC,CAAC,GAAGX,IAAI,CAACY,EAAE,CAAC,oCAAoC,CAAC;AAEvD,MAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,uCAAuC;EAC7CC,QAAQ,EAAE;IACNC,YAAY,EAAE,aAAa;IAC3BF,IAAI,EAAEJ,CAAC,aAAa;IACpBO,WAAW,EAAEP,CAAC,uCAAuC;IACrDQ,MAAMA,CAAC;MAAEC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAACN,IAAI,KAAK,MAAM,IAAI,CAAC,CAACM,KAAK,CAACC,IAAI,IAAI,CAACtB,GAAG,CAACqB,KAAK,EAAE,0BAA0B,CAAC;IAC3F,CAAC;IACDE,MAAMA,CAACC,KAAK,EAAE;MACV,MAAM;QAAEH;MAAM,CAAC,GAAGV,aAAa,CAAC,CAAC;MACjC,MAAMc,KAAK,GAAGf,iBAAiB,CAACW,KAAK,CAAC;MACtC,MAAMK,QAAQ,GAAG,CAACD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACC,QAAQ;MAEjD,oBACI3B,KAAA,CAAA6B,aAAA,CAACxB,cAAc,EAAAyB,MAAA,CAAAC,MAAA,KAAKN,KAAK;QAAEE,QAAQ,EAAEA;MAAS,IACzC,CAAC;QAAEK,IAAI;QAAEC;MAAM,CAAC,kBACbjC,KAAA,CAAA6B,aAAA,CAACtB,eAAe;QACZ2B,KAAK,EAAEF,IAAI,CAACC,KAAK,CAACC,KAAM;QACxBC,QAAQ,EAAEH,IAAI,CAACC,KAAK,CAACE,QAAS;QAC9BC,MAAM,EAAEJ,IAAI,CAACC,KAAK,CAACI;MAAS,gBAE5BrC,KAAA,CAAA6B,aAAA,CAACpB,KAAK;QACFkB,QAAQ,EAAEA,QAAS;QACnBW,UAAU,EAAEN,IAAI,CAACC,KAAK,CAACK,UAAW;QAClCC,OAAO,EAAEA,CAAA,KAAMP,IAAI,CAACV,KAAK,CAACkB,WAAW,CAAC,EAAE,CAAE;QAC1CC,KAAK,EAAE5B,CAAC,gBAAgB,CAAC;UAAE6B,MAAM,EAAET,KAAK,GAAG;QAAE,CAAC,CAAE;QAChDU,WAAW,EAAElB,KAAK,CAACH,KAAK,CAACqB,WAAY;QACrC,eAAa,kBAAkBlB,KAAK,CAACH,KAAK,CAACmB,KAAK,IAAIR,KAAK,GAAG,CAAC,EAAG;QAChEW,OAAO,eACH5C,KAAA,CAAA6B,aAAA,CAACnB,YAAY,qBACTV,KAAA,CAAA6B,aAAA,CAACrB,IAAI;UACDqC,IAAI,eAAE7C,KAAA,CAAA6B,aAAA,CAACzB,UAAU,MAAE,CAAE;UACrBqC,KAAK,EAAE,QAAS;UAChBK,OAAO,EAAEA,CAAA,KAAMd,IAAI,CAACV,KAAK,CAACyB,WAAW,CAACd,KAAK,CAAE;UAC7Ce,SAAS,EAAE;QAAiB,CAC/B,CACS;MACjB,CACJ,CACY,CAET,CAAC;IAEzB,CAAC;IACDC,cAAcA,CAACxB,KAAK,EAAE;MAClB,oBAAOzB,KAAA,CAAA6B,aAAA,CAACvB,0BAA0B,EAAKmB,KAAQ,CAAC;IACpD;EACJ;AACJ,CAAC;AAED,eAAeV,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["React","get","i18n","ReactComponent","DeleteIcon","DynamicSection","MultiValueRendererSettings","DelayedOnChange","Icon","Input","CanEditField","useFieldEffectiveRules","useModelField","t","ns","plugin","type","name","renderer","rendererName","description","canUse","field","list","render","props","rules","disabled","canEdit","createElement","Object","assign","bind","index","value","onChange","onBlur","validate","validation","onEnter","appendValue","label","number","placeholder","endIcon","icon","onClick","removeValue","className","renderSettings"],"sources":["textInputs.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport type { CmsModelFieldRendererPlugin } from \"~/types.js\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport DynamicSection from \"../DynamicSection.js\";\nimport { MultiValueRendererSettings } from \"~/admin/plugins/fieldRenderers/MultiValueRendererSettings.js\";\nimport { DelayedOnChange, Icon, Input } from \"@webiny/admin-ui\";\nimport {\n CanEditField,\n useFieldEffectiveRules,\n useModelField\n} from \"@webiny/app-headless-cms-common\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-text-inputs\",\n renderer: {\n rendererName: \"text-inputs\",\n name: t`Text Inputs`,\n description: t`Renders a simple list of text inputs.`,\n canUse({ field }) {\n return field.type === \"text\" && !!field.list && !get(field, \"predefinedValues.enabled\");\n },\n render(props) {\n const { field } = useModelField();\n const rules = useFieldEffectiveRules(field);\n const disabled = !rules.canEdit || rules.disabled;\n\n return (\n <DynamicSection {...props} disabled={disabled}>\n {({ bind, index }) => (\n <DelayedOnChange\n value={bind.index.value}\n onChange={bind.index.onChange}\n onBlur={bind.index.validate}\n >\n <Input\n disabled={disabled}\n validation={bind.index.validation}\n onEnter={() => bind.field.appendValue(\"\")}\n label={t`Value {number}`({ number: index + 1 })}\n placeholder={props.field.placeholder}\n data-testid={`fr.input.texts.${props.field.label}.${index + 1}`}\n endIcon={\n <CanEditField>\n <Icon\n icon={<DeleteIcon />}\n label={\"Delete\"}\n onClick={() => bind.field.removeValue(index)}\n className={\"cursor-pointer\"}\n />\n </CanEditField>\n }\n />\n </DelayedOnChange>\n )}\n </DynamicSection>\n );\n },\n renderSettings(props) {\n return <MultiValueRendererSettings {...props} />;\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,SAASC,IAAI,QAAQ,2BAA2B;AAEhD,SAASC,cAAc,IAAIC,UAAU,QAAQ,0BAA0B;AACvE,OAAOC,cAAc;AACrB,SAASC,0BAA0B;AACnC,SAASC,eAAe,EAAEC,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;AAC/D,SACIC,YAAY,EACZC,sBAAsB,EACtBC,aAAa,QACV,iCAAiC;AAExC,MAAMC,CAAC,GAAGX,IAAI,CAACY,EAAE,CAAC,oCAAoC,CAAC;AAEvD,MAAMC,MAAmC,GAAG;EACxCC,IAAI,EAAE,2BAA2B;EACjCC,IAAI,EAAE,uCAAuC;EAC7CC,QAAQ,EAAE;IACNC,YAAY,EAAE,aAAa;IAC3BF,IAAI,EAAEJ,CAAC,aAAa;IACpBO,WAAW,EAAEP,CAAC,uCAAuC;IACrDQ,MAAMA,CAAC;MAAEC;IAAM,CAAC,EAAE;MACd,OAAOA,KAAK,CAACN,IAAI,KAAK,MAAM,IAAI,CAAC,CAACM,KAAK,CAACC,IAAI,IAAI,CAACtB,GAAG,CAACqB,KAAK,EAAE,0BAA0B,CAAC;IAC3F,CAAC;IACDE,MAAMA,CAACC,KAAK,EAAE;MACV,MAAM;QAAEH;MAAM,CAAC,GAAGV,aAAa,CAAC,CAAC;MACjC,MAAMc,KAAK,GAAGf,sBAAsB,CAACW,KAAK,CAAC;MAC3C,MAAMK,QAAQ,GAAG,CAACD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACC,QAAQ;MAEjD,oBACI3B,KAAA,CAAA6B,aAAA,CAACxB,cAAc,EAAAyB,MAAA,CAAAC,MAAA,KAAKN,KAAK;QAAEE,QAAQ,EAAEA;MAAS,IACzC,CAAC;QAAEK,IAAI;QAAEC;MAAM,CAAC,kBACbjC,KAAA,CAAA6B,aAAA,CAACtB,eAAe;QACZ2B,KAAK,EAAEF,IAAI,CAACC,KAAK,CAACC,KAAM;QACxBC,QAAQ,EAAEH,IAAI,CAACC,KAAK,CAACE,QAAS;QAC9BC,MAAM,EAAEJ,IAAI,CAACC,KAAK,CAACI;MAAS,gBAE5BrC,KAAA,CAAA6B,aAAA,CAACpB,KAAK;QACFkB,QAAQ,EAAEA,QAAS;QACnBW,UAAU,EAAEN,IAAI,CAACC,KAAK,CAACK,UAAW;QAClCC,OAAO,EAAEA,CAAA,KAAMP,IAAI,CAACV,KAAK,CAACkB,WAAW,CAAC,EAAE,CAAE;QAC1CC,KAAK,EAAE5B,CAAC,gBAAgB,CAAC;UAAE6B,MAAM,EAAET,KAAK,GAAG;QAAE,CAAC,CAAE;QAChDU,WAAW,EAAElB,KAAK,CAACH,KAAK,CAACqB,WAAY;QACrC,eAAa,kBAAkBlB,KAAK,CAACH,KAAK,CAACmB,KAAK,IAAIR,KAAK,GAAG,CAAC,EAAG;QAChEW,OAAO,eACH5C,KAAA,CAAA6B,aAAA,CAACnB,YAAY,qBACTV,KAAA,CAAA6B,aAAA,CAACrB,IAAI;UACDqC,IAAI,eAAE7C,KAAA,CAAA6B,aAAA,CAACzB,UAAU,MAAE,CAAE;UACrBqC,KAAK,EAAE,QAAS;UAChBK,OAAO,EAAEA,CAAA,KAAMd,IAAI,CAACV,KAAK,CAACyB,WAAW,CAACd,KAAK,CAAE;UAC7Ce,SAAS,EAAE;QAAiB,CAC/B,CACS;MACjB,CACJ,CACY,CAET,CAAC;IAEzB,CAAC;IACDC,cAAcA,CAACxB,KAAK,EAAE;MAClB,oBAAOzB,KAAA,CAAA6B,aAAA,CAACvB,0BAA0B,EAAKmB,KAAQ,CAAC;IACpD;EACJ;AACJ,CAAC;AAED,eAAeV,MAAM","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import type { CmsTabLayoutDescriptor, CmsLayoutDescriptor } from "@webiny/app-headless-cms-common/types/model.js";
2
+ import type { CmsTabLayoutField, CmsLayoutField } from "@webiny/app-headless-cms-common/types/model.js";
3
3
  interface TabsLayoutEditorProps {
4
- descriptor: CmsTabLayoutDescriptor;
5
- onUpdate: (d: CmsLayoutDescriptor) => void;
4
+ field: CmsTabLayoutField;
5
+ onUpdate: (d: CmsLayoutField) => void;
6
6
  onDelete: () => void;
7
7
  }
8
- export declare const TabsLayoutEditor: ({ descriptor, onUpdate, onDelete }: TabsLayoutEditorProps) => React.JSX.Element;
8
+ export declare const TabsLayoutEditor: ({ field, onUpdate, onDelete }: TabsLayoutEditorProps) => React.JSX.Element;
9
9
  export {};
@@ -154,7 +154,7 @@ const TabItem = ({
154
154
  tab,
155
155
  index,
156
156
  totalTabs,
157
- descriptor,
157
+ field,
158
158
  parentFields,
159
159
  onUpdate,
160
160
  onInsertField,
@@ -204,39 +204,39 @@ const TabItem = ({
204
204
  }
205
205
  }
206
206
 
207
- // Update the tab's layout in the descriptor
208
- const updatedTabs = [...descriptor.tabs];
207
+ // Update the tab's layout in the field
208
+ const updatedTabs = [...field.tabs];
209
209
  updatedTabs[index] = {
210
210
  ...tab,
211
211
  layout: newLayout
212
212
  };
213
213
  onUpdate({
214
- ...descriptor,
214
+ ...field,
215
215
  tabs: updatedTabs
216
216
  });
217
- }, [tab, index, descriptor, tabFields, onUpdate, onInsertField, onRemoveField, onUpdateField]);
217
+ }, [tab, index, field, tabFields, onUpdate, onInsertField, onRemoveField, onUpdateField]);
218
218
  const moveTabUp = useCallback(() => {
219
219
  if (isFirst) {
220
220
  return;
221
221
  }
222
- const tabs = [...descriptor.tabs];
222
+ const tabs = [...field.tabs];
223
223
  [tabs[index - 1], tabs[index]] = [tabs[index], tabs[index - 1]];
224
224
  onUpdate({
225
- ...descriptor,
225
+ ...field,
226
226
  tabs
227
227
  });
228
- }, [descriptor, index, isFirst, onUpdate]);
228
+ }, [field, index, isFirst, onUpdate]);
229
229
  const moveTabDown = useCallback(() => {
230
230
  if (isLast) {
231
231
  return;
232
232
  }
233
- const tabs = [...descriptor.tabs];
233
+ const tabs = [...field.tabs];
234
234
  [tabs[index + 1], tabs[index]] = [tabs[index], tabs[index + 1]];
235
235
  onUpdate({
236
- ...descriptor,
236
+ ...field,
237
237
  tabs
238
238
  });
239
- }, [descriptor, index, isLast, onUpdate]);
239
+ }, [field, index, isLast, onUpdate]);
240
240
  const deleteTab = useCallback(() => {
241
241
  showConfirmation(() => {
242
242
  // Collect field IDs to un-hoist
@@ -247,13 +247,13 @@ const TabItem = ({
247
247
  }
248
248
  }
249
249
  }
250
- const tabs = descriptor.tabs.filter((_, i) => i !== index);
250
+ const tabs = field.tabs.filter((_, i) => i !== index);
251
251
  onUpdate({
252
- ...descriptor,
252
+ ...field,
253
253
  tabs
254
254
  });
255
255
  });
256
- }, [descriptor, index, tab, onUpdate, onRemoveField, showConfirmation]);
256
+ }, [field, index, tab, onUpdate, onRemoveField, showConfirmation]);
257
257
  const editTab = useCallback(() => {
258
258
  dialogs.showDialog({
259
259
  title: "Tab Settings",
@@ -269,7 +269,7 @@ const TabItem = ({
269
269
  fieldOptions: fieldOptions
270
270
  }),
271
271
  onAccept: data => {
272
- const updatedTabs = [...descriptor.tabs];
272
+ const updatedTabs = [...field.tabs];
273
273
  updatedTabs[index] = {
274
274
  ...tab,
275
275
  label: data.label ?? tab.label,
@@ -277,12 +277,12 @@ const TabItem = ({
277
277
  rules: data.rules ?? []
278
278
  };
279
279
  onUpdate({
280
- ...descriptor,
280
+ ...field,
281
281
  tabs: updatedTabs
282
282
  });
283
283
  }
284
284
  });
285
- }, [dialogs, descriptor, index, tab, onUpdate]);
285
+ }, [dialogs, field, index, tab, onUpdate]);
286
286
  return /*#__PURE__*/React.createElement(Accordion.Item, {
287
287
  title: tab.label
288
288
  /* This ensures drop zones are not affected by `overflow-hidden` on the accordion content. */,
@@ -312,7 +312,7 @@ const TabItem = ({
312
312
  }));
313
313
  };
314
314
  export const TabsLayoutEditor = ({
315
- descriptor,
315
+ field,
316
316
  onUpdate,
317
317
  onDelete
318
318
  }) => {
@@ -335,11 +335,11 @@ export const TabsLayoutEditor = ({
335
335
  newTabId.current = undefined;
336
336
  }, []);
337
337
 
338
- // Resolve all fields that exist in any tab of this descriptor from the parent's fields
338
+ // Resolve all fields that exist in any tab of this field from the parent's fields
339
339
  const getAllParentFields = useCallback(() => {
340
- // Collect all field IDs that exist in any tab of this descriptor
340
+ // Collect all field IDs that exist in any tab of this field
341
341
  const allFieldIds = new Set();
342
- for (const tab of descriptor.tabs) {
342
+ for (const tab of field.tabs) {
343
343
  for (const row of tab.layout) {
344
344
  for (const cell of row) {
345
345
  if (typeof cell === "string") {
@@ -352,44 +352,44 @@ export const TabsLayoutEditor = ({
352
352
  // Resolve them from the parent editor
353
353
  const resolved = [];
354
354
  for (const id of allFieldIds) {
355
- const field = parentEditor.getField({
355
+ const f = parentEditor.getField({
356
356
  id
357
357
  });
358
- if (field) {
359
- resolved.push(field);
358
+ if (f) {
359
+ resolved.push(f);
360
360
  }
361
361
  }
362
362
  return resolved;
363
- }, [descriptor, parentEditor]);
364
- const handleInsertField = useCallback(field => {
363
+ }, [field, parentEditor]);
364
+ const handleInsertField = useCallback(f => {
365
365
  // Hoist the field to the parent context's fields (without placing in parent's layout)
366
366
  const existingField = parentEditor.getField({
367
- id: field.id
367
+ id: f.id
368
368
  });
369
369
  if (!existingField) {
370
- parentEditor.addField(field);
370
+ parentEditor.addField(f);
371
371
  }
372
372
  }, [parentEditor]);
373
373
  const handleRemoveField = useCallback(fieldId => {
374
374
  // Un-hoist the field from the parent context's fields
375
375
  parentEditor.removeField(fieldId);
376
376
  }, [parentEditor]);
377
- const handleUpdateField = useCallback(field => {
378
- parentEditor.updateField(field);
377
+ const handleUpdateField = useCallback(f => {
378
+ parentEditor.updateField(f);
379
379
  }, [parentEditor]);
380
380
  const addTab = useCallback(() => {
381
381
  const id = generateAlphaNumericLowerCaseId(8);
382
382
  newTabId.current = id;
383
383
  const newTab = {
384
384
  id,
385
- label: `Tab ${descriptor.tabs.length + 1}`,
385
+ label: `Tab ${field.tabs.length + 1}`,
386
386
  layout: []
387
387
  };
388
388
  onUpdate({
389
- ...descriptor,
390
- tabs: [...descriptor.tabs, newTab]
389
+ ...field,
390
+ tabs: [...field.tabs, newTab]
391
391
  });
392
- }, [descriptor, onUpdate]);
392
+ }, [field, onUpdate]);
393
393
  const handleDeleteTabs = useCallback(() => {
394
394
  showDeleteConfirmation(() => {
395
395
  onDelete();
@@ -402,17 +402,17 @@ export const TabsLayoutEditor = ({
402
402
  acceptLabel: "Save",
403
403
  cancelLabel: "Cancel",
404
404
  formData: {
405
- label: descriptor.label ?? "",
406
- description: descriptor.description ?? "",
407
- help: descriptor.help ?? "",
408
- rules: descriptor.rules ?? []
405
+ label: field.label ?? "",
406
+ description: field.description ?? "",
407
+ help: field.help ?? "",
408
+ rules: field.rules ?? []
409
409
  },
410
410
  content: /*#__PURE__*/React.createElement(TabsDialogContent, {
411
411
  fieldOptions: fieldOptions
412
412
  }),
413
413
  onAccept: data => {
414
414
  onUpdate({
415
- ...descriptor,
415
+ ...field,
416
416
  label: data.label ?? "",
417
417
  description: data.description || null,
418
418
  help: data.help || null,
@@ -420,7 +420,7 @@ export const TabsLayoutEditor = ({
420
420
  });
421
421
  }
422
422
  });
423
- }, [descriptor, onUpdate]);
423
+ }, [field, onUpdate]);
424
424
  const resolvedParentFields = getAllParentFields();
425
425
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
426
426
  className: "flex justify-between"
@@ -431,7 +431,7 @@ export const TabsLayoutEditor = ({
431
431
  }, /*#__PURE__*/React.createElement(Heading, {
432
432
  level: 6,
433
433
  className: "text-nowrap"
434
- }, descriptor.label || "No label")), /*#__PURE__*/React.createElement(Text, {
434
+ }, field.label || "No label")), /*#__PURE__*/React.createElement(Text, {
435
435
  size: "sm",
436
436
  className: "flex w-full text-neutral-strong"
437
437
  }, "Tabs")), /*#__PURE__*/React.createElement("div", {
@@ -446,12 +446,12 @@ export const TabsLayoutEditor = ({
446
446
  onClick: handleDeleteTabs,
447
447
  variant: "ghost",
448
448
  size: "sm"
449
- }))), descriptor.tabs.length > 0 && /*#__PURE__*/React.createElement(Accordion, null, descriptor.tabs.map((tab, index) => /*#__PURE__*/React.createElement(TabItem, {
449
+ }))), field.tabs.length > 0 && /*#__PURE__*/React.createElement(Accordion, null, field.tabs.map((tab, index) => /*#__PURE__*/React.createElement(TabItem, {
450
450
  key: tab.id,
451
451
  tab: tab,
452
452
  index: index,
453
- totalTabs: descriptor.tabs.length,
454
- descriptor: descriptor,
453
+ totalTabs: field.tabs.length,
454
+ field: field,
455
455
  parentFields: resolvedParentFields,
456
456
  onUpdate: onUpdate,
457
457
  onInsertField: handleInsertField,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useRef","useEffect","Accordion","Tabs","ReactComponent","EditIcon","DeleteIcon","ArrowUpIcon","ArrowDownIcon","AddIcon","generateAlphaNumericLowerCaseId","useConfirmationDialog","useDialogs","Grid","IconButton","Button","Input","Textarea","Heading","Text","Bind","FieldEditor","IconPicker","useModelFieldEditor","PermissionsTab","RulesTab","useModelEditor","TabsSettings","createElement","className","Column","span","name","label","TabsDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","value","content","gridClassName","TabSettingsFields","TabDialogContent","createTabParent","tab","id","fieldId","type","renderer","resolveTabFields","parentFields","fieldIds","Set","row","layout","cell","add","filter","f","has","TabItem","index","totalTabs","descriptor","onUpdate","onInsertField","onRemoveField","onUpdateField","dialogs","showConfirmation","title","message","acceptLabel","isFirst","isLast","tabFields","handleFieldsChange","fields","newFields","newLayout","oldFieldIds","map","newFieldIds","oldFieldMap","Map","get","updatedTabs","moveTabUp","moveTabDown","deleteTab","_","i","editTab","showDialog","description","cancelLabel","formData","icon","rules","onAccept","data","undefined","Item","length","actions","Fragment","Action","onClick","disabled","Separator","parent","onChange","TabsLayoutEditor","onDelete","parentEditor","newTabId","showDeleteConfirmation","current","getAllParentFields","allFieldIds","resolved","field","getField","push","handleInsertField","existingField","addField","handleRemoveField","removeField","handleUpdateField","updateField","addTab","newTab","handleDeleteTabs","editTabsSettings","help","resolvedParentFields","level","variant","text"],"sources":["TabsLayoutEditor.tsx"],"sourcesContent":["import React, { useCallback, useRef, useEffect } from \"react\";\nimport { Accordion, Tabs } from \"@webiny/admin-ui\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@webiny/icons/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@webiny/icons/expand_more.svg\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type {\n CmsTabLayoutDescriptor,\n CmsTabLayoutTab,\n CmsLayoutDescriptor,\n CmsEditorFieldsLayout\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { useConfirmationDialog, useDialogs } from \"@webiny/app-admin\";\nimport { Grid } from \"@webiny/admin-ui\";\nimport { IconButton } from \"@webiny/admin-ui\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { Textarea } from \"@webiny/admin-ui\";\nimport { Heading } from \"@webiny/admin-ui\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { Bind } from \"@webiny/form\";\nimport type { CmsModelField } from \"~/types.js\";\nimport { FieldEditor } from \"~/admin/components/FieldEditor/index.js\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { useModelFieldEditor } from \"~/admin/hooks/index.js\";\nimport { PermissionsTab } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js\";\nimport { RulesTab } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\ninterface TabsLayoutEditorProps {\n descriptor: CmsTabLayoutDescriptor;\n onUpdate: (d: CmsLayoutDescriptor) => void;\n onDelete: () => void;\n}\n\ninterface TabItemProps {\n tab: CmsTabLayoutTab;\n index: number;\n totalTabs: number;\n descriptor: CmsTabLayoutDescriptor;\n parentFields: CmsModelField[];\n onUpdate: (d: CmsLayoutDescriptor) => void;\n onInsertField: (field: CmsModelField) => void;\n onRemoveField: (fieldId: string) => void;\n onUpdateField: (field: CmsModelField) => void;\n}\n\nconst TabsSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Input label={\"Description\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"help\"}>\n <Textarea label={\"Help\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst TabsDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"tabs\"}\n trigger={\"Tabs\"}\n value={\"tabs\"}\n content={<TabsSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\nconst TabSettingsFields = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"icon\"}>\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst TabDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"tab\"}\n trigger={\"Tab\"}\n value={\"tab\"}\n content={<TabSettingsFields />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\n/**\n * Create a synthetic parent field for a tab so that each tab's FieldEditor\n * has a unique identity for cross-parent drag & drop detection.\n */\nfunction createTabParent(tab: CmsTabLayoutTab): CmsModelField {\n return {\n id: tab.id,\n fieldId: `tab:${tab.id}`,\n type: \"tab\",\n label: tab.label,\n renderer: { name: \"\" }\n } as CmsModelField;\n}\n\n/**\n * Resolve fields for a tab by looking up field IDs in the parent's fields array.\n */\nfunction resolveTabFields(tab: CmsTabLayoutTab, parentFields: CmsModelField[]): CmsModelField[] {\n const fieldIds = new Set<string>();\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n fieldIds.add(cell);\n }\n }\n }\n return parentFields.filter(f => fieldIds.has(f.id));\n}\n\nconst TabItem = ({\n tab,\n index,\n totalTabs,\n descriptor,\n parentFields,\n onUpdate,\n onInsertField,\n onRemoveField,\n onUpdateField\n}: TabItemProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const { showConfirmation } = useConfirmationDialog({\n title: \"Delete tab\",\n message: `Are you sure you want to delete the tab \"${tab.label}\"? Fields inside this tab will be removed.`,\n acceptLabel: \"Yes, delete tab\"\n });\n\n const isFirst = index === 0;\n const isLast = index === totalTabs - 1;\n\n const tabFields = resolveTabFields(tab, parentFields);\n\n const handleFieldsChange = useCallback(\n ({\n fields: newFields,\n layout: newLayout\n }: {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n }) => {\n const oldFieldIds = new Set(tabFields.map(f => f.id));\n const newFieldIds = new Set(newFields.map(f => f.id));\n\n // Find added fields (in new but not in old) -> hoist to parent\n for (const f of newFields) {\n if (!oldFieldIds.has(f.id)) {\n onInsertField(f);\n }\n }\n\n // Find removed fields (in old but not in new) -> un-hoist from parent\n for (const id of oldFieldIds) {\n if (!newFieldIds.has(id)) {\n onRemoveField(id);\n }\n }\n\n // Propagate field updates (e.g. permissions changes) to the parent\n const oldFieldMap = new Map(tabFields.map(f => [f.id, f]));\n for (const f of newFields) {\n if (oldFieldMap.has(f.id) && oldFieldMap.get(f.id) !== f) {\n onUpdateField(f);\n }\n }\n\n // Update the tab's layout in the descriptor\n const updatedTabs = [...descriptor.tabs];\n updatedTabs[index] = { ...tab, layout: newLayout };\n onUpdate({ ...descriptor, tabs: updatedTabs });\n },\n [tab, index, descriptor, tabFields, onUpdate, onInsertField, onRemoveField, onUpdateField]\n );\n\n const moveTabUp = useCallback(() => {\n if (isFirst) {\n return;\n }\n const tabs = [...descriptor.tabs];\n [tabs[index - 1], tabs[index]] = [tabs[index], tabs[index - 1]];\n onUpdate({ ...descriptor, tabs });\n }, [descriptor, index, isFirst, onUpdate]);\n\n const moveTabDown = useCallback(() => {\n if (isLast) {\n return;\n }\n const tabs = [...descriptor.tabs];\n [tabs[index + 1], tabs[index]] = [tabs[index], tabs[index + 1]];\n onUpdate({ ...descriptor, tabs });\n }, [descriptor, index, isLast, onUpdate]);\n\n const deleteTab = useCallback(() => {\n showConfirmation(() => {\n // Collect field IDs to un-hoist\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n onRemoveField(cell);\n }\n }\n }\n\n const tabs = descriptor.tabs.filter((_, i) => i !== index);\n onUpdate({ ...descriptor, tabs });\n });\n }, [descriptor, index, tab, onUpdate, onRemoveField, showConfirmation]);\n\n const editTab = useCallback(() => {\n dialogs.showDialog({\n title: \"Tab Settings\",\n description: \"Configure the tab and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: tab.label,\n icon: tab.icon ?? \"\",\n rules: tab.rules ?? []\n },\n content: <TabDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n const updatedTabs = [...descriptor.tabs];\n updatedTabs[index] = {\n ...tab,\n label: data.label ?? tab.label,\n icon: data.icon || undefined,\n rules: data.rules ?? []\n };\n onUpdate({ ...descriptor, tabs: updatedTabs });\n }\n });\n }, [dialogs, descriptor, index, tab, onUpdate]);\n\n return (\n <Accordion.Item\n title={tab.label}\n /* This ensures drop zones are not affected by `overflow-hidden` on the accordion content. */\n className={\"[&>[data-state='open']]:!overflow-visible\"}\n description={`${tabFields.length} field${tabFields.length !== 1 ? \"s\" : \"\"}`}\n actions={\n <>\n <Accordion.Item.Action\n icon={<ArrowUpIcon />}\n onClick={moveTabUp}\n disabled={isFirst}\n />\n <Accordion.Item.Action\n icon={<ArrowDownIcon />}\n onClick={moveTabDown}\n disabled={isLast}\n />\n <Accordion.Item.Action.Separator />\n <Accordion.Item.Action icon={<EditIcon />} onClick={editTab} />\n <Accordion.Item.Action\n icon={<DeleteIcon />}\n onClick={deleteTab}\n disabled={totalTabs <= 1}\n />\n </>\n }\n >\n <FieldEditor\n parent={createTabParent(tab)}\n fields={tabFields}\n layout={tab.layout}\n onChange={handleFieldsChange}\n />\n </Accordion.Item>\n );\n};\n\nexport const TabsLayoutEditor = ({ descriptor, onUpdate, onDelete }: TabsLayoutEditorProps) => {\n const parentEditor = useModelFieldEditor();\n const { fieldOptions } = useModelEditor();\n const { showDialog } = useDialogs();\n const newTabId = useRef<string | undefined>(undefined);\n\n const { showConfirmation: showDeleteConfirmation } = useConfirmationDialog({\n title: \"Delete tabs\",\n message:\n \"Are you sure you want to delete this tabs element? All fields inside the tabs will be removed.\",\n acceptLabel: \"Yes, delete\"\n });\n\n useEffect(() => {\n newTabId.current = undefined;\n }, []);\n\n // Resolve all fields that exist in any tab of this descriptor from the parent's fields\n const getAllParentFields = useCallback((): CmsModelField[] => {\n // Collect all field IDs that exist in any tab of this descriptor\n const allFieldIds = new Set<string>();\n for (const tab of descriptor.tabs) {\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n allFieldIds.add(cell);\n }\n }\n }\n }\n\n // Resolve them from the parent editor\n const resolved: CmsModelField[] = [];\n for (const id of allFieldIds) {\n const field = parentEditor.getField({ id });\n if (field) {\n resolved.push(field);\n }\n }\n return resolved;\n }, [descriptor, parentEditor]);\n\n const handleInsertField = useCallback(\n (field: CmsModelField) => {\n // Hoist the field to the parent context's fields (without placing in parent's layout)\n const existingField = parentEditor.getField({ id: field.id });\n if (!existingField) {\n parentEditor.addField(field);\n }\n },\n [parentEditor]\n );\n\n const handleRemoveField = useCallback(\n (fieldId: string) => {\n // Un-hoist the field from the parent context's fields\n parentEditor.removeField(fieldId);\n },\n [parentEditor]\n );\n\n const handleUpdateField = useCallback(\n (field: CmsModelField) => {\n parentEditor.updateField(field);\n },\n [parentEditor]\n );\n\n const addTab = useCallback(() => {\n const id = generateAlphaNumericLowerCaseId(8);\n newTabId.current = id;\n const newTab: CmsTabLayoutTab = {\n id,\n label: `Tab ${descriptor.tabs.length + 1}`,\n layout: []\n };\n onUpdate({ ...descriptor, tabs: [...descriptor.tabs, newTab] });\n }, [descriptor, onUpdate]);\n\n const handleDeleteTabs = useCallback(() => {\n showDeleteConfirmation(() => {\n onDelete();\n });\n }, [onDelete, showDeleteConfirmation]);\n\n const editTabsSettings = useCallback(() => {\n showDialog({\n title: \"Tabs Settings\",\n description: \"Configure the tabs and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: descriptor.label ?? \"\",\n description: descriptor.description ?? \"\",\n help: descriptor.help ?? \"\",\n rules: descriptor.rules ?? []\n },\n content: <TabsDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...descriptor,\n label: data.label ?? \"\",\n description: data.description || null,\n help: data.help || null,\n rules: data.rules ?? []\n });\n }\n });\n }, [descriptor, onUpdate]);\n\n const resolvedParentFields = getAllParentFields();\n\n return (\n <div>\n <div className={\"flex justify-between\"}>\n <div className={\"flex flex-col\"}>\n <div className={\"flex flex-row items-center\"}>\n <Heading level={6} className={\"text-nowrap\"}>\n {descriptor.label || \"No label\"}\n </Heading>\n </div>\n <Text size=\"sm\" className={\"flex w-full text-neutral-strong\"}>\n Tabs\n </Text>\n </div>\n <div className={\"flex items-center gap-xs\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={editTabsSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={handleDeleteTabs}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n {descriptor.tabs.length > 0 && (\n <Accordion>\n {descriptor.tabs.map((tab, index) => (\n <TabItem\n key={tab.id}\n tab={tab}\n index={index}\n totalTabs={descriptor.tabs.length}\n descriptor={descriptor}\n parentFields={resolvedParentFields}\n onUpdate={onUpdate}\n onInsertField={handleInsertField}\n onRemoveField={handleRemoveField}\n onUpdateField={handleUpdateField}\n />\n ))}\n </Accordion>\n )}\n <div className={\"mt-sm flex justify-center\"}>\n <Button onClick={addTab} text={\"Add Tab\"} icon={<AddIcon />} size={\"sm\"} />\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useRef","useEffect","Accordion","Tabs","ReactComponent","EditIcon","DeleteIcon","ArrowUpIcon","ArrowDownIcon","AddIcon","generateAlphaNumericLowerCaseId","useConfirmationDialog","useDialogs","Grid","IconButton","Button","Input","Textarea","Heading","Text","Bind","FieldEditor","IconPicker","useModelFieldEditor","PermissionsTab","RulesTab","useModelEditor","TabsSettings","createElement","className","Column","span","name","label","TabsDialogContent","fieldOptions","size","separator","tabs","Tab","key","trigger","value","content","gridClassName","TabSettingsFields","TabDialogContent","createTabParent","tab","id","fieldId","type","renderer","resolveTabFields","parentFields","fieldIds","Set","row","layout","cell","add","filter","f","has","TabItem","index","totalTabs","field","onUpdate","onInsertField","onRemoveField","onUpdateField","dialogs","showConfirmation","title","message","acceptLabel","isFirst","isLast","tabFields","handleFieldsChange","fields","newFields","newLayout","oldFieldIds","map","newFieldIds","oldFieldMap","Map","get","updatedTabs","moveTabUp","moveTabDown","deleteTab","_","i","editTab","showDialog","description","cancelLabel","formData","icon","rules","onAccept","data","undefined","Item","length","actions","Fragment","Action","onClick","disabled","Separator","parent","onChange","TabsLayoutEditor","onDelete","parentEditor","newTabId","showDeleteConfirmation","current","getAllParentFields","allFieldIds","resolved","getField","push","handleInsertField","existingField","addField","handleRemoveField","removeField","handleUpdateField","updateField","addTab","newTab","handleDeleteTabs","editTabsSettings","help","resolvedParentFields","level","variant","text"],"sources":["TabsLayoutEditor.tsx"],"sourcesContent":["import React, { useCallback, useRef, useEffect } from \"react\";\nimport { Accordion, Tabs } from \"@webiny/admin-ui\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@webiny/icons/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@webiny/icons/expand_more.svg\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport type {\n CmsTabLayoutField,\n CmsTabLayoutTab,\n CmsLayoutField,\n CmsEditorFieldsLayout\n} from \"@webiny/app-headless-cms-common/types/model.js\";\nimport { useConfirmationDialog, useDialogs } from \"@webiny/app-admin\";\nimport { Grid } from \"@webiny/admin-ui\";\nimport { IconButton } from \"@webiny/admin-ui\";\nimport { Button } from \"@webiny/admin-ui\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { Textarea } from \"@webiny/admin-ui\";\nimport { Heading } from \"@webiny/admin-ui\";\nimport { Text } from \"@webiny/admin-ui\";\nimport { Bind } from \"@webiny/form\";\nimport type { CmsModelField } from \"~/types.js\";\nimport { FieldEditor } from \"~/admin/components/FieldEditor/index.js\";\nimport { IconPicker } from \"~/admin/components/IconPicker.js\";\nimport { useModelFieldEditor } from \"~/admin/hooks/index.js\";\nimport { PermissionsTab } from \"~/admin/components/FieldEditor/EditFieldDialog/PermissionsTab/PermissionsTab.js\";\nimport { RulesTab } from \"~/admin/components/FieldEditor/EditFieldDialog/RulesTab/RulesTab.js\";\nimport { useModelEditor } from \"~/admin/components/ContentModelEditor/useModelEditor.js\";\nimport type { FieldOption } from \"@webiny/app-headless-cms-common/Fields/fieldOptions.js\";\n\ninterface TabsLayoutEditorProps {\n field: CmsTabLayoutField;\n onUpdate: (d: CmsLayoutField) => void;\n onDelete: () => void;\n}\n\ninterface TabItemProps {\n tab: CmsTabLayoutTab;\n index: number;\n totalTabs: number;\n field: CmsTabLayoutField;\n parentFields: CmsModelField[];\n onUpdate: (d: CmsLayoutField) => void;\n onInsertField: (field: CmsModelField) => void;\n onRemoveField: (fieldId: string) => void;\n onUpdateField: (field: CmsModelField) => void;\n}\n\nconst TabsSettings = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"description\"}>\n <Input label={\"Description\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"help\"}>\n <Textarea label={\"Help\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst TabsDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"tabs\"}\n trigger={\"Tabs\"}\n value={\"tabs\"}\n content={<TabsSettings />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\nconst TabSettingsFields = () => {\n return (\n <Grid className={\"mt-md\"}>\n <Grid.Column span={12}>\n <Bind name={\"label\"}>\n <Input label={\"Label\"} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name={\"icon\"}>\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Grid.Column>\n </Grid>\n );\n};\n\nconst TabDialogContent = ({ fieldOptions }: { fieldOptions: FieldOption[] }) => {\n return (\n <Tabs\n size={\"md\"}\n separator\n tabs={[\n <Tabs.Tab\n key={\"tab\"}\n trigger={\"Tab\"}\n value={\"tab\"}\n content={<TabSettingsFields />}\n />,\n <Tabs.Tab\n key={\"permissions\"}\n trigger={\"Permissions\"}\n value={\"permissions\"}\n content={<PermissionsTab gridClassName={\"mt-md\"} />}\n />,\n <Tabs.Tab\n key={\"rules\"}\n trigger={\"Rules\"}\n value={\"rules\"}\n content={<RulesTab gridClassName={\"mt-md\"} fieldOptions={fieldOptions} />}\n />\n ]}\n />\n );\n};\n\n/**\n * Create a synthetic parent field for a tab so that each tab's FieldEditor\n * has a unique identity for cross-parent drag & drop detection.\n */\nfunction createTabParent(tab: CmsTabLayoutTab): CmsModelField {\n return {\n id: tab.id,\n fieldId: `tab:${tab.id}`,\n type: \"tab\",\n label: tab.label,\n renderer: { name: \"\" }\n } as CmsModelField;\n}\n\n/**\n * Resolve fields for a tab by looking up field IDs in the parent's fields array.\n */\nfunction resolveTabFields(tab: CmsTabLayoutTab, parentFields: CmsModelField[]): CmsModelField[] {\n const fieldIds = new Set<string>();\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n fieldIds.add(cell);\n }\n }\n }\n return parentFields.filter(f => fieldIds.has(f.id));\n}\n\nconst TabItem = ({\n tab,\n index,\n totalTabs,\n field,\n parentFields,\n onUpdate,\n onInsertField,\n onRemoveField,\n onUpdateField\n}: TabItemProps) => {\n const { fieldOptions } = useModelEditor();\n const dialogs = useDialogs();\n\n const { showConfirmation } = useConfirmationDialog({\n title: \"Delete tab\",\n message: `Are you sure you want to delete the tab \"${tab.label}\"? Fields inside this tab will be removed.`,\n acceptLabel: \"Yes, delete tab\"\n });\n\n const isFirst = index === 0;\n const isLast = index === totalTabs - 1;\n\n const tabFields = resolveTabFields(tab, parentFields);\n\n const handleFieldsChange = useCallback(\n ({\n fields: newFields,\n layout: newLayout\n }: {\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n }) => {\n const oldFieldIds = new Set(tabFields.map(f => f.id));\n const newFieldIds = new Set(newFields.map(f => f.id));\n\n // Find added fields (in new but not in old) -> hoist to parent\n for (const f of newFields) {\n if (!oldFieldIds.has(f.id)) {\n onInsertField(f);\n }\n }\n\n // Find removed fields (in old but not in new) -> un-hoist from parent\n for (const id of oldFieldIds) {\n if (!newFieldIds.has(id)) {\n onRemoveField(id);\n }\n }\n\n // Propagate field updates (e.g. permissions changes) to the parent\n const oldFieldMap = new Map(tabFields.map(f => [f.id, f]));\n for (const f of newFields) {\n if (oldFieldMap.has(f.id) && oldFieldMap.get(f.id) !== f) {\n onUpdateField(f);\n }\n }\n\n // Update the tab's layout in the field\n const updatedTabs = [...field.tabs];\n updatedTabs[index] = { ...tab, layout: newLayout };\n onUpdate({ ...field, tabs: updatedTabs });\n },\n [tab, index, field, tabFields, onUpdate, onInsertField, onRemoveField, onUpdateField]\n );\n\n const moveTabUp = useCallback(() => {\n if (isFirst) {\n return;\n }\n const tabs = [...field.tabs];\n [tabs[index - 1], tabs[index]] = [tabs[index], tabs[index - 1]];\n onUpdate({ ...field, tabs });\n }, [field, index, isFirst, onUpdate]);\n\n const moveTabDown = useCallback(() => {\n if (isLast) {\n return;\n }\n const tabs = [...field.tabs];\n [tabs[index + 1], tabs[index]] = [tabs[index], tabs[index + 1]];\n onUpdate({ ...field, tabs });\n }, [field, index, isLast, onUpdate]);\n\n const deleteTab = useCallback(() => {\n showConfirmation(() => {\n // Collect field IDs to un-hoist\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n onRemoveField(cell);\n }\n }\n }\n\n const tabs = field.tabs.filter((_, i) => i !== index);\n onUpdate({ ...field, tabs });\n });\n }, [field, index, tab, onUpdate, onRemoveField, showConfirmation]);\n\n const editTab = useCallback(() => {\n dialogs.showDialog({\n title: \"Tab Settings\",\n description: \"Configure the tab and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: tab.label,\n icon: tab.icon ?? \"\",\n rules: tab.rules ?? []\n },\n content: <TabDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n const updatedTabs = [...field.tabs];\n updatedTabs[index] = {\n ...tab,\n label: data.label ?? tab.label,\n icon: data.icon || undefined,\n rules: data.rules ?? []\n };\n onUpdate({ ...field, tabs: updatedTabs });\n }\n });\n }, [dialogs, field, index, tab, onUpdate]);\n\n return (\n <Accordion.Item\n title={tab.label}\n /* This ensures drop zones are not affected by `overflow-hidden` on the accordion content. */\n className={\"[&>[data-state='open']]:!overflow-visible\"}\n description={`${tabFields.length} field${tabFields.length !== 1 ? \"s\" : \"\"}`}\n actions={\n <>\n <Accordion.Item.Action\n icon={<ArrowUpIcon />}\n onClick={moveTabUp}\n disabled={isFirst}\n />\n <Accordion.Item.Action\n icon={<ArrowDownIcon />}\n onClick={moveTabDown}\n disabled={isLast}\n />\n <Accordion.Item.Action.Separator />\n <Accordion.Item.Action icon={<EditIcon />} onClick={editTab} />\n <Accordion.Item.Action\n icon={<DeleteIcon />}\n onClick={deleteTab}\n disabled={totalTabs <= 1}\n />\n </>\n }\n >\n <FieldEditor\n parent={createTabParent(tab)}\n fields={tabFields}\n layout={tab.layout}\n onChange={handleFieldsChange}\n />\n </Accordion.Item>\n );\n};\n\nexport const TabsLayoutEditor = ({ field, onUpdate, onDelete }: TabsLayoutEditorProps) => {\n const parentEditor = useModelFieldEditor();\n const { fieldOptions } = useModelEditor();\n const { showDialog } = useDialogs();\n const newTabId = useRef<string | undefined>(undefined);\n\n const { showConfirmation: showDeleteConfirmation } = useConfirmationDialog({\n title: \"Delete tabs\",\n message:\n \"Are you sure you want to delete this tabs element? All fields inside the tabs will be removed.\",\n acceptLabel: \"Yes, delete\"\n });\n\n useEffect(() => {\n newTabId.current = undefined;\n }, []);\n\n // Resolve all fields that exist in any tab of this field from the parent's fields\n const getAllParentFields = useCallback((): CmsModelField[] => {\n // Collect all field IDs that exist in any tab of this field\n const allFieldIds = new Set<string>();\n for (const tab of field.tabs) {\n for (const row of tab.layout) {\n for (const cell of row) {\n if (typeof cell === \"string\") {\n allFieldIds.add(cell);\n }\n }\n }\n }\n\n // Resolve them from the parent editor\n const resolved: CmsModelField[] = [];\n for (const id of allFieldIds) {\n const f = parentEditor.getField({ id });\n if (f) {\n resolved.push(f);\n }\n }\n return resolved;\n }, [field, parentEditor]);\n\n const handleInsertField = useCallback(\n (f: CmsModelField) => {\n // Hoist the field to the parent context's fields (without placing in parent's layout)\n const existingField = parentEditor.getField({ id: f.id });\n if (!existingField) {\n parentEditor.addField(f);\n }\n },\n [parentEditor]\n );\n\n const handleRemoveField = useCallback(\n (fieldId: string) => {\n // Un-hoist the field from the parent context's fields\n parentEditor.removeField(fieldId);\n },\n [parentEditor]\n );\n\n const handleUpdateField = useCallback(\n (f: CmsModelField) => {\n parentEditor.updateField(f);\n },\n [parentEditor]\n );\n\n const addTab = useCallback(() => {\n const id = generateAlphaNumericLowerCaseId(8);\n newTabId.current = id;\n const newTab: CmsTabLayoutTab = {\n id,\n label: `Tab ${field.tabs.length + 1}`,\n layout: []\n };\n onUpdate({ ...field, tabs: [...field.tabs, newTab] });\n }, [field, onUpdate]);\n\n const handleDeleteTabs = useCallback(() => {\n showDeleteConfirmation(() => {\n onDelete();\n });\n }, [onDelete, showDeleteConfirmation]);\n\n const editTabsSettings = useCallback(() => {\n showDialog({\n title: \"Tabs Settings\",\n description: \"Configure the tabs and access permissions\",\n acceptLabel: \"Save\",\n cancelLabel: \"Cancel\",\n formData: {\n label: field.label ?? \"\",\n description: field.description ?? \"\",\n help: field.help ?? \"\",\n rules: field.rules ?? []\n },\n content: <TabsDialogContent fieldOptions={fieldOptions} />,\n onAccept: data => {\n onUpdate({\n ...field,\n label: data.label ?? \"\",\n description: data.description || null,\n help: data.help || null,\n rules: data.rules ?? []\n });\n }\n });\n }, [field, onUpdate]);\n\n const resolvedParentFields = getAllParentFields();\n\n return (\n <div>\n <div className={\"flex justify-between\"}>\n <div className={\"flex flex-col\"}>\n <div className={\"flex flex-row items-center\"}>\n <Heading level={6} className={\"text-nowrap\"}>\n {field.label || \"No label\"}\n </Heading>\n </div>\n <Text size=\"sm\" className={\"flex w-full text-neutral-strong\"}>\n Tabs\n </Text>\n </div>\n <div className={\"flex items-center gap-xs\"}>\n <IconButton\n icon={<EditIcon />}\n onClick={editTabsSettings}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n <IconButton\n icon={<DeleteIcon />}\n onClick={handleDeleteTabs}\n variant={\"ghost\"}\n size={\"sm\"}\n />\n </div>\n </div>\n {field.tabs.length > 0 && (\n <Accordion>\n {field.tabs.map((tab, index) => (\n <TabItem\n key={tab.id}\n tab={tab}\n index={index}\n totalTabs={field.tabs.length}\n field={field}\n parentFields={resolvedParentFields}\n onUpdate={onUpdate}\n onInsertField={handleInsertField}\n onRemoveField={handleRemoveField}\n onUpdateField={handleUpdateField}\n />\n ))}\n </Accordion>\n )}\n <div className={\"mt-sm flex justify-center\"}>\n <Button onClick={addTab} text={\"Add Tab\"} icon={<AddIcon />} size={\"sm\"} />\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import type { CmsLayoutFieldTypePlugin } from "@webiny/app-headless-cms-common/types/index.js";
2
- export declare const uiAlertField: CmsLayoutFieldTypePlugin;
1
+ import type { CmsModelLayoutFieldTypePlugin } from "@webiny/app-headless-cms-common/types/index.js";
2
+ export declare const uiAlertField: CmsModelLayoutFieldTypePlugin;
@@ -72,7 +72,7 @@ const AlertDialogContent = ({
72
72
  });
73
73
  };
74
74
  const AlertLayoutCell = ({
75
- descriptor,
75
+ field,
76
76
  onUpdate,
77
77
  onDelete
78
78
  }) => {
@@ -87,16 +87,16 @@ const AlertLayoutCell = ({
87
87
  acceptLabel: "Save",
88
88
  cancelLabel: "Cancel",
89
89
  formData: {
90
- label: descriptor.label,
91
- alertType: descriptor.alertType,
92
- rules: descriptor.rules ?? []
90
+ label: field.label,
91
+ alertType: field.alertType,
92
+ rules: field.rules ?? []
93
93
  },
94
94
  content: /*#__PURE__*/React.createElement(AlertDialogContent, {
95
95
  fieldOptions: fieldOptions
96
96
  }),
97
97
  onAccept: data => {
98
98
  onUpdate({
99
- ...descriptor,
99
+ ...field,
100
100
  label: data.label ?? "",
101
101
  alertType: data.alertType ?? "info",
102
102
  rules: data.rules ?? []
@@ -108,9 +108,9 @@ const AlertLayoutCell = ({
108
108
  className: "flex items-center justify-between"
109
109
  }, /*#__PURE__*/React.createElement("div", {
110
110
  className: "flex-1"
111
- }, descriptor.label ? /*#__PURE__*/React.createElement(Alert, {
112
- type: descriptor.alertType
113
- }, descriptor.label) : /*#__PURE__*/React.createElement(Text, {
111
+ }, field.label ? /*#__PURE__*/React.createElement(Alert, {
112
+ type: field.alertType
113
+ }, field.label) : /*#__PURE__*/React.createElement(Text, {
114
114
  size: "sm",
115
115
  className: "text-neutral-strong italic"
116
116
  }, "Alert (no message set)")), /*#__PURE__*/React.createElement("div", {
@@ -136,7 +136,7 @@ export const uiAlertField = {
136
136
  description: t`Show an alert message in the form.`,
137
137
  icon: /*#__PURE__*/React.createElement(AlertIcon, null),
138
138
  canEditSettings: true,
139
- createDescriptor() {
139
+ createField() {
140
140
  return {
141
141
  type: "alert",
142
142
  label: "",
@@ -144,12 +144,12 @@ export const uiAlertField = {
144
144
  };
145
145
  },
146
146
  render({
147
- descriptor,
147
+ field,
148
148
  onUpdate,
149
149
  onDelete
150
150
  }) {
151
151
  return /*#__PURE__*/React.createElement(AlertLayoutCell, {
152
- descriptor: descriptor,
152
+ field: field,
153
153
  onUpdate: onUpdate,
154
154
  onDelete: onDelete
155
155
  });