@webiny/app-headless-cms-common 5.42.2 → 5.42.3-beta.1

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 (54) hide show
  1. package/Fields/ErrorBoundary.d.ts +23 -0
  2. package/Fields/ErrorBoundary.js +60 -0
  3. package/Fields/ErrorBoundary.js.map +1 -0
  4. package/Fields/FieldElement.d.ts +64 -0
  5. package/Fields/FieldElement.js +80 -0
  6. package/Fields/FieldElement.js.map +1 -0
  7. package/Fields/FieldElementError.d.ts +7 -0
  8. package/Fields/FieldElementError.js +33 -0
  9. package/Fields/FieldElementError.js.map +1 -0
  10. package/Fields/Fields.d.ts +11 -0
  11. package/Fields/Fields.js +45 -0
  12. package/Fields/Fields.js.map +1 -0
  13. package/Fields/Label.d.ts +6 -0
  14. package/Fields/Label.js +34 -0
  15. package/Fields/Label.js.map +1 -0
  16. package/Fields/index.d.ts +3 -0
  17. package/Fields/index.js +40 -0
  18. package/Fields/index.js.map +1 -0
  19. package/Fields/useBind.d.ts +9 -0
  20. package/Fields/useBind.js +118 -0
  21. package/Fields/useBind.js.map +1 -0
  22. package/Fields/useRenderPlugins.d.ts +1 -0
  23. package/Fields/useRenderPlugins.js +15 -0
  24. package/Fields/useRenderPlugins.js.map +1 -0
  25. package/ModelFieldProvider/ModelFieldContext.d.ts +36 -0
  26. package/ModelFieldProvider/ModelFieldContext.js +31 -0
  27. package/ModelFieldProvider/ModelFieldContext.js.map +1 -0
  28. package/ModelFieldProvider/index.d.ts +2 -0
  29. package/ModelFieldProvider/index.js +29 -0
  30. package/ModelFieldProvider/index.js.map +1 -0
  31. package/ModelFieldProvider/useModelField.d.ts +16 -0
  32. package/ModelFieldProvider/useModelField.js +37 -0
  33. package/ModelFieldProvider/useModelField.js.map +1 -0
  34. package/ModelProvider/ModelContext.d.ts +9 -0
  35. package/ModelProvider/ModelContext.js +18 -0
  36. package/ModelProvider/ModelContext.js.map +1 -0
  37. package/ModelProvider/index.d.ts +2 -0
  38. package/ModelProvider/index.js +29 -0
  39. package/ModelProvider/index.js.map +1 -0
  40. package/ModelProvider/useModel.d.ts +9 -0
  41. package/ModelProvider/useModel.js +22 -0
  42. package/ModelProvider/useModel.js.map +1 -0
  43. package/createFieldsList.js +2 -2
  44. package/createFieldsList.js.map +1 -1
  45. package/createValidationContainer.d.ts +18 -0
  46. package/createValidationContainer.js +31 -0
  47. package/createValidationContainer.js.map +1 -0
  48. package/createValidators.d.ts +3 -0
  49. package/createValidators.js +62 -0
  50. package/createValidators.js.map +1 -0
  51. package/index.d.ts +5 -0
  52. package/index.js +55 -0
  53. package/index.js.map +1 -1
  54. package/package.json +17 -8
