@metadev/daga 4.2.3 → 4.2.4

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/Changelog.md CHANGED
@@ -6,6 +6,13 @@ List of releases and changes.
6
6
 
7
7
  ## Next release Joyeuse
8
8
 
9
+ ## v. 4.2.4
10
+
11
+ - Enable configuring line style in shaped looks [#313](https://github.com/metadevpro/daga/pull/313)
12
+ - Enable default values for parameters of looks [#313](https://github.com/metadevpro/daga/pull/313)
13
+ - Use optional `label` fields in `Property` [#314](https://github.com/metadevpro/daga/pull/314)
14
+ - Use default values for `basic` and `editable` fields of `Property` [#315](https://github.com/metadevpro/daga/pull/315)
15
+
9
16
  ## v. 4.2.3
10
17
 
11
18
  - Enable toggling whether individual sections can be highlighted or entire nodes [#308](https://github.com/metadevpro/daga/pull/308)
package/index.cjs.js CHANGED
@@ -1224,8 +1224,9 @@ class DiagramElementSet extends DiagramEntitySet {
1224
1224
  * @see ValueSet
1225
1225
  */
1226
1226
  class Property {
1227
- constructor(name, type, defaultValue, basic, editable, rootAttribute) {
1227
+ constructor(name, label, type, defaultValue, basic, editable, rootAttribute) {
1228
1228
  this.name = name;
1229
+ this.label = label;
1229
1230
  this.type = type;
1230
1231
  this.defaultValue = defaultValue;
1231
1232
  this.basic = basic;
@@ -1745,7 +1746,7 @@ class ValueSet {
1745
1746
  this.setRootElementValue(rootAttribute, this.values[key]);
1746
1747
  }
1747
1748
  }
1748
- if (property.basic) {
1749
+ if (property.basic !== false) {
1749
1750
  this.displayedProperties.push(property);
1750
1751
  } else {
1751
1752
  this.hiddenProperties.push(property);
@@ -6254,8 +6255,14 @@ const initializeLook = selection => {
6254
6255
  selection.filter('.stretchable-image-look').append('image').attr('class', 'bottom-image').attr('preserveAspectRatio', 'none');
6255
6256
  selection.filter('.stretchable-image-look').append('image').attr('class', 'bottom-right-image').attr('preserveAspectRatio', 'none');
6256
6257
  };
6258
+ const SHAPED_LOOK_DEFAULTS = {
6259
+ fillColor: '#FFFFFF',
6260
+ borderColor: '#000000',
6261
+ borderThickness: 1,
6262
+ borderStyle: exports.LineStyle.Solid
6263
+ };
6257
6264
  const updateLook = selection => {
6258
- selection.filter('.shaped-look').select('path').attr('d', d => generalClosedPath(d.look.shape, 0, 0, d.width, d.height)).attr('fill', d => d.look.fillColor).attr('stroke', d => d.look.borderColor).attr('stroke-width', d => `${d.look.borderThickness}px`);
6265
+ selection.filter('.shaped-look').select('path').attr('d', d => generalClosedPath(d.look.shape || exports.ClosedShape.Rectangle, 0, 0, d.width, d.height)).attr('fill', d => d.look.fillColor || SHAPED_LOOK_DEFAULTS.fillColor).attr('stroke', d => d.look.borderColor || SHAPED_LOOK_DEFAULTS.borderColor).attr('stroke-width', d => `${d.look.borderThickness || SHAPED_LOOK_DEFAULTS.borderThickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.borderStyle || SHAPED_LOOK_DEFAULTS.borderStyle, d.look.borderThickness || SHAPED_LOOK_DEFAULTS.borderThickness));
6259
6266
  selection.filter('.image-look').select('image').attr('x', 0).attr('y', 0).attr('width', d => d.width).attr('height', d => d.height).attr('href', d => d.look.backgroundImage);
6260
6267
  selection.filter('.stretchable-image-look').select('image.top-left-image').attr('x', 0).attr('y', 0).attr('width', d => d.look.leftMargin).attr('height', d => d.look.topMargin).attr('href', d => d.look.backgroundImageTopLeft);
6261
6268
  selection.filter('.stretchable-image-look').select('image.top-image').attr('x', d => d.look.leftMargin).attr('y', 0).attr('width', d => d.width - d.look.rightMargin - d.look.leftMargin).attr('height', d => d.look.topMargin).attr('href', d => d.look.backgroundImageTop);
@@ -7920,7 +7927,7 @@ class DiagramCanvas {
7920
7927
  if (this.canUserPerformAction(exports.DiagramActions.AddConnection) && !d.removed) {
7921
7928
  if (this.unfinishedConnection !== undefined) {
7922
7929
  const endCoords = [event.x, event.y];
7923
- (_a = this.unfinishedConnectionTracer) === null || _a === void 0 ? void 0 : _a.attr('d', getConnectionPath(this.unfinishedConnection.look.shape, this.unfinishedConnection.startCoords, endCoords, this.unfinishedConnection.startDirection, this.unfinishedConnection.endDirection, this.unfinishedConnection.look.thickness, (_b = this.unfinishedConnection.startMarkerLook) === null || _b === void 0 ? void 0 : _b.width, (_c = this.unfinishedConnection.endMarkerLook) === null || _c === void 0 ? void 0 : _c.width));
7930
+ (_a = this.unfinishedConnectionTracer) === null || _a === void 0 ? void 0 : _a.attr('d', getConnectionPath(this.unfinishedConnection.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, this.unfinishedConnection.startCoords, endCoords, this.unfinishedConnection.startDirection, this.unfinishedConnection.endDirection, this.unfinishedConnection.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_b = this.unfinishedConnection.startMarkerLook) === null || _b === void 0 ? void 0 : _b.width, (_c = this.unfinishedConnection.endMarkerLook) === null || _c === void 0 ? void 0 : _c.width));
7924
7931
  const unfinishedConnectionGhostNode = (_d = this.unfinishedConnectionTracer) === null || _d === void 0 ? void 0 : _d.node();
7925
7932
  if (unfinishedConnectionGhostNode) {
7926
7933
  let margin = 2;
@@ -8068,14 +8075,14 @@ class DiagramCanvas {
8068
8075
  enterSelection.select('g.diagram-connection-end-label').append('text').style('user-select', 'none');
8069
8076
  mergeSelection.attr('opacity', d => d.removed ? 0.5 : 1).select('path.diagram-connection-path').attr('d', d => {
8070
8077
  var _a, _b;
8071
- return getConnectionPath(d.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8072
- }).attr('marker-start', d => `url(#${d.id}-start-marker)`).attr('marker-end', d => `url(#${d.id}-end-marker)`).attr('stroke', d => d.look.color).attr('stroke-width', d => `${d.look.thickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style, d.look.thickness)).attr('fill', 'none');
8078
+ return getConnectionPath(d.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8079
+ }).attr('marker-start', d => `url(#${d.id}-start-marker)`).attr('marker-end', d => `url(#${d.id}-end-marker)`).attr('stroke', d => d.look.color || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.color).attr('stroke-width', d => `${d.look.thickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.style, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness)).attr('fill', 'none');
8073
8080
  mergeSelection.select('path.diagram-connection-path-box').attr('d', d => {
8074
8081
  var _a, _b;
8075
- return getConnectionPath(d.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8082
+ return getConnectionPath(d.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8076
8083
  }).attr('stroke', 'transparent')
8077
8084
  // allow generating pointer events even when it is transparent
8078
- .attr('pointer-events', 'stroke').attr('stroke-width', d => `${d.look.thickness + CONNECTION_PATH_BOX_THICKNESS}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style, d.look.thickness)).attr('fill', 'none');
8085
+ .attr('pointer-events', 'stroke').attr('stroke-width', d => `${(d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness) + CONNECTION_PATH_BOX_THICKNESS}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.style, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness)).attr('fill', 'none');
8079
8086
  mergeSelection.data().forEach(connection => {
8080
8087
  this.updateConnectionLabelsInView(connection);
8081
8088
  this.updateConnectionMarkersInView(connection);
package/index.esm.js CHANGED
@@ -1203,8 +1203,9 @@ class DiagramElementSet extends DiagramEntitySet {
1203
1203
  * @see ValueSet
1204
1204
  */
1205
1205
  class Property {
1206
- constructor(name, type, defaultValue, basic, editable, rootAttribute) {
1206
+ constructor(name, label, type, defaultValue, basic, editable, rootAttribute) {
1207
1207
  this.name = name;
1208
+ this.label = label;
1208
1209
  this.type = type;
1209
1210
  this.defaultValue = defaultValue;
1210
1211
  this.basic = basic;
@@ -1724,7 +1725,7 @@ class ValueSet {
1724
1725
  this.setRootElementValue(rootAttribute, this.values[key]);
1725
1726
  }
1726
1727
  }
1727
- if (property.basic) {
1728
+ if (property.basic !== false) {
1728
1729
  this.displayedProperties.push(property);
1729
1730
  } else {
1730
1731
  this.hiddenProperties.push(property);
@@ -6233,8 +6234,14 @@ const initializeLook = selection => {
6233
6234
  selection.filter('.stretchable-image-look').append('image').attr('class', 'bottom-image').attr('preserveAspectRatio', 'none');
6234
6235
  selection.filter('.stretchable-image-look').append('image').attr('class', 'bottom-right-image').attr('preserveAspectRatio', 'none');
6235
6236
  };
6237
+ const SHAPED_LOOK_DEFAULTS = {
6238
+ fillColor: '#FFFFFF',
6239
+ borderColor: '#000000',
6240
+ borderThickness: 1,
6241
+ borderStyle: LineStyle.Solid
6242
+ };
6236
6243
  const updateLook = selection => {
6237
- selection.filter('.shaped-look').select('path').attr('d', d => generalClosedPath(d.look.shape, 0, 0, d.width, d.height)).attr('fill', d => d.look.fillColor).attr('stroke', d => d.look.borderColor).attr('stroke-width', d => `${d.look.borderThickness}px`);
6244
+ selection.filter('.shaped-look').select('path').attr('d', d => generalClosedPath(d.look.shape || ClosedShape.Rectangle, 0, 0, d.width, d.height)).attr('fill', d => d.look.fillColor || SHAPED_LOOK_DEFAULTS.fillColor).attr('stroke', d => d.look.borderColor || SHAPED_LOOK_DEFAULTS.borderColor).attr('stroke-width', d => `${d.look.borderThickness || SHAPED_LOOK_DEFAULTS.borderThickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.borderStyle || SHAPED_LOOK_DEFAULTS.borderStyle, d.look.borderThickness || SHAPED_LOOK_DEFAULTS.borderThickness));
6238
6245
  selection.filter('.image-look').select('image').attr('x', 0).attr('y', 0).attr('width', d => d.width).attr('height', d => d.height).attr('href', d => d.look.backgroundImage);
6239
6246
  selection.filter('.stretchable-image-look').select('image.top-left-image').attr('x', 0).attr('y', 0).attr('width', d => d.look.leftMargin).attr('height', d => d.look.topMargin).attr('href', d => d.look.backgroundImageTopLeft);
6240
6247
  selection.filter('.stretchable-image-look').select('image.top-image').attr('x', d => d.look.leftMargin).attr('y', 0).attr('width', d => d.width - d.look.rightMargin - d.look.leftMargin).attr('height', d => d.look.topMargin).attr('href', d => d.look.backgroundImageTop);
@@ -7899,7 +7906,7 @@ class DiagramCanvas {
7899
7906
  if (this.canUserPerformAction(DiagramActions.AddConnection) && !d.removed) {
7900
7907
  if (this.unfinishedConnection !== undefined) {
7901
7908
  const endCoords = [event.x, event.y];
7902
- (_a = this.unfinishedConnectionTracer) === null || _a === void 0 ? void 0 : _a.attr('d', getConnectionPath(this.unfinishedConnection.look.shape, this.unfinishedConnection.startCoords, endCoords, this.unfinishedConnection.startDirection, this.unfinishedConnection.endDirection, this.unfinishedConnection.look.thickness, (_b = this.unfinishedConnection.startMarkerLook) === null || _b === void 0 ? void 0 : _b.width, (_c = this.unfinishedConnection.endMarkerLook) === null || _c === void 0 ? void 0 : _c.width));
7909
+ (_a = this.unfinishedConnectionTracer) === null || _a === void 0 ? void 0 : _a.attr('d', getConnectionPath(this.unfinishedConnection.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, this.unfinishedConnection.startCoords, endCoords, this.unfinishedConnection.startDirection, this.unfinishedConnection.endDirection, this.unfinishedConnection.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_b = this.unfinishedConnection.startMarkerLook) === null || _b === void 0 ? void 0 : _b.width, (_c = this.unfinishedConnection.endMarkerLook) === null || _c === void 0 ? void 0 : _c.width));
7903
7910
  const unfinishedConnectionGhostNode = (_d = this.unfinishedConnectionTracer) === null || _d === void 0 ? void 0 : _d.node();
7904
7911
  if (unfinishedConnectionGhostNode) {
7905
7912
  let margin = 2;
@@ -8047,14 +8054,14 @@ class DiagramCanvas {
8047
8054
  enterSelection.select('g.diagram-connection-end-label').append('text').style('user-select', 'none');
8048
8055
  mergeSelection.attr('opacity', d => d.removed ? 0.5 : 1).select('path.diagram-connection-path').attr('d', d => {
8049
8056
  var _a, _b;
8050
- return getConnectionPath(d.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8051
- }).attr('marker-start', d => `url(#${d.id}-start-marker)`).attr('marker-end', d => `url(#${d.id}-end-marker)`).attr('stroke', d => d.look.color).attr('stroke-width', d => `${d.look.thickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style, d.look.thickness)).attr('fill', 'none');
8057
+ return getConnectionPath(d.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8058
+ }).attr('marker-start', d => `url(#${d.id}-start-marker)`).attr('marker-end', d => `url(#${d.id}-end-marker)`).attr('stroke', d => d.look.color || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.color).attr('stroke-width', d => `${d.look.thickness}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.style, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness)).attr('fill', 'none');
8052
8059
  mergeSelection.select('path.diagram-connection-path-box').attr('d', d => {
8053
8060
  var _a, _b;
8054
- return getConnectionPath(d.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8061
+ return getConnectionPath(d.look.shape || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.shape, d.startCoords, d.endCoords, d.startDirection, d.endDirection, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness, (_a = d.startMarkerLook) === null || _a === void 0 ? void 0 : _a.width, (_b = d.endMarkerLook) === null || _b === void 0 ? void 0 : _b.width);
8055
8062
  }).attr('stroke', 'transparent')
8056
8063
  // allow generating pointer events even when it is transparent
8057
- .attr('pointer-events', 'stroke').attr('stroke-width', d => `${d.look.thickness + CONNECTION_PATH_BOX_THICKNESS}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style, d.look.thickness)).attr('fill', 'none');
8064
+ .attr('pointer-events', 'stroke').attr('stroke-width', d => `${(d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness) + CONNECTION_PATH_BOX_THICKNESS}px`).attr('stroke-dasharray', d => lineStyleDasharray(d.look.style || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.style, d.look.thickness || DIAGRAM_CONNECTION_TYPE_DEFAULTS.look.thickness)).attr('fill', 'none');
8058
8065
  mergeSelection.data().forEach(connection => {
8059
8066
  this.updateConnectionLabelsInView(connection);
8060
8067
  this.updateConnectionMarkersInView(connection);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metadev/daga",
3
- "version": "4.2.3",
3
+ "version": "4.2.4",
4
4
  "dependencies": {},
5
5
  "peerDependencies": {
6
6
  "d3": "^7.9.0",
@@ -1,6 +1,6 @@
1
1
  import * as d3 from 'd3';
2
2
  import { Point } from '../../util/canvas-util';
3
- import { LineFunction, LineShape } from '../../util/line';
3
+ import { LineFunction, LineShape, LineStyle } from '../../util/line';
4
4
  import { CursorStyle } from '../../util/style';
5
5
  import { Side } from '../../util/svg-util';
6
6
  import { DiagramField } from '../model/diagram-field';
@@ -24,6 +24,12 @@ export declare const getConnectionPath: (shape: LineShape | LineFunction, startC
24
24
  export declare const setCursorStyle: (style?: CursorStyle) => void;
25
25
  export declare const getRelatedNodeOrItself: (element: DiagramNode | DiagramSection | DiagramPort | DiagramField) => DiagramNode | DiagramSection | DiagramPort | DiagramField;
26
26
  export declare const initializeLook: (selection: d3.Selection<SVGGElement, DiagramNode | DiagramSection | DiagramPort, d3.BaseType, unknown>) => void;
27
+ export declare const SHAPED_LOOK_DEFAULTS: {
28
+ fillColor: string;
29
+ borderColor: string;
30
+ borderThickness: number;
31
+ borderStyle: LineStyle;
32
+ };
27
33
  export declare const updateLook: (selection: d3.Selection<SVGGElement, DiagramNode | DiagramSection | DiagramPort, d3.BaseType, unknown>) => void;
28
34
  export declare const GRID_DEFAULTS: {
29
35
  enabled: boolean;
@@ -71,20 +71,29 @@ export interface ShapedLook extends Look {
71
71
  lookType: 'shaped-look';
72
72
  /**
73
73
  * Shape of nodes using this look.
74
+ * @default 'rectangle'
74
75
  */
75
- shape: ClosedShape | ShapeFunction;
76
+ shape?: ClosedShape | ShapeFunction;
76
77
  /**
77
78
  * Background color of this look.
79
+ * @default '#FFFFFF'
78
80
  */
79
- fillColor: string;
81
+ fillColor?: string;
80
82
  /**
81
83
  * Border color of this look.
84
+ * @default '#000000'
82
85
  */
83
- borderColor: string;
86
+ borderColor?: string;
84
87
  /**
85
88
  * Border thickness of this look in diagram units.
89
+ * @default 1
90
+ */
91
+ borderThickness?: number;
92
+ /**
93
+ * Border style of this look.
94
+ * @default 'solid'
86
95
  */
87
- borderThickness: number;
96
+ borderStyle?: LineStyle;
88
97
  }
89
98
  /**
90
99
  * Configuration for a look given by an image.
@@ -201,20 +210,20 @@ export interface ConnectionLook extends Look {
201
210
  * Color of the line of connections of this type.
202
211
  * @default '#000000'
203
212
  */
204
- color: string;
213
+ color?: string;
205
214
  /**
206
215
  * Thickness of the line of connections of this type in diagram units.
207
216
  * @default 1
208
217
  */
209
- thickness: number;
218
+ thickness?: number;
210
219
  /**
211
220
  * Shape of the line of connections of this type.
212
221
  * @default 'straight'
213
222
  */
214
- shape: LineShape | LineFunction;
223
+ shape?: LineShape | LineFunction;
215
224
  /**
216
225
  * Style of the line of connections of this type.
217
226
  * @default 'solid'
218
227
  */
219
- style: LineStyle;
228
+ style?: LineStyle;
220
229
  }
@@ -6,9 +6,13 @@
6
6
  */
7
7
  export declare class Property {
8
8
  /**
9
- * The name of this property. Used to distinguish this property from others.
9
+ * The name of this property. Used to distinguish this property from others. Must be unique.
10
10
  */
11
11
  name: string;
12
+ /**
13
+ * The label of this property. Used when displaying this property to the user.
14
+ */
15
+ label?: string;
12
16
  /**
13
17
  * The type of this property, which indicates the possible values that this property can have.
14
18
  */
@@ -20,13 +24,15 @@ export declare class Property {
20
24
  defaultValue?: unknown;
21
25
  /**
22
26
  * Whether this property should always appear in the property editor component.
27
+ * @default true
23
28
  * @see PropertyEditorComponent
24
29
  */
25
- basic: boolean;
30
+ basic?: boolean;
26
31
  /**
27
32
  * Whether the value of this property can be edited.
33
+ * @default true
28
34
  */
29
- editable: boolean;
35
+ editable?: boolean;
30
36
  /**
31
37
  * Which attribute of the parent component the value of this property is linked to. By default, it is not linked to any.
32
38
  * @default undefined
@@ -44,7 +50,7 @@ export declare class Property {
44
50
  * @default undefined
45
51
  */
46
52
  properties?: Property[];
47
- constructor(name: string, type: Type, defaultValue: unknown, basic: boolean, editable: boolean, rootAttribute?: string[] | string);
53
+ constructor(name: string, label: string | undefined, type: Type, defaultValue: unknown, basic: boolean | undefined, editable: boolean | undefined, rootAttribute?: string[] | string);
48
54
  }
49
55
  /**
50
56
  * Each of the possible values that a property of type option can have.