@webiny/app-headless-cms 5.42.2 → 5.42.3-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.
Files changed (51) hide show
  1. package/ContentEntryEditorConfig.d.ts +2 -2
  2. package/ContentEntryListConfig.d.ts +10 -2
  3. package/admin/components/ContentEntryForm/FieldElement.d.ts +1 -52
  4. package/admin/components/ContentEntryForm/FieldElement.js +9 -61
  5. package/admin/components/ContentEntryForm/FieldElement.js.map +1 -1
  6. package/admin/components/ContentEntryForm/Fields.d.ts +1 -11
  7. package/admin/components/ContentEntryForm/Fields.js +11 -34
  8. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  9. package/admin/components/ContentEntryForm/Label.d.ts +1 -6
  10. package/admin/components/ContentEntryForm/Label.js +11 -20
  11. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  12. package/admin/components/ContentEntryForm/createValidationContainer.d.ts +1 -18
  13. package/admin/components/ContentEntryForm/createValidationContainer.js +10 -23
  14. package/admin/components/ContentEntryForm/createValidationContainer.js.map +1 -1
  15. package/admin/components/ContentEntryForm/useBind.d.ts +1 -9
  16. package/admin/components/ContentEntryForm/useBind.js +10 -110
  17. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  18. package/admin/components/ContentEntryForm/useRenderPlugins.d.ts +1 -1
  19. package/admin/components/ContentEntryForm/useRenderPlugins.js +11 -8
  20. package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -1
  21. package/admin/components/ModelFieldProvider/index.d.ts +1 -2
  22. package/admin/components/ModelFieldProvider/index.js +4 -15
  23. package/admin/components/ModelFieldProvider/index.js.map +1 -1
  24. package/admin/components/ModelProvider/index.d.ts +1 -2
  25. package/admin/components/ModelProvider/index.js +4 -15
  26. package/admin/components/ModelProvider/index.js.map +1 -1
  27. package/admin/config/contentEntries/editor/ContentEntryEditorConfig.d.ts +2 -2
  28. package/admin/config/contentEntries/editor/FieldElement.d.ts +2 -2
  29. package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.d.ts +8 -0
  30. package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.js +37 -0
  31. package/admin/config/contentEntries/list/Browser/FolderFieldDecorator.js.map +1 -0
  32. package/admin/config/contentEntries/list/Browser/index.d.ts +14 -2
  33. package/admin/config/contentEntries/list/Browser/index.js +17 -2
  34. package/admin/config/contentEntries/list/Browser/index.js.map +1 -1
  35. package/admin/config/contentEntries/list/ContentEntryListConfig.d.ts +10 -2
  36. package/package.json +27 -27
  37. package/utils/createValidators.d.ts +1 -3
  38. package/utils/createValidators.js +10 -54
  39. package/utils/createValidators.js.map +1 -1
  40. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +0 -36
  41. package/admin/components/ModelFieldProvider/ModelFieldContext.js +0 -31
  42. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +0 -1
  43. package/admin/components/ModelFieldProvider/useModelField.d.ts +0 -16
  44. package/admin/components/ModelFieldProvider/useModelField.js +0 -37
  45. package/admin/components/ModelFieldProvider/useModelField.js.map +0 -1
  46. package/admin/components/ModelProvider/ModelContext.d.ts +0 -9
  47. package/admin/components/ModelProvider/ModelContext.js +0 -18
  48. package/admin/components/ModelProvider/ModelContext.js.map +0 -1
  49. package/admin/components/ModelProvider/useModel.d.ts +0 -9
  50. package/admin/components/ModelProvider/useModel.js +0 -22
  51. package/admin/components/ModelProvider/useModel.js.map +0 -1
@@ -46,8 +46,8 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
46
46
  };
47
47
  };
