@webiny/app-admin 6.3.0-beta.2 → 6.3.0-beta.3

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 (234) hide show
  1. package/base/Base/DefaultFieldRenderers.js +69 -5
  2. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  3. package/base/Base/DefaultLayoutRenderers.js +5 -1
  4. package/base/Base/DefaultLayoutRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/CheckboxesRenderer.d.ts +13 -0
  6. package/base/Base/FieldRenderers/CheckboxesRenderer.js +28 -0
  7. package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/CodeEditorRenderer.d.ts +15 -0
  9. package/base/Base/FieldRenderers/CodeEditorRenderer.js +17 -0
  10. package/base/Base/FieldRenderers/CodeEditorRenderer.js.map +1 -0
  11. package/base/Base/FieldRenderers/DateTimeInputsRenderer.d.ts +17 -0
  12. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +66 -0
  13. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -0
  14. package/base/Base/FieldRenderers/DateTimeRenderer.d.ts +21 -0
  15. package/base/Base/FieldRenderers/DateTimeRenderer.js +46 -0
  16. package/base/Base/FieldRenderers/DateTimeRenderer.js.map +1 -0
  17. package/base/Base/FieldRenderers/FilePickerRenderer.d.ts +12 -0
  18. package/base/Base/FieldRenderers/FilePickerRenderer.js +47 -0
  19. package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -0
  20. package/base/Base/FieldRenderers/FileUrlPickerRenderer.d.ts +12 -0
  21. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +25 -0
  22. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -0
  23. package/base/Base/FieldRenderers/HiddenRenderer.d.ts +12 -0
  24. package/base/Base/FieldRenderers/HiddenRenderer.js +5 -0
  25. package/base/Base/FieldRenderers/HiddenRenderer.js.map +1 -0
  26. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +5 -0
  27. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +27 -0
  28. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -0
  29. package/base/Base/FieldRenderers/InputRenderer.d.ts +4 -7
  30. package/base/Base/FieldRenderers/InputRenderer.js +2 -2
  31. package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
  32. package/base/Base/FieldRenderers/NumberInputRenderer.d.ts +12 -0
  33. package/base/Base/FieldRenderers/NumberInputRenderer.js +23 -0
  34. package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -0
  35. package/base/Base/FieldRenderers/NumberInputsRenderer.d.ts +14 -0
  36. package/base/Base/FieldRenderers/NumberInputsRenderer.js +49 -0
  37. package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -0
  38. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +14 -0
  39. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +20 -0
  40. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -0
  41. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.d.ts +14 -0
  42. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +65 -0
  43. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -0
  44. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +10 -0
  45. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +109 -0
  46. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +1 -0
  47. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +17 -0
  48. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +55 -0
  49. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -0
  50. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +7 -3
  51. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +15 -19
  52. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  53. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +5 -8
  54. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +7 -50
  55. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  56. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +10 -0
  57. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +64 -0
  58. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -0
  59. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.d.ts +10 -0
  60. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +85 -0
  61. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -0
  62. package/base/Base/FieldRenderers/PassthroughRenderer.d.ts +3 -6
  63. package/base/Base/FieldRenderers/PassthroughRenderer.js +9 -23
  64. package/base/Base/FieldRenderers/PassthroughRenderer.js.map +1 -1
  65. package/base/Base/FieldRenderers/RadioButtonsRenderer.d.ts +13 -0
  66. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +27 -0
  67. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -0
  68. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -8
  69. package/base/Base/FieldRenderers/SelectRenderer.js +8 -5
  70. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  71. package/base/Base/FieldRenderers/SwitchRenderer.d.ts +12 -0
  72. package/base/Base/FieldRenderers/SwitchRenderer.js +19 -0
  73. package/base/Base/FieldRenderers/SwitchRenderer.js.map +1 -0
  74. package/base/Base/FieldRenderers/TagsRenderer.d.ts +12 -0
  75. package/base/Base/FieldRenderers/TagsRenderer.js +21 -0
  76. package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -0
  77. package/base/Base/FieldRenderers/TextInputsRenderer.d.ts +14 -0
  78. package/base/Base/FieldRenderers/TextInputsRenderer.js +48 -0
  79. package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -0
  80. package/base/Base/FieldRenderers/TextareaRenderer.d.ts +3 -6
  81. package/base/Base/FieldRenderers/TextareaRenderer.js +3 -4
  82. package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
  83. package/base/Base/FieldRenderers/TextareasRenderer.d.ts +14 -0
  84. package/base/Base/FieldRenderers/TextareasRenderer.js +51 -0
  85. package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -0
  86. package/base/Base/FieldRenderers/VerticalTabsRenderer.js +2 -2
  87. package/base/Base/FieldRenderers/VerticalTabsRenderer.js.map +1 -1
  88. package/base/Base/Menus.js +5 -64
  89. package/base/Base/Menus.js.map +1 -1
  90. package/base/Base/RoutesConfig.js +6 -0
  91. package/base/Base/RoutesConfig.js.map +1 -1
  92. package/exports/admin/build-params.d.ts +2 -0
  93. package/exports/admin/build-params.js +3 -0
  94. package/exports/admin/build-params.js.map +1 -1
  95. package/exports/admin/form.d.ts +5 -0
  96. package/exports/admin/form.js +8 -0
  97. package/exports/admin/form.js.map +1 -1
  98. package/exports/admin/ui.d.ts +1 -0
  99. package/exports/admin/ui.js +1 -0
  100. package/exports/admin/ui.js.map +1 -1
  101. package/exports/admin.d.ts +3 -1
  102. package/exports/admin.js +3 -1
  103. package/exports/admin.js.map +1 -1
  104. package/features/formModel/ConditionRuleEvaluator.d.ts +9 -0
  105. package/features/formModel/ConditionRuleEvaluator.js +56 -0
  106. package/features/formModel/ConditionRuleEvaluator.js.map +1 -0
  107. package/features/formModel/Field.d.ts +50 -4
  108. package/features/formModel/Field.js +254 -35
  109. package/features/formModel/Field.js.map +1 -1
  110. package/features/formModel/FieldBuilder.d.ts +17 -35
  111. package/features/formModel/FieldBuilder.js +63 -100
  112. package/features/formModel/FieldBuilder.js.map +1 -1
  113. package/features/formModel/FieldBuilder.test.js +127 -13
  114. package/features/formModel/FieldBuilder.test.js.map +1 -1
  115. package/features/formModel/FieldBuilderRegistry.d.ts +4 -0
  116. package/features/formModel/FieldBuilderRegistry.js +31 -0
  117. package/features/formModel/FieldBuilderRegistry.js.map +1 -0
  118. package/features/formModel/FocusManager.d.ts +14 -0
  119. package/features/formModel/FocusManager.js +109 -0
  120. package/features/formModel/FocusManager.js.map +1 -0
  121. package/features/formModel/FormModel.d.ts +27 -31
  122. package/features/formModel/FormModel.js +210 -403
  123. package/features/formModel/FormModel.js.map +1 -1
  124. package/features/formModel/FormModel.test.js +2044 -193
  125. package/features/formModel/FormModel.test.js.map +1 -1
  126. package/features/formModel/FormModelFactory.d.ts +4 -2
  127. package/features/formModel/FormModelFactory.js +13 -3
  128. package/features/formModel/FormModelFactory.js.map +1 -1
  129. package/features/formModel/FormView.d.ts +2 -0
  130. package/features/formModel/FormView.js +44 -37
  131. package/features/formModel/FormView.js.map +1 -1
  132. package/features/formModel/LayoutBuilderFactory.d.ts +61 -0
  133. package/features/formModel/LayoutBuilderFactory.js +386 -0
  134. package/features/formModel/LayoutBuilderFactory.js.map +1 -0
  135. package/features/formModel/LayoutMutator.d.ts +11 -0
  136. package/features/formModel/LayoutMutator.js +136 -0
  137. package/features/formModel/LayoutMutator.js.map +1 -0
  138. package/features/formModel/LayoutResolver.d.ts +26 -0
  139. package/features/formModel/LayoutResolver.js +239 -0
  140. package/features/formModel/LayoutResolver.js.map +1 -0
  141. package/features/formModel/ObjectField.d.ts +55 -4
  142. package/features/formModel/ObjectField.js +499 -82
  143. package/features/formModel/ObjectField.js.map +1 -1
  144. package/features/formModel/Rules.test.d.ts +1 -0
  145. package/features/formModel/Rules.test.js +289 -0
  146. package/features/formModel/Rules.test.js.map +1 -0
  147. package/features/formModel/abstractions.d.ts +402 -52
  148. package/features/formModel/abstractions.js +55 -0
  149. package/features/formModel/abstractions.js.map +1 -1
  150. package/features/formModel/createFieldRenderer.d.ts +20 -0
  151. package/features/formModel/createFieldRenderer.js +15 -0
  152. package/features/formModel/createFieldRenderer.js.map +1 -0
  153. package/features/formModel/demo/FieldRenderersDemoPresenter.d.ts +18 -0
  154. package/features/formModel/demo/FieldRenderersDemoPresenter.js +225 -0
  155. package/features/formModel/demo/FieldRenderersDemoPresenter.js.map +1 -0
  156. package/features/formModel/demo/FormModelDemo.d.ts +4 -0
  157. package/features/formModel/demo/FormModelDemo.js +230 -0
  158. package/features/formModel/demo/FormModelDemo.js.map +1 -0
  159. package/features/formModel/demo/FormModelDemoPresenter.d.ts +22 -0
  160. package/features/formModel/demo/FormModelDemoPresenter.js +121 -0
  161. package/features/formModel/demo/FormModelDemoPresenter.js.map +1 -0
  162. package/features/formModel/demo/FormModelPhase11Presenter.d.ts +25 -0
  163. package/features/formModel/demo/FormModelPhase11Presenter.js +104 -0
  164. package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -0
  165. package/features/formModel/demo/FormModelPhase8c1Presenter.d.ts +23 -0
  166. package/features/formModel/demo/FormModelPhase8c1Presenter.js +62 -0
  167. package/features/formModel/demo/FormModelPhase8c1Presenter.js.map +1 -0
  168. package/features/formModel/feature.js +12 -0
  169. package/features/formModel/feature.js.map +1 -1
  170. package/features/formModel/fieldTypes/BooleanFieldType.d.ts +19 -0
  171. package/features/formModel/fieldTypes/BooleanFieldType.js +23 -0
  172. package/features/formModel/fieldTypes/BooleanFieldType.js.map +1 -0
  173. package/features/formModel/fieldTypes/DateTimeFieldType.d.ts +173 -0
  174. package/features/formModel/fieldTypes/DateTimeFieldType.js +369 -0
  175. package/features/formModel/fieldTypes/DateTimeFieldType.js.map +1 -0
  176. package/features/formModel/fieldTypes/FileFieldType.d.ts +18 -0
  177. package/features/formModel/fieldTypes/FileFieldType.js +20 -0
  178. package/features/formModel/fieldTypes/FileFieldType.js.map +1 -0
  179. package/features/formModel/fieldTypes/FileUrlFieldType.d.ts +18 -0
  180. package/features/formModel/fieldTypes/FileUrlFieldType.js +20 -0
  181. package/features/formModel/fieldTypes/FileUrlFieldType.js.map +1 -0
  182. package/features/formModel/fieldTypes/NumberFieldType.d.ts +19 -0
  183. package/features/formModel/fieldTypes/NumberFieldType.js +27 -0
  184. package/features/formModel/fieldTypes/NumberFieldType.js.map +1 -0
  185. package/features/formModel/fieldTypes/ObjectFieldType.d.ts +34 -0
  186. package/features/formModel/fieldTypes/ObjectFieldType.js +109 -0
  187. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -0
  188. package/features/formModel/fieldTypes/TextFieldType.d.ts +18 -0
  189. package/features/formModel/fieldTypes/TextFieldType.js +20 -0
  190. package/features/formModel/fieldTypes/TextFieldType.js.map +1 -0
  191. package/features/formModel/fieldTypes/index.d.ts +7 -0
  192. package/features/formModel/fieldTypes/index.js +9 -0
  193. package/features/formModel/fieldTypes/index.js.map +1 -0
  194. package/features/formModel/index.d.ts +13 -4
  195. package/features/formModel/index.js +21 -2
  196. package/features/formModel/index.js.map +1 -1
  197. package/features/formModel/renderers.d.ts +15 -1
  198. package/features/formModel/renderers.js +15 -1
  199. package/features/formModel/renderers.js.map +1 -1
  200. package/features/tools/LexicalContext/LexicalContext.d.ts +14 -0
  201. package/features/tools/LexicalContext/LexicalContext.js +22 -0
  202. package/features/tools/LexicalContext/LexicalContext.js.map +1 -0
  203. package/features/tools/LexicalContext/abstractions.d.ts +11 -0
  204. package/features/tools/LexicalContext/abstractions.js +4 -0
  205. package/features/tools/LexicalContext/abstractions.js.map +1 -0
  206. package/features/tools/LexicalContext/index.d.ts +2 -0
  207. package/features/tools/LexicalContext/index.js +3 -0
  208. package/features/tools/LexicalContext/index.js.map +1 -0
  209. package/features/tools/feature.js +2 -0
  210. package/features/tools/feature.js.map +1 -1
  211. package/features/tools/index.d.ts +1 -0
  212. package/features/tools/index.js +1 -0
  213. package/features/tools/index.js.map +1 -1
  214. package/index.d.ts +8 -1
  215. package/index.js +7 -0
  216. package/index.js.map +1 -1
  217. package/package.json +30 -24
  218. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +1 -1
  219. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +1 -1
  220. package/presentation/lexicalContext/useLexicalContext.d.ts +3 -0
  221. package/presentation/lexicalContext/useLexicalContext.js +14 -0
  222. package/presentation/lexicalContext/useLexicalContext.js.map +1 -0
  223. package/presentation/textToLexicalTool/TextToLexicalTool.d.ts +3 -0
  224. package/presentation/textToLexicalTool/TextToLexicalTool.js +6 -2
  225. package/presentation/textToLexicalTool/TextToLexicalTool.js.map +1 -1
  226. package/presentation/textToLexicalTool/textToLexicalState.d.ts +2 -1
  227. package/presentation/textToLexicalTool/textToLexicalState.js +15 -3
  228. package/presentation/textToLexicalTool/textToLexicalState.js.map +1 -1
  229. package/routes.d.ts +1 -0
  230. package/routes.js +4 -0
  231. package/routes.js.map +1 -1
  232. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.d.ts +0 -21
  233. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js +0 -28
  234. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","observer","Accordion","Button","IconButton","ReactComponent","DeleteIcon","ArrowUp","ArrowDown","useFormViewRenderers","resolveItemTitle","isObjectFieldVM","field","type","ChildFields","fields","fieldRenderers","createElement","className","map","childField","Renderer","renderer","undefined","key","name","ListItemRenderer","item","index","total","label","itemTitle","disabled","actions","Fragment","icon","onClick","e","stopPropagation","moveDown","variant","moveUp","Item","Action","Separator","remove","background","openClosedIndicatorPosition","title","defaultOpen","AddItemButton","onAdd","text","size"],"sources":["ObjectFieldComponents.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion, Button, IconButton } from \"@webiny/admin-ui\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete_outline.svg\";\nimport { ReactComponent as ArrowUp } from \"@webiny/icons/arrow_upward.svg\";\nimport { ReactComponent as ArrowDown } from \"@webiny/icons/arrow_downward.svg\";\nimport type { IFieldVM, IObjectFieldVM, IObjectFieldItemVM } from \"~/features/formModel/index.js\";\nimport { useFormViewRenderers } from \"~/features/formModel/FormView.js\";\nimport { resolveItemTitle } from \"./resolveItemTitle.js\";\n\nexport const isObjectFieldVM = (field: IFieldVM): field is IObjectFieldVM => {\n return field.type === \"object\";\n};\n\nexport const ChildFields = observer(({ fields }: { fields: IFieldVM[] }) => {\n const { fieldRenderers } = useFormViewRenderers();\n\n return (\n <div className={\"flex flex-col gap-4 p-sm\"}>\n {fields.map(childField => {\n const Renderer = childField.renderer\n ? fieldRenderers[childField.renderer]\n : undefined;\n\n if (!Renderer) {\n return null;\n }\n\n return <Renderer key={childField.name} field={childField} />;\n })}\n </div>\n );\n});\n\nexport interface ListItemRendererProps {\n item: IObjectFieldItemVM;\n index: number;\n total: number;\n label?: string;\n itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);\n disabled: boolean;\n}\n\nexport const ListItemRenderer = observer(\n ({ item, index, total, label, itemTitle, disabled }: ListItemRendererProps) => {\n const actions = (\n <>\n <IconButton\n icon={<ArrowDown />}\n onClick={e => {\n e.stopPropagation();\n item.moveDown();\n }}\n variant=\"ghost\"\n disabled={index === total - 1}\n />\n <IconButton\n icon={<ArrowUp />}\n onClick={e => {\n e.stopPropagation();\n item.moveUp();\n }}\n variant=\"ghost\"\n disabled={index === 0}\n />\n <Accordion.Item.Action.Separator />\n <IconButton\n icon={<DeleteIcon />}\n onClick={e => {\n e.stopPropagation();\n item.remove();\n }}\n variant=\"ghost\"\n />\n </>\n );\n\n return (\n <Accordion\n background={\"base\"}\n variant={\"container\"}\n openClosedIndicatorPosition={\"left\"}\n >\n <Accordion.Item\n title={resolveItemTitle(item, index, label, itemTitle)}\n actions={disabled ? null : actions}\n defaultOpen={false}\n >\n <ChildFields fields={item.fields} />\n </Accordion.Item>\n </Accordion>\n );\n }\n);\n\nexport interface AddItemButtonProps {\n label?: string;\n disabled: boolean;\n onAdd: () => void;\n}\n\nexport const AddItemButton = ({ label, disabled, onAdd }: AddItemButtonProps) => {\n return (\n <div>\n <Button\n text={label || \"Add Item\"}\n variant={\"secondary\"}\n size={\"sm\"}\n onClick={onAdd}\n disabled={disabled}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","observer","Accordion","Button","IconButton","ReactComponent","DeleteIcon","ArrowUp","ArrowDown","LayoutNodeRenderer","resolveItemTitle","isObjectFieldVM","field","type","NestedLayout","layout","createElement","className","map","node","index","key","ListItemRenderer","item","total","label","itemTitle","disabled","actions","Fragment","icon","onClick","e","stopPropagation","moveDown","variant","moveUp","Item","Action","Separator","remove","background","openClosedIndicatorPosition","title","defaultOpen","AddItemButton","onAdd","text","size"],"sources":["ObjectFieldComponents.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion, Button, IconButton } from \"@webiny/admin-ui\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete_outline.svg\";\nimport { ReactComponent as ArrowUp } from \"@webiny/icons/arrow_upward.svg\";\nimport { ReactComponent as ArrowDown } from \"@webiny/icons/arrow_downward.svg\";\nimport type {\n IFieldVM,\n IObjectFieldVM,\n IObjectFieldItemVM,\n LayoutNodeVM\n} from \"~/features/formModel/index.js\";\nimport { LayoutNodeRenderer } from \"~/features/formModel/FormView.js\";\nimport { resolveItemTitle } from \"./resolveItemTitle.js\";\n\nexport const isObjectFieldVM = (field: IFieldVM): field is IObjectFieldVM => {\n return field.type === \"object\";\n};\n\n/**\n * Walks a resolved layout sub-tree. Used by dynamic-zone renderers to render\n * a templated object's children via per-template layouts (Phase 8c).\n */\nexport const NestedLayout = observer(({ layout }: { layout: LayoutNodeVM[] }) => {\n return (\n <div className={\"flex flex-col gap-md\"}>\n {layout.map((node, index) => (\n <LayoutNodeRenderer key={index} node={node} />\n ))}\n </div>\n );\n});\n\nexport interface ListItemRendererProps {\n item: IObjectFieldItemVM;\n index: number;\n total: number;\n label?: string;\n itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);\n disabled: boolean;\n}\n\nexport const ListItemRenderer = observer(\n ({ item, index, total, label, itemTitle, disabled }: ListItemRendererProps) => {\n const actions = (\n <>\n <IconButton\n icon={<ArrowDown />}\n onClick={e => {\n e.stopPropagation();\n item.moveDown();\n }}\n variant=\"ghost\"\n disabled={index === total - 1}\n />\n <IconButton\n icon={<ArrowUp />}\n onClick={e => {\n e.stopPropagation();\n item.moveUp();\n }}\n variant=\"ghost\"\n disabled={index === 0}\n />\n <Accordion.Item.Action.Separator />\n <IconButton\n icon={<DeleteIcon />}\n onClick={e => {\n e.stopPropagation();\n item.remove();\n }}\n variant=\"ghost\"\n />\n </>\n );\n\n return (\n <Accordion\n background={\"base\"}\n variant={\"container\"}\n openClosedIndicatorPosition={\"left\"}\n >\n <Accordion.Item\n title={resolveItemTitle(item, index, label, itemTitle)}\n actions={disabled ? null : actions}\n defaultOpen={false}\n >\n <NestedLayout layout={item.layout} />\n </Accordion.Item>\n </Accordion>\n );\n }\n);\n\nexport interface AddItemButtonProps {\n label?: string;\n disabled: boolean;\n onAdd: () => void;\n}\n\nexport const AddItemButton = ({ label, disabled, onAdd }: AddItemButtonProps) => {\n return (\n <div>\n <Button\n text={label || \"Add Item\"}\n variant={\"secondary\"}\n size={\"sm\"}\n onClick={onAdd}\n disabled={disabled}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,14 @@
1
1
  import React from "react";
2
- import type { IFieldVM } from "../../../../features/formModel/index.js";
3
2
  declare module "../../../../features/formModel/abstractions.js" {
4
3
  interface IFieldRendererRegistry {
5
- object: {
4
+ objectAccordionSingle: {
6
5
  fieldType: "object";
7
6
  settings?: {
8
- itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);
7
+ open?: boolean;
9
8
  };
10
9
  };
11
10
  }
12
11
  }
13
- export declare const ObjectRenderer: (({ field }: {
14
- field: IFieldVM;
15
- }) => React.JSX.Element | null) & {
16
- displayName: string;
17
- };
12
+ export declare const ObjectRenderer: React.ComponentType<{
13
+ field: import("../../../../index.js").IFieldVM;
14
+ }>;
@@ -1,23 +1,8 @@
1
1
  import React from "react";
2
- import { observer } from "mobx-react-lite";
3
2
  import { Accordion } from "@webiny/admin-ui";
4
- import { isObjectFieldVM, ChildFields, ListItemRenderer, AddItemButton } from "./ObjectFieldComponents.js";
5
- export const ObjectRenderer = observer(({
6
- field
7
- }) => {
8
- if (!isObjectFieldVM(field)) {
9
- return null;
10
- }
11
- if (field.isList) {
12
- return /*#__PURE__*/React.createElement(ListObjectRenderer, {
13
- field: field
14
- });
15
- }
16
- return /*#__PURE__*/React.createElement(SingleObjectRenderer, {
17
- field: field
18
- });
19
- });
20
- const SingleObjectRenderer = observer(({
3
+ import { createObjectFieldRenderer } from "../../../../features/formModel/createFieldRenderer.js";
4
+ import { NestedLayout } from "./ObjectFieldComponents.js";
5
+ export const ObjectRenderer = createObjectFieldRenderer(({
21
6
  field
22
7
  }) => {
23
8
  return /*#__PURE__*/React.createElement(Accordion, {
@@ -25,39 +10,11 @@ const SingleObjectRenderer = observer(({
25
10
  variant: "container"
26
11
  }, /*#__PURE__*/React.createElement(Accordion.Item, {
27
12
  title: field.label,
28
- defaultOpen: true
29
- }, /*#__PURE__*/React.createElement(ChildFields, {
30
- fields: field.fields
13
+ defaultOpen: true,
14
+ className: "pl-sm"
15
+ }, /*#__PURE__*/React.createElement(NestedLayout, {
16
+ layout: field.layout
31
17
  })));
32
18
  });
33
- const ListObjectRenderer = observer(({
34
- field
35
- }) => {
36
- const label = `${field.label || ""} ${field.items.length ? `(${field.items.length})` : ""}`;
37
- const settings = field.rendererSettings;
38
- return /*#__PURE__*/React.createElement("div", {
39
- className: "flex flex-col gap-sm"
40
- }, /*#__PURE__*/React.createElement(Accordion, {
41
- background: "base",
42
- variant: "container"
43
- }, /*#__PURE__*/React.createElement(Accordion.Item, {
44
- title: label,
45
- defaultOpen: true
46
- }, /*#__PURE__*/React.createElement("div", {
47
- className: "flex flex-col gap-sm"
48
- }, field.items.map((item, index) => /*#__PURE__*/React.createElement(ListItemRenderer, {
49
- key: item.key,
50
- item: item,
51
- index: index,
52
- total: field.items.length,
53
- label: field.label,
54
- itemTitle: settings?.itemTitle,
55
- disabled: field.disabled
56
- }))))), /*#__PURE__*/React.createElement(AddItemButton, {
57
- label: `Add ${field.label || "Item"}`,
58
- disabled: field.disabled,
59
- onAdd: () => field.addItem()
60
- }));
61
- });
62
19
 
63
20
  //# sourceMappingURL=ObjectRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","observer","Accordion","isObjectFieldVM","ChildFields","ListItemRenderer","AddItemButton","ObjectRenderer","field","isList","createElement","ListObjectRenderer","SingleObjectRenderer","background","variant","Item","title","label","defaultOpen","fields","items","length","settings","rendererSettings","className","map","item","index","key","total","itemTitle","disabled","onAdd","addItem"],"sources":["ObjectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport type {\n IFieldVM,\n IObjectFieldVM,\n IFieldRendererRegistry\n} from \"~/features/formModel/index.js\";\nimport {\n isObjectFieldVM,\n ChildFields,\n ListItemRenderer,\n AddItemButton\n} from \"./ObjectFieldComponents.js\";\n\ndeclare module \"../../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n object: {\n fieldType: \"object\";\n settings?: {\n itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);\n };\n };\n }\n}\n\ntype ObjectSettings = NonNullable<IFieldRendererRegistry[\"object\"][\"settings\"]>;\n\nexport const ObjectRenderer = observer(({ field }: { field: IFieldVM }) => {\n if (!isObjectFieldVM(field)) {\n return null;\n }\n\n if (field.isList) {\n return <ListObjectRenderer field={field} />;\n }\n\n return <SingleObjectRenderer field={field} />;\n});\n\nconst SingleObjectRenderer = observer(({ field }: { field: IObjectFieldVM }) => {\n return (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item title={field.label} defaultOpen={true}>\n <ChildFields fields={field.fields} />\n </Accordion.Item>\n </Accordion>\n );\n});\n\nconst ListObjectRenderer = observer(({ field }: { field: IObjectFieldVM }) => {\n const label = `${field.label || \"\"} ${field.items.length ? `(${field.items.length})` : \"\"}`;\n const settings = field.rendererSettings as ObjectSettings | undefined;\n\n return (\n <div className={\"flex flex-col gap-sm\"}>\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item title={label} defaultOpen={true}>\n <div className={\"flex flex-col gap-sm\"}>\n {field.items.map((item, index) => (\n <ListItemRenderer\n key={item.key}\n item={item}\n index={index}\n total={field.items.length}\n label={field.label}\n itemTitle={settings?.itemTitle}\n disabled={field.disabled}\n />\n ))}\n </div>\n </Accordion.Item>\n </Accordion>\n <AddItemButton\n label={`Add ${field.label || \"Item\"}`}\n disabled={field.disabled}\n onAdd={() => field.addItem()}\n />\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,SAAS,QAAQ,kBAAkB;AAM5C,SACIC,eAAe,EACfC,WAAW,EACXC,gBAAgB,EAChBC,aAAa;AAgBjB,OAAO,MAAMC,cAAc,GAAGN,QAAQ,CAAC,CAAC;EAAEO;AAA2B,CAAC,KAAK;EACvE,IAAI,CAACL,eAAe,CAACK,KAAK,CAAC,EAAE;IACzB,OAAO,IAAI;EACf;EAEA,IAAIA,KAAK,CAACC,MAAM,EAAE;IACd,oBAAOT,KAAA,CAAAU,aAAA,CAACC,kBAAkB;MAACH,KAAK,EAAEA;IAAM,CAAE,CAAC;EAC/C;EAEA,oBAAOR,KAAA,CAAAU,aAAA,CAACE,oBAAoB;IAACJ,KAAK,EAAEA;EAAM,CAAE,CAAC;AACjD,CAAC,CAAC;AAEF,MAAMI,oBAAoB,GAAGX,QAAQ,CAAC,CAAC;EAAEO;AAAiC,CAAC,KAAK;EAC5E,oBACIR,KAAA,CAAAU,aAAA,CAACR,SAAS;IAACW,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChDd,KAAA,CAAAU,aAAA,CAACR,SAAS,CAACa,IAAI;IAACC,KAAK,EAAER,KAAK,CAACS,KAAM;IAACC,WAAW,EAAE;EAAK,gBAClDlB,KAAA,CAAAU,aAAA,CAACN,WAAW;IAACe,MAAM,EAAEX,KAAK,CAACW;EAAO,CAAE,CACxB,CACT,CAAC;AAEpB,CAAC,CAAC;AAEF,MAAMR,kBAAkB,GAAGV,QAAQ,CAAC,CAAC;EAAEO;AAAiC,CAAC,KAAK;EAC1E,MAAMS,KAAK,GAAG,GAAGT,KAAK,CAACS,KAAK,IAAI,EAAE,IAAIT,KAAK,CAACY,KAAK,CAACC,MAAM,GAAG,IAAIb,KAAK,CAACY,KAAK,CAACC,MAAM,GAAG,GAAG,EAAE,EAAE;EAC3F,MAAMC,QAAQ,GAAGd,KAAK,CAACe,gBAA8C;EAErE,oBACIvB,KAAA,CAAAU,aAAA;IAAKc,SAAS,EAAE;EAAuB,gBACnCxB,KAAA,CAAAU,aAAA,CAACR,SAAS;IAACW,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChDd,KAAA,CAAAU,aAAA,CAACR,SAAS,CAACa,IAAI;IAACC,KAAK,EAAEC,KAAM;IAACC,WAAW,EAAE;EAAK,gBAC5ClB,KAAA,CAAAU,aAAA;IAAKc,SAAS,EAAE;EAAuB,GAClChB,KAAK,CAACY,KAAK,CAACK,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACzB3B,KAAA,CAAAU,aAAA,CAACL,gBAAgB;IACbuB,GAAG,EAAEF,IAAI,CAACE,GAAI;IACdF,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IACbE,KAAK,EAAErB,KAAK,CAACY,KAAK,CAACC,MAAO;IAC1BJ,KAAK,EAAET,KAAK,CAACS,KAAM;IACnBa,SAAS,EAAER,QAAQ,EAAEQ,SAAU;IAC/BC,QAAQ,EAAEvB,KAAK,CAACuB;EAAS,CAC5B,CACJ,CACA,CACO,CACT,CAAC,eACZ/B,KAAA,CAAAU,aAAA,CAACJ,aAAa;IACVW,KAAK,EAAE,OAAOT,KAAK,CAACS,KAAK,IAAI,MAAM,EAAG;IACtCc,QAAQ,EAAEvB,KAAK,CAACuB,QAAS;IACzBC,KAAK,EAAEA,CAAA,KAAMxB,KAAK,CAACyB,OAAO,CAAC;EAAE,CAChC,CACA,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Accordion","createObjectFieldRenderer","NestedLayout","ObjectRenderer","field","createElement","background","variant","Item","title","label","defaultOpen","className","layout"],"sources":["ObjectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport { createObjectFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { NestedLayout } from \"./ObjectFieldComponents.js\";\n\ndeclare module \"../../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n objectAccordionSingle: {\n fieldType: \"object\";\n settings?: {\n open?: boolean;\n };\n };\n }\n}\n\nexport const ObjectRenderer = createObjectFieldRenderer<\"objectAccordionSingle\">(({ field }) => {\n return (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item title={field.label} defaultOpen={true} className={\"pl-sm\"}>\n <NestedLayout layout={field.layout} />\n </Accordion.Item>\n </Accordion>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,yBAAyB;AAClC,SAASC,YAAY;AAarB,OAAO,MAAMC,cAAc,GAAGF,yBAAyB,CAA0B,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC5F,oBACIL,KAAA,CAAAM,aAAA,CAACL,SAAS;IAACM,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChDR,KAAA,CAAAM,aAAA,CAACL,SAAS,CAACQ,IAAI;IAACC,KAAK,EAAEL,KAAK,CAACM,KAAM;IAACC,WAAW,EAAE,IAAK;IAACC,SAAS,EAAE;EAAQ,gBACtEb,KAAA,CAAAM,aAAA,CAACH,YAAY;IAACW,MAAM,EAAET,KAAK,CAACS;EAAO,CAAE,CACzB,CACT,CAAC;AAEpB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { IObjectFieldVM } from "../../../../features/formModel/index.js";
3
+ interface SingleValueDynamicZoneProps {
4
+ field: IObjectFieldVM;
5
+ showContainer?: boolean;
6
+ }
7
+ export declare const SingleValueDynamicZone: (({ field, showContainer }: SingleValueDynamicZoneProps) => React.JSX.Element) & {
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -0,0 +1,64 @@
1
+ import React from "react";
2
+ import { observer } from "mobx-react-lite";
3
+ import { Accordion, Tooltip } from "@webiny/admin-ui";
4
+ import { ReactComponent as DeleteIcon } from "@webiny/icons/delete.svg";
5
+ import { ReactComponent as HorizontalRuleIcon } from "@webiny/icons/horizontal_rule.svg";
6
+ import { useConfirmationDialog } from "../../../../hooks/useConfirmationDialog.js";
7
+ import { NestedLayout } from "./ObjectFieldComponents.js";
8
+ import { AddTemplateButton } from "./TemplatePicker.js";
9
+ export const SingleValueDynamicZone = observer(({
10
+ field,
11
+ showContainer = true
12
+ }) => {
13
+ const activeTemplate = field.activeTemplateId !== null ? field.availableTemplates.find(t => t.id === field.activeTemplateId) : undefined;
14
+ const {
15
+ showConfirmation
16
+ } = useConfirmationDialog({
17
+ title: "Remove template",
18
+ message: "Are you sure you want to remove this item? This action is not reversible.",
19
+ acceptLabel: "Yes, I'm sure!",
20
+ cancelLabel: "No, leave it."
21
+ });
22
+ const onClear = () => {
23
+ showConfirmation(() => {
24
+ field.onChange(null);
25
+ });
26
+ };
27
+ const content = /*#__PURE__*/React.createElement(React.Fragment, null, activeTemplate ? /*#__PURE__*/React.createElement(Accordion, {
28
+ background: "base",
29
+ variant: "container"
30
+ }, /*#__PURE__*/React.createElement(Accordion.Item, {
31
+ title: activeTemplate.label,
32
+ actions: field.disabled ? null : /*#__PURE__*/React.createElement(Accordion.Item.Action, {
33
+ icon: /*#__PURE__*/React.createElement(Tooltip, {
34
+ trigger: /*#__PURE__*/React.createElement(DeleteIcon, null),
35
+ content: "Delete"
36
+ }),
37
+ onClick: onClear
38
+ })
39
+ }, /*#__PURE__*/React.createElement(NestedLayout, {
40
+ layout: field.layout
41
+ }))) : null, !activeTemplate && !field.disabled && /*#__PURE__*/React.createElement(AddTemplateButton, {
42
+ templates: field.availableTemplates,
43
+ onSelect: template => field.setTemplate(template.id)
44
+ }));
45
+ if (!showContainer) {
46
+ return /*#__PURE__*/React.createElement("div", {
47
+ className: "flex flex-col gap-lg"
48
+ }, content);
49
+ }
50
+ return /*#__PURE__*/React.createElement(Accordion, {
51
+ background: "base",
52
+ variant: "container"
53
+ }, /*#__PURE__*/React.createElement(Accordion.Item, {
54
+ icon: /*#__PURE__*/React.createElement(Accordion.Item.Icon, {
55
+ color: "accent",
56
+ label: "Dynamic Zone",
57
+ icon: /*#__PURE__*/React.createElement(HorizontalRuleIcon, null)
58
+ }),
59
+ title: field.label,
60
+ defaultOpen: true
61
+ }, content));
62
+ });
63
+
64
+ //# sourceMappingURL=SingleValueDynamicZone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","observer","Accordion","Tooltip","ReactComponent","DeleteIcon","HorizontalRuleIcon","useConfirmationDialog","NestedLayout","AddTemplateButton","SingleValueDynamicZone","field","showContainer","activeTemplate","activeTemplateId","availableTemplates","find","t","id","undefined","showConfirmation","title","message","acceptLabel","cancelLabel","onClear","onChange","content","createElement","Fragment","background","variant","Item","label","actions","disabled","Action","icon","trigger","onClick","layout","templates","onSelect","template","setTemplate","className","Icon","color","defaultOpen"],"sources":["SingleValueDynamicZone.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Accordion, Tooltip } from \"@webiny/admin-ui\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as HorizontalRuleIcon } from \"@webiny/icons/horizontal_rule.svg\";\nimport type { IObjectFieldVM } from \"~/features/formModel/index.js\";\nimport { useConfirmationDialog } from \"~/hooks/useConfirmationDialog.js\";\nimport { NestedLayout } from \"./ObjectFieldComponents.js\";\nimport { AddTemplateButton } from \"./TemplatePicker.js\";\n\ninterface SingleValueDynamicZoneProps {\n field: IObjectFieldVM;\n showContainer?: boolean;\n}\n\nexport const SingleValueDynamicZone = observer(\n ({ field, showContainer = true }: SingleValueDynamicZoneProps) => {\n const activeTemplate =\n field.activeTemplateId !== null\n ? field.availableTemplates.find(t => t.id === field.activeTemplateId)\n : undefined;\n\n const { showConfirmation } = useConfirmationDialog({\n title: \"Remove template\",\n message: \"Are you sure you want to remove this item? This action is not reversible.\",\n acceptLabel: \"Yes, I'm sure!\",\n cancelLabel: \"No, leave it.\"\n });\n\n const onClear = () => {\n showConfirmation(() => {\n field.onChange(null);\n });\n };\n\n const content = (\n <>\n {activeTemplate ? (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item\n title={activeTemplate.label}\n actions={\n field.disabled ? null : (\n <Accordion.Item.Action\n icon={\n <Tooltip trigger={<DeleteIcon />} content={\"Delete\"} />\n }\n onClick={onClear}\n />\n )\n }\n >\n <NestedLayout layout={field.layout} />\n </Accordion.Item>\n </Accordion>\n ) : null}\n {!activeTemplate && !field.disabled && (\n <AddTemplateButton\n templates={field.availableTemplates}\n onSelect={template => field.setTemplate(template.id)}\n />\n )}\n </>\n );\n\n if (!showContainer) {\n return <div className={\"flex flex-col gap-lg\"}>{content}</div>;\n }\n\n return (\n <Accordion background={\"base\"} variant={\"container\"}>\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n color={\"accent\"}\n label={\"Dynamic Zone\"}\n icon={<HorizontalRuleIcon />}\n />\n }\n title={field.label}\n defaultOpen={true}\n >\n {content}\n </Accordion.Item>\n </Accordion>\n );\n }\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,SAAS,EAAEC,OAAO,QAAQ,kBAAkB;AACrD,SAASC,cAAc,IAAIC,UAAU,QAAQ,0BAA0B;AACvE,SAASD,cAAc,IAAIE,kBAAkB,QAAQ,mCAAmC;AAExF,SAASC,qBAAqB;AAC9B,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAO1B,OAAO,MAAMC,sBAAsB,GAAGT,QAAQ,CAC1C,CAAC;EAAEU,KAAK;EAAEC,aAAa,GAAG;AAAkC,CAAC,KAAK;EAC9D,MAAMC,cAAc,GAChBF,KAAK,CAACG,gBAAgB,KAAK,IAAI,GACzBH,KAAK,CAACI,kBAAkB,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKP,KAAK,CAACG,gBAAgB,CAAC,GACnEK,SAAS;EAEnB,MAAM;IAAEC;EAAiB,CAAC,GAAGb,qBAAqB,CAAC;IAC/Cc,KAAK,EAAE,iBAAiB;IACxBC,OAAO,EAAE,2EAA2E;IACpFC,WAAW,EAAE,gBAAgB;IAC7BC,WAAW,EAAE;EACjB,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGA,CAAA,KAAM;IAClBL,gBAAgB,CAAC,MAAM;MACnBT,KAAK,CAACe,QAAQ,CAAC,IAAI,CAAC;IACxB,CAAC,CAAC;EACN,CAAC;EAED,MAAMC,OAAO,gBACT3B,KAAA,CAAA4B,aAAA,CAAA5B,KAAA,CAAA6B,QAAA,QACKhB,cAAc,gBACXb,KAAA,CAAA4B,aAAA,CAAC1B,SAAS;IAAC4B,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChD/B,KAAA,CAAA4B,aAAA,CAAC1B,SAAS,CAAC8B,IAAI;IACXX,KAAK,EAAER,cAAc,CAACoB,KAAM;IAC5BC,OAAO,EACHvB,KAAK,CAACwB,QAAQ,GAAG,IAAI,gBACjBnC,KAAA,CAAA4B,aAAA,CAAC1B,SAAS,CAAC8B,IAAI,CAACI,MAAM;MAClBC,IAAI,eACArC,KAAA,CAAA4B,aAAA,CAACzB,OAAO;QAACmC,OAAO,eAAEtC,KAAA,CAAA4B,aAAA,CAACvB,UAAU,MAAE,CAAE;QAACsB,OAAO,EAAE;MAAS,CAAE,CACzD;MACDY,OAAO,EAAEd;IAAQ,CACpB;EAER,gBAEDzB,KAAA,CAAA4B,aAAA,CAACpB,YAAY;IAACgC,MAAM,EAAE7B,KAAK,CAAC6B;EAAO,CAAE,CACzB,CACT,CAAC,GACZ,IAAI,EACP,CAAC3B,cAAc,IAAI,CAACF,KAAK,CAACwB,QAAQ,iBAC/BnC,KAAA,CAAA4B,aAAA,CAACnB,iBAAiB;IACdgC,SAAS,EAAE9B,KAAK,CAACI,kBAAmB;IACpC2B,QAAQ,EAAEC,QAAQ,IAAIhC,KAAK,CAACiC,WAAW,CAACD,QAAQ,CAACzB,EAAE;EAAE,CACxD,CAEP,CACL;EAED,IAAI,CAACN,aAAa,EAAE;IAChB,oBAAOZ,KAAA,CAAA4B,aAAA;MAAKiB,SAAS,EAAE;IAAuB,GAAElB,OAAa,CAAC;EAClE;EAEA,oBACI3B,KAAA,CAAA4B,aAAA,CAAC1B,SAAS;IAAC4B,UAAU,EAAE,MAAO;IAACC,OAAO,EAAE;EAAY,gBAChD/B,KAAA,CAAA4B,aAAA,CAAC1B,SAAS,CAAC8B,IAAI;IACXK,IAAI,eACArC,KAAA,CAAA4B,aAAA,CAAC1B,SAAS,CAAC8B,IAAI,CAACc,IAAI;MAChBC,KAAK,EAAE,QAAS;MAChBd,KAAK,EAAE,cAAe;MACtBI,IAAI,eAAErC,KAAA,CAAA4B,aAAA,CAACtB,kBAAkB,MAAE;IAAE,CAChC,CACJ;IACDe,KAAK,EAAEV,KAAK,CAACsB,KAAM;IACnBe,WAAW,EAAE;EAAK,GAEjBrB,OACW,CACT,CAAC;AAEpB,CACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import type { ITemplateVM } from "../../../../features/formModel/index.js";
3
+ export interface AddTemplateButtonProps {
4
+ templates: ITemplateVM[];
5
+ onSelect: (template: ITemplateVM) => void;
6
+ label?: string;
7
+ size?: "sm" | "md" | "lg";
8
+ variant?: "primary" | "secondary" | "tertiary";
9
+ }
10
+ export declare const AddTemplateButton: ({ templates, onSelect, label, size, variant }: AddTemplateButtonProps) => React.JSX.Element;
@@ -0,0 +1,85 @@
1
+ import React, { useState } from "react";
2
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
3
+ import { Button, Dialog, Text } from "@webiny/admin-ui";
4
+ import { ReactComponent as AddIcon } from "@webiny/icons/add.svg";
5
+ import { ReactComponent as PlusIcon } from "@webiny/icons/add_circle_outline.svg";
6
+ const normalizeIcon = icon => {
7
+ if (!icon) {
8
+ return undefined;
9
+ }
10
+ return icon.name.split("/");
11
+ };
12
+ export const AddTemplateButton = ({
13
+ templates,
14
+ onSelect,
15
+ label = "Add a template",
16
+ size = "sm",
17
+ variant = "tertiary"
18
+ }) => {
19
+ return /*#__PURE__*/React.createElement("div", {
20
+ className: "flex justify-between items-center"
21
+ }, /*#__PURE__*/React.createElement(Dialog, {
22
+ size: "lg",
23
+ className: "w-[800px]",
24
+ trigger: /*#__PURE__*/React.createElement(Button, {
25
+ size: size,
26
+ variant: variant,
27
+ text: label,
28
+ icon: /*#__PURE__*/React.createElement(AddIcon, null)
29
+ }),
30
+ title: "Insert a template",
31
+ info: /*#__PURE__*/React.createElement(React.Fragment, null)
32
+ }, /*#__PURE__*/React.createElement(TemplateGallery, {
33
+ templates: templates,
34
+ onSelect: onSelect
35
+ })));
36
+ };
37
+ const TemplateGallery = ({
38
+ templates,
39
+ onSelect
40
+ }) => {
41
+ return /*#__PURE__*/React.createElement("div", {
42
+ className: "gap-md flex flex-wrap p-xs"
43
+ }, templates.map(template => /*#__PURE__*/React.createElement(TemplateCard, {
44
+ key: template.id,
45
+ template: template,
46
+ onSelect: onSelect
47
+ })));
48
+ };
49
+ const TemplateCard = ({
50
+ template,
51
+ onSelect
52
+ }) => {
53
+ const [isHovered, setIsHovered] = useState(false);
54
+ const icon = normalizeIcon(template.icon);
55
+ return /*#__PURE__*/React.createElement("div", {
56
+ onMouseEnter: () => setIsHovered(true),
57
+ onMouseLeave: () => setIsHovered(false),
58
+ className: "flex flex-col justify-between bg-neutral-base overflow-hidden rounded-lg w-[173px] relative shadow-sm"
59
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
60
+ className: "flex items-center justify-center py-xxl w-full bg-neutral-dimmed"
61
+ }, icon ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
62
+ className: "text-neutral-xstrong",
63
+ icon: icon,
64
+ style: {
65
+ width: 40,
66
+ height: 40
67
+ }
68
+ }) : null), /*#__PURE__*/React.createElement("div", {
69
+ className: "py-sm-extra px-md"
70
+ }, /*#__PURE__*/React.createElement(Text, {
71
+ size: "md",
72
+ className: "mb-xs text-neutral-primary font-semibold"
73
+ }, template.label))), isHovered && /*#__PURE__*/React.createElement(Dialog.Close, {
74
+ asChild: true
75
+ }, /*#__PURE__*/React.createElement("div", {
76
+ className: "absolute inset-0 flex items-center justify-center bg-white/80 cursor-pointer",
77
+ onClick: () => onSelect(template)
78
+ }, /*#__PURE__*/React.createElement(Button, {
79
+ size: "lg",
80
+ variant: "primary",
81
+ icon: /*#__PURE__*/React.createElement(PlusIcon, null)
82
+ }, "Insert"))));
83
+ };
84
+
85
+ //# sourceMappingURL=TemplatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","FontAwesomeIcon","Button","Dialog","Text","ReactComponent","AddIcon","PlusIcon","normalizeIcon","icon","undefined","name","split","AddTemplateButton","templates","onSelect","label","size","variant","createElement","className","trigger","text","title","info","Fragment","TemplateGallery","map","template","TemplateCard","key","id","isHovered","setIsHovered","onMouseEnter","onMouseLeave","style","width","height","Close","asChild","onClick"],"sources":["TemplatePicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { Button, Dialog, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as PlusIcon } from \"@webiny/icons/add_circle_outline.svg\";\nimport type { ITemplateIcon, ITemplateVM } from \"~/features/formModel/index.js\";\n\nconst normalizeIcon = (icon: ITemplateIcon | undefined): IconProp | undefined => {\n if (!icon) {\n return undefined;\n }\n return icon.name.split(\"/\") as IconProp;\n};\n\nexport interface AddTemplateButtonProps {\n templates: ITemplateVM[];\n onSelect: (template: ITemplateVM) => void;\n label?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nexport const AddTemplateButton = ({\n templates,\n onSelect,\n label = \"Add a template\",\n size = \"sm\",\n variant = \"tertiary\"\n}: AddTemplateButtonProps) => {\n return (\n <div className={\"flex justify-between items-center\"}>\n <Dialog\n size={\"lg\"}\n className={\"w-[800px]\"}\n trigger={<Button size={size} variant={variant} text={label} icon={<AddIcon />} />}\n title={\"Insert a template\"}\n info={<></>}\n >\n <TemplateGallery templates={templates} onSelect={onSelect} />\n </Dialog>\n </div>\n );\n};\n\ninterface TemplateGalleryProps {\n templates: ITemplateVM[];\n onSelect: (template: ITemplateVM) => void;\n}\n\nconst TemplateGallery = ({ templates, onSelect }: TemplateGalleryProps) => {\n return (\n <div className={\"gap-md flex flex-wrap p-xs\"}>\n {templates.map(template => (\n <TemplateCard key={template.id} template={template} onSelect={onSelect} />\n ))}\n </div>\n );\n};\n\ninterface TemplateCardProps {\n template: ITemplateVM;\n onSelect: (template: ITemplateVM) => void;\n}\n\nconst TemplateCard = ({ template, onSelect }: TemplateCardProps) => {\n const [isHovered, setIsHovered] = useState(false);\n const icon = normalizeIcon(template.icon);\n\n return (\n <div\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n className={\n \"flex flex-col justify-between bg-neutral-base overflow-hidden rounded-lg w-[173px] relative shadow-sm\"\n }\n >\n <div>\n <div className={\"flex items-center justify-center py-xxl w-full bg-neutral-dimmed\"}>\n {icon ? (\n <FontAwesomeIcon\n className={\"text-neutral-xstrong\"}\n icon={icon}\n style={{ width: 40, height: 40 }}\n />\n ) : null}\n </div>\n <div className={\"py-sm-extra px-md\"}>\n <Text size={\"md\"} className={\"mb-xs text-neutral-primary font-semibold\"}>\n {template.label}\n </Text>\n </div>\n </div>\n\n {isHovered && (\n <Dialog.Close asChild>\n <div\n className={\n \"absolute inset-0 flex items-center justify-center bg-white/80 cursor-pointer\"\n }\n onClick={() => onSelect(template)}\n >\n <Button size={\"lg\"} variant={\"primary\"} icon={<PlusIcon />}>\n Insert\n </Button>\n </div>\n </Dialog.Close>\n )}\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import type { IFieldVM } from "../../../features/formModel/index.js";
3
2
  declare module "../../../features/formModel/abstractions.js" {
4
3
  interface IFieldRendererRegistry {
5
4
  passthrough: {
@@ -8,8 +7,6 @@ declare module "../../../features/formModel/abstractions.js" {
8
7
  };
9
8
  }
10
9
  }
11
- export declare const PassthroughRenderer: (({ field }: {
12
- field: IFieldVM;
13
- }) => React.JSX.Element | null) & {
14
- displayName: string;
15
- };
10
+ export declare const PassthroughRenderer: React.ComponentType<{
11
+ field: import("../../..").IFieldVM;
12
+ }>;
@@ -1,29 +1,15 @@
1
1
  import React from "react";
2
- import { observer } from "mobx-react-lite";
3
- import { useFormViewRenderers } from "../../../features/formModel/FormView.js";
4
- const isObjectFieldVM = field => {
5
- return field.type === "object";
6
- };
7
- export const PassthroughRenderer = observer(({
2
+ import { createObjectFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
3
+ import { LayoutNodeRenderer } from "../../../features/formModel/FormView.js";
4
+ export const PassthroughRenderer = createObjectFieldRenderer(({
8
5
  field
9
6
  }) => {
10
- const {
11
- fieldRenderers
12
- } = useFormViewRenderers();
13
- if (!isObjectFieldVM(field)) {
14
- return null;
15
- }
16
- const children = field.isList ? [] : field.fields;
17
- return /*#__PURE__*/React.createElement(React.Fragment, null, children.map(childField => {
18
- const Renderer = childField.renderer ? fieldRenderers[childField.renderer] : undefined;
19
- if (!Renderer) {
20
- return null;
21
- }
22
- return /*#__PURE__*/React.createElement(Renderer, {
23
- key: childField.name,
24
- field: childField
25
- });
26
- }));
7
+ return /*#__PURE__*/React.createElement("div", {
8
+ className: "flex flex-col gap-4"
9
+ }, field.layout.map((node, index) => /*#__PURE__*/React.createElement(LayoutNodeRenderer, {
10
+ key: index,
11
+ node: node
12
+ })));
27
13
  });
28
14
 
29
15
  //# sourceMappingURL=PassthroughRenderer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","observer","useFormViewRenderers","isObjectFieldVM","field","type","PassthroughRenderer","fieldRenderers","children","isList","fields","createElement","Fragment","map","childField","Renderer","renderer","undefined","key","name"],"sources":["PassthroughRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport type { IFieldVM, IObjectFieldVM } from \"~/features/formModel/index.js\";\nimport { useFormViewRenderers } from \"~/features/formModel/FormView.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n passthrough: { fieldType: string; settings: undefined };\n }\n}\n\nconst isObjectFieldVM = (field: IFieldVM): field is IObjectFieldVM => {\n return field.type === \"object\";\n};\n\nexport const PassthroughRenderer = observer(({ field }: { field: IFieldVM }) => {\n const { fieldRenderers } = useFormViewRenderers();\n\n if (!isObjectFieldVM(field)) {\n return null;\n }\n\n const children = field.isList ? [] : field.fields;\n\n return (\n <>\n {children.map(childField => {\n const Renderer = childField.renderer\n ? fieldRenderers[childField.renderer]\n : undefined;\n\n if (!Renderer) {\n return null;\n }\n\n return <Renderer key={childField.name} field={childField} />;\n })}\n </>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAE1C,SAASC,oBAAoB;AAQ7B,MAAMC,eAAe,GAAIC,KAAe,IAA8B;EAClE,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ;AAClC,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGL,QAAQ,CAAC,CAAC;EAAEG;AAA2B,CAAC,KAAK;EAC5E,MAAM;IAAEG;EAAe,CAAC,GAAGL,oBAAoB,CAAC,CAAC;EAEjD,IAAI,CAACC,eAAe,CAACC,KAAK,CAAC,EAAE;IACzB,OAAO,IAAI;EACf;EAEA,MAAMI,QAAQ,GAAGJ,KAAK,CAACK,MAAM,GAAG,EAAE,GAAGL,KAAK,CAACM,MAAM;EAEjD,oBACIV,KAAA,CAAAW,aAAA,CAAAX,KAAA,CAAAY,QAAA,QACKJ,QAAQ,CAACK,GAAG,CAACC,UAAU,IAAI;IACxB,MAAMC,QAAQ,GAAGD,UAAU,CAACE,QAAQ,GAC9BT,cAAc,CAACO,UAAU,CAACE,QAAQ,CAAC,GACnCC,SAAS;IAEf,IAAI,CAACF,QAAQ,EAAE;MACX,OAAO,IAAI;IACf;IAEA,oBAAOf,KAAA,CAAAW,aAAA,CAACI,QAAQ;MAACG,GAAG,EAAEJ,UAAU,CAACK,IAAK;MAACf,KAAK,EAAEU;IAAW,CAAE,CAAC;EAChE,CAAC,CACH,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createObjectFieldRenderer","LayoutNodeRenderer","PassthroughRenderer","field","createElement","className","layout","map","node","index","key"],"sources":["PassthroughRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createObjectFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { LayoutNodeRenderer } from \"~/features/formModel/FormView.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n passthrough: { fieldType: string; settings: undefined };\n }\n}\n\nexport const PassthroughRenderer = createObjectFieldRenderer(({ field }) => {\n return (\n <div className=\"flex flex-col gap-4\">\n {field.layout.map((node, index) => (\n <LayoutNodeRenderer key={index} node={node} />\n ))}\n </div>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAQ3B,OAAO,MAAMC,mBAAmB,GAAGF,yBAAyB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EACxE,oBACIJ,KAAA,CAAAK,aAAA;IAAKC,SAAS,EAAC;EAAqB,GAC/BF,KAAK,CAACG,MAAM,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBAC1BV,KAAA,CAAAK,aAAA,CAACH,kBAAkB;IAACS,GAAG,EAAED,KAAM;IAACD,IAAI,EAAEA;EAAK,CAAE,CAChD,CACA,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ declare module "../../../features/formModel/abstractions.js" {
3
+ interface IFieldRendererRegistry {
4
+ radioButtons: {
5
+ fieldType: "text" | "number";
6
+ options: true;
7
+ settings: undefined;
8
+ };
9
+ }
10
+ }
11
+ export declare const RadioButtonsRenderer: React.ComponentType<{
12
+ field: import("~/features/formModel/index.js").IFieldVM;
13
+ }>;
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
3
+ import { RadioGroup } from "@webiny/admin-ui";
4
+ export const RadioButtonsRenderer = createFieldRenderer(({
5
+ field
6
+ }) => {
7
+ const options = field.options ?? [];
8
+ return /*#__PURE__*/React.createElement(RadioGroup, {
9
+ label: field.label,
10
+ description: field.description,
11
+ note: field.note,
12
+ required: field.required,
13
+ disabled: field.disabled,
14
+ validation: field.validation,
15
+ items: options.map(opt => ({
16
+ label: opt.label,
17
+ value: String(opt.value)
18
+ })),
19
+ value: field.value !== undefined ? String(field.value) : undefined,
20
+ onChange: value => {
21
+ field.onChange(value);
22
+ field.onBlur();
23
+ }
24
+ });
25
+ });
26
+
27
+ //# sourceMappingURL=RadioButtonsRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createFieldRenderer","RadioGroup","RadioButtonsRenderer","field","options","createElement","label","description","note","required","disabled","validation","items","map","opt","value","String","undefined","onChange","onBlur"],"sources":["RadioButtonsRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { RadioGroup } from \"@webiny/admin-ui\";\nimport type { IValueOption } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n radioButtons: { fieldType: \"text\" | \"number\"; options: true; settings: undefined };\n }\n}\n\nexport const RadioButtonsRenderer = createFieldRenderer(({ field }) => {\n const options: IValueOption[] = field.options ?? [];\n\n return (\n <RadioGroup\n label={field.label}\n description={field.description}\n note={field.note}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n items={options.map(opt => ({\n label: opt.label,\n value: String(opt.value)\n }))}\n value={field.value !== undefined ? String(field.value) : undefined}\n onChange={value => {\n field.onChange(value);\n field.onBlur();\n }}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,UAAU,QAAQ,kBAAkB;AAS7C,OAAO,MAAMC,oBAAoB,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EACnE,MAAMC,OAAuB,GAAGD,KAAK,CAACC,OAAO,IAAI,EAAE;EAEnD,oBACIL,KAAA,CAAAM,aAAA,CAACJ,UAAU;IACPK,KAAK,EAAEH,KAAK,CAACG,KAAM;IACnBC,WAAW,EAAEJ,KAAK,CAACI,WAAY;IAC/BC,IAAI,EAAEL,KAAK,CAACK,IAAK;IACjBC,QAAQ,EAAEN,KAAK,CAACM,QAAS;IACzBC,QAAQ,EAAEP,KAAK,CAACO,QAAS;IACzBC,UAAU,EAAER,KAAK,CAACQ,UAAW;IAC7BC,KAAK,EAAER,OAAO,CAACS,GAAG,CAACC,GAAG,KAAK;MACvBR,KAAK,EAAEQ,GAAG,CAACR,KAAK;MAChBS,KAAK,EAAEC,MAAM,CAACF,GAAG,CAACC,KAAK;IAC3B,CAAC,CAAC,CAAE;IACJA,KAAK,EAAEZ,KAAK,CAACY,KAAK,KAAKE,SAAS,GAAGD,MAAM,CAACb,KAAK,CAACY,KAAK,CAAC,GAAGE,SAAU;IACnEC,QAAQ,EAAEH,KAAK,IAAI;MACfZ,KAAK,CAACe,QAAQ,CAACH,KAAK,CAAC;MACrBZ,KAAK,CAACgB,MAAM,CAAC,CAAC;IAClB;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -1,15 +1,13 @@
1
1
  import React from "react";
2
- import type { IFieldVM } from "../../../features/formModel/index.js";
3
2
  declare module "../../../features/formModel/abstractions.js" {
4
3
  interface IFieldRendererRegistry {
5
- select: {
6
- fieldType: "select";
4
+ dropdown: {
5
+ fieldType: "text" | "number";
6
+ options: true;
7
7
  settings: undefined;
8
8
  };
9
9
  }
10
10
  }
11
- export declare const SelectRenderer: (({ field }: {
12
- field: IFieldVM;
13
- }) => React.JSX.Element) & {
14
- displayName: string;
15
- };
11
+ export declare const SelectRenderer: React.ComponentType<{
12
+ field: import("~/features/formModel/index.js").IFieldVM;
13
+ }>;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { observer } from "mobx-react-lite";
2
+ import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
3
3
  import { Select } from "@webiny/admin-ui";
4
- export const SelectRenderer = observer(({
4
+ export const SelectRenderer = createFieldRenderer(({
5
5
  field
6
6
  }) => {
7
7
  const options = field.options ?? [];
@@ -10,14 +10,17 @@ export const SelectRenderer = observer(({
10
10
  placeholder: field.placeholder,
11
11
  description: field.description,
12
12
  note: field.note,
13
- value: field.value ?? "",
14
- onChange: value => field.onChange(value),
13
+ value: field.value != null ? String(field.value) : "",
14
+ onChange: value => {
15
+ field.onChange(value);
16
+ field.onBlur();
17
+ },
15
18
  required: field.required,
16
19
  disabled: field.disabled,
17
20
  validation: field.validation,
18
21
  options: options.map(opt => ({
19
22
  label: opt.label,
20
- value: opt.value,
23
+ value: String(opt.value),
21
24
  disabled: opt.disabled
22
25
  }))
23
26
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","observer","Select","SelectRenderer","field","options","createElement","label","placeholder","description","note","value","onChange","required","disabled","validation","map","opt"],"sources":["SelectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Select } from \"@webiny/admin-ui\";\nimport type { IFieldVM } from \"~/features/formModel/index.js\";\nimport type { IValueOption } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n select: { fieldType: \"select\"; settings: undefined };\n }\n}\n\nexport const SelectRenderer = observer(({ field }: { field: IFieldVM }) => {\n const options: IValueOption[] = field.options ?? [];\n\n return (\n <Select\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n note={field.note}\n value={(field.value as string) ?? \"\"}\n onChange={value => field.onChange(value)}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n options={options.map(opt => ({\n label: opt.label,\n value: opt.value,\n disabled: opt.disabled\n }))}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,MAAM,QAAQ,kBAAkB;AAUzC,OAAO,MAAMC,cAAc,GAAGF,QAAQ,CAAC,CAAC;EAAEG;AAA2B,CAAC,KAAK;EACvE,MAAMC,OAAuB,GAAGD,KAAK,CAACC,OAAO,IAAI,EAAE;EAEnD,oBACIL,KAAA,CAAAM,aAAA,CAACJ,MAAM;IACHK,KAAK,EAAEH,KAAK,CAACG,KAAM;IACnBC,WAAW,EAAEJ,KAAK,CAACI,WAAY;IAC/BC,WAAW,EAAEL,KAAK,CAACK,WAAY;IAC/BC,IAAI,EAAEN,KAAK,CAACM,IAAK;IACjBC,KAAK,EAAGP,KAAK,CAACO,KAAK,IAAe,EAAG;IACrCC,QAAQ,EAAED,KAAK,IAAIP,KAAK,CAACQ,QAAQ,CAACD,KAAK,CAAE;IACzCE,QAAQ,EAAET,KAAK,CAACS,QAAS;IACzBC,QAAQ,EAAEV,KAAK,CAACU,QAAS;IACzBC,UAAU,EAAEX,KAAK,CAACW,UAAW;IAC7BV,OAAO,EAAEA,OAAO,CAACW,GAAG,CAACC,GAAG,KAAK;MACzBV,KAAK,EAAEU,GAAG,CAACV,KAAK;MAChBI,KAAK,EAAEM,GAAG,CAACN,KAAK;MAChBG,QAAQ,EAAEG,GAAG,CAACH;IAClB,CAAC,CAAC;EAAE,CACP,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createFieldRenderer","Select","SelectRenderer","field","options","createElement","label","placeholder","description","note","value","String","onChange","onBlur","required","disabled","validation","map","opt"],"sources":["SelectRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { Select } from \"@webiny/admin-ui\";\nimport type { IValueOption } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n dropdown: { fieldType: \"text\" | \"number\"; options: true; settings: undefined };\n }\n}\n\nexport const SelectRenderer = createFieldRenderer(({ field }) => {\n const options: IValueOption[] = field.options ?? [];\n\n return (\n <Select\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n note={field.note}\n value={field.value != null ? String(field.value) : \"\"}\n onChange={value => {\n field.onChange(value);\n field.onBlur();\n }}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n options={options.map(opt => ({\n label: opt.label,\n value: String(opt.value),\n disabled: opt.disabled\n }))}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,MAAM,QAAQ,kBAAkB;AASzC,OAAO,MAAMC,cAAc,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC7D,MAAMC,OAAuB,GAAGD,KAAK,CAACC,OAAO,IAAI,EAAE;EAEnD,oBACIL,KAAA,CAAAM,aAAA,CAACJ,MAAM;IACHK,KAAK,EAAEH,KAAK,CAACG,KAAM;IACnBC,WAAW,EAAEJ,KAAK,CAACI,WAAY;IAC/BC,WAAW,EAAEL,KAAK,CAACK,WAAY;IAC/BC,IAAI,EAAEN,KAAK,CAACM,IAAK;IACjBC,KAAK,EAAEP,KAAK,CAACO,KAAK,IAAI,IAAI,GAAGC,MAAM,CAACR,KAAK,CAACO,KAAK,CAAC,GAAG,EAAG;IACtDE,QAAQ,EAAEF,KAAK,IAAI;MACfP,KAAK,CAACS,QAAQ,CAACF,KAAK,CAAC;MACrBP,KAAK,CAACU,MAAM,CAAC,CAAC;IAClB,CAAE;IACFC,QAAQ,EAAEX,KAAK,CAACW,QAAS;IACzBC,QAAQ,EAAEZ,KAAK,CAACY,QAAS;IACzBC,UAAU,EAAEb,KAAK,CAACa,UAAW;IAC7BZ,OAAO,EAAEA,OAAO,CAACa,GAAG,CAACC,GAAG,KAAK;MACzBZ,KAAK,EAAEY,GAAG,CAACZ,KAAK;MAChBI,KAAK,EAAEC,MAAM,CAACO,GAAG,CAACR,KAAK,CAAC;MACxBK,QAAQ,EAAEG,GAAG,CAACH;IAClB,CAAC,CAAC;EAAE,CACP,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ declare module "../../../features/formModel/abstractions.js" {
3
+ interface IFieldRendererRegistry {
4
+ switch: {
5
+ fieldType: "boolean";
6
+ settings: undefined;
7
+ };
8
+ }
9
+ }
10
+ export declare const SwitchRenderer: React.ComponentType<{
11
+ field: import("../../..").IFieldVM;
12
+ }>;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ import { createFieldRenderer } from "../../../features/formModel/createFieldRenderer.js";
3
+ import { Switch } from "@webiny/admin-ui";
4
+ export const SwitchRenderer = createFieldRenderer(({
5
+ field
6
+ }) => {
7
+ return /*#__PURE__*/React.createElement(Switch, {
8
+ checked: !!field.value,
9
+ onChange: value => field.onChange(value),
10
+ label: field.label,
11
+ description: field.description,
12
+ note: field.note,
13
+ required: field.required,
14
+ disabled: field.disabled,
15
+ validation: field.validation
16
+ });
17
+ });
18
+
19
+ //# sourceMappingURL=SwitchRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","createFieldRenderer","Switch","SwitchRenderer","field","createElement","checked","value","onChange","label","description","note","required","disabled","validation"],"sources":["SwitchRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { createFieldRenderer } from \"~/features/formModel/createFieldRenderer.js\";\nimport { Switch } from \"@webiny/admin-ui\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n switch: { fieldType: \"boolean\"; settings: undefined };\n }\n}\n\nexport const SwitchRenderer = createFieldRenderer(({ field }) => {\n return (\n <Switch\n checked={!!field.value}\n onChange={value => field.onChange(value)}\n label={field.label}\n description={field.description}\n note={field.note}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n />\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB;AAC5B,SAASC,MAAM,QAAQ,kBAAkB;AAQzC,OAAO,MAAMC,cAAc,GAAGF,mBAAmB,CAAC,CAAC;EAAEG;AAAM,CAAC,KAAK;EAC7D,oBACIJ,KAAA,CAAAK,aAAA,CAACH,MAAM;IACHI,OAAO,EAAE,CAAC,CAACF,KAAK,CAACG,KAAM;IACvBC,QAAQ,EAAED,KAAK,IAAIH,KAAK,CAACI,QAAQ,CAACD,KAAK,CAAE;IACzCE,KAAK,EAAEL,KAAK,CAACK,KAAM;IACnBC,WAAW,EAAEN,KAAK,CAACM,WAAY;IAC/BC,IAAI,EAAEP,KAAK,CAACO,IAAK;IACjBC,QAAQ,EAAER,KAAK,CAACQ,QAAS;IACzBC,QAAQ,EAAET,KAAK,CAACS,QAAS;IACzBC,UAAU,EAAEV,KAAK,CAACU;EAAW,CAChC,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ declare module "../../../features/formModel/abstractions.js" {
3
+ interface IFieldRendererRegistry {
4
+ tags: {
5
+ fieldType: "text";
6
+ settings: undefined;
7
+ };
8
+ }
9
+ }
10
+ export declare const TagsRenderer: React.ComponentType<{
11
+ field: import("../../..").IFieldVM;
12
+ }>;