@luomus/laji-form-builder 1.0.28

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 (92) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/LICENSE +21 -0
  3. package/README.md +114 -0
  4. package/dist/laji-form-builder.js +2 -0
  5. package/dist/laji-form-builder.js.LICENSE.txt +82 -0
  6. package/dist/main.js +2 -0
  7. package/dist/main.js.LICENSE.txt +86 -0
  8. package/dist/styles.css +4 -0
  9. package/lib/api-client.d.ts +20 -0
  10. package/lib/api-client.js +60 -0
  11. package/lib/api-client.js.map +1 -0
  12. package/lib/client/LajiFormInterface.d.ts +44 -0
  13. package/lib/client/LajiFormInterface.js +39 -0
  14. package/lib/client/LajiFormInterface.js.map +1 -0
  15. package/lib/client/app.d.ts +9 -0
  16. package/lib/client/app.js +39 -0
  17. package/lib/client/app.js.map +1 -0
  18. package/lib/client/components/Builder.d.ts +101 -0
  19. package/lib/client/components/Builder.js +357 -0
  20. package/lib/client/components/Builder.js.map +1 -0
  21. package/lib/client/components/Context.d.ts +18 -0
  22. package/lib/client/components/Context.js +25 -0
  23. package/lib/client/components/Context.js.map +1 -0
  24. package/lib/client/components/Editor/BasicEditor.d.ts +29 -0
  25. package/lib/client/components/Editor/BasicEditor.js +185 -0
  26. package/lib/client/components/Editor/BasicEditor.js.map +1 -0
  27. package/lib/client/components/Editor/DiffViewer.d.ts +17 -0
  28. package/lib/client/components/Editor/DiffViewer.js +134 -0
  29. package/lib/client/components/Editor/DiffViewer.js.map +1 -0
  30. package/lib/client/components/Editor/Editor.d.ts +111 -0
  31. package/lib/client/components/Editor/Editor.js +344 -0
  32. package/lib/client/components/Editor/Editor.js.map +1 -0
  33. package/lib/client/components/Editor/ElemPicker.d.ts +13 -0
  34. package/lib/client/components/Editor/ElemPicker.js +170 -0
  35. package/lib/client/components/Editor/ElemPicker.js.map +1 -0
  36. package/lib/client/components/Editor/FieldEditor.d.ts +41 -0
  37. package/lib/client/components/Editor/FieldEditor.js +125 -0
  38. package/lib/client/components/Editor/FieldEditor.js.map +1 -0
  39. package/lib/client/components/Editor/Fields.d.ts +27 -0
  40. package/lib/client/components/Editor/Fields.js +185 -0
  41. package/lib/client/components/Editor/Fields.js.map +1 -0
  42. package/lib/client/components/Editor/OptionsEditor.d.ts +20 -0
  43. package/lib/client/components/Editor/OptionsEditor.js +207 -0
  44. package/lib/client/components/Editor/OptionsEditor.js.map +1 -0
  45. package/lib/client/components/Editor/UiSchemaEditor.d.ts +22 -0
  46. package/lib/client/components/Editor/UiSchemaEditor.js +368 -0
  47. package/lib/client/components/Editor/UiSchemaEditor.js.map +1 -0
  48. package/lib/client/components/LajiForm.d.ts +4 -0
  49. package/lib/client/components/LajiForm.js +32 -0
  50. package/lib/client/components/LajiForm.js.map +1 -0
  51. package/lib/client/components/Wizard.d.ts +11 -0
  52. package/lib/client/components/Wizard.js +364 -0
  53. package/lib/client/components/Wizard.js.map +1 -0
  54. package/lib/client/components/components.d.ts +103 -0
  55. package/lib/client/components/components.js +321 -0
  56. package/lib/client/components/components.js.map +1 -0
  57. package/lib/client/services/change-handler-service.d.ts +57 -0
  58. package/lib/client/services/change-handler-service.js +150 -0
  59. package/lib/client/services/change-handler-service.js.map +1 -0
  60. package/lib/client/services/form-service.d.ts +21 -0
  61. package/lib/client/services/form-service.js +77 -0
  62. package/lib/client/services/form-service.js.map +1 -0
  63. package/lib/client/styles.css +227 -0
  64. package/lib/client/styles.d.ts +2 -0
  65. package/lib/client/styles.js +5 -0
  66. package/lib/client/styles.js.map +1 -0
  67. package/lib/client/themes/bs3.d.ts +3 -0
  68. package/lib/client/themes/bs3.js +49 -0
  69. package/lib/client/themes/bs3.js.map +1 -0
  70. package/lib/client/themes/theme.d.ts +28 -0
  71. package/lib/client/themes/theme.js +14 -0
  72. package/lib/client/themes/theme.js.map +1 -0
  73. package/lib/client/translations.json +272 -0
  74. package/lib/client/utils.d.ts +63 -0
  75. package/lib/client/utils.js +370 -0
  76. package/lib/client/utils.js.map +1 -0
  77. package/lib/model.d.ts +205 -0
  78. package/lib/model.js +43 -0
  79. package/lib/model.js.map +1 -0
  80. package/lib/services/form-expander-service.d.ts +15 -0
  81. package/lib/services/form-expander-service.js +77 -0
  82. package/lib/services/form-expander-service.js.map +1 -0
  83. package/lib/services/has-cache.d.ts +8 -0
  84. package/lib/services/has-cache.js +22 -0
  85. package/lib/services/has-cache.js.map +1 -0
  86. package/lib/services/metadata-service.d.ts +23 -0
  87. package/lib/services/metadata-service.js +138 -0
  88. package/lib/services/metadata-service.js.map +1 -0
  89. package/lib/utils.d.ts +79 -0
  90. package/lib/utils.js +117 -0
  91. package/lib/utils.js.map +1 -0
  92. package/package.json +114 -0