48
48
  FieldElement: {
49
- createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ field, ...props }: import(".").FieldElementProps) => import("react").JSX.Element) & {
50
- original: ({ field, ...props }: import(".").FieldElementProps) => import("react").JSX.Element;
49
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ field, ...props }: import("@webiny/app-headless-cms-common").FieldElementProps) => import("react").JSX.Element) & (({ field, ...props }: import("@webiny/app-headless-cms-common").FieldElementProps) => import("react").JSX.Element) & {
50
+ original: ({ field, ...props }: import("@webiny/app-headless-cms-common").FieldElementProps) => import("react").JSX.Element;
51
51
  originalName: string;
52
52
  displayName: string;
53
53
  }>) => (props: {
@@ -86,8 +86,13 @@ export declare const ContentEntryListConfig: (({ priority, children }: import("@
86
86
  }>) => (props: import("./admin/config/contentEntries/list/Browser/Filter").CreateDecoratorParams) => import("react").JSX.Element;
87
87
  };
88
88
  FiltersToWhere: ({ converter, modelIds }: import("./admin/config/contentEntries/list/Browser/FiltersToWhere").FiltersToWhereProps) => import("react").JSX.Element | null;
89
- FolderAction: (({ modelIds, ...props }: import("./admin/config/contentEntries/list/Browser/FolderAction").FolderActionProps) => import("react").JSX.Element | null) & {
90
- OptionsMenuItem: (props: import("@webiny/app-admin").OptionsMenuItemProps) => import("react").JSX.Element;
89
+ Folder: {
90
+ ExtensionField: {
91
+ createDecorator: (decorator: import("@webiny/react-composition").Decorator<import("@webiny/react-composition").GenericComponent<import("@webiny/app-headless-cms-common").FieldElementProps>>) => (props: import("@webiny/app-aco").FieldDecoratorProps) => import("react").JSX.Element;
92
+ };
93
+ Action: (({ modelIds, ...props }: import("./admin/config/contentEntries/list/Browser/FolderAction").FolderActionProps) => import("react").JSX.Element | null) & {
94
+ OptionsMenuItem: (props: import("@webiny/app-admin").OptionsMenuItemProps) => import("react").JSX.Element;
95
+ };
91
96
  };
92
97
  Table: {
93
98
  Column: (({ modelIds, ...props }: import("./admin/config/contentEntries/list/Browser/Table/Column").ColumnProps) => import("react").JSX.Element) & {
@@ -113,6 +118,9 @@ export declare const ContentEntryListConfig: (({ priority, children }: import("@
113
118
  isFolderRow: (row: import("@webiny/app-aco/table.types").BaseTableItem) => row is import("@webiny/app-aco/table.types").FolderTableItem;
114
119
  };
115
120
  };
121
+ FolderAction: (({ modelIds, ...props }: import("./admin/config/contentEntries/list/Browser/FolderAction").FolderActionProps) => import("react").JSX.Element | null) & {
122
+ OptionsMenuItem: (props: import("@webiny/app-admin").OptionsMenuItemProps) => import("react").JSX.Element;
123
+ };
116
124
  };
117
125
  } & {
118
126
  ContentEntries: (() => import("react").JSX.Element) & {
@@ -1,52 +1 @@
1
- import React from "react";
2
- import { CmsModelField, CmsEditorContentModel, BindComponent } from "../../../types";
3
- export interface FieldElementProps {
4
- field: CmsModelField;
5
- Bind: BindComponent;
6
- contentModel: CmsEditorContentModel;
7
- }
8
- export declare const FieldElement: (({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
9
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
10
- originalName: string;
11
- displayName: string;
12
- } & {
13
- original: (({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
14
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
15
- originalName: string;
16
- displayName: string;
17
- };
18
- originalName: string;
19
- displayName: string;
20
- } & {
21
- createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
22
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
23
- originalName: string;
24
- displayName: string;
25
- }>) => (props: unknown) => React.JSX.Element;
26
- };
27
- /**
28
- * @deprecated Use `FieldElement` instead.
29
- */
30
- export declare const RenderFieldElement: (({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
31
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
32
- originalName: string;
33
- displayName: string;
34
- } & {
35
- original: (({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
36
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
37
- originalName: string;
38
- displayName: string;
39
- };
40
- originalName: string;
41
- displayName: string;
42
- } & {
43
- createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ field, ...props }: FieldElementProps) => React.JSX.Element) & {
44
- original: ({ field, ...props }: FieldElementProps) => React.JSX.Element;
45
- originalName: string;
46
- displayName: string;
47
- }>) => (props: unknown) => React.JSX.Element;
48
- };
49
- /**
50
- * @deprecated Use `FieldElementProps` instead.
51
- */
52
- export type RenderFieldElementProps = FieldElementProps;
1
+ export * from "@webiny/app-headless-cms-common/Fields/FieldElement";
@@ -1,70 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.RenderFieldElement = exports.FieldElement = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _get = _interopRequireDefault(require("lodash/get"));
12
- var _appAdmin = require("@webiny/app-admin");
13
- var _i18n = require("@webiny/app/i18n");
14
- var _Label = _interopRequireDefault(require("./Label"));
15
- var _useBind = require("./useBind");
16
- var _useRenderPlugins = require("./useRenderPlugins");
17
- var _ModelFieldProvider = require("../ModelFieldProvider");
18
- var _excluded = ["field"];
19
- var _templateObject;
20
- var t = _i18n.i18n.ns("app-headless-cms/admin/components/content-form");
21
- var RenderField = function RenderField(props) {
22
- var renderPlugins = (0, _useRenderPlugins.useRenderPlugins)();
23
- var Bind = props.Bind,
24
- contentModel = props.contentModel;
25
- var _useModelField = (0, _ModelFieldProvider.useModelField)(),
26
- field = _useModelField.field;
27
- var getBind = (0, _useBind.useBind)({
28
- Bind: Bind
6
+ var _FieldElement = require("@webiny/app-headless-cms-common/Fields/FieldElement");
7
+ Object.keys(_FieldElement).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _FieldElement[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _FieldElement[key];
14
+ }
29
15
  });
30
- if (typeof field.renderer === "function") {
31
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, field.renderer({
32
- field: field,
33
- getBind: getBind,
34
- Label: _Label.default,
35
- contentModel: contentModel
36
- }));
37
- }
38
- var renderPlugin = renderPlugins.find(function (plugin) {
39
- return plugin.renderer.rendererName === (0, _get.default)(field, "renderer.name");
40
- });
41
- if (!renderPlugin) {
42
- return t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Cannot render \"{fieldName}\" field - field renderer missing."])))({
43
- fieldName: /*#__PURE__*/_react.default.createElement("strong", null, field.fieldId)
44
- });
45
- }
46
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderPlugin.renderer.render({
47
- field: field,
48
- getBind: getBind,
49
- Label: _Label.default,
50
- contentModel: contentModel
51
- }));
52
- };
53
- var FieldElement = exports.FieldElement = (0, _appAdmin.makeDecoratable)("FieldElement", function (_ref) {
54
- var field = _ref.field,
55
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
56
- return /*#__PURE__*/_react.default.createElement(_ModelFieldProvider.ModelFieldProvider, {
57
- field: field
58
- }, /*#__PURE__*/_react.default.createElement(RenderField, props));
59
16
  });
60
17
 
61
- /**
62
- * @deprecated Use `FieldElement` instead.
63
- */
64
- var RenderFieldElement = exports.RenderFieldElement = FieldElement;
65
-
66
- /**
67
- * @deprecated Use `FieldElementProps` instead.
68
- */
69
-
70
18
  //# sourceMappingURL=FieldElement.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_get","_appAdmin","_i18n","_Label","_useBind","_useRenderPlugins","_ModelFieldProvider","_excluded","_templateObject","t","i18n","ns","RenderField","props","renderPlugins","useRenderPlugins","Bind","contentModel","_useModelField","useModelField","field","getBind","useBind","renderer","default","createElement","Fragment","Label","renderPlugin","find","plugin","rendererName","get","_taggedTemplateLiteral2","fieldName","fieldId","render","FieldElement","exports","makeDecoratable","_ref","_objectWithoutProperties2","ModelFieldProvider","RenderFieldElement"],"sources":["FieldElement.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModelField, CmsEditorContentModel, BindComponent } from \"~/types\";\nimport Label from \"./Label\";\nimport { useBind } from \"./useBind\";\nimport { useRenderPlugins } from \"./useRenderPlugins\";\nimport { ModelFieldProvider, useModelField } from \"../ModelFieldProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/content-form\");\n\ntype RenderFieldProps = Omit<FieldElementProps, \"field\">;\n\nconst RenderField = (props: RenderFieldProps) => {\n const renderPlugins = useRenderPlugins();\n const { Bind, contentModel } = props;\n const { field } = useModelField();\n const getBind = useBind({ Bind });\n\n if (typeof field.renderer === \"function\") {\n return <>{field.renderer({ field, getBind, Label, contentModel })}</>;\n }\n\n const renderPlugin = renderPlugins.find(\n plugin => plugin.renderer.rendererName === get(field, \"renderer.name\")\n );\n\n if (!renderPlugin) {\n return t`Cannot render \"{fieldName}\" field - field renderer missing.`({\n fieldName: <strong>{field.fieldId}</strong>\n });\n }\n\n return <>{renderPlugin.renderer.render({ field, getBind, Label, contentModel })}</>;\n};\n\nexport interface FieldElementProps {\n field: CmsModelField;\n Bind: BindComponent;\n contentModel: CmsEditorContentModel;\n}\n\nexport const FieldElement = makeDecoratable(\n \"FieldElement\",\n ({ field, ...props }: FieldElementProps) => {\n return (\n <ModelFieldProvider field={field}>\n <RenderField {...props} />\n </ModelFieldProvider>\n );\n }\n);\n\n/**\n * @deprecated Use `FieldElement` instead.\n */\nexport const RenderFieldElement = FieldElement;\n\n/**\n * @deprecated Use `FieldElementProps` instead.\n */\nexport type RenderFieldElementProps = FieldElementProps;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AAA0E,IAAAQ,SAAA;AAAA,IAAAC,eAAA;AAE1E,IAAMC,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,gDAAgD,CAAC;AAInE,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAuB,EAAK;EAC7C,IAAMC,aAAa,GAAG,IAAAC,kCAAgB,EAAC,CAAC;EACxC,IAAQC,IAAI,GAAmBH,KAAK,CAA5BG,IAAI;IAAEC,YAAY,GAAKJ,KAAK,CAAtBI,YAAY;EAC1B,IAAAC,cAAA,GAAkB,IAAAC,iCAAa,EAAC,CAAC;IAAzBC,KAAK,GAAAF,cAAA,CAALE,KAAK;EACb,IAAMC,OAAO,GAAG,IAAAC,gBAAO,EAAC;IAAEN,IAAI,EAAJA;EAAK,CAAC,CAAC;EAEjC,IAAI,OAAOI,KAAK,CAACG,QAAQ,KAAK,UAAU,EAAE;IACtC,oBAAO1B,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAAA5B,MAAA,CAAA2B,OAAA,CAAAE,QAAA,QAAGN,KAAK,CAACG,QAAQ,CAAC;MAAEH,KAAK,EAALA,KAAK;MAAEC,OAAO,EAAPA,OAAO;MAAEM,KAAK,EAALA,cAAK;MAAEV,YAAY,EAAZA;IAAa,CAAC,CAAI,CAAC;EACzE;EAEA,IAAMW,YAAY,GAAGd,aAAa,CAACe,IAAI,CACnC,UAAAC,MAAM;IAAA,OAAIA,MAAM,CAACP,QAAQ,CAACQ,YAAY,KAAK,IAAAC,YAAG,EAACZ,KAAK,EAAE,eAAe,CAAC;EAAA,CAC1E,CAAC;EAED,IAAI,CAACQ,YAAY,EAAE;IACf,OAAOnB,CAAC,CAAAD,eAAA,KAAAA,eAAA,OAAAyB,uBAAA,CAAAT,OAAA,uEAA8D;MAClEU,SAAS,eAAErC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,iBAASL,KAAK,CAACe,OAAgB;IAC9C,CAAC,CAAC;EACN;EAEA,oBAAOtC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAAA5B,MAAA,CAAA2B,OAAA,CAAAE,QAAA,QAAGE,YAAY,CAACL,QAAQ,CAACa,MAAM,CAAC;IAAEhB,KAAK,EAALA,KAAK;IAAEC,OAAO,EAAPA,OAAO;IAAEM,KAAK,EAALA,cAAK;IAAEV,YAAY,EAAZA;EAAa,CAAC,CAAI,CAAC;AACvF,CAAC;AAQM,IAAMoB,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,yBAAe,EACvC,cAAc,EACd,UAAAC,IAAA,EAA4C;EAAA,IAAzCpB,KAAK,GAAAoB,IAAA,CAALpB,KAAK;IAAKP,KAAK,OAAA4B,yBAAA,CAAAjB,OAAA,EAAAgB,IAAA,EAAAjC,SAAA;EACd,oBACIV,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACnB,mBAAA,CAAAoC,kBAAkB;IAACtB,KAAK,EAAEA;EAAM,gBAC7BvB,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACb,WAAW,EAAKC,KAAQ,CACT,CAAC;AAE7B,CACJ,CAAC;;AAED;AACA;AACA;AACO,IAAM8B,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAGN,YAAY;;AAE9C;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["_FieldElement","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["FieldElement.tsx"],"sourcesContent":["export * from \"@webiny/app-headless-cms-common/Fields/FieldElement\";\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,11 +1 @@
1
- import React from "react";
2
- import { CmsEditorContentModel, CmsModelField, CmsEditorFieldsLayout, BindComponent } from "../../../types";
3
- interface FieldsProps {
4
- Bind: BindComponent;
5
- contentModel: CmsEditorContentModel;
6
- fields: CmsModelField[];
7
- layout: CmsEditorFieldsLayout;
8
- gridClassName?: string;
9
- }
10
- export declare const Fields: ({ Bind, fields, layout, contentModel, gridClassName }: FieldsProps) => React.JSX.Element;
11
- export {};
1
+ export * from "@webiny/app-headless-cms-common/Fields/Fields";
@@ -1,41 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.Fields = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _Grid = require("@webiny/ui/Grid");
10
- var _FieldElement = require("./FieldElement");
11
- var getFieldById = function getFieldById(fields, id) {
12
- return fields.find(function (field) {
13
- return field.id === id;
14
- }) || null;
15
- };
16
- var Fields = exports.Fields = function Fields(_ref) {
17
- var Bind = _ref.Bind,
18
- fields = _ref.fields,
19
- layout = _ref.layout,
20
- contentModel = _ref.contentModel,
21
- gridClassName = _ref.gridClassName;
22
- return /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
23
- className: gridClassName
24
- }, layout.map(function (row, rowIndex) {
25
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
26
- key: rowIndex
27
- }, row.map(function (fieldId) {
28
- var field = getFieldById(fields, fieldId);
29
- return /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
30
- span: Math.floor(12 / row.length),
31
- key: fieldId
32
- }, /*#__PURE__*/_react.default.createElement(_FieldElement.FieldElement, {
33
- field: field,
34
- Bind: Bind,
35
- contentModel: contentModel
36
- }));
37
- }));
38
- }));
39
- };
6
+ var _Fields = require("@webiny/app-headless-cms-common/Fields/Fields");
7
+ Object.keys(_Fields).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Fields[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Fields[key];
14
+ }
15
+ });
16
+ });
40
17
 