@@ -0,0 +1,23 @@
1
+ import React, { ErrorInfo } from "react";
2
+ import type { CmsModelField } from "../types";
3
+ type State = {
4
+ hasError: true;
5
+ error: Error;
6
+ } | {
7
+ hasError: false;
8
+ error: undefined;
9
+ };
10
+ interface Props {
11
+ field: CmsModelField;
12
+ [key: string]: any;
13
+ }
14
+ export declare class ErrorBoundary extends React.Component<Props, State> {
15
+ constructor(props: Props);
16
+ static getDerivedStateFromError(error: Error): {
17
+ hasError: boolean;
18
+ error: Error;
19
+ };
20
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
21
+ render(): any;
22
+ }
23
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.ErrorBoundary = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _FieldElementError = require("./FieldElementError");
14
+ var ErrorBoundary = exports.ErrorBoundary = /*#__PURE__*/function (_React$Component) {
15
+ function ErrorBoundary(props) {
16
+ var _this;
17
+ (0, _classCallCheck2.default)(this, ErrorBoundary);
18
+ _this = (0, _callSuper2.default)(this, ErrorBoundary, [props]);
19
+ _this.state = {
20
+ hasError: false,
21
+ error: undefined
22
+ };
23
+ return _this;
24
+ }
25
+ (0, _inherits2.default)(ErrorBoundary, _React$Component);
26
+ return (0, _createClass2.default)(ErrorBoundary, [{
27
+ key: "componentDidCatch",
28
+ value: function componentDidCatch(error, errorInfo) {
29
+ var field = this.props.field;
30
+ if (!field) {
31
+ return;
32
+ }
33
+ console.groupCollapsed("%cFIELD ERROR%c: An error occurred while rendering model field \"".concat(field.fieldId, "\" (").concat(field.id, ") of type \"").concat(field.type, "\"."), "color:red", "color:default");
34
+ console.log("Field definition", field);
35
+ console.error(error, errorInfo);
36
+ console.groupEnd();
37
+ }
38
+ }, {
39
+ key: "render",
40
+ value: function render() {
41
+ if (this.state.hasError) {
42
+ return /*#__PURE__*/_react.default.createElement(_FieldElementError.FieldElementError, {
43
+ title: "Error: ".concat(this.state.error.message),
44
+ description: "See developer console for more details."
45
+ });
46
+ }
47
+ return this.props.children;
48
+ }
49
+ }], [{
50
+ key: "getDerivedStateFromError",
51
+ value: function getDerivedStateFromError(error) {
52
+ return {
53
+ hasError: true,
54
+ error: error
55
+ };
56
+ }
57
+ }]);
58
+ }(_react.default.Component);
59
+
60
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_FieldElementError","ErrorBoundary","exports","_React$Component","props","_this","_classCallCheck2","default","_callSuper2","state","hasError","error","undefined","_inherits2","_createClass2","key","value","componentDidCatch","errorInfo","field","console","groupCollapsed","concat","fieldId","id","type","log","groupEnd","render","createElement","FieldElementError","title","message","description","children","getDerivedStateFromError","React","Component"],"sources":["ErrorBoundary.tsx"],"sourcesContent":["import React, { ErrorInfo } from \"react\";\nimport type { CmsModelField } from \"~/types\";\nimport { FieldElementError } from \"./FieldElementError\";\n\ntype State =\n | {\n hasError: true;\n error: Error;\n }\n | { hasError: false; error: undefined };\n\ninterface Props {\n field: CmsModelField;\n [key: string]: any;\n}\n\nexport class ErrorBoundary extends React.Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = {\n hasError: false,\n error: undefined\n };\n }\n\n static getDerivedStateFromError(error: Error) {\n return {\n hasError: true,\n error\n };\n }\n\n public override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n const { field } = this.props;\n if (!field) {\n return;\n }\n console.groupCollapsed(\n `%cFIELD ERROR%c: An error occurred while rendering model field \"${field.fieldId}\" (${field.id}) of type \"${field.type}\".`,\n \"color:red\",\n \"color:default\"\n );\n console.log(\"Field definition\", field);\n console.error(error, errorInfo);\n console.groupEnd();\n }\n\n public override render() {\n if (this.state.hasError) {\n return (\n <FieldElementError\n title={`Error: ${this.state.error.message}`}\n description={\"See developer console for more details.\"}\n />\n );\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AAAwD,IAc3CE,aAAa,GAAAC,OAAA,CAAAD,aAAA,0BAAAE,gBAAA;EACtB,SAAAF,cAAYG,KAAY,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAN,aAAA;IACtBI,KAAA,OAAAG,WAAA,CAAAD,OAAA,QAAAN,aAAA,GAAMG,KAAK;IACXC,KAAA,CAAKI,KAAK,GAAG;MACTC,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAEC;IACX,CAAC;IAAC,OAAAP,KAAA;EACN;EAAC,IAAAQ,UAAA,CAAAN,OAAA,EAAAN,aAAA,EAAAE,gBAAA;EAAA,WAAAW,aAAA,CAAAP,OAAA,EAAAN,aAAA;IAAAc,GAAA;IAAAC,KAAA,EASD,SAAgBC,iBAAiBA,CAACN,KAAY,EAAEO,SAAoB,EAAE;MAClE,IAAQC,KAAK,GAAK,IAAI,CAACf,KAAK,CAApBe,KAAK;MACb,IAAI,CAACA,KAAK,EAAE;QACR;MACJ;MACAC,OAAO,CAACC,cAAc,qEAAAC,MAAA,CACiDH,KAAK,CAACI,OAAO,UAAAD,MAAA,CAAMH,KAAK,CAACK,EAAE,kBAAAF,MAAA,CAAcH,KAAK,CAACM,IAAI,UACtH,WAAW,EACX,eACJ,CAAC;MACDL,OAAO,CAACM,GAAG,CAAC,kBAAkB,EAAEP,KAAK,CAAC;MACtCC,OAAO,CAACT,KAAK,CAACA,KAAK,EAAEO,SAAS,CAAC;MAC/BE,OAAO,CAACO,QAAQ,CAAC,CAAC;IACtB;EAAC;IAAAZ,GAAA;IAAAC,KAAA,EAED,SAAgBY,MAAMA,CAAA,EAAG;MACrB,IAAI,IAAI,CAACnB,KAAK,CAACC,QAAQ,EAAE;QACrB,oBACIb,MAAA,CAAAU,OAAA,CAAAsB,aAAA,CAAC7B,kBAAA,CAAA8B,iBAAiB;UACdC,KAAK,YAAAT,MAAA,CAAY,IAAI,CAACb,KAAK,CAACE,KAAK,CAACqB,OAAO,CAAG;UAC5CC,WAAW,EAAE;QAA0C,CAC1D,CAAC;MAEV;MAEA,OAAO,IAAI,CAAC7B,KAAK,CAAC8B,QAAQ;IAC9B;EAAC;IAAAnB,GAAA;IAAAC,KAAA,EAjCD,SAAOmB,wBAAwBA,CAACxB,KAAY,EAAE;MAC1C,OAAO;QACHD,QAAQ,EAAE,IAAI;QACdC,KAAK,EAALA;MACJ,CAAC;IACL;EAAC;AAAA,EAd8ByB,cAAK,CAACC,SAAS","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ import React from "react";
2
+ import { CmsModelField, CmsEditorContentModel, BindComponent } from "../types";
3
+ declare global {
4
+ namespace JSX {
5
+ interface IntrinsicElements {
6
+ "hcms-model-field": {
7
+ "data-id": string;
8
+ "data-type": string;
9
+ "data-field-id": string;
10
+ children: React.ReactNode;
11
+ };
12
+ }
13
+ }
14
+ }
15
+ export interface FieldElementProps {
16
+ field: CmsModelField;
17
+ Bind: BindComponent;
18
+ contentModel: CmsEditorContentModel;
19
+ }
20
+ export declare const FieldElement: (({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
21
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
22
+ originalName: string;
23
+ displayName: string;
24
+ } & {
25
+ original: (({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
26
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
27
+ originalName: string;
28
+ displayName: string;
29
+ };
30
+ originalName: string;
31
+ displayName: string;
32
+ } & {
33
+ createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
34
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
35
+ originalName: string;
36
+ displayName: string;
37
+ }>) => (props: unknown) => React.JSX.Element;
38
+ };
39
+ /**
40
+ * @deprecated Use `FieldElement` instead.
41
+ */
42
+ export declare const RenderFieldElement: (({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
43
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
44
+ originalName: string;
45
+ displayName: string;
46
+ } & {
47
+ original: (({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
48
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
49
+ originalName: string;
50
+ displayName: string;
51
+ };
52
+ originalName: string;
53
+ displayName: string;
54
+ } & {
55
+ createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ field, ...props }: FieldElementProps) => React.JSX.Element | null) & {
56
+ original: ({ field, ...props }: FieldElementProps) => React.JSX.Element | null;
57
+ originalName: string;
58
+ displayName: string;
59
+ }>) => (props: unknown) => React.JSX.Element;
60
+ };
61
+ /**
62
+ * @deprecated Use `FieldElementProps` instead.
63
+ */
64
+ export type RenderFieldElementProps = FieldElementProps;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
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 _ErrorBoundary = require("./ErrorBoundary");
19
+ var _excluded = ["field"];
20
+ var _templateObject;
21
+ var t = _i18n.i18n.ns("app-headless-cms/admin/components/content-form");
22
+ var RenderField = function RenderField(props) {
23
+ var renderPlugins = (0, _useRenderPlugins.useRenderPlugins)();
24
+ var Bind = props.Bind,
25
+ contentModel = props.contentModel;
26
+ var _useModelField = (0, _ModelFieldProvider.useModelField)(),
27
+ field = _useModelField.field;
28
+ var getBind = (0, _useBind.useBind)({
29
+ Bind: Bind
30
+ });
31
+ if (typeof field.renderer === "function") {
32
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, field.renderer({
33
+ field: field,
34
+ getBind: getBind,
35
+ Label: _Label.default,
36
+ contentModel: contentModel
37
+ }));
38
+ }
39
+ var renderPlugin = renderPlugins.find(function (plugin) {
40
+ return plugin.renderer.rendererName === (0, _get.default)(field, "renderer.name");
41
+ });
42
+ if (!renderPlugin) {
43
+ return t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Cannot render \"{fieldName}\" field - field renderer missing."])))({
44
+ fieldName: /*#__PURE__*/_react.default.createElement("strong", null, field.fieldId)
45
+ });
46
+ }
47
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderPlugin.renderer.render({
48
+ field: field,
49
+ getBind: getBind,
50
+ Label: _Label.default,
51
+ contentModel: contentModel
52
+ }));
53
+ };
54
+ var FieldElement = exports.FieldElement = (0, _appAdmin.makeDecoratable)("FieldElement", function (_ref) {
55
+ var field = _ref.field,
56
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
57
+ if (!field) {
58
+ return null;
59
+ }
60
+ return /*#__PURE__*/_react.default.createElement("hcms-model-field", {
61
+ "data-id": field.id,
62
+ "data-field-id": field.fieldId,
63
+ "data-type": field.type
64
+ }, /*#__PURE__*/_react.default.createElement(_ErrorBoundary.ErrorBoundary, {
65
+ field: field
66
+ }, /*#__PURE__*/_react.default.createElement(_ModelFieldProvider.ModelFieldProvider, {
67
+ field: field
68
+ }, /*#__PURE__*/_react.default.createElement(RenderField, props))));
69
+ });
70
+
71
+ /**
72
+ * @deprecated Use `FieldElement` instead.
73
+ */
74
+ var RenderFieldElement = exports.RenderFieldElement = FieldElement;
75
+
76
+ /**
77
+ * @deprecated Use `FieldElementProps` instead.
78
+ */
79
+
80
+ //# sourceMappingURL=FieldElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_get","_appAdmin","_i18n","_Label","_useBind","_useRenderPlugins","_ModelFieldProvider","_ErrorBoundary","_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","id","type","ErrorBoundary","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 Label from \"./Label\";\nimport { useBind } from \"./useBind\";\nimport { useRenderPlugins } from \"./useRenderPlugins\";\nimport { ModelFieldProvider, useModelField } from \"../ModelFieldProvider\";\nimport { CmsModelField, CmsEditorContentModel, BindComponent } from \"~/types\";\nimport { ErrorBoundary } from \"./ErrorBoundary\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/content-form\");\n\ndeclare global {\n // eslint-disable-next-line\n namespace JSX {\n interface IntrinsicElements {\n \"hcms-model-field\": {\n \"data-id\": string;\n \"data-type\": string;\n \"data-field-id\": string;\n children: React.ReactNode;\n };\n }\n }\n}\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 if (!field) {\n return null;\n }\n\n return (\n <hcms-model-field\n data-id={field.id}\n data-field-id={field.fieldId}\n data-type={field.type}\n >\n <ErrorBoundary field={field}>\n <ModelFieldProvider field={field}>\n <RenderField {...props} />\n </ModelFieldProvider>\n </ErrorBoundary>\n </hcms-model-field>\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":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface FieldElementErrorProps {
3
+ title: string;
4
+ description: string;
5
+ }
6
+ export declare const FieldElementError: (props: FieldElementErrorProps) => React.JSX.Element | null;
7
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.FieldElementError = void 0;
8
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
11
+ var StyledError = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
12
+ target: "e11oiyxk0"
13
+ } : {
14
+ target: "e11oiyxk0",
15
+ label: "StyledError"
16
+ })(process.env.NODE_ENV === "production" ? {
17
+ name: "1ybf6v5",
18
+ styles: "border:2px solid red;background-color:#f87e7e;border-radius:5px;padding:5px 10px"
19
+ } : {
20
+ name: "1ybf6v5",
21
+ styles: "border:2px solid red;background-color:#f87e7e;border-radius:5px;padding:5px 10px",
22
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkRWxlbWVudEVycm9yLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHOEIiLCJmaWxlIjoiRmllbGRFbGVtZW50RXJyb3IudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmNvbnN0IFN0eWxlZEVycm9yID0gc3R5bGVkLmRpdmBcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4N2U3ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG5gO1xuXG5pbnRlcmZhY2UgRmllbGRFbGVtZW50RXJyb3JQcm9wcyB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5jb25zdCBzaG93RXJyb3IgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiO1xuXG5leHBvcnQgY29uc3QgRmllbGRFbGVtZW50RXJyb3IgPSAocHJvcHM6IEZpZWxkRWxlbWVudEVycm9yUHJvcHMpID0+IHtcbiAgICBpZiAoIXNob3dFcnJvcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRXJyb3I+XG4gICAgICAgICAgICA8aDU+e3Byb3BzLnRpdGxlfTwvaDU+XG4gICAgICAgICAgICA8cD57cHJvcHMuZGVzY3JpcHRpb259PC9wPlxuICAgICAgICA8L1N0eWxlZEVycm9yPlxuICAgICk7XG59O1xuIl19 */",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ });
25
+ var showError = process.env.NODE_ENV === "development";
26
+ var FieldElementError = exports.FieldElementError = function FieldElementError(props) {
27
+ if (!showError) {
28
+ return null;
29
+ }
30
+ return /*#__PURE__*/_react.default.createElement(StyledError, null, /*#__PURE__*/_react.default.createElement("h5", null, props.title), /*#__PURE__*/_react.default.createElement("p", null, props.description));
31
+ };
32
+
33
+ //# sourceMappingURL=FieldElementError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_EMOTION_STRINGIFIED_CSS_ERROR__","StyledError","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","showError","FieldElementError","exports","props","createElement","title","description"],"sources":["FieldElementError.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\n\nconst StyledError = styled.div`\n border: 2px solid red;\n background-color: #f87e7e;\n border-radius: 5px;\n padding: 5px 10px;\n`;\n\ninterface FieldElementErrorProps {\n title: string;\n description: string;\n}\n\nconst showError = process.env.NODE_ENV === \"development\";\n\nexport const FieldElementError = (props: FieldElementErrorProps) => {\n if (!showError) {\n return null;\n }\n\n return (\n <StyledError>\n <h5>{props.title}</h5>\n <p>{props.description}</p>\n </StyledError>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAC,iCAAA;AAG1B,IAAMC,WAAW,oBAAAC,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAKhB;AAOD,IAAMa,SAAS,GAAGT,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa;AAEjD,IAAMQ,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIE,KAA6B,EAAK;EAChE,IAAI,CAACH,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,oBACIhB,MAAA,CAAAM,OAAA,CAAAc,aAAA,CAAChB,WAAW,qBACRJ,MAAA,CAAAM,OAAA,CAAAc,aAAA,aAAKD,KAAK,CAACE,KAAU,CAAC,eACtBrB,MAAA,CAAAM,OAAA,CAAAc,aAAA,YAAID,KAAK,CAACG,WAAe,CAChB,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { 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 {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
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 _FieldElementError = require("./FieldElementError");
12
+ var getFieldById = function getFieldById(fields, id) {
13
+ return fields.find(function (field) {
14
+ return field.id === id;
15
+ }) || null;
16
+ };
17
+ var Fields = exports.Fields = function Fields(_ref) {
18
+ var Bind = _ref.Bind,
19
+ fields = _ref.fields,
20
+ layout = _ref.layout,
21
+ contentModel = _ref.contentModel,
22
+ gridClassName = _ref.gridClassName;
23
+ return /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
24
+ className: gridClassName
25
+ }, layout.map(function (row, rowIndex) {
26
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
27
+ key: rowIndex
28
+ }, row.map(function (id) {
29
+ var field = getFieldById(fields, id);
30
+ return /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
31
+ span: Math.floor(12 / row.length),
32
+ key: id
33
+ }, field ? /*#__PURE__*/_react.default.createElement(_FieldElement.FieldElement, {
34
+ field: field,
35
+ Bind: Bind,
36
+ contentModel: contentModel
37
+ }) : /*#__PURE__*/_react.default.createElement(_FieldElementError.FieldElementError, {
38
+ title: "Missing field with id \"".concat(id, "\"!"),
39
+ description: "Make sure field layout contains the correct field ids (hint: check for typos)."
40
+ }));
41
+ }));
42
+ }));
43
+ };
44
+
45
+ //# sourceMappingURL=Fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Grid","_FieldElement","_FieldElementError","getFieldById","fields","id","find","field","Fields","exports","_ref","Bind","layout","contentModel","gridClassName","default","createElement","Grid","className","map","row","rowIndex","Fragment","key","Cell","span","Math","floor","length","FieldElement","FieldElementError","title","concat","description"],"sources":["Fields.tsx"],"sourcesContent":["import React from \"react\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { FieldElement } from \"./FieldElement\";\nimport { FieldElementError } from \"./FieldElementError\";\nimport type {\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(id => {\n const field = getFieldById(fields, id) as CmsModelField;\n\n return (\n <Cell span={Math.floor(12 / row.length)} key={id}>\n {field ? (\n <FieldElement\n field={field}\n Bind={Bind}\n contentModel={contentModel}\n />\n ) : (\n <FieldElementError\n title={`Missing field with id \"${id}\"!`}\n description={\n \"Make sure field layout contains the correct field ids (hint: check for typos).\"\n }\n />\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;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAgBA,IAAMI,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,oBACIjB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAAChB,KAAA,CAAAiB,IAAI;IAACC,SAAS,EAAEJ;EAAc,GAC1BF,MAAM,CAACO,GAAG,CAAC,UAACC,GAAG,EAAEC,QAAQ;IAAA,oBACtBxB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACnB,MAAA,CAAAkB,OAAK,CAACO,QAAQ;MAACC,GAAG,EAAEF;IAAS,GACzBD,GAAG,CAACD,GAAG,CAAC,UAAAd,EAAE,EAAI;MACX,IAAME,KAAK,GAAGJ,YAAY,CAACC,MAAM,EAAEC,EAAE,CAAkB;MAEvD,oBACIR,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAAChB,KAAA,CAAAwB,IAAI;QAACC,IAAI,EAAEC,IAAI,CAACC,KAAK,CAAC,EAAE,GAAGP,GAAG,CAACQ,MAAM,CAAE;QAACL,GAAG,EAAElB;MAAG,GAC5CE,KAAK,gBACFV,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACf,aAAA,CAAA4B,YAAY;QACTtB,KAAK,EAAEA,KAAM;QACbI,IAAI,EAAEA,IAAK;QACXE,YAAY,EAAEA;MAAa,CAC9B,CAAC,gBAEFhB,MAAA,CAAAkB,OAAA,CAAAC,aAAA,CAACd,kBAAA,CAAA4B,iBAAiB;QACdC,KAAK,6BAAAC,MAAA,CAA4B3B,EAAE,QAAK;QACxC4B,WAAW,EACP;MACH,CACJ,CAEH,CAAC;IAEf,CAAC,CACW,CAAC;EAAA,CACpB,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface LabelProps {
3
+ children?: React.ReactNode;
4
+ }
5
+ export declare const Label: ({ children }: LabelProps) => React.JSX.Element;
6
+ export default Label;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Label = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@emotion/react");
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _Typography = require("@webiny/ui/Typography");
12
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
13
+ var style = {
14
+ label: process.env.NODE_ENV === "production" ? {
15
+ name: "1ngxi7",
16
+ styles: "margin-bottom:5px !important"
17
+ } : {
18
+ name: "1a8b4f-label",
19
+ styles: "margin-bottom:5px !important;label:label;",
20
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxhYmVsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNVyIsImZpbGUiOiJMYWJlbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuXG5jb25zdCBzdHlsZSA9IHtcbiAgICBsYWJlbDogY3NzKHtcbiAgICAgICAgbWFyZ2luQm90dG9tOiBcIjVweCAhaW1wb3J0YW50XCJcbiAgICB9KVxufTtcblxuaW50ZXJmYWNlIExhYmVsUHJvcHMge1xuICAgIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgTGFiZWwgPSAoeyBjaGlsZHJlbiB9OiBMYWJlbFByb3BzKSA9PiAoXG4gICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICBcIm1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0IG1kYy10ZXh0LWZpZWxkLWhlbHBlci10ZXh0LS1wZXJzaXN0ZW50XCIsXG4gICAgICAgICAgICBzdHlsZS5sYWJlbFxuICAgICAgICApfVxuICAgID5cbiAgICAgICAgPFR5cG9ncmFwaHkgdXNlPXtcImJvZHkyXCJ9PntjaGlsZHJlbn08L1R5cG9ncmFwaHk+XG4gICAgPC9kaXY+XG4pO1xuXG5leHBvcnQgZGVmYXVsdCBMYWJlbDtcbiJdfQ== */",
21
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
22
+ }
23
+ };
24
+ var Label = exports.Label = function Label(_ref) {
25
+ var children = _ref.children;
26
+ return /*#__PURE__*/_react.default.createElement("div", {
27
+ className: (0, _classnames.default)("mdc-text-field-helper-text mdc-text-field-helper-text--persistent", style.label)
28
+ }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
29
+ use: "body2"
30
+ }, children));
31
+ };
32
+ var _default = exports.default = Label;
33
+
34
+ //# sourceMappingURL=Label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_react2","_classnames","_Typography","_EMOTION_STRINGIFIED_CSS_ERROR__","style","label","process","env","NODE_ENV","name","styles","map","toString","Label","exports","_ref","children","default","createElement","className","classNames","Typography","use","_default"],"sources":["Label.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"@emotion/react\";\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\nexport const 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,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAmD,SAAAI,iCAAA;AAEnD,IAAMC,KAAK,GAAG;EACVC,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;IAAAC,IAAA;IAAAC,MAAA;EAAA;IAAAD,IAAA;IAAAC,MAAA;IAAAC,GAAA;IAAAC,QAAA,EAAAT;EAAA;AAGT,CAAC;AAMM,IAAMU,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAAE,IAAA;EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;EAAA,oBAC5BnB,MAAA,CAAAoB,OAAA,CAAAC,aAAA;IACIC,SAAS,EAAE,IAAAC,mBAAU,EACjB,mEAAmE,EACnEhB,KAAK,CAACC,KACV;EAAE,gBAEFR,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAAChB,WAAA,CAAAmB,UAAU;IAACC,GAAG,EAAE;EAAQ,GAAEN,QAAqB,CAC/C,CAAC;AAAA,CACT;AAAC,IAAAO,QAAA,GAAAT,OAAA,CAAAG,OAAA,GAEaJ,KAAK","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export * from "./FieldElement";
2
+ export * from "./Fields";
3
+ export * from "./useBind";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _FieldElement = require("./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
+ }
15
+ });
16
+ });
17
+ var _Fields = require("./Fields");
18
+ Object.keys(_Fields).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _Fields[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _Fields[key];
25
+ }
26
+ });
27
+ });
28
+ var _useBind = require("./useBind");
29
+ Object.keys(_useBind).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _useBind[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _useBind[key];
36
+ }
37
+ });
38
+ });
39
+
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_FieldElement","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_Fields","_useBind"],"sources":["index.ts"],"sourcesContent":["export * from \"./FieldElement\";\nexport * from \"./Fields\";\nexport * from \"./useBind\";\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;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,QAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,QAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,QAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,QAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
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 {};
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
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("../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];
39
+ }
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
+ }
117
+
118
+ //# sourceMappingURL=useBind.js.map
@@ -0,0 +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 \"~/createValidators\";\nimport { BindComponent, CmsModelField } from \"~/types\";\nimport { useModelField } from \"~/ModelFieldProvider\";\nimport { createValidationContainer } from \"~/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":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AAaA,IAAMK,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAoB,EAAK;EAClD,OAAO,CACHA,KAAK,CAACC,EAAE,EACRD,KAAK,CAACE,OAAO,EACbC,IAAI,CAACC,SAAS,CAACJ,KAAK,CAACK,UAAU,CAAC,EAChCF,IAAI,CAACC,SAAS,CAACJ,KAAK,CAACM,cAAc,CAAC,CACvC,CAACC,IAAI,CAAC,GAAG,CAAC;AACf,CAAC;AAMD,IAAMC,eAA4B,GAAG,EAAE;AAEhC,SAASC,OAAOA,CAAAC,IAAA,EAAyB;EAAA,IAAtBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAC1B,IAAAC,cAAA,GAAkB,IAAAC,iCAAa,EAAC,CAAC;IAAzBb,KAAK,GAAAY,cAAA,CAALZ,KAAK;EACb,IAAMc,sBAAsB,GAAG,IAAAC,aAAM,EAAgC,CAAC,CAAC,CAAC;EACxE,IAAMC,QAAQ,GAAGjB,mBAAmB,CAACC,KAAK,CAAC;EAC3C,IAAMiB,IAAI,GAAG,IAAAC,aAAO,EAAC,CAAC;EAEtB,OAAO,YAAgB;IAAA,IAAfC,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IACd,IAAQG,UAAU,GAAKZ,IAAI,CAAnBY,UAAU;;IAElB;IACA;IACA,IAAMC,IAAI,GAAG,CAACD,UAAU,EAAEvB,KAAK,CAACE,OAAO,EAAEiB,KAAK,IAAI,CAAC,GAAGA,KAAK,GAAGG,SAAS,CAAC,CACnEG,MAAM,CAAC,UAAAC,CAAC;MAAA,OAAIA,CAAC,KAAKJ,SAAS;IAAA,EAAC,CAC5Bf,IAAI,CAAC,GAAG,CAAC;IAEd,IAAMoB,WAAW,MAAAC,MAAA,CAAMJ,IAAI,OAAAI,MAAA,CAAIZ,QAAQ,CAAE;IAEzC,IAAIF,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC,EAAE;MAC7C,OAAOb,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC;IACtD;IAEA,IAAMG,UAAU,GAAG,IAAAC,kCAAgB,EAAC/B,KAAK,EAAEA,KAAK,CAACK,UAAU,IAAIG,eAAe,CAAC;IAC/E,IAAMwB,cAAc,GAAG,IAAAD,kCAAgB,EAAC/B,KAAK,EAAEA,KAAK,CAACM,cAAc,IAAIE,eAAe,CAAC;IACvF,IAAMyB,gBAAgB,GAAGd,KAAK,KAAK,CAAC,CAAC,IAAInB,KAAK,CAACkC,cAAc;IAC7D,IAAMC,eAAe,GAAGF,gBAAgB,GAAGD,cAAc,GAAGF,UAAU;;IAEtE;IACA,IAAMM,wBAAwB,GAAG,CAACH,gBAAgB,GAAGjC,KAAK,CAACqC,QAAQ,EAAEC,YAAY,GAAG,IAAI;IAExFxB,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC,GAAG,SAASY,OAAOA,CAACC,MAAqB,EAAE;MAClF,IACUC,SAAS,GAIfD,MAAM,CAJNhB,IAAI;QACQkB,eAAe,GAG3BF,MAAM,CAHNV,UAAU;QACVa,QAAQ,GAERH,MAAM,CAFNG,QAAQ;QAAAC,oBAAA,GAERJ,MAAM,CADNF,YAAY;QAAZA,YAAY,GAAAM,oBAAA,cAAGR,wBAAwB,GAAAQ,oBAAA;MAG3C,IAAAC,eAAA,GAAkB,IAAAhC,iCAAa,EAAC,CAAC;QAAzBb,KAAK,GAAA6C,eAAA,CAAL7C,KAAK;MAEb,oBACIR,MAAA,CAAAsD,OAAA,CAAAC,aAAA,CAACpC,IAAI;QACDa,IAAI,EAAEiB,SAAS,IAAIjB,IAAK;QACxBM,UAAU,EAAEY,eAAe,IAAIP,eAAgB;QAC/CG,YAAY,EAAEA,YAAY,IAAI,IAAK;QACnCU,OAAO,EAAE;UAAEhD,KAAK,EAALA;QAAM;MAAE,GAElB,UAAAiD,IAAI,EAAI;QACL;QACA,IAAMC,KAAK,OAAAC,cAAA,CAAAL,OAAA,MAAQG,IAAI,CAAE;QACzB,IAAIjD,KAAK,CAACkC,cAAc,IAAIf,KAAK,KAAK,CAAC,CAAC,EAAE;UACtC+B,KAAK,CAACE,WAAW,GAAG,UAACC,QAAa,EAAElC,KAAc,EAAK;YACnD,IAAMmC,YAAY,GAAGL,IAAI,CAACM,KAAK,IAAI,EAAE;YACrC,IAAMC,QAAQ,GAAGrC,KAAK,IAAImC,YAAY,CAACjC,MAAM;YAE7C4B,IAAI,CAACQ,QAAQ,IAAA7B,MAAA,KAAA8B,mBAAA,CAAAZ,OAAA,EACNQ,YAAY,CAACK,KAAK,CAAC,CAAC,EAAEH,QAAQ,CAAC,IAClCH,QAAQ,OAAAK,mBAAA,CAAAZ,OAAA,EACLQ,YAAY,CAACK,KAAK,CAACH,QAAQ,CAAC,EAClC,CAAC;UACN,CAAC;UACDN,KAAK,CAACU,YAAY,GAAG,UAACP,QAAa,EAAK;YACpCJ,IAAI,CAACQ,QAAQ,EAAEJ,QAAQ,EAAAzB,MAAA,KAAA8B,mBAAA,CAAAZ,OAAA,EAAMG,IAAI,CAACM,KAAK,IAAI,EAAE,EAAE,CAAC;UACpD,CAAC;UACDL,KAAK,CAACW,YAAY,GAAG,UAACC,SAAgB,EAAK;YACvCb,IAAI,CAACQ,QAAQ,IAAA7B,MAAA,KAAA8B,mBAAA,CAAAZ,OAAA,EAAMG,IAAI,CAACM,KAAK,IAAI,EAAE,OAAAG,mBAAA,CAAAZ,OAAA,EAAMgB,SAAS,EAAC,CAAC;UACxD,CAAC;UAEDZ,KAAK,CAACa,WAAW,GAAG,UAAC5C,KAAa,EAAK;YACnC,IAAIA,KAAK,GAAG,CAAC,EAAE;cACX;YACJ;YAEA,IAAMoC,KAAK,MAAA3B,MAAA,KAAA8B,mBAAA,CAAAZ,OAAA,EACJG,IAAI,CAACM,KAAK,CAACI,KAAK,CAAC,CAAC,EAAExC,KAAK,CAAC,OAAAuC,mBAAA,CAAAZ,OAAA,EAC1BG,IAAI,CAACM,KAAK,CAACI,KAAK,CAACxC,KAAK,GAAG,CAAC,CAAC,EACjC;YAED8B,IAAI,CAACQ,QAAQ,CAACF,KAAK,CAAClC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAGkC,KAAK,CAAC;;YAEhD;YACAtC,IAAI,CAAC+C,aAAa,CAAChE,KAAK,CAACE,OAAO,CAAC;UACrC,CAAC;UAEDgD,KAAK,CAACe,WAAW,GAAG,UAAC9C,KAAa,EAAK;YACnC,IAAIA,KAAK,IAAI,CAAC,EAAE;cACZ;YACJ;YAEA,IAAMoC,KAAK,OAAAG,mBAAA,CAAAZ,OAAA,EAAOG,IAAI,CAACM,KAAK,CAAC;YAC7BA,KAAK,CAACW,MAAM,CAAC/C,KAAK,EAAE,CAAC,CAAC;YACtBoC,KAAK,CAACW,MAAM,CAAC/C,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE8B,IAAI,CAACM,KAAK,CAACpC,KAAK,CAAC,CAAC;YAE7C8B,IAAI,CAACQ,QAAQ,CAACF,KAAK,CAAC;UACxB,CAAC;UAEDL,KAAK,CAACiB,aAAa,GAAG,UAAChD,KAAa,EAAK;YACrC,IAAIA,KAAK,IAAI8B,IAAI,CAACM,KAAK,CAAClC,MAAM,EAAE;cAC5B;YACJ;YAEA,IAAMkC,KAAK,OAAAG,mBAAA,CAAAZ,OAAA,EAAOG,IAAI,CAACM,KAAK,CAAC;YAC7BA,KAAK,CAACW,MAAM,CAAC/C,KAAK,EAAE,CAAC,CAAC;YACtBoC,KAAK,CAACW,MAAM,CAAC/C,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE8B,IAAI,CAACM,KAAK,CAACpC,KAAK,CAAC,CAAC;YAE7C8B,IAAI,CAACQ,QAAQ,CAACF,KAAK,CAAC;UACxB,CAAC;QACL;QAEA,OAAO,OAAOZ,QAAQ,KAAK,UAAU,GAC/BA,QAAQ,CAACO,KAAK,CAAC,gBACf,IAAAkB,mBAAY,EAACzB,QAAQ,EAAEO,KAAK,CAAC;MACvC,CACE,CAAC;IAEf,CAAkB;;IAElB;IACApC,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC,CAACJ,UAAU,GAAGC,IAAI;IAC7DV,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC,CAAC0C,WAAW,WAAAzC,MAAA,CAAWJ,IAAI,MAAG;IACzEV,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC,CAAC2C,mBAAmB,GAC3D,IAAAC,oDAAyB,EAAC/C,IAAI,CAAC;IAEnC,OAAOV,sBAAsB,CAACe,OAAO,CAACF,WAAW,CAAC;EACtD,CAAC;AACL","ignoreList":[]}