@jsonschema-editor/ui-schema 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/attribute-registry.d.ts +13 -0
- package/dist/attribute-registry.d.ts.map +1 -0
- package/dist/attribute-registry.js +56 -0
- package/dist/attribute-registry.js.map +1 -0
- package/dist/bridge/form-definition.d.ts +23 -0
- package/dist/bridge/form-definition.d.ts.map +1 -0
- package/dist/bridge/form-definition.js +39 -0
- package/dist/bridge/form-definition.js.map +1 -0
- package/dist/bridge/generator.d.ts +15 -0
- package/dist/bridge/generator.d.ts.map +1 -0
- package/dist/bridge/generator.js +74 -0
- package/dist/bridge/generator.js.map +1 -0
- package/dist/bridge/index.d.ts +4 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +4 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/scope-resolution.d.ts +4 -0
- package/dist/bridge/scope-resolution.d.ts.map +1 -0
- package/dist/bridge/scope-resolution.js +34 -0
- package/dist/bridge/scope-resolution.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/model/categorization.d.ts +25 -0
- package/dist/model/categorization.d.ts.map +1 -0
- package/dist/model/categorization.js +49 -0
- package/dist/model/categorization.js.map +1 -0
- package/dist/model/control.d.ts +21 -0
- package/dist/model/control.d.ts.map +1 -0
- package/dist/model/control.js +46 -0
- package/dist/model/control.js.map +1 -0
- package/dist/model/custom-attributes.d.ts +14 -0
- package/dist/model/custom-attributes.d.ts.map +1 -0
- package/dist/model/custom-attributes.js +35 -0
- package/dist/model/custom-attributes.js.map +1 -0
- package/dist/model/document.d.ts +10 -0
- package/dist/model/document.d.ts.map +1 -0
- package/dist/model/document.js +16 -0
- package/dist/model/document.js.map +1 -0
- package/dist/model/factory.d.ts +24 -0
- package/dist/model/factory.d.ts.map +1 -0
- package/dist/model/factory.js +99 -0
- package/dist/model/factory.js.map +1 -0
- package/dist/model/index.d.ts +13 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +13 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/label.d.ts +18 -0
- package/dist/model/label.d.ts.map +1 -0
- package/dist/model/label.js +35 -0
- package/dist/model/label.js.map +1 -0
- package/dist/model/layouts.d.ts +31 -0
- package/dist/model/layouts.d.ts.map +1 -0
- package/dist/model/layouts.js +64 -0
- package/dist/model/layouts.js.map +1 -0
- package/dist/model/node.d.ts +53 -0
- package/dist/model/node.d.ts.map +1 -0
- package/dist/model/node.js +154 -0
- package/dist/model/node.js.map +1 -0
- package/dist/model/simple-layout.d.ts +19 -0
- package/dist/model/simple-layout.d.ts.map +1 -0
- package/dist/model/simple-layout.js +41 -0
- package/dist/model/simple-layout.js.map +1 -0
- package/dist/model/stepper.d.ts +25 -0
- package/dist/model/stepper.d.ts.map +1 -0
- package/dist/model/stepper.js +49 -0
- package/dist/model/stepper.js.map +1 -0
- package/dist/model/ui-rule.d.ts +13 -0
- package/dist/model/ui-rule.d.ts.map +1 -0
- package/dist/model/ui-rule.js +26 -0
- package/dist/model/ui-rule.js.map +1 -0
- package/dist/model/visitor.d.ts +17 -0
- package/dist/model/visitor.d.ts.map +1 -0
- package/dist/model/visitor.js +2 -0
- package/dist/model/visitor.js.map +1 -0
- package/dist/parse.d.ts +7 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +6 -0
- package/dist/parse.js.map +1 -0
- package/dist/scope.d.ts +3 -0
- package/dist/scope.d.ts.map +1 -0
- package/dist/scope.js +13 -0
- package/dist/scope.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { globalUiSchemaAttributeRegistry } from "../attribute-registry.js";
|
|
2
|
+
export class UiCustomAttributeCollection {
|
|
3
|
+
registry;
|
|
4
|
+
values = new Map();
|
|
5
|
+
constructor(registry = globalUiSchemaAttributeRegistry) {
|
|
6
|
+
this.registry = registry;
|
|
7
|
+
}
|
|
8
|
+
get(name) {
|
|
9
|
+
return this.values.get(name);
|
|
10
|
+
}
|
|
11
|
+
set(name, value) {
|
|
12
|
+
this.values.set(name, value);
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
delete(name) {
|
|
16
|
+
return this.values.delete(name);
|
|
17
|
+
}
|
|
18
|
+
applyFrom(json) {
|
|
19
|
+
this.values.clear();
|
|
20
|
+
for (const [key, value] of this.registry.readCustomAttributes(json)) {
|
|
21
|
+
this.values.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
writeTo(json) {
|
|
25
|
+
this.registry.writeCustomAttributes(json, this.values);
|
|
26
|
+
}
|
|
27
|
+
clone(registry = this.registry) {
|
|
28
|
+
const copy = new UiCustomAttributeCollection(registry);
|
|
29
|
+
for (const [key, value] of this.values) {
|
|
30
|
+
copy.values.set(key, structuredClone(value));
|
|
31
|
+
}
|
|
32
|
+
return copy;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=custom-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-attributes.js","sourceRoot":"","sources":["../../src/model/custom-attributes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAG3E,MAAM,OAAO,2BAA2B;IAInB;IAHF,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAErD,YACmB,WAAsC,+BAA+B;QAArE,aAAQ,GAAR,QAAQ,CAA6D;IACrF,CAAC;IAEJ,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAc;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,IAAoB;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAoB;QAC1B,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAsC,IAAI,CAAC,QAAQ;QACvD,MAAM,IAAI,GAAG,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { UiSchemaObject } from "../types.js";
|
|
2
|
+
import type { UiElement } from "./node.js";
|
|
3
|
+
export declare class UiSchemaDocument {
|
|
4
|
+
private _root;
|
|
5
|
+
constructor(_root: UiElement);
|
|
6
|
+
get root(): UiElement;
|
|
7
|
+
set root(value: UiElement);
|
|
8
|
+
toJSON(): UiSchemaObject;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/model/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,qBAAa,gBAAgB;IACf,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,SAAS;IAEpC,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,SAAS,EAExB;IAED,MAAM,IAAI,cAAc;CAGzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class UiSchemaDocument {
|
|
2
|
+
_root;
|
|
3
|
+
constructor(_root) {
|
|
4
|
+
this._root = _root;
|
|
5
|
+
}
|
|
6
|
+
get root() {
|
|
7
|
+
return this._root;
|
|
8
|
+
}
|
|
9
|
+
set root(value) {
|
|
10
|
+
this._root = value;
|
|
11
|
+
}
|
|
12
|
+
toJSON() {
|
|
13
|
+
return this._root.toJSON();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/model/document.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,KAAgB;QAAhB,UAAK,GAAL,KAAK,CAAW;IAAG,CAAC;IAExC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAgB;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { UiSchemaAttributeRegistry } from "../attribute-registry.js";
|
|
2
|
+
import type { UiSchemaObject } from "../types.js";
|
|
3
|
+
import { Category, Categorization } from "./categorization.js";
|
|
4
|
+
import { Control } from "./control.js";
|
|
5
|
+
import { Group, HorizontalLayout, VerticalLayout } from "./layouts.js";
|
|
6
|
+
import { Label } from "./label.js";
|
|
7
|
+
import type { UiElement } from "./node.js";
|
|
8
|
+
import { Step, Stepper } from "./stepper.js";
|
|
9
|
+
export declare class UiSchemaFactory {
|
|
10
|
+
readonly attributeRegistry: UiSchemaAttributeRegistry;
|
|
11
|
+
constructor(attributeRegistry?: UiSchemaAttributeRegistry);
|
|
12
|
+
fromJSON(json: UiSchemaObject): UiElement;
|
|
13
|
+
createControl(scope: string, label?: string): Control;
|
|
14
|
+
createVerticalLayout(elements?: UiElement[]): VerticalLayout;
|
|
15
|
+
createHorizontalLayout(elements?: UiElement[]): HorizontalLayout;
|
|
16
|
+
createGroup(label: string | undefined, elements?: UiElement[]): Group;
|
|
17
|
+
createLabel(text: string): Label;
|
|
18
|
+
createCategorization(elements?: UiElement[]): Categorization;
|
|
19
|
+
createCategory(label: string | undefined, elements?: UiElement[]): Category;
|
|
20
|
+
createStepper(elements?: UiElement[]): Stepper;
|
|
21
|
+
createStep(label: string | undefined, elements?: UiElement[]): Step;
|
|
22
|
+
}
|
|
23
|
+
export declare const defaultUiSchemaFactory: UiSchemaFactory;
|
|
24
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/model/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,qBAAa,eAAe;aAER,iBAAiB,EAAE,yBAAyB;gBAA5C,iBAAiB,GAAE,yBAA2D;IAGhG,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS;IA+BzC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrD,oBAAoB,CAAC,QAAQ,GAAE,SAAS,EAAO,GAAG,cAAc;IAQhE,sBAAsB,CAAC,QAAQ,GAAE,SAAS,EAAO,GAAG,gBAAgB;IAQpE,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,SAAS,EAAO,GAAG,KAAK;IAQzE,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAIhC,oBAAoB,CAAC,QAAQ,GAAE,SAAS,EAAO,GAAG,cAAc;IAQhE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,SAAS,EAAO,GAAG,QAAQ;IAQ/E,aAAa,CAAC,QAAQ,GAAE,SAAS,EAAO,GAAG,OAAO;IAQlD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,SAAS,EAAO,GAAG,IAAI;CAOxE;AAED,eAAO,MAAM,sBAAsB,iBAAwB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { globalUiSchemaAttributeRegistry } from "../attribute-registry.js";
|
|
2
|
+
import { Category, Categorization } from "./categorization.js";
|
|
3
|
+
import { Control } from "./control.js";
|
|
4
|
+
import { Group, HorizontalLayout, VerticalLayout } from "./layouts.js";
|
|
5
|
+
import { Label } from "./label.js";
|
|
6
|
+
import { Step, Stepper } from "./stepper.js";
|
|
7
|
+
export class UiSchemaFactory {
|
|
8
|
+
attributeRegistry;
|
|
9
|
+
constructor(attributeRegistry = globalUiSchemaAttributeRegistry) {
|
|
10
|
+
this.attributeRegistry = attributeRegistry;
|
|
11
|
+
}
|
|
12
|
+
fromJSON(json) {
|
|
13
|
+
switch (json.type) {
|
|
14
|
+
case "Control":
|
|
15
|
+
return Control.fromJSON(json, this);
|
|
16
|
+
case "VerticalLayout":
|
|
17
|
+
return VerticalLayout.fromJSON(json, this);
|
|
18
|
+
case "HorizontalLayout":
|
|
19
|
+
return HorizontalLayout.fromJSON(json, this);
|
|
20
|
+
case "Group":
|
|
21
|
+
return Group.fromJSON(json, this);
|
|
22
|
+
case "Label":
|
|
23
|
+
return Label.fromJSON(json, this);
|
|
24
|
+
case "Categorization":
|
|
25
|
+
return Categorization.fromJSON(json, this);
|
|
26
|
+
case "Category":
|
|
27
|
+
return Category.fromJSON(json, this);
|
|
28
|
+
case "Stepper":
|
|
29
|
+
return Stepper.fromJSON(json, this);
|
|
30
|
+
case "Step":
|
|
31
|
+
return Step.fromJSON(json, this);
|
|
32
|
+
default:
|
|
33
|
+
if (json.elements?.length) {
|
|
34
|
+
return VerticalLayout.fromJSON(json, this);
|
|
35
|
+
}
|
|
36
|
+
if (json.scope !== undefined) {
|
|
37
|
+
return Control.fromJSON(json, this);
|
|
38
|
+
}
|
|
39
|
+
throw new Error(`Unbekannter UI-Schema-Typ: ${String(json.type)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
createControl(scope, label) {
|
|
43
|
+
return new Control(scope, label, this.attributeRegistry);
|
|
44
|
+
}
|
|
45
|
+
createVerticalLayout(elements = []) {
|
|
46
|
+
const layout = new VerticalLayout(this.attributeRegistry);
|
|
47
|
+
for (const element of elements) {
|
|
48
|
+
layout.addChild(element);
|
|
49
|
+
}
|
|
50
|
+
return layout;
|
|
51
|
+
}
|
|
52
|
+
createHorizontalLayout(elements = []) {
|
|
53
|
+
const layout = new HorizontalLayout(this.attributeRegistry);
|
|
54
|
+
for (const element of elements) {
|
|
55
|
+
layout.addChild(element);
|
|
56
|
+
}
|
|
57
|
+
return layout;
|
|
58
|
+
}
|
|
59
|
+
createGroup(label, elements = []) {
|
|
60
|
+
const group = new Group(label, this.attributeRegistry);
|
|
61
|
+
for (const element of elements) {
|
|
62
|
+
group.addChild(element);
|
|
63
|
+
}
|
|
64
|
+
return group;
|
|
65
|
+
}
|
|
66
|
+
createLabel(text) {
|
|
67
|
+
return new Label(text, this.attributeRegistry);
|
|
68
|
+
}
|
|
69
|
+
createCategorization(elements = []) {
|
|
70
|
+
const node = new Categorization(this.attributeRegistry);
|
|
71
|
+
for (const element of elements) {
|
|
72
|
+
node.addChild(element);
|
|
73
|
+
}
|
|
74
|
+
return node;
|
|
75
|
+
}
|
|
76
|
+
createCategory(label, elements = []) {
|
|
77
|
+
const node = new Category(label, this.attributeRegistry);
|
|
78
|
+
for (const element of elements) {
|
|
79
|
+
node.addChild(element);
|
|
80
|
+
}
|
|
81
|
+
return node;
|
|
82
|
+
}
|
|
83
|
+
createStepper(elements = []) {
|
|
84
|
+
const node = new Stepper(this.attributeRegistry);
|
|
85
|
+
for (const element of elements) {
|
|
86
|
+
node.addChild(element);
|
|
87
|
+
}
|
|
88
|
+
return node;
|
|
89
|
+
}
|
|
90
|
+
createStep(label, elements = []) {
|
|
91
|
+
const node = new Step(label, this.attributeRegistry);
|
|
92
|
+
for (const element of elements) {
|
|
93
|
+
node.addChild(element);
|
|
94
|
+
}
|
|
95
|
+
return node;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export const defaultUiSchemaFactory = new UiSchemaFactory();
|
|
99
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/model/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,OAAO,eAAe;IAER;IADlB,YACkB,oBAA+C,+BAA+B;QAA9E,sBAAiB,GAAjB,iBAAiB,CAA6D;IAC7F,CAAC;IAEJ,QAAQ,CAAC,IAAoB;QAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,gBAAgB;gBACnB,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,kBAAkB;gBACrB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACpC,KAAK,gBAAgB;gBACnB,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,UAAU;gBACb,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC;gBACE,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;oBAC1B,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC7B,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,KAAc;QACzC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IAED,oBAAoB,CAAC,WAAwB,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,WAAwB,EAAE;QAC/C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAyB,EAAE,WAAwB,EAAE;QAC/D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,oBAAoB,CAAC,WAAwB,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,KAAyB,EAAE,WAAwB,EAAE;QAClE,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,WAAwB,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,KAAyB,EAAE,WAAwB,EAAE;QAC9D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./node.js";
|
|
2
|
+
export * from "./simple-layout.js";
|
|
3
|
+
export * from "./custom-attributes.js";
|
|
4
|
+
export * from "./visitor.js";
|
|
5
|
+
export * from "./factory.js";
|
|
6
|
+
export * from "./control.js";
|
|
7
|
+
export * from "./layouts.js";
|
|
8
|
+
export * from "./categorization.js";
|
|
9
|
+
export * from "./stepper.js";
|
|
10
|
+
export * from "./label.js";
|
|
11
|
+
export * from "./document.js";
|
|
12
|
+
export * from "./ui-rule.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./node.js";
|
|
2
|
+
export * from "./simple-layout.js";
|
|
3
|
+
export * from "./custom-attributes.js";
|
|
4
|
+
export * from "./visitor.js";
|
|
5
|
+
export * from "./factory.js";
|
|
6
|
+
export * from "./control.js";
|
|
7
|
+
export * from "./layouts.js";
|
|
8
|
+
export * from "./categorization.js";
|
|
9
|
+
export * from "./stepper.js";
|
|
10
|
+
export * from "./label.js";
|
|
11
|
+
export * from "./document.js";
|
|
12
|
+
export * from "./ui-rule.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { UiSchemaAttributeRegistry } from "../attribute-registry.js";
|
|
2
|
+
import type { UiSchemaObject } from "../types.js";
|
|
3
|
+
import { UiCustomAttributeCollection } from "./custom-attributes.js";
|
|
4
|
+
import type { UiSchemaFactory } from "./factory.js";
|
|
5
|
+
import { UiElement } from "./node.js";
|
|
6
|
+
import type { UiElementVisitor } from "./visitor.js";
|
|
7
|
+
export declare class Label extends UiElement {
|
|
8
|
+
private _text;
|
|
9
|
+
readonly elementKind: "Label";
|
|
10
|
+
constructor(_text: string, registry?: UiSchemaAttributeRegistry, customAttributes?: UiCustomAttributeCollection);
|
|
11
|
+
get text(): string;
|
|
12
|
+
set text(value: string);
|
|
13
|
+
static fromJSON(json: UiSchemaObject, factory: UiSchemaFactory): Label;
|
|
14
|
+
accept<T>(visitor: UiElementVisitor<T>): T;
|
|
15
|
+
deepClone(): Label;
|
|
16
|
+
protected writeElementDefinition(json: UiSchemaObject): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/model/label.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,KAAM,SAAQ,SAAS;IAIhC,OAAO,CAAC,KAAK;IAHf,QAAQ,CAAC,WAAW,EAAG,OAAO,CAAU;gBAG9B,KAAK,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,yBAAyB,EACpC,gBAAgB,CAAC,EAAE,2BAA2B;IAKhD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK;IAQtE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAI1C,SAAS,IAAI,KAAK;IAMlB,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;CAG7D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { UiCustomAttributeCollection } from "./custom-attributes.js";
|
|
2
|
+
import { UiElement } from "./node.js";
|
|
3
|
+
export class Label extends UiElement {
|
|
4
|
+
_text;
|
|
5
|
+
elementKind = "Label";
|
|
6
|
+
constructor(_text, registry, customAttributes) {
|
|
7
|
+
super(customAttributes ?? new UiCustomAttributeCollection(registry));
|
|
8
|
+
this._text = _text;
|
|
9
|
+
}
|
|
10
|
+
get text() {
|
|
11
|
+
return this._text;
|
|
12
|
+
}
|
|
13
|
+
set text(value) {
|
|
14
|
+
this._text = value;
|
|
15
|
+
}
|
|
16
|
+
static fromJSON(json, factory) {
|
|
17
|
+
const label = new Label(json.text ?? "", factory.attributeRegistry);
|
|
18
|
+
label.applyRuleFrom(json);
|
|
19
|
+
label.applyI18nFrom(json);
|
|
20
|
+
label.applyCustomAttributes(json);
|
|
21
|
+
return label;
|
|
22
|
+
}
|
|
23
|
+
accept(visitor) {
|
|
24
|
+
return visitor.visitLabel(this);
|
|
25
|
+
}
|
|
26
|
+
deepClone() {
|
|
27
|
+
const copy = new Label(this._text, undefined, this.cloneAttributes());
|
|
28
|
+
this.copyElementStateTo(copy);
|
|
29
|
+
return copy;
|
|
30
|
+
}
|
|
31
|
+
writeElementDefinition(json) {
|
|
32
|
+
json.text = this._text;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/model/label.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,OAAO,KAAM,SAAQ,SAAS;IAIxB;IAHD,WAAW,GAAG,OAAgB,CAAC;IAExC,YACU,KAAa,EACrB,QAAoC,EACpC,gBAA8C;QAE9C,KAAK,CAAC,gBAAgB,IAAI,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;QAJ7D,UAAK,GAAL,KAAK,CAAQ;IAKvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoB,EAAE,OAAwB;QAC5D,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAI,OAA4B;QACpC,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,SAAS;QACP,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAES,sBAAsB,CAAC,IAAoB;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { UiSchemaAttributeRegistry } from "../attribute-registry.js";
|
|
2
|
+
import type { UiSchemaObject } from "../types.js";
|
|
3
|
+
import { UiCustomAttributeCollection } from "./custom-attributes.js";
|
|
4
|
+
import type { UiSchemaFactory } from "./factory.js";
|
|
5
|
+
import { LabeledLayout, UnlabeledLayout } from "./simple-layout.js";
|
|
6
|
+
import type { UiElementVisitor } from "./visitor.js";
|
|
7
|
+
export declare class VerticalLayout extends UnlabeledLayout {
|
|
8
|
+
readonly elementKind: "VerticalLayout";
|
|
9
|
+
constructor(registry?: UiSchemaAttributeRegistry, customAttributes?: UiCustomAttributeCollection);
|
|
10
|
+
static fromJSON(json: UiSchemaObject, factory: UiSchemaFactory): VerticalLayout;
|
|
11
|
+
accept<T>(visitor: UiElementVisitor<T>): T;
|
|
12
|
+
deepClone(): VerticalLayout;
|
|
13
|
+
protected writeElementDefinition(json: UiSchemaObject): void;
|
|
14
|
+
}
|
|
15
|
+
export declare class HorizontalLayout extends UnlabeledLayout {
|
|
16
|
+
readonly elementKind: "HorizontalLayout";
|
|
17
|
+
constructor(registry?: UiSchemaAttributeRegistry, customAttributes?: UiCustomAttributeCollection);
|
|
18
|
+
static fromJSON(json: UiSchemaObject, factory: UiSchemaFactory): HorizontalLayout;
|
|
19
|
+
accept<T>(visitor: UiElementVisitor<T>): T;
|
|
20
|
+
deepClone(): HorizontalLayout;
|
|
21
|
+
protected writeElementDefinition(json: UiSchemaObject): void;
|
|
22
|
+
}
|
|
23
|
+
export declare class Group extends LabeledLayout {
|
|
24
|
+
readonly elementKind: "Group";
|
|
25
|
+
constructor(label?: string, registry?: UiSchemaAttributeRegistry, customAttributes?: UiCustomAttributeCollection);
|
|
26
|
+
static fromJSON(json: UiSchemaObject, factory: UiSchemaFactory): Group;
|
|
27
|
+
accept<T>(visitor: UiElementVisitor<T>): T;
|
|
28
|
+
deepClone(): Group;
|
|
29
|
+
protected writeElementDefinition(json: UiSchemaObject): void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=layouts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../src/model/layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,cAAe,SAAQ,eAAe;IACjD,QAAQ,CAAC,WAAW,EAAG,gBAAgB,CAAU;gBAG/C,QAAQ,CAAC,EAAE,yBAAyB,EACpC,gBAAgB,CAAC,EAAE,2BAA2B;IAKhD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc;IAM/E,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAI1C,SAAS,IAAI,cAAc;IAI3B,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;CAG7D;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,WAAW,EAAG,kBAAkB,CAAU;gBAGjD,QAAQ,CAAC,EAAE,yBAAyB,EACpC,gBAAgB,CAAC,EAAE,2BAA2B;IAKhD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,gBAAgB;IAMjF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAI1C,SAAS,IAAI,gBAAgB;IAI7B,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;CAG7D;AAED,qBAAa,KAAM,SAAQ,aAAa;IACtC,QAAQ,CAAC,WAAW,EAAG,OAAO,CAAU;gBAGtC,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,yBAAyB,EACpC,gBAAgB,CAAC,EAAE,2BAA2B;IAMhD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,GAAG,KAAK;IAMtE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAI1C,SAAS,IAAI,KAAK;IAIlB,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;CAG7D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { UiCustomAttributeCollection } from "./custom-attributes.js";
|
|
2
|
+
import { LabeledLayout, UnlabeledLayout } from "./simple-layout.js";
|
|
3
|
+
export class VerticalLayout extends UnlabeledLayout {
|
|
4
|
+
elementKind = "VerticalLayout";
|
|
5
|
+
constructor(registry, customAttributes) {
|
|
6
|
+
super(customAttributes ?? new UiCustomAttributeCollection(registry));
|
|
7
|
+
}
|
|
8
|
+
static fromJSON(json, factory) {
|
|
9
|
+
const layout = new VerticalLayout(factory.attributeRegistry);
|
|
10
|
+
layout.populateFromJSON(json, factory);
|
|
11
|
+
return layout;
|
|
12
|
+
}
|
|
13
|
+
accept(visitor) {
|
|
14
|
+
return visitor.visitVerticalLayout(this);
|
|
15
|
+
}
|
|
16
|
+
deepClone() {
|
|
17
|
+
return this.finishClone(new VerticalLayout(undefined, this.cloneAttributes()));
|
|
18
|
+
}
|
|
19
|
+
writeElementDefinition(json) {
|
|
20
|
+
this.writeUnlabeledDefinition(json);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class HorizontalLayout extends UnlabeledLayout {
|
|
24
|
+
elementKind = "HorizontalLayout";
|
|
25
|
+
constructor(registry, customAttributes) {
|
|
26
|
+
super(customAttributes ?? new UiCustomAttributeCollection(registry));
|
|
27
|
+
}
|
|
28
|
+
static fromJSON(json, factory) {
|
|
29
|
+
const layout = new HorizontalLayout(factory.attributeRegistry);
|
|
30
|
+
layout.populateFromJSON(json, factory);
|
|
31
|
+
return layout;
|
|
32
|
+
}
|
|
33
|
+
accept(visitor) {
|
|
34
|
+
return visitor.visitHorizontalLayout(this);
|
|
35
|
+
}
|
|
36
|
+
deepClone() {
|
|
37
|
+
return this.finishClone(new HorizontalLayout(undefined, this.cloneAttributes()));
|
|
38
|
+
}
|
|
39
|
+
writeElementDefinition(json) {
|
|
40
|
+
this.writeUnlabeledDefinition(json);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export class Group extends LabeledLayout {
|
|
44
|
+
elementKind = "Group";
|
|
45
|
+
constructor(label, registry, customAttributes) {
|
|
46
|
+
super(customAttributes ?? new UiCustomAttributeCollection(registry));
|
|
47
|
+
this._label = label;
|
|
48
|
+
}
|
|
49
|
+
static fromJSON(json, factory) {
|
|
50
|
+
const group = new Group(json.label, factory.attributeRegistry);
|
|
51
|
+
group.populateFromJSON(json, factory);
|
|
52
|
+
return group;
|
|
53
|
+
}
|
|
54
|
+
accept(visitor) {
|
|
55
|
+
return visitor.visitGroup(this);
|
|
56
|
+
}
|
|
57
|
+
deepClone() {
|
|
58
|
+
return this.finishClone(new Group(this._label, undefined, this.cloneAttributes()));
|
|
59
|
+
}
|
|
60
|
+
writeElementDefinition(json) {
|
|
61
|
+
this.writeLabeledDefinition(json);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=layouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/model/layouts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { UiElementKind, UiSchemaObject } from "../types.js";
|
|
2
|
+
import type { UiSchemaFactory } from "./factory.js";
|
|
3
|
+
import type { UiElementVisitor } from "./visitor.js";
|
|
4
|
+
import { UiCustomAttributeCollection } from "./custom-attributes.js";
|
|
5
|
+
import { UiRule } from "./ui-rule.js";
|
|
6
|
+
export type { UiElementKind };
|
|
7
|
+
export declare abstract class UiElement {
|
|
8
|
+
protected readonly customAttributes: UiCustomAttributeCollection;
|
|
9
|
+
protected _rule?: UiRule;
|
|
10
|
+
protected _options: Record<string, unknown>;
|
|
11
|
+
protected _i18n?: string;
|
|
12
|
+
protected constructor(customAttributes: UiCustomAttributeCollection);
|
|
13
|
+
abstract readonly elementKind: UiElementKind;
|
|
14
|
+
abstract accept<T>(visitor: UiElementVisitor<T>): T;
|
|
15
|
+
abstract deepClone(): UiElement;
|
|
16
|
+
protected abstract writeElementDefinition(json: UiSchemaObject): void;
|
|
17
|
+
get rule(): UiRule | undefined;
|
|
18
|
+
set rule(value: UiRule | undefined);
|
|
19
|
+
get i18n(): string | undefined;
|
|
20
|
+
set i18n(value: string | undefined);
|
|
21
|
+
get options(): Readonly<Record<string, unknown>>;
|
|
22
|
+
setOption(key: string, value: unknown): this;
|
|
23
|
+
toJSON(): UiSchemaObject;
|
|
24
|
+
clone(): UiElement;
|
|
25
|
+
get elementType(): UiElementKind;
|
|
26
|
+
getCustomAttribute<T = unknown>(name: string): T | undefined;
|
|
27
|
+
setCustomAttribute(name: string, value: unknown): void;
|
|
28
|
+
protected cloneAttributes(): UiCustomAttributeCollection;
|
|
29
|
+
protected applyCustomAttributes(json: UiSchemaObject): void;
|
|
30
|
+
protected applyRuleFrom(json: UiSchemaObject): void;
|
|
31
|
+
protected applyOptionsFrom(json: UiSchemaObject): void;
|
|
32
|
+
protected applyI18nFrom(json: UiSchemaObject): void;
|
|
33
|
+
protected writeRuleTo(json: UiSchemaObject): void;
|
|
34
|
+
protected writeOptionsTo(json: UiSchemaObject): void;
|
|
35
|
+
protected writeI18nTo(json: UiSchemaObject): void;
|
|
36
|
+
protected copyElementStateTo(target: UiElement): void;
|
|
37
|
+
}
|
|
38
|
+
export declare abstract class UiLayout extends UiElement {
|
|
39
|
+
protected readonly childElements: UiElement[];
|
|
40
|
+
get elements(): readonly UiElement[];
|
|
41
|
+
protected validateChild(_child: UiElement): void;
|
|
42
|
+
addChild(element: UiElement): this;
|
|
43
|
+
getChild(index: number): UiElement | undefined;
|
|
44
|
+
setChild(index: number, element: UiElement): this;
|
|
45
|
+
removeChild(index: number): this;
|
|
46
|
+
insertChild(index: number, element: UiElement): this;
|
|
47
|
+
moveChild(fromIndex: number, toIndex: number): this;
|
|
48
|
+
protected applyLayoutMetadataFrom(json: UiSchemaObject, factory: UiSchemaFactory): void;
|
|
49
|
+
protected cloneChildrenTo(target: UiLayout): void;
|
|
50
|
+
protected writeChildElements(json: UiSchemaObject): void;
|
|
51
|
+
protected readChildElements(json: UiSchemaObject, factory: UiSchemaFactory): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/model/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { UiRule } from "./ui-rule.js";
|
|
2
|
+
export class UiElement {
|
|
3
|
+
customAttributes;
|
|
4
|
+
_rule;
|
|
5
|
+
_options = {};
|
|
6
|
+
_i18n;
|
|
7
|
+
constructor(customAttributes) {
|
|
8
|
+
this.customAttributes = customAttributes;
|
|
9
|
+
}
|
|
10
|
+
get rule() {
|
|
11
|
+
return this._rule;
|
|
12
|
+
}
|
|
13
|
+
set rule(value) {
|
|
14
|
+
this._rule = value;
|
|
15
|
+
}
|
|
16
|
+
get i18n() {
|
|
17
|
+
return this._i18n;
|
|
18
|
+
}
|
|
19
|
+
set i18n(value) {
|
|
20
|
+
this._i18n = value;
|
|
21
|
+
}
|
|
22
|
+
get options() {
|
|
23
|
+
return this._options;
|
|
24
|
+
}
|
|
25
|
+
setOption(key, value) {
|
|
26
|
+
this._options[key] = value;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
toJSON() {
|
|
30
|
+
const json = { type: this.elementKind };
|
|
31
|
+
this.writeElementDefinition(json);
|
|
32
|
+
this.writeI18nTo(json);
|
|
33
|
+
this.writeRuleTo(json);
|
|
34
|
+
this.writeOptionsTo(json);
|
|
35
|
+
this.customAttributes.writeTo(json);
|
|
36
|
+
return json;
|
|
37
|
+
}
|
|
38
|
+
clone() {
|
|
39
|
+
return this.deepClone();
|
|
40
|
+
}
|
|
41
|
+
get elementType() {
|
|
42
|
+
return this.elementKind;
|
|
43
|
+
}
|
|
44
|
+
getCustomAttribute(name) {
|
|
45
|
+
return this.customAttributes.get(name);
|
|
46
|
+
}
|
|
47
|
+
setCustomAttribute(name, value) {
|
|
48
|
+
this.customAttributes.set(name, value);
|
|
49
|
+
}
|
|
50
|
+
cloneAttributes() {
|
|
51
|
+
return this.customAttributes.clone();
|
|
52
|
+
}
|
|
53
|
+
applyCustomAttributes(json) {
|
|
54
|
+
this.customAttributes.applyFrom(json);
|
|
55
|
+
}
|
|
56
|
+
applyRuleFrom(json) {
|
|
57
|
+
this._rule = json.rule ? UiRule.fromJSON(json.rule) : undefined;
|
|
58
|
+
}
|
|
59
|
+
applyOptionsFrom(json) {
|
|
60
|
+
this._options = json.options ? { ...json.options } : {};
|
|
61
|
+
}
|
|
62
|
+
applyI18nFrom(json) {
|
|
63
|
+
this._i18n = typeof json.i18n === "string" ? json.i18n : undefined;
|
|
64
|
+
}
|
|
65
|
+
writeRuleTo(json) {
|
|
66
|
+
if (this._rule)
|
|
67
|
+
json.rule = this._rule.toJSON();
|
|
68
|
+
}
|
|
69
|
+
writeOptionsTo(json) {
|
|
70
|
+
if (Object.keys(this._options).length) {
|
|
71
|
+
json.options = { ...this._options };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
writeI18nTo(json) {
|
|
75
|
+
if (this._i18n !== undefined)
|
|
76
|
+
json.i18n = this._i18n;
|
|
77
|
+
}
|
|
78
|
+
copyElementStateTo(target) {
|
|
79
|
+
target._rule = this._rule?.clone();
|
|
80
|
+
target._options = { ...this._options };
|
|
81
|
+
target._i18n = this._i18n;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class UiLayout extends UiElement {
|
|
85
|
+
childElements = [];
|
|
86
|
+
get elements() {
|
|
87
|
+
return this.childElements;
|
|
88
|
+
}
|
|
89
|
+
validateChild(_child) {
|
|
90
|
+
// Unterklassen können Kind-Typen einschränken.
|
|
91
|
+
}
|
|
92
|
+
addChild(element) {
|
|
93
|
+
this.validateChild(element);
|
|
94
|
+
this.childElements.push(element);
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
getChild(index) {
|
|
98
|
+
return this.childElements[index];
|
|
99
|
+
}
|
|
100
|
+
setChild(index, element) {
|
|
101
|
+
if (index < 0 || index >= this.childElements.length) {
|
|
102
|
+
throw new Error(`Kind-Index ${index} außerhalb des Bereichs.`);
|
|
103
|
+
}
|
|
104
|
+
this.validateChild(element);
|
|
105
|
+
this.childElements[index] = element;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
removeChild(index) {
|
|
109
|
+
if (index < 0 || index >= this.childElements.length) {
|
|
110
|
+
throw new Error(`Kind-Index ${index} außerhalb des Bereichs.`);
|
|
111
|
+
}
|
|
112
|
+
this.childElements.splice(index, 1);
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
insertChild(index, element) {
|
|
116
|
+
this.validateChild(element);
|
|
117
|
+
const insertAt = Math.max(0, Math.min(index, this.childElements.length));
|
|
118
|
+
this.childElements.splice(insertAt, 0, element);
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
moveChild(fromIndex, toIndex) {
|
|
122
|
+
if (fromIndex < 0 || fromIndex >= this.childElements.length) {
|
|
123
|
+
throw new Error(`Kind-Index ${fromIndex} außerhalb des Bereichs.`);
|
|
124
|
+
}
|
|
125
|
+
const [moved] = this.childElements.splice(fromIndex, 1);
|
|
126
|
+
const insertAt = Math.max(0, Math.min(toIndex, this.childElements.length));
|
|
127
|
+
this.childElements.splice(insertAt, 0, moved);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
applyLayoutMetadataFrom(json, factory) {
|
|
131
|
+
this.readChildElements(json, factory);
|
|
132
|
+
this.applyOptionsFrom(json);
|
|
133
|
+
this.applyRuleFrom(json);
|
|
134
|
+
this.applyI18nFrom(json);
|
|
135
|
+
this.applyCustomAttributes(json);
|
|
136
|
+
}
|
|
137
|
+
cloneChildrenTo(target) {
|
|
138
|
+
for (const child of this.childElements) {
|
|
139
|
+
target.addChild(child.deepClone());
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
writeChildElements(json) {
|
|
143
|
+
if (this.childElements.length) {
|
|
144
|
+
json.elements = this.childElements.map((element) => element.toJSON());
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
readChildElements(json, factory) {
|
|
148
|
+
this.childElements.length = 0;
|
|
149
|
+
for (const childJson of json.elements ?? []) {
|
|
150
|
+
this.addChild(factory.fromJSON(childJson));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=node.js.map
|