41
18
  //# sourceMappingURL=Fields.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Grid","_FieldElement","getFieldById","fields","id","find","field","Fields","exports","_ref","Bind","layout","contentModel","gridClassName","default","createElement","Grid","className","map","row","rowIndex","Fragment","key","fieldId","Cell","span","Math","floor","length","FieldElement"],"sources":["Fields.tsx"],"sourcesContent":["import React from \"react\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { FieldElement } from \"./FieldElement\";\nimport {\n CmsEditorContentModel,\n CmsModelField,\n CmsEditorFieldsLayout,\n BindComponent\n} from \"~/types\";\n\ninterface FieldsProps {\n Bind: BindComponent;\n contentModel: CmsEditorContentModel;\n fields: CmsModelField[];\n layout: CmsEditorFieldsLayout;\n gridClassName?: string;\n}\n\nconst getFieldById = (fields: CmsModelField[], id: string): CmsModelField | null => {\n return fields.find(field => field.id === id) || null;\n};\n\nexport const Fields = ({ Bind, fields, layout, contentModel, gridClassName }: FieldsProps) => {\n return (\n <Grid className={gridClassName}>\n {layout.map((row, rowIndex) => (\n <React.Fragment key={rowIndex}>\n {row.map(fieldId => {\n const field = getFieldById(fields, fieldId) as CmsModelField;\n\n return (\n <Cell span={Math.floor(12 / row.length)} key={fieldId}>\n <FieldElement\n field={field}\n Bind={Bind}\n contentModel={contentModel}\n />\n </Cell>\n );\n })}\n </React.Fragment>\n ))}\n </Grid>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAgBA,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAAuB,EAAEC,EAAU,EAA2B;EAChF,OAAOD,MAAM,CAACE,IAAI,CAAC,UAAAC,KAAK;IAAA,OAAIA,KAAK,CAACF,EAAE,KAAKA,EAAE;EAAA,EAAC,IAAI,IAAI;AACxD,CAAC;AAEM,IAAMG,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,SAATA,MAAMA,CAAAE,IAAA,EAA2E;EAAA,IAArEC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEP,MAAM,GAAAM,IAAA,CAANN,MAAM;IAAEQ,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAEC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;EACtE,oBACIhB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACf,KAAA,CAAAgB,IAAI;IAACC,SAAS,EAAEJ;EAAc,GAC1BF,MAAM,CAACO,GAAG,CAAC,UAACC,GAAG,EAAEC,QAAQ;IAAA,oBACtBvB,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAAClB,MAAA,CAAAiB,OAAK,CAACO,QAAQ;MAACC,GAAG,EAAEF;IAAS,GACzBD,GAAG,CAACD,GAAG,CAAC,UAAAK,OAAO,EAAI;MAChB,IAAMjB,KAAK,GAAGJ,YAAY,CAACC,MAAM,EAAEoB,OAAO,CAAkB;MAE5D,oBACI1B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACf,KAAA,CAAAwB,IAAI;QAACC,IAAI,EAAEC,IAAI,CAACC,KAAK,CAAC,EAAE,GAAGR,GAAG,CAACS,MAAM,CAAE;QAACN,GAAG,EAAEC;MAAQ,gBAClD1B,MAAA,CAAAiB,OAAA,CAAAC,aAAA,CAACd,aAAA,CAAA4B,YAAY;QACTvB,KAAK,EAAEA,KAAM;QACbI,IAAI,EAAEA,IAAK;QACXE,YAAY,EAAEA;MAAa,CAC9B,CACC,CAAC;IAEf,CAAC,CACW,CAAC;EAAA,CACpB,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_Fields","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["Fields.tsx"],"sourcesContent":["export * from \"@webiny/app-headless-cms-common/Fields/Fields\";\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,6 +1 @@