@@ -0,0 +1,44 @@
1
+ import memoize from "memoizee";
2
+ import { Field, Widget } from "@rjsf/utils";
3
+ declare class _LajiFormInterface {
4
+ getRegistry: (() => {
5
+ fields: {
6
+ [field: string]: Field<any, import("@rjsf/utils").RJSFSchema, any>;
7
+ };
8
+ widgets: {
9
+ [field: string]: Widget<any, import("@rjsf/utils").RJSFSchema, any>;
10
+ };
11
+ }) & memoize.Memoized<() => {
12
+ fields: {
13
+ [field: string]: Field<any, import("@rjsf/utils").RJSFSchema, any>;
14
+ };
15
+ widgets: {
16
+ [field: string]: Widget<any, import("@rjsf/utils").RJSFSchema, any>;
17
+ };
18
+ }>;
19
+ walkTypesToComponents: (<T>(registryFields: {
20
+ [fieldName: string]: T;
21
+ }) => {
22
+ [fieldType: string]: {
23
+ [fieldName: string]: true;
24
+ };
25
+ }) & memoize.Memoized<(<T>(registryFields: {
26
+ [fieldName: string]: T;
27
+ }) => {
28
+ [fieldType: string]: {
29
+ [fieldName: string]: true;
30
+ };
31
+ })>;
32
+ getFieldTypes: () => {
33
+ [fieldType: string]: {
34
+ [fieldName: string]: true;
35
+ };
36
+ };
37
+ getWidgetTypes: () => {
38
+ [fieldType: string]: {
39
+ [fieldName: string]: true;
40
+ };
41
+ };
42
+ }
43
+ declare const LajiFormInterface: _LajiFormInterface;
44
+ export default LajiFormInterface;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const memoizee_1 = __importDefault(require("memoizee"));
7
+ const LajiForm_1 = __importDefault(require("@luomus/laji-form/lib/components/LajiForm"));
8
+ const core_1 = __importDefault(require("@rjsf/core"));
9
+ const validator_ajv6_1 = __importDefault(require("@rjsf/validator-ajv6"));
10
+ const utils_1 = require("./utils");
11
+ class _LajiFormInterface {
12
+ constructor() {
13
+ this.getRegistry = memoizee_1.default(() => {
14
+ const lajiForm = new LajiForm_1.default({ schema: {}, uiSchema: {} });
15
+ return new core_1.default({
16
+ schema: {},
17
+ uiSchema: {},
18
+ fields: lajiForm.getFields(),
19
+ widgets: lajiForm.getWidgets(),
20
+ validator: validator_ajv6_1.default
21
+ }).getRegistry();
22
+ });
23
+ this.walkTypesToComponents = memoizee_1.default((registryFields) => Object.keys(registryFields).reduce((types, field) => {
24
+ const _componentPropTypes = utils_1.getComponentPropTypes(registryFields[field]);
25
+ const _schema = utils_1.propTypesToSchema((_componentPropTypes || {}).schema || {});
26
+ const _ = (fieldTypes) => fieldTypes.reduce((_fieldTypes, fieldType) => (Object.assign(Object.assign({}, _fieldTypes), { [fieldType]: Object.assign(Object.assign({}, (_fieldTypes[fieldType] || {})), { [field]: true }) })), types);
27
+ if (_schema && _schema.type === "object" && _schema.properties.type && _schema.properties.type.enum) {
28
+ return _(_schema.properties.type.enum);
29
+ }
30
+ //console.warn(`${field} doesn't have schema type in prop types set"`)
31
+ return _(["unknown"]);
32
+ }, {}));
33
+ this.getFieldTypes = () => this.walkTypesToComponents(this.getRegistry().fields);
34
+ this.getWidgetTypes = () => this.walkTypesToComponents(this.getRegistry().widgets);
35
+ }
36
+ }
37
+ const LajiFormInterface = new _LajiFormInterface();
38
+ exports.default = LajiFormInterface;
39
+ //# sourceMappingURL=LajiFormInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LajiFormInterface.js","sourceRoot":"","sources":["../../src/client/LajiFormInterface.ts"],"names":[],"mappings":";;;;;AAAA,wDAA+B;AAC/B,yFAAiE;AACjE,sDAA8B;AAC9B,0EAA6C;AAE7C,mCAAmE;AAEnE,MAAM,kBAAkB;IAAxB;QACC,gBAAW,GAAG,kBAAO,CAAC,GAGnB,EAAE;YACJ,MAAM,QAAQ,GAAG,IAAI,kBAAQ,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;YAC1D,OAAQ,IAAI,cAAI,CAAC;gBAChB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE;gBAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE;gBAC9B,SAAS,EAAT,wBAAS;aACT,CAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC,CAAC,CAAA;QAEF,0BAAqB,GAAG,kBAAO,CAAC,CAAI,cAAwC,EACtB,EAAE,CACtD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,mBAAmB,GAAG,6BAAqB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,yBAAiB,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,UAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,iCAC9E,WAAW,KAAE,CAAC,SAAS,CAAC,kCAAM,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAE,CAAC,KAAK,CAAC,EAAE,IAAI,OAC7E,EAAE,KAAK,CAAC,CAAC;YACX,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;gBACpG,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvC;YACD,sEAAsE;YACtE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACvB,CAAC,EAAE,EAAS,CAAC,CAAC,CAAA;QAEhB,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;QACnF,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAS,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;CAAA;AACD,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACnD,kBAAgB,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BuilderProps } from "./components/Builder";
2
+ export default class BuilderWrapper {
3
+ rootElem: HTMLElement;
4
+ constructor(props: BuilderProps & {
5
+ rootElem: HTMLElement;
6
+ });
7
+ destroy: () => void;
8
+ unmount: () => void;
9
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const Builder_1 = __importDefault(require("./components/Builder"));
26
+ const React = __importStar(require("react"));
27
+ const react_dom_1 = require("react-dom");
28
+ class BuilderWrapper {
29
+ constructor(props) {
30
+ this.destroy = () => {
31
+ react_dom_1.unmountComponentAtNode(this.rootElem);
32
+ };
33
+ this.unmount = this.destroy;
34
+ this.rootElem = props.rootElem;
35
+ react_dom_1.render(React.createElement(Builder_1.default, props, null), this.rootElem);
36
+ }
37
+ }
38
+ exports.default = BuilderWrapper;
39
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/client/app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA6D;AAC7D,6CAA+B;AAC/B,yCAA2D;AAE3D,MAAqB,cAAc;IAElC,YAAY,KAA6C;QAQzD,YAAO,GAAG,GAAG,EAAE;YACd,kCAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAA;QAED,YAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAXtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,kBAAM,CACL,KAAK,CAAC,aAAa,CAAC,iBAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EACzC,IAAI,CAAC,QAAQ,CACb,CAAC;IACH,CAAC;CAOD;AAfD,iCAeC"}
@@ -0,0 +1,101 @@
1
+ import * as React from "react";
2
+ import { Notifier } from "@luomus/laji-form/lib/components/LajiForm";
3
+ import { Theme } from "@luomus/laji-form/lib/themes/theme";
4
+ import { ContextProps } from "./Context";
5
+ import { Lang, Master, SchemaFormat, ExpandedMaster } from "../../model";
6
+ import memoize from "memoizee";
7
+ import { ApiClientImplementation } from "@luomus/laji-form/lib/ApiClient";
8
+ import { ChangeEvent, MasterChangeEvent } from "../services/change-handler-service";
9
+ export interface BuilderProps {
10
+ lang: Lang;
11
+ onChange: (form: any) => void;
12
+ onLangChange: (lang: Lang) => void;
13
+ apiClient: ApiClientImplementation;
14
+ theme: Theme;
15
+ primaryDataBankFormID: string;
16
+ secondaryDataBankFormID: string;
17
+ id?: string;
18
+ notifier?: Notifier;
19
+ displaySchemaTabs?: boolean;
20
+ formApiClient?: ApiClientImplementation;
21
+ allowList?: boolean;
22
+ onSelected?: (id: string) => void;
23
+ onRemountLajiForm?: () => void;
24
+ }
25
+ export interface BuilderState {
26
+ lang: Lang;
27
+ editorHeight: number;
28
+ loading: number;
29
+ jsonEditorOpen: boolean;
30
+ id?: string;
31
+ master?: MaybeError<Master>;
32
+ expandedMaster?: MaybeError<ExpandedMaster>;
33
+ tmpMaster?: MaybeError<Master>;
34
+ tmpExpandedMaster?: MaybeError<ExpandedMaster>;
35
+ schemaFormat?: MaybeError<SchemaFormat>;
36
+ errorMsg?: string;
37
+ saving?: boolean;
38
+ }
39
+ declare class BuilderError extends Error {
40
+ }
41
+ export declare type MaybeError<T> = T | BuilderError;
42
+ export declare function isValid<T>(maybeError: MaybeError<T>): maybeError is T;
43
+ export default class Builder extends React.PureComponent<BuilderProps, BuilderState> {
44
+ state: BuilderState;
45
+ private apiClient;
46
+ private formApiClient?;
47
+ private metadataService;
48
+ private formService;
49
+ private formLinkerService;
50
+ private changeHandlerService;
51
+ private notifier;
52
+ static defaultProps: {
53
+ lang: Lang;
54
+ displaySchemaTabs: boolean;
55
+ allowList: boolean;
56
+ };
57
+ setStateAsync: (params: unknown) => Promise<unknown>;
58
+ constructor(props: BuilderProps);
59
+ componentDidMount(): void;
60
+ componentWillUnmount(): void;
61
+ componentDidUpdate({ lang: prevLang }: BuilderProps, { schemaFormat: prevSchemaFormat, lang: prevStateLang }: BuilderState): Promise<void>;
62
+ formAbortControllerRef: {
63
+ current?: AbortController | undefined;
64
+ };
65
+ updateFromId(id?: string): Promise<void>;
66
+ onSelected(id: string): void;
67
+ masterToExpandedMaster: (master?: MaybeError<Master> | undefined, signal?: AbortSignal | undefined) => Promise<ExpandedMaster | BuilderError | undefined>;
68
+ expandedMasterToSchemaFormat: (expandedMaster?: MaybeError<ExpandedMaster> | undefined, signal?: AbortSignal | undefined) => Promise<SchemaFormat<import("../../model").JSONSchemaEnumOneOf> | BuilderError | undefined>;
69
+ getDerivedStateFromMaster: (master?: MaybeError<Master> | undefined, signal?: AbortSignal | undefined) => Promise<Pick<BuilderState, "master" | "expandedMaster" | "schemaFormat">>;
70
+ getDerivedStateFromTmpMaster: (tmpMaster?: MaybeError<Master> | undefined, signal?: AbortSignal | undefined) => Promise<Pick<BuilderState, "tmpMaster" | "tmpExpandedMaster" | "schemaFormat">>;
71
+ getDerivedStateFromExpandedMaster: (expandedMaster?: MaybeError<ExpandedMaster> | undefined, signal?: AbortSignal | undefined) => Promise<Pick<BuilderState, "expandedMaster" | "schemaFormat">>;
72
+ masterAbortControllerRef: {
73
+ current?: AbortController | undefined;
74
+ };
75
+ updateMaster(master?: MaybeError<Master>): Promise<DOMException | MaybeError<Master> | undefined>;
76
+ tmpMasterAbortControllerRef: {
77
+ current?: AbortController | undefined;
78
+ };
79
+ updateTmpMaster(tmpMaster?: Master): void;
80
+ pushLoading(): void;
81
+ popLoading(): void;
82
+ langChangeAbortControllerRef: {
83
+ current?: AbortController | undefined;
84
+ };
85
+ onLangChange: (lang: Lang) => Promise<void>;
86
+ private setLangForServices;
87
+ getContext: ((lang: Lang, editorLang: Lang) => ContextProps) & memoize.Memoized<(lang: Lang, editorLang: Lang) => ContextProps>;
88
+ render(): JSX.Element;
89
+ renderEditor(): JSX.Element;
90
+ onHeightChange: (editorHeight: number) => void;
91
+ onJsonEditorOpenChange: (open: boolean) => void;
92
+ onEditorMasterChangeAbortControllerRef: {
93
+ current?: AbortController | undefined;
94
+ };
95
+ onEditorMasterChange: (event: MasterChangeEvent) => Promise<void>;
96
+ onEditorChange: (events: ChangeEvent | ChangeEvent[]) => Promise<void>;
97
+ propagateState(): void;
98
+ onSave: (master: Master) => Promise<boolean>;
99
+ onCreate: (master: Master, save?: boolean) => Promise<void>;
100
+ }
101
+ export {};
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __rest = (this && this.__rest) || function (s, e) {
31
+ var t = {};
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
33
+ t[p] = s[p];
34
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
35
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
36
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
37
+ t[p[i]] = s[p[i]];
38
+ }
39
+ return t;
40
+ };
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.isValid = void 0;
46
+ const React = __importStar(require("react"));
47
+ const utils_1 = require("../../utils");
48
+ const utils_2 = require("../utils");
49
+ const Editor_1 = require("./Editor/Editor");
50
+ const Context_1 = require("./Context");
51
+ const translations_json_1 = __importDefault(require("../translations.json"));
52
+ const metadata_service_1 = __importDefault(require("../../services/metadata-service"));
53
+ const form_service_1 = __importDefault(require("../services/form-service"));
54
+ const memoizee_1 = __importDefault(require("memoizee"));
55
+ const Wizard_1 = require("./Wizard");
56
+ const api_client_1 = __importDefault(require("../../api-client"));
57
+ const form_expander_service_1 = __importDefault(require("../../services/form-expander-service"));
58
+ const change_handler_service_1 = __importDefault(require("../services/change-handler-service"));
59
+ class BuilderError extends Error {
60
+ }
61
+ const otherThanSignalAbortAsBuilderError = (e) => {
62
+ if (utils_2.isSignalAbortError(e)) {
63
+ throw e;
64
+ }
65
+ e._builderError = true;
66
+ return e;
67
+ };
68
+ function isValid(maybeError) {
69
+ return typeof maybeError !== "object" || maybeError === null || !maybeError._builderError;
70
+ }
71
+ exports.isValid = isValid;
72
+ const EDITOR_HEIGHT = 400;
73
+ class Builder extends React.PureComponent {
74
+ constructor(props) {
75
+ super(props);
76
+ this.state = {
77
+ lang: this.props.lang,
78
+ editorHeight: EDITOR_HEIGHT,
79
+ loading: 0,
80
+ jsonEditorOpen: false
81
+ };
82
+ this.setStateAsync = utils_2.promisify(this.setState.bind(this));
83
+ this.formAbortControllerRef = utils_2.createRef();
84
+ this.masterToExpandedMaster = (master, signal) => __awaiter(this, void 0, void 0, function* () {
85
+ return master
86
+ ? isValid(master)
87
+ ? yield this.formLinkerService.expandMaster(master, signal).catch(otherThanSignalAbortAsBuilderError)
88
+ : new BuilderError("Couldn't be derived from invalid master")
89
+ : undefined;
90
+ });
91
+ this.expandedMasterToSchemaFormat = (expandedMaster, signal) => __awaiter(this, void 0, void 0, function* () {
92
+ return expandedMaster
93
+ ? isValid(expandedMaster)
94
+ ? yield this.formService.masterToSchemaFormat(expandedMaster, signal)
95
+ .catch(otherThanSignalAbortAsBuilderError)
96
+ : new BuilderError("Couldn't be derived from invalid expanded master")
97
+ : undefined;
98
+ });
99
+ this.getDerivedStateFromMaster = (master, signal) => __awaiter(this, void 0, void 0, function* () {
100
+ const expandedMaster = yield this.masterToExpandedMaster(master, signal);
101
+ return Object.assign({ master }, (yield this.getDerivedStateFromExpandedMaster(expandedMaster, signal)));
102
+ });
103
+ this.getDerivedStateFromTmpMaster = (tmpMaster, signal) => __awaiter(this, void 0, void 0, function* () {
104
+ const tmpExpandedMaster = yield this.masterToExpandedMaster(tmpMaster, signal);
105
+ const { schemaFormat } = yield this.getDerivedStateFromExpandedMaster(tmpExpandedMaster, signal);
106
+ return { tmpMaster, tmpExpandedMaster, schemaFormat };
107
+ });
108
+ this.getDerivedStateFromExpandedMaster = (expandedMaster, signal) => __awaiter(this, void 0, void 0, function* () {
109
+ const schemaFormat = yield this.expandedMasterToSchemaFormat(expandedMaster, signal);
110
+ return { expandedMaster, schemaFormat };
111
+ });
112
+ this.masterAbortControllerRef = utils_2.createRef();
113
+ this.tmpMasterAbortControllerRef = utils_2.createRef();
114
+ this.langChangeAbortControllerRef = utils_2.createRef();
115
+ this.onLangChange = (lang) => __awaiter(this, void 0, void 0, function* () {
116
+ this.pushLoading();
117
+ yield this.setStateAsync({ lang });
118
+ const { tmpExpandedMaster } = this.state;
119
+ this.setLangForServices();
120
+ const schemaFormat = yield utils_2.runAbortable(signal => this.expandedMasterToSchemaFormat(tmpExpandedMaster, signal), this.langChangeAbortControllerRef);
121
+ if (utils_2.isSignalAbortError(schemaFormat)) {
122
+ this.popLoading();
123
+ return;
124
+ }
125
+ this.props.onLangChange(this.state.lang);
126
+ this.setState({ schemaFormat });
127
+ this.popLoading();
128
+ });
129
+ this.getContext = memoizee_1.default((lang, editorLang) => ({
130
+ apiClient: this.apiClient,
131
+ lang,
132
+ editorLang,
133
+ translations: Object.keys(translations_json_1.default)
134
+ .reduce((trans, key) => {
135
+ trans[key] = translations_json_1.default[key][lang];
136
+ return trans;
137
+ }, {}),
138
+ metadataService: this.metadataService,
139
+ formService: this.formService,
140
+ theme: this.props.theme,
141
+ notifier: this.notifier
142
+ }));
143
+ this.onHeightChange = (editorHeight) => {
144
+ this.setState({ editorHeight });
145
+ };
146
+ this.onJsonEditorOpenChange = (open) => {
147
+ this.setState({ jsonEditorOpen: open });
148
+ };
149
+ this.onEditorMasterChangeAbortControllerRef = utils_2.createRef();
150
+ this.onEditorMasterChange = (event) => __awaiter(this, void 0, void 0, function* () {
151
+ const { tmpMaster } = this.state;
152
+ if (!tmpMaster) {
153
+ return;
154
+ }
155
+ this.pushLoading();
156
+ const newMaster = event.value;
157
+ try {
158
+ const newState = yield utils_2.runAbortable(signal => this.getDerivedStateFromTmpMaster(newMaster, signal), this.onEditorMasterChangeAbortControllerRef);
159
+ if (utils_2.isSignalAbortError(newState)) {
160
+ return;
161
+ }
162
+ const rootErrorProp = ["tmpMaster", "tmpExpandedMaster", "schemaFormat"]
163
+ .find(prop => !isValid(newState[prop]));
164
+ if (rootErrorProp) {
165
+ const rootError = this.state[rootErrorProp];
166
+ const { translations } = this.getContext(this.props.lang, this.state.lang);
167
+ this.notifier.error(`${translations["builder.masterChange.fail"]}\n${rootError.message}\n${rootError.stack}`);
168
+ console.error(rootError);
169
+ }
170
+ else {
171
+ this.setState(Object.assign(Object.assign({}, newState), { jsonEditorOpen: false }));
172
+ }
173
+ }
174
+ finally {
175
+ this.popLoading();
176
+ }
177
+ });
178
+ this.onEditorChange = (events) => __awaiter(this, void 0, void 0, function* () {
179
+ const { tmpMaster, schemaFormat, tmpExpandedMaster } = this.state;
180
+ if (!tmpMaster || !tmpExpandedMaster || !isValid(tmpMaster) || !isValid(tmpExpandedMaster)) {
181
+ return;
182
+ }
183
+ if (!schemaFormat || !isValid(schemaFormat)) {
184
+ this.updateTmpMaster(this.state.tmpMaster);
185
+ return;
186
+ }
187
+ this.pushLoading();
188
+ const newMaster = this.changeHandlerService.apply(tmpMaster, tmpExpandedMaster, schemaFormat, events);
189
+ try {
190
+ this.updateTmpMaster(newMaster);
191
+ }
192
+ finally {
193
+ this.popLoading();
194
+ }
195
+ });
196
+ this.onSave = (master) => __awaiter(this, void 0, void 0, function* () {
197
+ if (!master) {
198
+ return false;
199
+ }
200
+ try {
201
+ this.setState({ saving: true });
202
+ if (master.id) {
203
+ const updatedMaster = yield this.formService.update(master);
204
+ this.setState({ saving: false, id: master.id, jsonEditorOpen: false });
205
+ if (master.id === updatedMaster.id) { // else componentDidUpdate() will handle updating from changed id.
206
+ this.updateMaster(updatedMaster);
207
+ }
208
+ }
209
+ else {
210
+ const masterResponse = yield this.formService.create(master);
211
+ this.setState({ master: masterResponse, saving: false, id: masterResponse.id, jsonEditorOpen: false });
212
+ this.onSelected(masterResponse.id);
213
+ }
214
+ this.notifier.success(this.getContext(this.props.lang, this.state.lang).translations["save.success"]);
215
+ return true;
216
+ }
217
+ catch (e) {
218
+ this.notifier.error(this.getContext(this.props.lang, this.state.lang).translations["save.error"]);
219
+ this.setState({ saving: false });
220
+ return false;
221
+ }
222
+ });
223
+ this.onCreate = (master, save = false) => __awaiter(this, void 0, void 0, function* () {
224
+ if (save) {
225
+ this.onSave(master);
226
+ return;
227
+ }
228
+ this.updateMaster(master);
229
+ });
230
+ this.apiClient = new api_client_1.default(props.apiClient, props.lang);
231
+ if (props.formApiClient) {
232
+ this.formApiClient = new api_client_1.default(props.formApiClient);
233
+ }
234
+ this.metadataService = new metadata_service_1.default(this.apiClient, props.lang);
235
+ this.formService = new form_service_1.default(this.apiClient, props.lang, this.formApiClient);
236
+ this.formLinkerService = new form_expander_service_1.default({ getForm: this.formService.getMaster });
237
+ this.changeHandlerService = new change_handler_service_1.default(props.lang);
238
+ this.notifier = props.notifier
239
+ || ["success", "info", "warning", "error"].reduce((notifier, method) => {
240
+ notifier[method] = msg => console.log(`Builder notification ${method}: ${msg}`); // eslint-disable-line no-console
241
+ return notifier;
242
+ }, {});
243
+ this.onSelected = this.onSelected.bind(this);
244
+ this.propagateState = this.propagateState.bind(this);
245
+ }
246
+ componentDidMount() {
247
+ this.updateFromId(this.props.id);
248
+ }
249
+ componentWillUnmount() {
250
+ var _a, _b;
251
+ (_a = this.formAbortControllerRef.current) === null || _a === void 0 ? void 0 : _a.abort();
252
+ (_b = this.masterAbortControllerRef.current) === null || _b === void 0 ? void 0 : _b.abort();
253
+ }
254
+ componentDidUpdate({ lang: prevLang }, { schemaFormat: prevSchemaFormat, lang: prevStateLang }) {
255
+ return __awaiter(this, void 0, void 0, function* () {
256
+ if (prevLang !== this.props.lang && this.state.lang === prevLang) {
257
+ yield this.setStateAsync({ lang: this.props.lang });
258
+ this.setLangForServices();
259
+ }
260
+ this.updateFromId(this.props.id);
261
+ if (prevSchemaFormat !== this.state.schemaFormat || this.state.lang !== prevStateLang) {
262
+ this.propagateState();
263
+ }
264
+ });
265
+ }
266
+ updateFromId(id) {
267
+ return __awaiter(this, void 0, void 0, function* () {
268
+ if (id === this.state.id) {
269
+ return;
270
+ }
271
+ yield this.setStateAsync({
272
+ master: undefined,
273
+ tmpMaster: undefined,
274
+ tmpExpandedMaster: undefined,
275
+ expandedMaster: undefined,
276
+ schemaFormat: undefined,
277
+ id
278
+ });
279
+ utils_2.runAbortable((signal) => __awaiter(this, void 0, void 0, function* () {
280
+ const master = id
281
+ ? yield this.formService.getMaster(id, signal)
282
+ : undefined;
283
+ this.updateMaster(master);
284
+ }), this.formAbortControllerRef);
285
+ });
286
+ }
287
+ onSelected(id) {
288
+ var _a, _b;
289
+ (_b = (_a = this.props).onSelected) === null || _b === void 0 ? void 0 : _b.call(_a, id);
290
+ }
291
+ updateMaster(master) {
292
+ return utils_2.runAbortable((signal) => __awaiter(this, void 0, void 0, function* () {
293
+ const state = yield this.getDerivedStateFromMaster(master, signal);
294
+ this.setState(getStateFromMasterUpdate(state));
295
+ return state.master;
296
+ }), this.masterAbortControllerRef);
297
+ }
298
+ updateTmpMaster(tmpMaster) {
299
+ utils_2.runAbortable((signal) => __awaiter(this, void 0, void 0, function* () {
300
+ const state = yield this.getDerivedStateFromMaster(tmpMaster, signal);
301
+ this.setState({
302
+ tmpMaster: state.master,
303
+ tmpExpandedMaster: state.expandedMaster,
304
+ schemaFormat: state.schemaFormat
305
+ });
306
+ }), this.tmpMasterAbortControllerRef);
307
+ }
308
+ pushLoading() {
309
+ this.setState(({ loading }) => ({ loading: loading + 1 }));
310
+ }
311
+ popLoading() {
312
+ this.setState(({ loading }) => {
313
+ if (loading === 0) {
314
+ throw new Error("Popped loader when it was 0");
315
+ }
316
+ return { loading: loading - 1 };
317
+ });
318
+ }
319
+ setLangForServices() {
320
+ var _a;
321
+ this.apiClient.setLang(this.state.lang);
322
+ (_a = this.formApiClient) === null || _a === void 0 ? void 0 : _a.setLang(this.state.lang);
323
+ this.metadataService.setLang(this.state.lang);
324
+ this.formService.setLang(this.state.lang);
325
+ this.changeHandlerService.setLang(this.state.lang);
326
+ }
327
+ render() {
328
+ const context = this.getContext(this.props.lang, this.state.lang);
329
+ return (React.createElement(Context_1.Context.Provider, { value: context }, this.props.id || this.state.tmpExpandedMaster ? React.createElement(React.Fragment, null,
330
+ this.renderEditor(),
331
+ React.createElement("div", { style: { height: this.state.editorHeight } })) : (React.createElement(Wizard_1.FormCreatorWizard, { onCreate: this.onCreate, onChoose: this.onSelected, primaryDataBankFormID: this.props.primaryDataBankFormID, secondaryDataBankFormID: this.props.secondaryDataBankFormID, allowList: this.props.allowList }))));
332
+ }
333
+ renderEditor() {
334
+ var _a;
335
+ const { master, tmpMaster } = this.state;
336
+ return (React.createElement(Editor_1.Editor, { master: this.state.tmpMaster, expandedMaster: this.state.tmpExpandedMaster, schemaFormat: this.state.schemaFormat, onChange: this.onEditorChange, onMasterChange: this.onEditorMasterChange, onSave: this.onSave, onLangChange: this.onLangChange, onHeightChange: this.onHeightChange, height: EDITOR_HEIGHT, saving: this.state.saving, loading: this.state.loading, jsonEditorOpen: this.state.jsonEditorOpen, onJsonEditorOpenChange: this.onJsonEditorOpenChange, submitDisabled: !isValid(master) || !isValid(tmpMaster) || master !== tmpMaster || !(master === null || master === void 0 ? void 0 : master.id), displaySchemaTabs: (_a = this.props.displaySchemaTabs) !== null && _a !== void 0 ? _a : true, className: utils_2.gnmspc(""), errorMsg: this.state.errorMsg, onRemountLajiForm: this.props.onRemountLajiForm }));
337
+ }
338
+ propagateState() {
339
+ var _a;
340
+ const { tmpExpandedMaster } = this.state;
341
+ if (!tmpExpandedMaster || !isValid(tmpExpandedMaster) || !isValid(this.state.schemaFormat)) {
342
+ return;
343
+ }
344
+ const { translations, fields } = tmpExpandedMaster, toTranslate = __rest(tmpExpandedMaster, ["translations", "fields"]);
345
+ const translated = utils_1.translate(toTranslate, ((_a = tmpExpandedMaster.translations) === null || _a === void 0 ? void 0 : _a[this.state.lang]) || {});
346
+ const updated = Object.assign(Object.assign({}, this.state.schemaFormat), translated);
347
+ this.props.onChange(updated);
348
+ }
349
+ }
350
+ exports.default = Builder;
351
+ Builder.defaultProps = {
352
+ lang: "fi",
353
+ displaySchemaTabs: true,
354
+ allowList: true
355
+ };
356
+ const getStateFromMasterUpdate = (state) => (Object.assign(Object.assign({}, state), { tmpMaster: state.master, tmpExpandedMaster: state.expandedMaster }));
357
+ //# sourceMappingURL=Builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../src/client/components/Builder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { Lang } from "../../model";
3
+ import MetadataService from "../../services/metadata-service";
4
+ import FormService from "../services/form-service";
5
+ import { Theme } from "../themes/theme";
6
+ import { Notifier } from "@luomus/laji-form/lib/components/LajiForm";
7
+ import ApiClient from "../../api-client";
8
+ export interface ContextProps {
9
+ apiClient: ApiClient;
10
+ lang: Lang;
11
+ editorLang: Lang;
12
+ translations: Record<string, string>;
13
+ metadataService: MetadataService;
14
+ formService: FormService;
15
+ theme: Theme;
16
+ notifier: Notifier;
17
+ }
18
+ export declare const Context: React.Context<ContextProps>;