@webiny/app-admin 6.2.0 → 6.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base/Admin.js +2 -0
- package/base/Admin.js.map +1 -1
- package/base/Base/DefaultFieldRenderers.js +20 -4
- package/base/Base/DefaultFieldRenderers.js.map +1 -1
- package/base/Base/DefaultLayoutRenderers.d.ts +2 -0
- package/base/Base/DefaultLayoutRenderers.js +11 -0
- package/base/Base/DefaultLayoutRenderers.js.map +1 -0
- package/base/Base/FieldRenderers/InputRenderer.d.ts +15 -0
- package/base/Base/FieldRenderers/{TextRenderer.js → InputRenderer.js} +5 -3
- package/base/Base/FieldRenderers/InputRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +25 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +89 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.d.ts +21 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js +28 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +17 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +63 -0
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.d.ts +4 -0
- package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +22 -0
- package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -0
- package/base/Base/FieldRenderers/PassthroughRenderer.d.ts +15 -0
- package/base/Base/FieldRenderers/PassthroughRenderer.js +29 -0
- package/base/Base/FieldRenderers/PassthroughRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/SelectRenderer.d.ts +12 -2
- package/base/Base/FieldRenderers/SelectRenderer.js +4 -2
- package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TextareaRenderer.d.ts +17 -0
- package/base/Base/FieldRenderers/TextareaRenderer.js +25 -0
- package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/VerticalTabsRenderer.d.ts +5 -0
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js +41 -0
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js.map +1 -0
- package/base/Base.js +2 -1
- package/base/Base.js.map +1 -1
- package/base/createRootContainer.js +4 -0
- package/base/createRootContainer.js.map +1 -1
- package/base/providers/UiProviders.js +0 -1
- package/base/providers/UiProviders.js.map +1 -1
- package/components/Filters/Filters.js.map +1 -1
- package/components/IconPicker/components/IconPickerCell.d.ts +1 -1
- package/components/IconPicker/components/IconPickerTrigger.d.ts +1 -1
- package/components/IconPicker/components/IconPickerTrigger.js.map +1 -1
- package/components/LexicalEditor/LexicalEditor.js +7 -1
- package/components/LexicalEditor/LexicalEditor.js.map +1 -1
- package/components/LexicalEditor/lexicalValueFromHtml.d.ts +7 -0
- package/components/LexicalEditor/lexicalValueFromHtml.js +35 -0
- package/components/LexicalEditor/lexicalValueFromHtml.js.map +1 -0
- package/components/OverlayLayout/components/OverlayHeader.d.ts +1 -1
- package/components/OverlayLayout/components/OverlayHeader.js.map +1 -1
- package/components/SimpleForm/SimpleForm.d.ts +2 -2
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/config/AdminConfig/Form.d.ts +1 -0
- package/config/AdminConfig/Form.js +3 -1
- package/config/AdminConfig/Form.js.map +1 -1
- package/config/AdminConfig/LayoutRenderer.d.ts +10 -0
- package/config/AdminConfig/LayoutRenderer.js +21 -0
- package/config/AdminConfig/LayoutRenderer.js.map +1 -0
- package/config/AdminConfig/Menu/MenuLink.d.ts +2 -2
- package/config/AdminConfig.d.ts +4 -0
- package/config/AdminConfig.js +2 -1
- package/config/AdminConfig.js.map +1 -1
- package/exports/admin.d.ts +2 -0
- package/exports/admin.js +2 -0
- package/exports/admin.js.map +1 -1
- package/features/formModel/Field.js +4 -0
- package/features/formModel/Field.js.map +1 -1
- package/features/formModel/FieldBuilder.d.ts +18 -2
- package/features/formModel/FieldBuilder.js +57 -3
- package/features/formModel/FieldBuilder.js.map +1 -1
- package/features/formModel/FormModel.d.ts +3 -3
- package/features/formModel/FormModel.js +48 -13
- package/features/formModel/FormModel.js.map +1 -1
- package/features/formModel/FormModel.test.js +383 -0
- package/features/formModel/FormModel.test.js.map +1 -1
- package/features/formModel/FormModelFactory.d.ts +2 -2
- package/features/formModel/FormModelFactory.js.map +1 -1
- package/features/formModel/FormView.d.ts +24 -4
- package/features/formModel/FormView.js +57 -27
- package/features/formModel/FormView.js.map +1 -1
- package/features/formModel/ObjectField.d.ts +46 -0
- package/features/formModel/ObjectField.js +346 -0
- package/features/formModel/ObjectField.js.map +1 -0
- package/features/formModel/abstractions.d.ts +88 -19
- package/features/formModel/abstractions.js +8 -0
- package/features/formModel/abstractions.js.map +1 -1
- package/features/formModel/index.d.ts +7 -4
- package/features/formModel/index.js +9 -2
- package/features/formModel/index.js.map +1 -1
- package/features/formModel/renderers.d.ts +6 -0
- package/features/formModel/renderers.js +10 -0
- package/features/formModel/renderers.js.map +1 -0
- package/features/formModel/useLayoutRenderers.d.ts +2 -0
- package/features/formModel/useLayoutRenderers.js +19 -0
- package/features/formModel/useLayoutRenderers.js.map +1 -0
- package/features/tools/ToolPipelineRunner.d.ts +10 -0
- package/features/tools/ToolPipelineRunner.js +33 -0
- package/features/tools/ToolPipelineRunner.js.map +1 -0
- package/features/tools/ToolRegistry.d.ts +12 -0
- package/features/tools/ToolRegistry.js +29 -0
- package/features/tools/ToolRegistry.js.map +1 -0
- package/features/tools/abstractions.d.ts +28 -0
- package/features/tools/abstractions.js +6 -0
- package/features/tools/abstractions.js.map +1 -0
- package/features/tools/feature.d.ts +4 -0
- package/features/tools/feature.js +19 -0
- package/features/tools/feature.js.map +1 -0
- package/features/tools/index.d.ts +2 -0
- package/features/tools/index.js +4 -0
- package/features/tools/index.js.map +1 -0
- package/features/wcp/ReactLicense.d.ts +3 -0
- package/features/wcp/ReactLicense.js +9 -0
- package/features/wcp/ReactLicense.js.map +1 -1
- package/features/wcp/WcpGateway.js +4 -0
- package/features/wcp/WcpGateway.js.map +1 -1
- package/features/webinySdk/WebinySdk.d.ts +11 -0
- package/features/webinySdk/WebinySdk.js +27 -0
- package/features/webinySdk/WebinySdk.js.map +1 -0
- package/features/webinySdk/abstractions.d.ts +6 -0
- package/features/webinySdk/abstractions.js +8 -0
- package/features/webinySdk/abstractions.js.map +1 -0
- package/features/webinySdk/feature.d.ts +3 -0
- package/features/webinySdk/feature.js +16 -0
- package/features/webinySdk/feature.js.map +1 -0
- package/features/webinySdk/index.d.ts +2 -0
- package/features/webinySdk/index.js +4 -0
- package/features/webinySdk/index.js.map +1 -0
- package/index.d.ts +8 -3
- package/index.js +5 -2
- package/index.js.map +1 -1
- package/package.json +24 -23
- package/presentation/textToLexicalTool/TextToLexicalTool.d.ts +27 -0
- package/presentation/textToLexicalTool/TextToLexicalTool.js +25 -0
- package/presentation/textToLexicalTool/TextToLexicalTool.js.map +1 -0
- package/presentation/textToLexicalTool/feature.d.ts +1 -0
- package/presentation/textToLexicalTool/feature.js +10 -0
- package/presentation/textToLexicalTool/feature.js.map +1 -0
- package/presentation/textToLexicalTool/textToLexicalState.d.ts +5 -0
- package/presentation/textToLexicalTool/textToLexicalState.js +19 -0
- package/presentation/textToLexicalTool/textToLexicalState.js.map +1 -0
- package/base/Base/FieldRenderers/TextRenderer.d.ts +0 -5
- package/base/Base/FieldRenderers/TextRenderer.js.map +0 -1
package/base/Admin.js
CHANGED
|
@@ -16,6 +16,7 @@ import { ApolloClientFeature } from "../features/apolloClient/feature.js";
|
|
|
16
16
|
import { SecurityFeature } from "../features/security/SecurityFeature.js";
|
|
17
17
|
import { FormModelFeature } from "../features/formModel/feature.js";
|
|
18
18
|
import { AdminConfigPlugin, AdminConfigProvider } from "../config/AdminConfig.js";
|
|
19
|
+
import { WebinySdkFeature } from "../features/webinySdk/feature.js";
|
|
19
20
|
const container = createRootContainer();
|
|
20
21
|
export const Admin = ({
|
|
21
22
|
children,
|
|
@@ -30,6 +31,7 @@ export const Admin = ({
|
|
|
30
31
|
ApolloClientFeature.register(container, apolloClient);
|
|
31
32
|
SecurityFeature.register(container);
|
|
32
33
|
FormModelFeature.register(container);
|
|
34
|
+
WebinySdkFeature.register(container);
|
|
33
35
|
const ApolloProvider = createApolloProvider(apolloClient);
|
|
34
36
|
const UIProviders = createUiProviders();
|
|
35
37
|
const UiStateProvider = createUiStateProvider();
|
package/base/Admin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","plugins","App","DiContainerProvider","createApolloProvider","Base","createUiStateProvider","createAdminUiStateProvider","createUiProviders","createDialogsProvider","DefaultIcons","IconPickerConfigProvider","createRootContainer","WcpProvider","createTenancyProvider","TelemetryAdminAppStart","ApolloClientFeature","SecurityFeature","FormModelFeature","AdminConfigPlugin","AdminConfigProvider","container","Admin","children","createApolloClient","createLegacyPlugins","uri","process","env","REACT_APP_GRAPHQL_API_URL","apolloClient","register","ApolloProvider","UIProviders","UiStateProvider","AdminUiStateProvider","DialogsProvider","TenancyProvider","createElement","routes","providers"],"sources":["Admin.tsx"],"sourcesContent":["import React from \"react\";\nimport type { Container } from \"@webiny/di\";\nimport { plugins } from \"@webiny/plugins\";\nimport { App, DiContainerProvider } from \"@webiny/app\";\nimport type { ApolloClientFactory } from \"./providers/ApolloProvider.js\";\nimport { createApolloProvider } from \"./providers/ApolloProvider.js\";\nimport { Base } from \"./Base.js\";\nimport { createUiStateProvider } from \"./providers/UiStateProvider.js\";\nimport { createAdminUiStateProvider } from \"./providers/AdminUiStateProvider.js\";\nimport { createUiProviders } from \"./providers/UiProviders.js\";\nimport { createDialogsProvider } from \"~/components/Dialogs/DialogsContext.js\";\nimport { DefaultIcons, IconPickerConfigProvider } from \"~/components/IconPicker/config/index.js\";\nimport { createRootContainer } from \"~/base/createRootContainer.js\";\nimport { WcpProvider } from \"~/presentation/wcp/WcpProvider.js\";\nimport { createTenancyProvider } from \"~/presentation/tenancy/createTenancyProvider.js\";\nimport { TelemetryAdminAppStart } from \"./TelemetryAdminAppStart.js\";\nimport { ApolloClientFeature } from \"~/features/apolloClient/feature.js\";\nimport { SecurityFeature } from \"~/features/security/SecurityFeature.js\";\nimport { FormModelFeature } from \"~/features/formModel/feature.js\";\nimport type { PluginCollection } from \"@webiny/plugins/types.js\";\nimport { AdminConfigPlugin, AdminConfigProvider } from \"~/config/AdminConfig.js\";\n\nexport interface AdminProps {\n createApolloClient: ApolloClientFactory;\n createLegacyPlugins: (container: Container) => PluginCollection;\n children?: React.ReactNode;\n}\n\nconst container = createRootContainer();\n\nexport const Admin = ({ children, createApolloClient, createLegacyPlugins }: AdminProps) => {\n const uri = process.env.REACT_APP_GRAPHQL_API_URL as string;\n const apolloClient = createApolloClient({ uri });\n\n plugins.register(...createLegacyPlugins(container));\n\n ApolloClientFeature.register(container, apolloClient);\n SecurityFeature.register(container);\n FormModelFeature.register(container);\n\n const ApolloProvider = createApolloProvider(apolloClient);\n const UIProviders = createUiProviders();\n const UiStateProvider = createUiStateProvider();\n const AdminUiStateProvider = createAdminUiStateProvider();\n const DialogsProvider = createDialogsProvider();\n const TenancyProvider = createTenancyProvider();\n\n return (\n <DiContainerProvider container={container}>\n <TelemetryAdminAppStart />\n <ApolloProvider>\n <WcpProvider>\n <App\n plugins={[AdminConfigPlugin]}\n routes={[]}\n providers={[\n AdminConfigProvider,\n UIProviders,\n UiStateProvider,\n DialogsProvider,\n IconPickerConfigProvider,\n AdminUiStateProvider,\n TenancyProvider\n ]}\n >\n <Base />\n <DefaultIcons />\n {children}\n </App>\n </WcpProvider>\n </ApolloProvider>\n </DiContainerProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,GAAG,EAAEC,mBAAmB,QAAQ,aAAa;AAEtD,SAASC,oBAAoB;AAC7B,SAASC,IAAI;AACb,SAASC,qBAAqB;AAC9B,SAASC,0BAA0B;AACnC,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAC9B,SAASC,YAAY,EAAEC,wBAAwB;AAC/C,SAASC,mBAAmB;AAC5B,SAASC,WAAW;AACpB,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,EAAEC,mBAAmB;
|
|
1
|
+
{"version":3,"names":["React","plugins","App","DiContainerProvider","createApolloProvider","Base","createUiStateProvider","createAdminUiStateProvider","createUiProviders","createDialogsProvider","DefaultIcons","IconPickerConfigProvider","createRootContainer","WcpProvider","createTenancyProvider","TelemetryAdminAppStart","ApolloClientFeature","SecurityFeature","FormModelFeature","AdminConfigPlugin","AdminConfigProvider","WebinySdkFeature","container","Admin","children","createApolloClient","createLegacyPlugins","uri","process","env","REACT_APP_GRAPHQL_API_URL","apolloClient","register","ApolloProvider","UIProviders","UiStateProvider","AdminUiStateProvider","DialogsProvider","TenancyProvider","createElement","routes","providers"],"sources":["Admin.tsx"],"sourcesContent":["import React from \"react\";\nimport type { Container } from \"@webiny/di\";\nimport { plugins } from \"@webiny/plugins\";\nimport { App, DiContainerProvider } from \"@webiny/app\";\nimport type { ApolloClientFactory } from \"./providers/ApolloProvider.js\";\nimport { createApolloProvider } from \"./providers/ApolloProvider.js\";\nimport { Base } from \"./Base.js\";\nimport { createUiStateProvider } from \"./providers/UiStateProvider.js\";\nimport { createAdminUiStateProvider } from \"./providers/AdminUiStateProvider.js\";\nimport { createUiProviders } from \"./providers/UiProviders.js\";\nimport { createDialogsProvider } from \"~/components/Dialogs/DialogsContext.js\";\nimport { DefaultIcons, IconPickerConfigProvider } from \"~/components/IconPicker/config/index.js\";\nimport { createRootContainer } from \"~/base/createRootContainer.js\";\nimport { WcpProvider } from \"~/presentation/wcp/WcpProvider.js\";\nimport { createTenancyProvider } from \"~/presentation/tenancy/createTenancyProvider.js\";\nimport { TelemetryAdminAppStart } from \"./TelemetryAdminAppStart.js\";\nimport { ApolloClientFeature } from \"~/features/apolloClient/feature.js\";\nimport { SecurityFeature } from \"~/features/security/SecurityFeature.js\";\nimport { FormModelFeature } from \"~/features/formModel/feature.js\";\nimport type { PluginCollection } from \"@webiny/plugins/types.js\";\nimport { AdminConfigPlugin, AdminConfigProvider } from \"~/config/AdminConfig.js\";\nimport { WebinySdkFeature } from \"~/features/webinySdk/feature.js\";\n\nexport interface AdminProps {\n createApolloClient: ApolloClientFactory;\n createLegacyPlugins: (container: Container) => PluginCollection;\n children?: React.ReactNode;\n}\n\nconst container = createRootContainer();\n\nexport const Admin = ({ children, createApolloClient, createLegacyPlugins }: AdminProps) => {\n const uri = process.env.REACT_APP_GRAPHQL_API_URL as string;\n const apolloClient = createApolloClient({ uri });\n\n plugins.register(...createLegacyPlugins(container));\n\n ApolloClientFeature.register(container, apolloClient);\n SecurityFeature.register(container);\n FormModelFeature.register(container);\n WebinySdkFeature.register(container);\n\n const ApolloProvider = createApolloProvider(apolloClient);\n const UIProviders = createUiProviders();\n const UiStateProvider = createUiStateProvider();\n const AdminUiStateProvider = createAdminUiStateProvider();\n const DialogsProvider = createDialogsProvider();\n const TenancyProvider = createTenancyProvider();\n\n return (\n <DiContainerProvider container={container}>\n <TelemetryAdminAppStart />\n <ApolloProvider>\n <WcpProvider>\n <App\n plugins={[AdminConfigPlugin]}\n routes={[]}\n providers={[\n AdminConfigProvider,\n UIProviders,\n UiStateProvider,\n DialogsProvider,\n IconPickerConfigProvider,\n AdminUiStateProvider,\n TenancyProvider\n ]}\n >\n <Base />\n <DefaultIcons />\n {children}\n </App>\n </WcpProvider>\n </ApolloProvider>\n </DiContainerProvider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,GAAG,EAAEC,mBAAmB,QAAQ,aAAa;AAEtD,SAASC,oBAAoB;AAC7B,SAASC,IAAI;AACb,SAASC,qBAAqB;AAC9B,SAASC,0BAA0B;AACnC,SAASC,iBAAiB;AAC1B,SAASC,qBAAqB;AAC9B,SAASC,YAAY,EAAEC,wBAAwB;AAC/C,SAASC,mBAAmB;AAC5B,SAASC,WAAW;AACpB,SAASC,qBAAqB;AAC9B,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,eAAe;AACxB,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB,EAAEC,mBAAmB;AAC/C,SAASC,gBAAgB;AAQzB,MAAMC,SAAS,GAAGV,mBAAmB,CAAC,CAAC;AAEvC,OAAO,MAAMW,KAAK,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,kBAAkB;EAAEC;AAAgC,CAAC,KAAK;EACxF,MAAMC,GAAG,GAAGC,OAAO,CAACC,GAAG,CAACC,yBAAmC;EAC3D,MAAMC,YAAY,GAAGN,kBAAkB,CAAC;IAAEE;EAAI,CAAC,CAAC;EAEhD1B,OAAO,CAAC+B,QAAQ,CAAC,GAAGN,mBAAmB,CAACJ,SAAS,CAAC,CAAC;EAEnDN,mBAAmB,CAACgB,QAAQ,CAACV,SAAS,EAAES,YAAY,CAAC;EACrDd,eAAe,CAACe,QAAQ,CAACV,SAAS,CAAC;EACnCJ,gBAAgB,CAACc,QAAQ,CAACV,SAAS,CAAC;EACpCD,gBAAgB,CAACW,QAAQ,CAACV,SAAS,CAAC;EAEpC,MAAMW,cAAc,GAAG7B,oBAAoB,CAAC2B,YAAY,CAAC;EACzD,MAAMG,WAAW,GAAG1B,iBAAiB,CAAC,CAAC;EACvC,MAAM2B,eAAe,GAAG7B,qBAAqB,CAAC,CAAC;EAC/C,MAAM8B,oBAAoB,GAAG7B,0BAA0B,CAAC,CAAC;EACzD,MAAM8B,eAAe,GAAG5B,qBAAqB,CAAC,CAAC;EAC/C,MAAM6B,eAAe,GAAGxB,qBAAqB,CAAC,CAAC;EAE/C,oBACId,KAAA,CAAAuC,aAAA,CAACpC,mBAAmB;IAACmB,SAAS,EAAEA;EAAU,gBACtCtB,KAAA,CAAAuC,aAAA,CAACxB,sBAAsB,MAAE,CAAC,eAC1Bf,KAAA,CAAAuC,aAAA,CAACN,cAAc,qBACXjC,KAAA,CAAAuC,aAAA,CAAC1B,WAAW,qBACRb,KAAA,CAAAuC,aAAA,CAACrC,GAAG;IACAD,OAAO,EAAE,CAACkB,iBAAiB,CAAE;IAC7BqB,MAAM,EAAE,EAAG;IACXC,SAAS,EAAE,CACPrB,mBAAmB,EACnBc,WAAW,EACXC,eAAe,EACfE,eAAe,EACf1B,wBAAwB,EACxByB,oBAAoB,EACpBE,eAAe;EACjB,gBAEFtC,KAAA,CAAAuC,aAAA,CAAClC,IAAI,MAAE,CAAC,eACRL,KAAA,CAAAuC,aAAA,CAAC7B,YAAY,MAAE,CAAC,EACfc,QACA,CACI,CACD,CACC,CAAC;AAE9B,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AdminConfig } from "../../config/AdminConfig.js";
|
|
3
|
-
import {
|
|
3
|
+
import { InputRenderer } from "./FieldRenderers/InputRenderer.js";
|
|
4
4
|
import { SelectRenderer } from "./FieldRenderers/SelectRenderer.js";
|
|
5
|
+
import { ObjectRenderer } from "./FieldRenderers/ObjectRenderer/ObjectRenderer.js";
|
|
6
|
+
import { PassthroughRenderer } from "./FieldRenderers/PassthroughRenderer.js";
|
|
7
|
+
import { ObjectListFlatRenderer } from "./FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js";
|
|
8
|
+
import { TextareaRenderer } from "./FieldRenderers/TextareaRenderer.js";
|
|
5
9
|
export const DefaultFieldRenderers = () => {
|
|
6
10
|
return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
7
|
-
name: "
|
|
8
|
-
component:
|
|
11
|
+
name: "input",
|
|
12
|
+
component: InputRenderer
|
|
9
13
|
}), /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
10
|
-
name: "
|
|
14
|
+
name: "textarea",
|
|
15
|
+
component: TextareaRenderer
|
|
16
|
+
}), /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
17
|
+
name: "dropdown",
|
|
11
18
|
component: SelectRenderer
|
|
19
|
+
}), /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
20
|
+
name: "object",
|
|
21
|
+
component: ObjectRenderer
|
|
22
|
+
}), /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
23
|
+
name: "passthrough",
|
|
24
|
+
component: PassthroughRenderer
|
|
25
|
+
}), /*#__PURE__*/React.createElement(AdminConfig.Form.FieldRenderer, {
|
|
26
|
+
name: "objectListFlat",
|
|
27
|
+
component: ObjectListFlatRenderer
|
|
12
28
|
}));
|
|
13
29
|
};
|
|
14
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","AdminConfig","
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","InputRenderer","SelectRenderer","ObjectRenderer","PassthroughRenderer","ObjectListFlatRenderer","TextareaRenderer","DefaultFieldRenderers","createElement","Form","FieldRenderer","name","component"],"sources":["DefaultFieldRenderers.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { InputRenderer } from \"~/base/Base/FieldRenderers/InputRenderer.js\";\nimport { SelectRenderer } from \"~/base/Base/FieldRenderers/SelectRenderer.js\";\nimport { ObjectRenderer } from \"~/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js\";\nimport { PassthroughRenderer } from \"~/base/Base/FieldRenderers/PassthroughRenderer.js\";\nimport { ObjectListFlatRenderer } from \"~/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js\";\nimport { TextareaRenderer } from \"~/base/Base/FieldRenderers/TextareaRenderer.js\";\n\nexport const DefaultFieldRenderers = () => {\n return (\n <AdminConfig>\n <AdminConfig.Form.FieldRenderer name={\"input\"} component={InputRenderer} />\n <AdminConfig.Form.FieldRenderer name={\"textarea\"} component={TextareaRenderer} />\n <AdminConfig.Form.FieldRenderer name={\"dropdown\"} component={SelectRenderer} />\n <AdminConfig.Form.FieldRenderer name={\"object\"} component={ObjectRenderer} />\n <AdminConfig.Form.FieldRenderer name={\"passthrough\"} component={PassthroughRenderer} />\n <AdminConfig.Form.FieldRenderer\n name={\"objectListFlat\"}\n component={ObjectListFlatRenderer}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW;AACpB,SAASC,aAAa;AACtB,SAASC,cAAc;AACvB,SAASC,cAAc;AACvB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,gBAAgB;AAEzB,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,oBACIR,KAAA,CAAAS,aAAA,CAACR,WAAW,qBACRD,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAACC,IAAI,EAAE,OAAQ;IAACC,SAAS,EAAEX;EAAc,CAAE,CAAC,eAC3EF,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAACC,IAAI,EAAE,UAAW;IAACC,SAAS,EAAEN;EAAiB,CAAE,CAAC,eACjFP,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAACC,IAAI,EAAE,UAAW;IAACC,SAAS,EAAEV;EAAe,CAAE,CAAC,eAC/EH,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAACC,IAAI,EAAE,QAAS;IAACC,SAAS,EAAET;EAAe,CAAE,CAAC,eAC7EJ,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAACC,IAAI,EAAE,aAAc;IAACC,SAAS,EAAER;EAAoB,CAAE,CAAC,eACvFL,KAAA,CAAAS,aAAA,CAACR,WAAW,CAACS,IAAI,CAACC,aAAa;IAC3BC,IAAI,EAAE,gBAAiB;IACvBC,SAAS,EAAEP;EAAuB,CACrC,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { AdminConfig } from "../../config/AdminConfig.js";
|
|
3
|
+
import { VerticalTabsRenderer } from "./FieldRenderers/VerticalTabsRenderer.js";
|
|
4
|
+
export const DefaultLayoutRenderers = () => {
|
|
5
|
+
return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(AdminConfig.Form.LayoutRenderer, {
|
|
6
|
+
name: "tabs-vertical",
|
|
7
|
+
component: VerticalTabsRenderer
|
|
8
|
+
}));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=DefaultLayoutRenderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","VerticalTabsRenderer","DefaultLayoutRenderers","createElement","Form","LayoutRenderer","name","component"],"sources":["DefaultLayoutRenderers.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"~/config/AdminConfig.js\";\nimport { VerticalTabsRenderer } from \"~/base/Base/FieldRenderers/VerticalTabsRenderer.js\";\n\nexport const DefaultLayoutRenderers = () => {\n return (\n <AdminConfig>\n <AdminConfig.Form.LayoutRenderer\n name={\"tabs-vertical\"}\n component={VerticalTabsRenderer}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW;AACpB,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EACxC,oBACIH,KAAA,CAAAI,aAAA,CAACH,WAAW,qBACRD,KAAA,CAAAI,aAAA,CAACH,WAAW,CAACI,IAAI,CAACC,cAAc;IAC5BC,IAAI,EAAE,eAAgB;IACtBC,SAAS,EAAEN;EAAqB,CACnC,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IFieldVM } from "../../../features/formModel/index.js";
|
|
3
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
4
|
+
interface IFieldRendererRegistry {
|
|
5
|
+
input: {
|
|
6
|
+
fieldType: "text";
|
|
7
|
+
settings: undefined;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const InputRenderer: (({ field }: {
|
|
12
|
+
field: IFieldVM;
|
|
13
|
+
}) => React.JSX.Element) & {
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
@@ -2,15 +2,17 @@ import React from "react";
|
|
|
2
2
|
import { observer } from "mobx-react-lite";
|
|
3
3
|
import { Input } from "@webiny/admin-ui";
|
|
4
4
|
import { DelayedOnChange } from "@webiny/admin-ui";
|
|
5
|
-
export const
|
|
5
|
+
export const InputRenderer = observer(({
|
|
6
6
|
field
|
|
7
|
-
}) {
|
|
7
|
+
}) => {
|
|
8
8
|
return /*#__PURE__*/React.createElement(DelayedOnChange, {
|
|
9
9
|
value: field.value,
|
|
10
10
|
onChange: value => field.onChange(value)
|
|
11
11
|
}, /*#__PURE__*/React.createElement(Input, {
|
|
12
12
|
label: field.label,
|
|
13
13
|
placeholder: field.placeholder,
|
|
14
|
+
description: field.description,
|
|
15
|
+
note: field.note,
|
|
14
16
|
required: field.required,
|
|
15
17
|
disabled: field.disabled,
|
|
16
18
|
validation: field.validation,
|
|
@@ -18,4 +20,4 @@ export const TextRenderer = observer(function TextRenderer({
|
|
|
18
20
|
}));
|
|
19
21
|
});
|
|
20
22
|
|
|
21
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=InputRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","observer","Input","DelayedOnChange","InputRenderer","field","createElement","value","onChange","label","placeholder","description","note","required","disabled","validation","onBlur"],"sources":["InputRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { DelayedOnChange } from \"@webiny/admin-ui\";\nimport type { IFieldVM } from \"~/features/formModel/index.js\";\n\ndeclare module \"../../../features/formModel/abstractions.js\" {\n interface IFieldRendererRegistry {\n input: { fieldType: \"text\"; settings: undefined };\n }\n}\n\nexport const InputRenderer = observer(({ field }: { field: IFieldVM }) => {\n return (\n <DelayedOnChange value={field.value} onChange={value => field.onChange(value)}>\n <Input\n label={field.label}\n placeholder={field.placeholder}\n description={field.description}\n note={field.note}\n required={field.required}\n disabled={field.disabled}\n validation={field.validation}\n onBlur={() => field.onBlur()}\n />\n </DelayedOnChange>\n );\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,eAAe,QAAQ,kBAAkB;AASlD,OAAO,MAAMC,aAAa,GAAGH,QAAQ,CAAC,CAAC;EAAEI;AAA2B,CAAC,KAAK;EACtE,oBACIL,KAAA,CAAAM,aAAA,CAACH,eAAe;IAACI,KAAK,EAAEF,KAAK,CAACE,KAAM;IAACC,QAAQ,EAAED,KAAK,IAAIF,KAAK,CAACG,QAAQ,CAACD,KAAK;EAAE,gBAC1EP,KAAA,CAAAM,aAAA,CAACJ,KAAK;IACFO,KAAK,EAAEJ,KAAK,CAACI,KAAM;IACnBC,WAAW,EAAEL,KAAK,CAACK,WAAY;IAC/BC,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,UAAW;IAC7BC,MAAM,EAAEA,CAAA,KAAMX,KAAK,CAACW,MAAM,CAAC;EAAE,CAChC,CACY,CAAC;AAE1B,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IFieldVM, IObjectFieldVM, IObjectFieldItemVM } from "../../../../features/formModel/index.js";
|
|
3
|
+
export declare const isObjectFieldVM: (field: IFieldVM) => field is IObjectFieldVM;
|
|
4
|
+
export declare const ChildFields: (({ fields }: {
|
|
5
|
+
fields: IFieldVM[];
|
|
6
|
+
}) => React.JSX.Element) & {
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|
|
9
|
+
export interface ListItemRendererProps {
|
|
10
|
+
item: IObjectFieldItemVM;
|
|
11
|
+
index: number;
|
|
12
|
+
total: number;
|
|
13
|
+
label?: string;
|
|
14
|
+
itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);
|
|
15
|
+
disabled: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const ListItemRenderer: (({ item, index, total, label, itemTitle, disabled }: ListItemRendererProps) => React.JSX.Element) & {
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
export interface AddItemButtonProps {
|
|
21
|
+
label?: string;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
onAdd: () => void;
|
|
24
|
+
}
|
|
25
|
+
export declare const AddItemButton: ({ label, disabled, onAdd }: AddItemButtonProps) => React.JSX.Element;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { Accordion, Button, IconButton } from "@webiny/admin-ui";
|
|
4
|
+
import { ReactComponent as DeleteIcon } from "@webiny/icons/delete_outline.svg";
|
|
5
|
+
import { ReactComponent as ArrowUp } from "@webiny/icons/arrow_upward.svg";
|
|
6
|
+
import { ReactComponent as ArrowDown } from "@webiny/icons/arrow_downward.svg";
|
|
7
|
+
import { useFormViewRenderers } from "../../../../features/formModel/FormView.js";
|
|
8
|
+
import { resolveItemTitle } from "./resolveItemTitle.js";
|
|
9
|
+
export const isObjectFieldVM = field => {
|
|
10
|
+
return field.type === "object";
|
|
11
|
+
};
|
|
12
|
+
export const ChildFields = observer(({
|
|
13
|
+
fields
|
|
14
|
+
}) => {
|
|
15
|
+
const {
|
|
16
|
+
fieldRenderers
|
|
17
|
+
} = useFormViewRenderers();
|
|
18
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
19
|
+
className: "flex flex-col gap-4 p-sm"
|
|
20
|
+
}, fields.map(childField => {
|
|
21
|
+
const Renderer = childField.renderer ? fieldRenderers[childField.renderer] : undefined;
|
|
22
|
+
if (!Renderer) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return /*#__PURE__*/React.createElement(Renderer, {
|
|
26
|
+
key: childField.name,
|
|
27
|
+
field: childField
|
|
28
|
+
});
|
|
29
|
+
}));
|
|
30
|
+
});
|
|
31
|
+
export const ListItemRenderer = observer(({
|
|
32
|
+
item,
|
|
33
|
+
index,
|
|
34
|
+
total,
|
|
35
|
+
label,
|
|
36
|
+
itemTitle,
|
|
37
|
+
disabled
|
|
38
|
+
}) => {
|
|
39
|
+
const actions = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
40
|
+
icon: /*#__PURE__*/React.createElement(ArrowDown, null),
|
|
41
|
+
onClick: e => {
|
|
42
|
+
e.stopPropagation();
|
|
43
|
+
item.moveDown();
|
|
44
|
+
},
|
|
45
|
+
variant: "ghost",
|
|
46
|
+
disabled: index === total - 1
|
|
47
|
+
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
48
|
+
icon: /*#__PURE__*/React.createElement(ArrowUp, null),
|
|
49
|
+
onClick: e => {
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
item.moveUp();
|
|
52
|
+
},
|
|
53
|
+
variant: "ghost",
|
|
54
|
+
disabled: index === 0
|
|
55
|
+
}), /*#__PURE__*/React.createElement(Accordion.Item.Action.Separator, null), /*#__PURE__*/React.createElement(IconButton, {
|
|
56
|
+
icon: /*#__PURE__*/React.createElement(DeleteIcon, null),
|
|
57
|
+
onClick: e => {
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
item.remove();
|
|
60
|
+
},
|
|
61
|
+
variant: "ghost"
|
|
62
|
+
}));
|
|
63
|
+
return /*#__PURE__*/React.createElement(Accordion, {
|
|
64
|
+
background: "base",
|
|
65
|
+
variant: "container",
|
|
66
|
+
openClosedIndicatorPosition: "left"
|
|
67
|
+
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
68
|
+
title: resolveItemTitle(item, index, label, itemTitle),
|
|
69
|
+
actions: disabled ? null : actions,
|
|
70
|
+
defaultOpen: false
|
|
71
|
+
}, /*#__PURE__*/React.createElement(ChildFields, {
|
|
72
|
+
fields: item.fields
|
|
73
|
+
})));
|
|
74
|
+
});
|
|
75
|
+
export const AddItemButton = ({
|
|
76
|
+
label,
|
|
77
|
+
disabled,
|
|
78
|
+
onAdd
|
|
79
|
+
}) => {
|
|
80
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
|
81
|
+
text: label || "Add Item",
|
|
82
|
+
variant: "secondary",
|
|
83
|
+
size: "sm",
|
|
84
|
+
onClick: onAdd,
|
|
85
|
+
disabled: disabled
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=ObjectFieldComponents.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IFieldVM } from "../../../../features/formModel/index.js";
|
|
3
|
+
declare module "../../../../features/formModel/abstractions.js" {
|
|
4
|
+
interface ItemTitleGenerator {
|
|
5
|
+
(data: Record<string, unknown>, index: number): string;
|
|
6
|
+
}
|
|
7
|
+
interface IFieldRendererRegistry {
|
|
8
|
+
objectListFlat: {
|
|
9
|
+
fieldType: "object";
|
|
10
|
+
settings?: {
|
|
11
|
+
addItemLabel?: string;
|
|
12
|
+
itemTitle?: string | ItemTitleGenerator;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export declare const ObjectListFlatRenderer: (({ field }: {
|
|
18
|
+
field: IFieldVM;
|
|
19
|
+
}) => React.JSX.Element | null) & {
|
|
20
|
+
displayName: string;
|
|
21
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { isObjectFieldVM, ListItemRenderer, AddItemButton } from "./ObjectFieldComponents.js";
|
|
4
|
+
export const ObjectListFlatRenderer = observer(({
|
|
5
|
+
field
|
|
6
|
+
}) => {
|
|
7
|
+
if (!isObjectFieldVM(field) || !field.isList) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const settings = field.rendererSettings;
|
|
11
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
className: "flex flex-col gap-sm"
|
|
13
|
+
}, field.items.map((item, index) => /*#__PURE__*/React.createElement(ListItemRenderer, {
|
|
14
|
+
key: item.key,
|
|
15
|
+
item: item,
|
|
16
|
+
index: index,
|
|
17
|
+
total: field.items.length,
|
|
18
|
+
label: field.label,
|
|
19
|
+
itemTitle: settings?.itemTitle,
|
|
20
|
+
disabled: field.disabled
|
|
21
|
+
})), /*#__PURE__*/React.createElement(AddItemButton, {
|
|
22
|
+
label: settings?.addItemLabel || `Add ${field.label || "Item"}`,
|
|
23
|
+
disabled: field.disabled,
|
|
24
|
+
onAdd: () => field.addItem()
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=ObjectListFlatRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","observer","isObjectFieldVM","ListItemRenderer","AddItemButton","ObjectListFlatRenderer","field","isList","settings","rendererSettings","createElement","className","items","map","item","index","key","total","length","label","itemTitle","disabled","addItemLabel","onAdd","addItem"],"sources":["ObjectListFlatRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport type { IFieldVM, IFieldRendererRegistry } from \"~/features/formModel/index.js\";\nimport { isObjectFieldVM, ListItemRenderer, AddItemButton } from \"./ObjectFieldComponents.js\";\n\ndeclare module \"../../../../features/formModel/abstractions.js\" {\n interface ItemTitleGenerator {\n (data: Record<string, unknown>, index: number): string;\n }\n\n interface IFieldRendererRegistry {\n objectListFlat: {\n fieldType: \"object\";\n settings?: {\n addItemLabel?: string;\n itemTitle?: string | ItemTitleGenerator;\n };\n };\n }\n}\n\ntype ObjectListFlatSettings = NonNullable<IFieldRendererRegistry[\"objectListFlat\"][\"settings\"]>;\n\nexport const ObjectListFlatRenderer = observer(({ field }: { field: IFieldVM }) => {\n if (!isObjectFieldVM(field) || !field.isList) {\n return null;\n }\n\n const settings = field.rendererSettings as ObjectListFlatSettings | undefined;\n\n return (\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 <AddItemButton\n label={settings?.addItemLabel || `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;AAE1C,SAASC,eAAe,EAAEC,gBAAgB,EAAEC,aAAa;AAoBzD,OAAO,MAAMC,sBAAsB,GAAGJ,QAAQ,CAAC,CAAC;EAAEK;AAA2B,CAAC,KAAK;EAC/E,IAAI,CAACJ,eAAe,CAACI,KAAK,CAAC,IAAI,CAACA,KAAK,CAACC,MAAM,EAAE;IAC1C,OAAO,IAAI;EACf;EAEA,MAAMC,QAAQ,GAAGF,KAAK,CAACG,gBAAsD;EAE7E,oBACIT,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAE;EAAuB,GAClCL,KAAK,CAACM,KAAK,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,kBACzBf,KAAA,CAAAU,aAAA,CAACP,gBAAgB;IACba,GAAG,EAAEF,IAAI,CAACE,GAAI;IACdF,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IACbE,KAAK,EAAEX,KAAK,CAACM,KAAK,CAACM,MAAO;IAC1BC,KAAK,EAAEb,KAAK,CAACa,KAAM;IACnBC,SAAS,EAAEZ,QAAQ,EAAEY,SAAU;IAC/BC,QAAQ,EAAEf,KAAK,CAACe;EAAS,CAC5B,CACJ,CAAC,eACFrB,KAAA,CAAAU,aAAA,CAACN,aAAa;IACVe,KAAK,EAAEX,QAAQ,EAAEc,YAAY,IAAI,OAAOhB,KAAK,CAACa,KAAK,IAAI,MAAM,EAAG;IAChEE,QAAQ,EAAEf,KAAK,CAACe,QAAS;IACzBE,KAAK,EAAEA,CAAA,KAAMjB,KAAK,CAACkB,OAAO,CAAC;EAAE,CAChC,CACA,CAAC;AAEd,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IFieldVM } from "../../../../features/formModel/index.js";
|
|
3
|
+
declare module "../../../../features/formModel/abstractions.js" {
|
|
4
|
+
interface IFieldRendererRegistry {
|
|
5
|
+
object: {
|
|
6
|
+
fieldType: "object";
|
|
7
|
+
settings?: {
|
|
8
|
+
itemTitle?: string | ((data: Record<string, unknown>, index: number) => string);
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const ObjectRenderer: (({ field }: {
|
|
14
|
+
field: IFieldVM;
|
|
15
|
+
}) => React.JSX.Element | null) & {
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
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(({
|
|
21
|
+
field
|
|
22
|
+
}) => {
|
|
23
|
+
return /*#__PURE__*/React.createElement(Accordion, {
|
|
24
|
+
background: "base",
|
|
25
|
+
variant: "container"
|
|
26
|
+
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
27
|
+
title: field.label,
|
|
28
|
+
defaultOpen: true
|
|
29
|
+
}, /*#__PURE__*/React.createElement(ChildFields, {
|
|
30
|
+
fields: field.fields
|
|
31
|
+
})));
|
|
32
|
+
});
|
|
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
|
+
|
|
63
|
+
//# sourceMappingURL=ObjectRenderer.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IObjectFieldItemVM } from "../../../../features/formModel/index.js";
|
|
2
|
+
type ItemTitleSetting = string | ((data: Record<string, unknown>, index: number) => string);
|
|
3
|
+
export declare function resolveItemTitle(item: IObjectFieldItemVM, index: number, label: string | undefined, itemTitle: ItemTitleSetting | undefined): string;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
function fieldsToData(fields) {
|
|
2
|
+
const data = {};
|
|
3
|
+
for (const field of fields) {
|
|
4
|
+
data[field.name] = field.value;
|
|
5
|
+
}
|
|
6
|
+
return data;
|
|
7
|
+
}
|
|
8
|
+
export function resolveItemTitle(item, index, label, itemTitle) {
|
|
9
|
+
const fallback = `${label || "Item"} #${index + 1}`;
|
|
10
|
+
if (!itemTitle) {
|
|
11
|
+
return fallback;
|
|
12
|
+
}
|
|
13
|
+
if (typeof itemTitle === "string") {
|
|
14
|
+
const field = item.fields.find(f => f.name === itemTitle);
|
|
15
|
+
const value = field ? String(field.value ?? "") : "";
|
|
16
|
+
return value || fallback;
|
|
17
|
+
}
|
|
18
|
+
const data = fieldsToData(item.fields);
|
|
19
|
+
return itemTitle(data, index) || fallback;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=resolveItemTitle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fieldsToData","fields","data","field","name","value","resolveItemTitle","item","index","label","itemTitle","fallback","find","f","String"],"sources":["resolveItemTitle.ts"],"sourcesContent":["import type { IFieldVM, IObjectFieldItemVM } from \"~/features/formModel/index.js\";\n\ntype ItemTitleSetting = string | ((data: Record<string, unknown>, index: number) => string);\n\nfunction fieldsToData(fields: IFieldVM[]): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const field of fields) {\n data[field.name] = field.value;\n }\n return data;\n}\n\nexport function resolveItemTitle(\n item: IObjectFieldItemVM,\n index: number,\n label: string | undefined,\n itemTitle: ItemTitleSetting | undefined\n): string {\n const fallback = `${label || \"Item\"} #${index + 1}`;\n\n if (!itemTitle) {\n return fallback;\n }\n\n if (typeof itemTitle === \"string\") {\n const field = item.fields.find(f => f.name === itemTitle);\n const value = field ? String(field.value ?? \"\") : \"\";\n return value || fallback;\n }\n\n const data = fieldsToData(item.fields);\n return itemTitle(data, index) || fallback;\n}\n"],"mappings":"AAIA,SAASA,YAAYA,CAACC,MAAkB,EAA2B;EAC/D,MAAMC,IAA6B,GAAG,CAAC,CAAC;EACxC,KAAK,MAAMC,KAAK,IAAIF,MAAM,EAAE;IACxBC,IAAI,CAACC,KAAK,CAACC,IAAI,CAAC,GAAGD,KAAK,CAACE,KAAK;EAClC;EACA,OAAOH,IAAI;AACf;AAEA,OAAO,SAASI,gBAAgBA,CAC5BC,IAAwB,EACxBC,KAAa,EACbC,KAAyB,EACzBC,SAAuC,EACjC;EACN,MAAMC,QAAQ,GAAG,GAAGF,KAAK,IAAI,MAAM,KAAKD,KAAK,GAAG,CAAC,EAAE;EAEnD,IAAI,CAACE,SAAS,EAAE;IACZ,OAAOC,QAAQ;EACnB;EAEA,IAAI,OAAOD,SAAS,KAAK,QAAQ,EAAE;IAC/B,MAAMP,KAAK,GAAGI,IAAI,CAACN,MAAM,CAACW,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACT,IAAI,KAAKM,SAAS,CAAC;IACzD,MAAML,KAAK,GAAGF,KAAK,GAAGW,MAAM,CAACX,KAAK,CAACE,KAAK,IAAI,EAAE,CAAC,GAAG,EAAE;IACpD,OAAOA,KAAK,IAAIM,QAAQ;EAC5B;EAEA,MAAMT,IAAI,GAAGF,YAAY,CAACO,IAAI,CAACN,MAAM,CAAC;EACtC,OAAOS,SAAS,CAACR,IAAI,EAAEM,KAAK,CAAC,IAAIG,QAAQ;AAC7C","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { IFieldVM } from "../../../features/formModel/index.js";
|
|
3
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
4
|
+
interface IFieldRendererRegistry {
|
|
5
|
+
passthrough: {
|
|
6
|
+
fieldType: string;
|
|
7
|
+
settings: undefined;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const PassthroughRenderer: (({ field }: {
|
|
12
|
+
field: IFieldVM;
|
|
13
|
+
}) => React.JSX.Element | null) & {
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
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(({
|
|
8
|
+
field
|
|
9
|
+
}) => {
|
|
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
|
+
}));
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=PassthroughRenderer.js.map
|
|
@@ -0,0 +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,5 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { IFieldVM } from "../../../features/formModel/index.js";
|
|
3
|
-
|
|
3
|
+
declare module "../../../features/formModel/abstractions.js" {
|
|
4
|
+
interface IFieldRendererRegistry {
|
|
5
|
+
select: {
|
|
6
|
+
fieldType: "select";
|
|
7
|
+
settings: undefined;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export declare const SelectRenderer: (({ field }: {
|
|
4
12
|
field: IFieldVM;
|
|
5
|
-
}
|
|
13
|
+
}) => React.JSX.Element) & {
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { observer } from "mobx-react-lite";
|
|
3
3
|
import { Select } from "@webiny/admin-ui";
|
|
4
|
-
export const SelectRenderer = observer(
|
|
4
|
+
export const SelectRenderer = observer(({
|
|
5
5
|
field
|
|
6
|
-
}) {
|
|
6
|
+
}) => {
|
|
7
7
|
const options = field.options ?? [];
|
|
8
8
|
return /*#__PURE__*/React.createElement(Select, {
|
|
9
9
|
label: field.label,
|
|
10
10
|
placeholder: field.placeholder,
|
|
11
|
+
description: field.description,
|
|
12
|
+
note: field.note,
|
|
11
13
|
value: field.value ?? "",
|
|
12
14
|
onChange: value => field.onChange(value),
|
|
13
15
|
required: field.required,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","observer","Select","SelectRenderer","field","options","createElement","label","placeholder","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\nexport const SelectRenderer = observer(
|
|
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":[]}
|