1
- import React from "react";
2
- interface LabelProps {
3
- children?: React.ReactNode;
4
- }
5
- declare const Label: ({ children }: LabelProps) => React.JSX.Element;
6
- export default Label;
1
+ export * from "@webiny/app-headless-cms-common/Fields/Label";
@@ -1,27 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _emotion = require("emotion");
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
- var _Typography = require("@webiny/ui/Typography");
12
- var style = {
13
- label: (0, _emotion.css)({
14
- marginBottom: "5px !important"
15
- })
16
- };
17
- var Label = function Label(_ref) {
18
- var children = _ref.children;
19
- return /*#__PURE__*/_react.default.createElement("div", {
20
- className: (0, _classnames.default)("mdc-text-field-helper-text mdc-text-field-helper-text--persistent", style.label)
21
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
22
- use: "body2"
23
- }, children));
24
- };
25
- var _default = exports.default = Label;
6
+ var _Label = require("@webiny/app-headless-cms-common/Fields/Label");
7
+ Object.keys(_Label).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _Label[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _Label[key];
14
+ }
15
+ });
16
+ });
26
17
 
27
18
  //# sourceMappingURL=Label.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_classnames","_Typography","style","label","css","marginBottom","Label","_ref","children","default","createElement","className","classNames","Typography","use","_default","exports"],"sources":["Label.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nconst style = {\n label: css({\n marginBottom: \"5px !important\"\n })\n};\n\ninterface LabelProps {\n children?: React.ReactNode;\n}\n\nconst Label = ({ children }: LabelProps) => (\n <div\n className={classNames(\n \"mdc-text-field-helper-text mdc-text-field-helper-text--persistent\",\n style.label\n )}\n >\n <Typography use={\"body2\"}>{children}</Typography>\n </div>\n);\n\nexport default Label;\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAEA,IAAMI,KAAK,GAAG;EACVC,KAAK,EAAE,IAAAC,YAAG,EAAC;IACPC,YAAY,EAAE;EAClB,CAAC;AACL,CAAC;AAMD,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAAC,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAAA,oBACrBZ,MAAA,CAAAa,OAAA,CAAAC,aAAA;IACIC,SAAS,EAAE,IAAAC,mBAAU,EACjB,mEAAmE,EACnEV,KAAK,CAACC,KACV;EAAE,gBAEFP,MAAA,CAAAa,OAAA,CAAAC,aAAA,CAACT,WAAA,CAAAY,UAAU;IAACC,GAAG,EAAE;EAAQ,GAAEN,QAAqB,CAC/C,CAAC;AAAA,CACT;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAP,OAAA,GAEaH,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["_Label","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["Label.tsx"],"sourcesContent":["export * from \"@webiny/app-headless-cms-common/Fields/Label\";\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,18 +1 @@
1
- import React from "react";
2
- declare global {
3
- namespace JSX {
4
- interface IntrinsicElements {
5
- "hcms-field-validation": {
6
- "data-path": string;
7
- "data-field-type": string;
8
- "data-field-multiple-values": string;
9
- "data-field-renderer": string;
10
- style: React.CSSProperties;
11
- children: React.ReactNode;
12
- };
13
- }
14
- }
15
- }
16
- export declare const createValidationContainer: (path: string) => ({ children }: {
17
- children: React.ReactNode;
18
- }) => React.JSX.Element;
1
+ export * from "@webiny/app-headless-cms-common/createValidationContainer";
@@ -1,31 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.createValidationContainer = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _ModelFieldProvider = require("../ModelFieldProvider");
10
- var ValidationContainerStyles = {
11
- display: "inherit"
12
- };
13
- var createValidationContainer = exports.createValidationContainer = function createValidationContainer(path) {
14
- return function ValidationContainer(_ref) {
15
- var children = _ref.children;
16
- var _useModelField = (0, _ModelFieldProvider.useModelField)(),
17
- field = _useModelField.field;
18
- if (field.multipleValues === undefined) {
19
- field.multipleValues = false;
6
+ var _createValidationContainer = require("@webiny/app-headless-cms-common/createValidationContainer");
7
+ Object.keys(_createValidationContainer).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _createValidationContainer[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _createValidationContainer[key];
20
14
  }
21
- return /*#__PURE__*/_react.default.createElement("hcms-field-validation", {
22
- style: ValidationContainerStyles,
23
- "data-path": path,
24
- "data-field-type": field.type,
25
- "data-field-multiple-values": String(field.multipleValues),
26
- "data-field-renderer": String(field.renderer.name)
27
- }, children);
28
- };
29
- };
15
+ });
16
+ });
30
17
 
31
18
  //# sourceMappingURL=createValidationContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_ModelFieldProvider","ValidationContainerStyles","display","createValidationContainer","exports","path","ValidationContainer","_ref","children","_useModelField","useModelField","field","multipleValues","undefined","default","createElement","style","type","String","renderer","name"],"sources":["createValidationContainer.tsx"],"sourcesContent":["import React from \"react\";\nimport { useModelField } from \"~/admin/components/ModelFieldProvider\";\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-field-validation\": {\n \"data-path\": string;\n \"data-field-type\": string;\n \"data-field-multiple-values\": string;\n \"data-field-renderer\": string;\n style: React.CSSProperties;\n children: React.ReactNode;\n };\n }\n }\n}\n\nconst ValidationContainerStyles = { display: \"inherit\" };\n\nexport const createValidationContainer = (path: string) => {\n return function ValidationContainer({ children }: { children: React.ReactNode }) {\n const { field } = useModelField();\n\n if (field.multipleValues === undefined) {\n field.multipleValues = false;\n }\n\n return (\n <hcms-field-validation\n style={ValidationContainerStyles}\n data-path={path}\n data-field-type={field.type}\n data-field-multiple-values={String(field.multipleValues)}\n data-field-renderer={String(field.renderer.name)}\n >\n {children}\n </hcms-field-validation>\n );\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAkBA,IAAME,yBAAyB,GAAG;EAAEC,OAAO,EAAE;AAAU,CAAC;AAEjD,IAAMC,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAIE,IAAY,EAAK;EACvD,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAA8C;IAAA,IAA3CC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAC1C,IAAAC,cAAA,GAAkB,IAAAC,iCAAa,EAAC,CAAC;MAAzBC,KAAK,GAAAF,cAAA,CAALE,KAAK;IAEb,IAAIA,KAAK,CAACC,cAAc,KAAKC,SAAS,EAAE;MACpCF,KAAK,CAACC,cAAc,GAAG,KAAK;IAChC;IAEA,oBACIf,MAAA,CAAAiB,OAAA,CAAAC,aAAA;MACIC,KAAK,EAAEf,yBAA0B;MACjC,aAAWI,IAAK;MAChB,mBAAiBM,KAAK,CAACM,IAAK;MAC5B,8BAA4BC,MAAM,CAACP,KAAK,CAACC,cAAc,CAAE;MACzD,uBAAqBM,MAAM,CAACP,KAAK,CAACQ,QAAQ,CAACC,IAAI;IAAE,GAEhDZ,QACkB,CAAC;EAEhC,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_createValidationContainer","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["createValidationContainer.tsx"],"sourcesContent":["export * from \"@webiny/app-headless-cms-common/createValidationContainer\";\n"],"mappings":";;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,0BAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,0BAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,0BAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1,9 +1 @@
1
- import { BindComponent } from "../../../types";
2
- interface UseBindProps {
3
- Bind: BindComponent;
4
- }
5
- export interface GetBindCallable {
6
- (index?: number): BindComponent;
7
- }
8
- export declare function useBind({ Bind }: UseBindProps): (index?: number) => BindComponent<any>;
9
- export {};
1
+ export * from "@webiny/app-headless-cms-common/Fields/useBind";
@@ -1,118 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- exports.useBind = useBind;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _form = require("@webiny/form");
13
- var _createValidators = require("../../../utils/createValidators");
14
- var _ModelFieldProvider = require("../ModelFieldProvider");
15
- var _createValidationContainer = require("./createValidationContainer");
16
- var createFieldCacheKey = function createFieldCacheKey(field) {
17
- return [field.id, field.fieldId, JSON.stringify(field.validation), JSON.stringify(field.listValidation)].join(";");
18
- };
19
- var emptyValidators = [];
20
- function useBind(_ref) {
21
- var Bind = _ref.Bind;
22
- var _useModelField = (0, _ModelFieldProvider.useModelField)(),
23
- field = _useModelField.field;
24
- var memoizedBindComponents = (0, _react.useRef)({});
25
- var cacheKey = createFieldCacheKey(field);
26
- var form = (0, _form.useForm)();
27
- return function () {
28
- var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
29
- var parentName = Bind.parentName;
30
-
31
- // If there's a parent name assigned to the given Bind component, we need to include it in the new field "name".
32
- // This allows us to have nested fields (like "object" field with nested properties)
33
- var name = [parentName, field.fieldId, index >= 0 ? index : undefined].filter(function (v) {
34
- return v !== undefined;
35
- }).join(".");
36
- var componentId = "".concat(name, ";").concat(cacheKey);
37
- if (memoizedBindComponents.current[componentId]) {
38
- return memoizedBindComponents.current[componentId];
6
+ var _useBind = require("@webiny/app-headless-cms-common/Fields/useBind");
7
+ Object.keys(_useBind).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _useBind[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _useBind[key];
39
14
  }
40
- var validators = (0, _createValidators.createValidators)(field, field.validation || emptyValidators);
41
- var listValidators = (0, _createValidators.createValidators)(field, field.listValidation || emptyValidators);
42
- var isMultipleValues = index === -1 && field.multipleValues;
43
- var inputValidators = isMultipleValues ? listValidators : validators;
44
-
45
- // We only use default values for single-value fields.
46
- var defaultValueFromSettings = !isMultipleValues ? field.settings?.defaultValue : null;
47
- memoizedBindComponents.current[componentId] = function UseBind(params) {
48
- var childName = params.name,
49
- childValidators = params.validators,
50
- children = params.children,
51
- _params$defaultValue = params.defaultValue,
52
- defaultValue = _params$defaultValue === void 0 ? defaultValueFromSettings : _params$defaultValue;
53
- var _useModelField2 = (0, _ModelFieldProvider.useModelField)(),
54
- field = _useModelField2.field;
55
- return /*#__PURE__*/_react.default.createElement(Bind, {
56
- name: childName || name,
57
- validators: childValidators || inputValidators,
58
- defaultValue: defaultValue ?? null,
59
- context: {
60
- field: field
61
- }
62
- }, function (bind) {
63
- // Multiple-values functions below.
64
- var props = (0, _objectSpread2.default)({}, bind);
65
- if (field.multipleValues && index === -1) {
66
- props.appendValue = function (newValue, index) {
67
- var currentValue = bind.value || [];
68
- var newIndex = index ?? currentValue.length;
69
- bind.onChange([].concat((0, _toConsumableArray2.default)(currentValue.slice(0, newIndex)), [newValue], (0, _toConsumableArray2.default)(currentValue.slice(newIndex))));
70
- };
71
- props.prependValue = function (newValue) {
72
- bind.onChange([newValue].concat((0, _toConsumableArray2.default)(bind.value || [])));
73
- };
74
- props.appendValues = function (newValues) {
75
- bind.onChange([].concat((0, _toConsumableArray2.default)(bind.value || []), (0, _toConsumableArray2.default)(newValues)));
76
- };
77
- props.removeValue = function (index) {
78
- if (index < 0) {
79
- return;
80
- }
81
- var value = [].concat((0, _toConsumableArray2.default)(bind.value.slice(0, index)), (0, _toConsumableArray2.default)(bind.value.slice(index + 1)));
82
- bind.onChange(value.length === 0 ? null : value);
83
-
84
- // To make sure the field is still valid, we must trigger validation.
85
- form.validateInput(field.fieldId);
86
- };
87
- props.moveValueUp = function (index) {
88
- if (index <= 0) {
89
- return;
90
- }
91
- var value = (0, _toConsumableArray2.default)(bind.value);
92
- value.splice(index, 1);
93
- value.splice(index - 1, 0, bind.value[index]);
94
- bind.onChange(value);
95
- };
96
- props.moveValueDown = function (index) {
97
- if (index >= bind.value.length) {
98
- return;
99
- }
100
- var value = (0, _toConsumableArray2.default)(bind.value);
101
- value.splice(index, 1);
102
- value.splice(index + 1, 0, bind.value[index]);
103
- bind.onChange(value);
104
- };
105
- }
106
- return typeof children === "function" ? children(props) : /*#__PURE__*/(0, _react.cloneElement)(children, props);
107
- });
108
- };
109
-
110
- // We need to keep track of current field name, to support nested fields.
111
- memoizedBindComponents.current[componentId].parentName = name;
112
- memoizedBindComponents.current[componentId].displayName = "Bind<".concat(name, ">");
113
- memoizedBindComponents.current[componentId].ValidationContainer = (0, _createValidationContainer.createValidationContainer)(name);
114
- return memoizedBindComponents.current[componentId];
115
- };
116
- }
15
+ });
16
+ });
117
17
 
118
18
  //# sourceMappingURL=useBind.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_form","_createValidators","_ModelFieldProvider","_createValidationContainer","createFieldCacheKey","field","id","fieldId","JSON","stringify","validation","listValidation","join","emptyValidators","useBind","_ref","Bind","_useModelField","useModelField","memoizedBindComponents","useRef","cacheKey","form","useForm","index","arguments","length","undefined","parentName","name","filter","v","componentId","concat","current","validators","createValidators","listValidators","isMultipleValues","multipleValues","inputValidators","defaultValueFromSettings","settings","defaultValue","UseBind","params","childName","childValidators","children","_params$defaultValue","_useModelField2","default","createElement","context","bind","props","_objectSpread2","appendValue","newValue","currentValue","value","newIndex","onChange","_toConsumableArray2","slice","prependValue","appendValues","newValues","removeValue","validateInput","moveValueUp","splice","moveValueDown","cloneElement","displayName","ValidationContainer","createValidationContainer"],"sources":["useBind.tsx"],"sourcesContent":["import React, { useRef, cloneElement } from \"react\";\nimport { Validator } from \"@webiny/validation/types\";\nimport { useForm } from \"@webiny/form\";\nimport { createValidators } from \"~/utils/createValidators\";\nimport { BindComponent, CmsModelField } from \"~/types\";\nimport { useModelField } from \"~/admin/components/ModelFieldProvider\";\nimport { createValidationContainer } from \"~/admin/components/ContentEntryForm/createValidationContainer\";\n\ninterface UseBindProps {\n Bind: BindComponent;\n}\n\ninterface UseBindParams {\n name?: string;\n validators?: Validator | Validator[];\n children?: any;\n defaultValue?: any;\n}\n\nconst createFieldCacheKey = (field: CmsModelField) => {\n return [\n field.id,\n field.fieldId,\n JSON.stringify(field.validation),\n JSON.stringify(field.listValidation)\n ].join(\";\");\n};\n\nexport interface GetBindCallable {\n (index?: number): BindComponent;\n}\n\nconst emptyValidators: Validator[] = [];\n\nexport function useBind({ Bind }: UseBindProps) {\n const { field } = useModelField();\n const memoizedBindComponents = useRef<Record<string, BindComponent>>({});\n const cacheKey = createFieldCacheKey(field);\n const form = useForm();\n\n return (index = -1) => {\n const { parentName } = Bind;\n\n // If there's a parent name assigned to the given Bind component, we need to include it in the new field \"name\".\n // This allows us to have nested fields (like \"object\" field with nested properties)\n const name = [parentName, field.fieldId, index >= 0 ? index : undefined]\n .filter(v => v !== undefined)\n .join(\".\");\n\n const componentId = `${name};${cacheKey}`;\n\n if (memoizedBindComponents.current[componentId]) {\n return memoizedBindComponents.current[componentId];\n }\n\n const validators = createValidators(field, field.validation || emptyValidators);\n const listValidators = createValidators(field, field.listValidation || emptyValidators);\n const isMultipleValues = index === -1 && field.multipleValues;\n const inputValidators = isMultipleValues ? listValidators : validators;\n\n // We only use default values for single-value fields.\n const defaultValueFromSettings = !isMultipleValues ? field.settings?.defaultValue : null;\n\n memoizedBindComponents.current[componentId] = function UseBind(params: UseBindParams) {\n const {\n name: childName,\n validators: childValidators,\n children,\n defaultValue = defaultValueFromSettings\n } = params;\n\n const { field } = useModelField();\n\n return (\n <Bind\n name={childName || name}\n validators={childValidators || inputValidators}\n defaultValue={defaultValue ?? null}\n context={{ field }}\n >\n {bind => {\n // Multiple-values functions below.\n const props = { ...bind };\n if (field.multipleValues && index === -1) {\n props.appendValue = (newValue: any, index?: number) => {\n const currentValue = bind.value || [];\n const newIndex = index ?? currentValue.length;\n\n bind.onChange([\n ...currentValue.slice(0, newIndex),\n newValue,\n ...currentValue.slice(newIndex)\n ]);\n };\n props.prependValue = (newValue: any) => {\n bind.onChange([newValue, ...(bind.value || [])]);\n };\n props.appendValues = (newValues: any[]) => {\n bind.onChange([...(bind.value || []), ...newValues]);\n };\n\n props.removeValue = (index: number) => {\n if (index < 0) {\n return;\n }\n\n const value = [\n ...bind.value.slice(0, index),\n ...bind.value.slice(index + 1)\n ];\n\n bind.onChange(value.length === 0 ? null : value);\n\n // To make sure the field is still valid, we must trigger validation.\n form.validateInput(field.fieldId);\n };\n\n props.moveValueUp = (index: number) => {\n if (index <= 0) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index - 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n\n props.moveValueDown = (index: number) => {\n if (index >= bind.value.length) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index + 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n }\n\n return typeof children === \"function\"\n ? children(props)\n : cloneElement(children, props);\n }}\n </Bind>\n );\n } as BindComponent;\n\n // We need to keep track of current field name, to support nested fields.\n memoizedBindComponents.current[componentId].parentName = name;\n memoizedBindComponents.current[componentId].displayName = `Bind<${name}>`;\n memoizedBindComponents.current[componentId].ValidationContainer =\n createValidationContainer(name);\n\n return memoizedBindComponents.current[componentId];\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_useBind","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["useBind.tsx"],"sourcesContent":["export * from \"@webiny/app-headless-cms-common/Fields/useBind\";\n"],"mappings":";;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,QAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,QAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,QAAA,CAAAK,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- export declare function useRenderPlugins(): import("@webiny/plugins/PluginsContainer").WithName<import("../../../types").CmsModelFieldRendererPlugin>[];
1
+ export * from "@webiny/app-headless-cms-common/Fields/useRenderPlugins";
@@ -3,13 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useRenderPlugins = useRenderPlugins;
7
- var _plugins = require("@webiny/plugins");
8
- var _react = require("react");
9
- function useRenderPlugins() {
10
- return (0, _react.useMemo)(function () {
11
- return _plugins.plugins.byType("cms-editor-field-renderer");
12
- }, []);
13
- }
6
+ var _useRenderPlugins = require("@webiny/app-headless-cms-common/Fields/useRenderPlugins");
7
+ Object.keys(_useRenderPlugins).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _useRenderPlugins[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _useRenderPlugins[key];
14
+ }
15
+ });
16
+ });
14
17
 
15
18
  //# sourceMappingURL=useRenderPlugins.js.map