@bpmn-io/form-js-editor 1.8.2 → 1.8.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.
@@ -10,10 +10,7 @@
10
10
  --color-dragula-background: var(--cds-highlight, var(--color-blue-205-100-95));
11
11
  --color-dragula-border: var(--cds-border-interactive, var(--color-blue-205-100-45));
12
12
  --color-dragula-mirror-background: var(--cds-background, var(--color-white));
13
- --color-dragula-mirror-border: var(
14
- --cds-border-strong,
15
- var(--cds-border-strong-01, var(--color-grey-225-10-90))
16
- );
13
+ --color-dragula-mirror-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-90)));
17
14
  --color-dragula-error-background: var(--color-red-360-100-92);
18
15
  --color-dragula-error-border: var(--cds-text-error, var(--color-red-360-100-45));
19
16
  }
@@ -21,43 +18,22 @@
21
18
  .fjs-palette-container {
22
19
  --color-palette-text: var(--cds-text-primary, var(--color-grey-225-10-15));
23
20
  --color-palette-container-background: var(--cds-background, var(--color-grey-225-10-95));
24
- --color-palette-container-border: var(
25
- --cds-border-strong,
26
- var(--cds-border-strong-01, var(--color-grey-225-10-80))
27
- );
21
+ --color-palette-container-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-80)));
28
22
  --color-palette-header: var(--cds-text-primary, var(--color-text));
29
23
  --color-palette-header-background: var(--cds-background, var(--color-grey-225-10-95));
30
- --color-palette-header-border: var(
31
- --cds-border-strong,
32
- var(--cds-border-strong-01, var(--color-grey-225-10-85))
33
- );
24
+ --color-palette-header-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-85)));
34
25
  --color-palette-search: var(--color-palette-text);
35
26
  --color-palette-search-icon: var(--cds-icon-secondary, var(--color-grey-225-10-35));
36
27
  --color-palette-search-icon-hover: var(--cds-icon-primary, var(--color-grey-225-10-15));
37
- --color-palette-search-background: var(
38
- --cds-field,
39
- var(--cds-field-01, var(--color-white))
40
- );
41
- --color-palette-search-border: var(
42
- --cds-border-strong,
43
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
44
- );
45
- --color-palette-search-focus-background: var(
46
- --cds-field,
47
- var(--cds-field-01, var(--color-blue-205-100-95))
48
- );
28
+ --color-palette-search-background: var(--cds-field, var(--cds-field-01, var(--color-white)));
29
+ --color-palette-search-border: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
30
+ --color-palette-search-focus-background: var(--cds-field, var(--cds-field-01, var(--color-blue-205-100-95)));
49
31
  --color-palette-search-focus-border: var(--cds-focus, var(--color-blue-205-100-50));
50
32
  --color-palette-search-clear-focus-border: var(--cds-focus, var(--color-grey-225-10-50));
51
33
  --color-palette-group-title: var(--color-palette-text);
52
34
  --color-palette-field: var(--color-palette-text);
53
- --color-palette-field-background: var(
54
- --cds-layer,
55
- var(--cds-layer-01, var(--color-white))
56
- );
57
- --color-palette-field-border: var(
58
- --cds-border-subtle,
59
- var(--cds-border-subtle-01, var(--color-grey-225-10-93))
60
- );
35
+ --color-palette-field-background: var(--cds-layer, var(--cds-layer-01, var(--color-white)));
36
+ --color-palette-field-border: var(--cds-border-subtle, var(--cds-border-subtle-01, var(--color-grey-225-10-93)));
61
37
  --color-palette-field-focus: var(--cds-border-interactive, var(--color-blue-205-100-45));
62
38
  --color-palette-field-hover-background: var(--cds-background-hover, var(--color-grey-225-10-90));
63
39
  --color-palette-field-hover-border: var(
@@ -85,35 +61,17 @@
85
61
  --text-error-color: var(--cds-text-color, var(--color-red-360-100-45));
86
62
  --link-color: var(--cds-text-primary, var(--color-blue-205-100-50));
87
63
  --description-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
88
- --description-code-background-color: var(
89
- --cds-layer,
90
- var(--cds-layer-01, var(--color-grey-225-10-97))
91
- );
92
- --description-code-border-color: var(
93
- --cds-border-strong,
94
- var(--cds-border-strong-01, var(--color-grey-225-10-85))
95
- );
64
+ --description-code-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-97)));
65
+ --description-code-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-85)));
96
66
  --description-list-item-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
97
67
  --placeholder-color: var(--cds-text-placeholder, var(--color-grey-225-10-35));
98
- --placeholder-background-color: var(
99
- --cds-layer,
100
- var(--cds-layer-01, var(--color-grey-225-10-95))
101
- );
102
- --header-background-color: var(
103
- --cds-layer,
104
- var(--cds-layer-01, var(--color-grey-225-10-95))
105
- );
68
+ --placeholder-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
69
+ --header-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
106
70
  --header-icon-fill-color: var(--cds-icon-primary, var(--color-grey-225-10-15));
107
71
  --header-bottom-border-color: var(--color-grey-225-10-75);
108
72
  --group-background-color: var(--cds-background, var(--color-white));
109
- --group-bottom-border-color: var(
110
- --cds-border-strong,
111
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
112
- );
113
- --sticky-group-background-color: var(
114
- --cds-layer,
115
- var(--cds-layer-01, var(--color-grey-225-10-95))
116
- );
73
+ --group-bottom-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
74
+ --sticky-group-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
117
75
  --sticky-group-bottom-border-color: var(
118
76
  --cds-border-strong,
119
77
  var(--cds-border-strong-01, var(--color-grey-225-10-75))
@@ -125,37 +83,19 @@
125
83
  --remove-entry-fill-color: var(--color-red-360-100-45);
126
84
  --remove-entry-hover-background-color: var(--color-red-360-100-92);
127
85
  --arrow-fill-color: var(--cds-icon-secondary, var(--color-grey-225-10-35));
128
- --arrow-hover-background-color: var(
129
- --cds-layer,
130
- var(--cds-layer-01, var(--color-grey-225-10-95))
131
- );
86
+ --arrow-hover-background-color: var(--cds-layer, var(--cds-layer-01, var(--color-grey-225-10-95)));
132
87
  --dot-color: var(--cds-text-secondary, var(--color-grey-225-10-35));
133
88
  --list-badge-color: var(--cds-text-inverse, var(--color-white));
134
89
  --list-badge-background-color: var(--cds-background-inverse, var(--color-grey-225-10-35));
135
- --input-background-color: var(
136
- --cds-field,
137
- var(--cds-field-01, var(--color-grey-225-10-97))
138
- );
139
- --input-border-color: var(
140
- --cds-border-strong,
141
- var(--cds-border-strong-01, var(--color-grey-225-10-75))
142
- );
143
- --input-focus-background-color: var(
144
- --cds-field,
145
- var(--cds-field-01, var(--color-blue-205-100-95))
146
- );
90
+ --input-background-color: var(--cds-field, var(--cds-field-01, var(--color-grey-225-10-97)));
91
+ --input-border-color: var(--cds-border-strong, var(--cds-border-strong-01, var(--color-grey-225-10-75)));
92
+ --input-focus-background-color: var(--cds-field, var(--cds-field-01, var(--color-blue-205-100-95)));
147
93
  --input-focus-border-color: var(--cds-focus, var(--color-blue-205-100-50));
148
- --input-error-background-color: var(
149
- --cds-field,
150
- var(--cds-field-01, var(--color-red-360-100-97))
151
- );
94
+ --input-error-background-color: var(--cds-field, var(--cds-field-01, var(--color-red-360-100-97)));
152
95
  --input-error-border-color: var(--cds-text-error, var(--color-red-360-100-45));
153
96
  --input-error-focus-border-color: var(--cds-text-error, var(--color-red-360-100-45));
154
97
  --input-disabled-color: var(--cds-text-disabled, var(--color-grey-225-10-55));
155
- --input-disabled-background-color: var(
156
- --cds-field,
157
- var(--cds-field-01, var(--color-grey-225-10-97))
158
- );
98
+ --input-disabled-background-color: var(--cds-field, var(--cds-field-01, var(--color-grey-225-10-97)));
159
99
  --input-disabled-border-color: var(--cds-border-disabled, var(--color-grey-225-10-90));
160
100
  --toggle-switch-on-background-color: var(--cds-interactive, var(--color-blue-205-100-50));
161
101
  --toggle-switch-off-background-color: var(--cds-toggle-off, var(--color-grey-225-10-75));
package/dist/index.cjs CHANGED
@@ -1080,7 +1080,7 @@ function EditorHtml(props) {
1080
1080
  class: "fjs-form-field-placeholder",
1081
1081
  children: [jsxRuntime.jsx(Icon, {
1082
1082
  viewBox: "0 0 54 54"
1083
- }), "Html is empty"]
1083
+ }), "Html view is empty"]
1084
1084
  })
1085
1085
  });
1086
1086
  }
@@ -1091,7 +1091,7 @@ function EditorHtml(props) {
1091
1091
  class: "fjs-form-field-placeholder",
1092
1092
  children: [jsxRuntime.jsx(Icon, {
1093
1093
  viewBox: "0 0 54 54"
1094
- }), "Html is populated by an expression"]
1094
+ }), "Html view is populated by an expression"]
1095
1095
  })
1096
1096
  });
1097
1097
  }
@@ -1102,7 +1102,7 @@ function EditorHtml(props) {
1102
1102
  class: "fjs-form-field-placeholder",
1103
1103
  children: [jsxRuntime.jsx(Icon, {
1104
1104
  viewBox: "0 0 54 54"
1105
- }), "Html is templated"]
1105
+ }), "Html view is templated"]
1106
1106
  })
1107
1107
  });
1108
1108
  }
@@ -1183,13 +1183,14 @@ function EditorExpressionField(props) {
1183
1183
  field
1184
1184
  } = props;
1185
1185
  const {
1186
- expression = ''
1186
+ expression = '',
1187
+ key
1187
1188
  } = field;
1188
1189
  const Icon = formJsViewer.iconsByType('expression');
1189
1190
  const expressionLanguage = useService$1('expressionLanguage');
1190
1191
  let placeholderContent = 'Expression is empty';
1191
1192
  if (expression.trim() && expressionLanguage.isExpression(expression)) {
1192
- placeholderContent = 'Expression';
1193
+ placeholderContent = `Expression for '${key}'`;
1193
1194
  }
1194
1195
  return jsxRuntime.jsx("div", {
1195
1196
  class: editorFormFieldClasses(type),
@@ -1435,7 +1436,6 @@ const SlotFillRoot = props => {
1435
1436
  return jsxRuntime.jsx(SlotContext.Provider, {
1436
1437
  value: slotContext,
1437
1438
  children: jsxRuntime.jsx(FillContext.Provider, {
1438
- /* @ts-expect-error */
1439
1439
  value: fillContext,
1440
1440
  children: props.children
1441
1441
  })
@@ -6168,6 +6168,7 @@ const useBufferedFocus = function (editor, ref) {
6168
6168
  };
6169
6169
  const CodeEditor = React.forwardRef((props, ref) => {
6170
6170
  const {
6171
+ contentAttributes,
6171
6172
  enableGutters,
6172
6173
  value,
6173
6174
  onInput,
@@ -6213,7 +6214,8 @@ const CodeEditor = React.forwardRef((props, ref) => {
6213
6214
  tooltipContainer: tooltipContainer,
6214
6215
  value: localValue,
6215
6216
  variables: variables,
6216
- extensions: [...(enableGutters ? [view.lineNumbers()] : []), view.EditorView.lineWrapping]
6217
+ extensions: [...(enableGutters ? [view.lineNumbers()] : []), view.EditorView.lineWrapping],
6218
+ contentAttributes
6217
6219
  });
6218
6220
  setEditor(editor);
6219
6221
  return () => {
@@ -7296,9 +7298,12 @@ function FeelTextfieldComponent(props) {
7296
7298
  disabled: feel !== 'optional' || disabled,
7297
7299
  onClick: handleFeelToggle
7298
7300
  }), feelActive ? jsxRuntime.jsx(CodeEditor, {
7299
- id: prefixId$5(id),
7300
7301
  name: id,
7301
7302
  onInput: handleLocalInput,
7303
+ contentAttributes: {
7304
+ 'id': prefixId$5(id),
7305
+ 'aria-label': label
7306
+ },
7302
7307
  disabled: disabled,
7303
7308
  popupOpen: popuOpen,
7304
7309
  onFeelToggle: () => {
@@ -8996,15 +9001,15 @@ function textToLabel(text) {
8996
9001
  }
8997
9002
 
8998
9003
  /**
8999
- * @param {string} path
9000
- */
9004
+ * @param {string} path
9005
+ */
9001
9006
  function isValidDotPath(path) {
9002
9007
  return /^\w+(\.\w+)*$/.test(path);
9003
9008
  }
9004
9009
 
9005
9010
  /**
9006
- * @param {string} path
9007
- */
9011
+ * @param {string} path
9012
+ */
9008
9013
  function isProhibitedPath(path) {
9009
9014
  const prohibitedSegments = ['__proto__', 'prototype', 'constructor'];
9010
9015
  return path.split('.').some(segment => prohibitedSegments.includes(segment));
@@ -9032,8 +9037,8 @@ function hasOptionsGroupsConfigured(formFieldDefinition) {
9032
9037
  }
9033
9038
 
9034
9039
  /**
9035
- * @param {string} path
9036
- */
9040
+ * @param {string} path
9041
+ */
9037
9042
  function hasIntegerPathSegment(path) {
9038
9043
  return path.split('.').some(segment => /^\d+$/.test(segment));
9039
9044
  }
@@ -10480,9 +10485,9 @@ function Height(props) {
10480
10485
  // helpers //////////
10481
10486
 
10482
10487
  /**
10483
- * @param {number|void} value
10484
- * @returns {string|null}
10485
- */
10488
+ * @param {number|void} value
10489
+ * @returns {string|null}
10490
+ */
10486
10491
  const validate$7 = value => {
10487
10492
  if (typeof value !== 'number') {
10488
10493
  return 'A number is required.';
@@ -10562,7 +10567,7 @@ function getTooltip$1() {
10562
10567
  }), jsxRuntime.jsx("p", {
10563
10568
  children: "Please make sure that the URL is safe as it might impose security risks."
10564
10569
  }), jsxRuntime.jsxs("p", {
10565
- children: ["Not all external sources can be displayed in the iFrame. Read more about it in the ", jsxRuntime.jsx("a", {
10570
+ children: ["Not all external sources can be displayed in the iFrame. Read more about it in the", ' ', jsxRuntime.jsx("a", {
10566
10571
  target: "_blank",
10567
10572
  href: "https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options",
10568
10573
  children: "X-FRAME-OPTIONS documentation"
@@ -10572,9 +10577,9 @@ function getTooltip$1() {
10572
10577
  }
10573
10578
 
10574
10579
  /**
10575
- * @param {string|void} value
10576
- * @returns {string|null}
10577
- */
10580
+ * @param {string|void} value
10581
+ * @returns {string|null}
10582
+ */
10578
10583
  const validate$6 = value => {
10579
10584
  if (!value || value.startsWith('=')) {
10580
10585
  return;
@@ -10677,7 +10682,7 @@ function Text(props) {
10677
10682
  });
10678
10683
  }
10679
10684
  const description$1 = jsxRuntime.jsxs(jsxRuntime.Fragment, {
10680
- children: ["Supports markdown and templating. ", jsxRuntime.jsx("a", {
10685
+ children: ["Supports markdown and templating.", ' ', jsxRuntime.jsx("a", {
10681
10686
  href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-text/",
10682
10687
  target: "_blank",
10683
10688
  children: "Learn more"
@@ -10733,17 +10738,17 @@ function Content(props) {
10733
10738
  // helpers //////////
10734
10739
 
10735
10740
  const description = jsxRuntime.jsxs(jsxRuntime.Fragment, {
10736
- children: ["Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component. ", jsxRuntime.jsx("a", {
10737
- href: "https://docs.camunda.io/docs/next/components/modeler/forms/form-element-library/forms-element-library-html/",
10741
+ children: ["Supports HTML, styling, and templating. Styles are automatically scoped to the HTML component.", ' ', jsxRuntime.jsx("a", {
10742
+ href: "https://docs.camunda.io/docs/components/modeler/forms/form-element-library/forms-element-library-html/",
10738
10743
  target: "_blank",
10739
10744
  children: "Learn more"
10740
10745
  })]
10741
10746
  });
10742
10747
 
10743
10748
  /**
10744
- * @param {string|void} value
10745
- * @returns {string|null}
10746
- */
10749
+ * @param {string|void} value
10750
+ * @returns {string|null}
10751
+ */
10747
10752
  const validate$5 = value => {
10748
10753
  // allow empty state
10749
10754
  if (typeof value !== 'string' || value === '') {
@@ -11590,9 +11595,9 @@ function InputValuesKey(props) {
11590
11595
  // helpers //////////
11591
11596
 
11592
11597
  /**
11593
- * @param {string|void} value
11594
- * @returns {string|null}
11595
- */
11598
+ * @param {string|void} value
11599
+ * @returns {string|null}
11600
+ */
11596
11601
  const validate$4 = value => {
11597
11602
  if (typeof value !== 'string' || value.length === 0) {
11598
11603
  return 'Must not be empty.';
@@ -12044,9 +12049,9 @@ function Source(props) {
12044
12049
  // helper ////////////////
12045
12050
 
12046
12051
  /**
12047
- * @param {string|void} value
12048
- * @returns {string|null}
12049
- */
12052
+ * @param {string|void} value
12053
+ * @returns {string|null}
12054
+ */
12050
12055
  const validate$3 = value => {
12051
12056
  if (!minDash.isString(value) || value.length === 0) {
12052
12057
  return 'Must not be empty.';
@@ -12092,8 +12097,8 @@ function Pagination(props) {
12092
12097
  };
12093
12098
 
12094
12099
  /**
12095
- * @param {boolean} value
12096
- */
12100
+ * @param {boolean} value
12101
+ */
12097
12102
  const setValue = value => {
12098
12103
  value ? editField(field, path, defaultRowCount) : editField(field, path, undefined);
12099
12104
  };
@@ -12158,9 +12163,9 @@ function RowCount(props) {
12158
12163
  // helpers //////////
12159
12164
 
12160
12165
  /**
12161
- * @param {string|void} value
12162
- * @returns {string|null}
12163
- */
12166
+ * @param {string|void} value
12167
+ * @returns {string|null}
12168
+ */
12164
12169
  const validate$2 = value => {
12165
12170
  if (minDash.isNil(value)) {
12166
12171
  return null;
@@ -12305,10 +12310,10 @@ function ColumnsExpression(props) {
12305
12310
  };
12306
12311
 
12307
12312
  /**
12308
- * @param {string|void} value
12309
- * @param {string|void} error
12310
- * @returns {void}
12311
- */
12313
+ * @param {string|void} value
12314
+ * @param {string|void} error
12315
+ * @returns {void}
12316
+ */
12312
12317
  const setValue = (value, error) => {
12313
12318
  if (error) {
12314
12319
  return;
@@ -12342,9 +12347,9 @@ function ColumnsExpression(props) {
12342
12347
  // helpers //////////
12343
12348
 
12344
12349
  /**
12345
- * @param {string|void} value
12346
- * @returns {string|null}
12347
- */
12350
+ * @param {string|void} value
12351
+ * @returns {string|null}
12352
+ */
12348
12353
  const validate$1 = value => {
12349
12354
  if (!minDash.isString(value) || value.length === 0 || value === '=') {
12350
12355
  return 'Must not be empty.';
@@ -12389,10 +12394,10 @@ function Label(props) {
12389
12394
  const debounce = useService('debounce');
12390
12395
 
12391
12396
  /**
12392
- * @param {string|void} value
12393
- * @param {string|void} error
12394
- * @returns {void}
12395
- */
12397
+ * @param {string|void} value
12398
+ * @param {string|void} error
12399
+ * @returns {void}
12400
+ */
12396
12401
  const setValue = (value, error) => {
12397
12402
  if (error) {
12398
12403
  return;
@@ -12422,10 +12427,10 @@ function Key(props) {
12422
12427
  const debounce = useService('debounce');
12423
12428
 
12424
12429
  /**
12425
- * @param {string|void} value
12426
- * @param {string|void} error
12427
- * @returns {void}
12428
- */
12430
+ * @param {string|void} value
12431
+ * @param {string|void} error
12432
+ * @returns {void}
12433
+ */
12429
12434
  const setValue = (value, error) => {
12430
12435
  if (error) {
12431
12436
  return;
@@ -12450,9 +12455,9 @@ function Key(props) {
12450
12455
  // helpers //////////////////////
12451
12456
 
12452
12457
  /**
12453
- * @param {string|void} value
12454
- * @returns {string|null}
12455
- */
12458
+ * @param {string|void} value
12459
+ * @returns {string|null}
12460
+ */
12456
12461
  function validate(value) {
12457
12462
  if (!minDash.isString(value) || value.length === 0) {
12458
12463
  return 'Must not be empty.';
@@ -13131,7 +13136,7 @@ const Advisory = props => {
13131
13136
  function getTooltip() {
13132
13137
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
13133
13138
  children: jsxRuntime.jsxs("p", {
13134
- children: ["Allow the iframe to access more functionality of your browser, details regarding the various options can be found in the ", jsxRuntime.jsx("a", {
13139
+ children: ["Allow the iframe to access more functionality of your browser, details regarding the various options can be found in the", ' ', jsxRuntime.jsx("a", {
13135
13140
  target: "_blank",
13136
13141
  href: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe",
13137
13142
  children: "MDN iFrame documentation."
@@ -13169,8 +13174,8 @@ function TableHeaderGroups(field, editField) {
13169
13174
  const areStaticColumnsEnabled = minDash.isArray(minDash.get(field, ['columns']));
13170
13175
 
13171
13176
  /**
13172
- * @type {Array<Group>}
13173
- */
13177
+ * @type {Array<Group>}
13178
+ */
13174
13179
  const groups = [{
13175
13180
  id: `${fieldId}-columnsSource`,
13176
13181
  label: 'Headers source',
@@ -13242,7 +13247,7 @@ class PropertiesProvider {
13242
13247
  return groups;
13243
13248
  }
13244
13249
  const getService = (type, strict = true) => this._injector.get(type, strict);
13245
- groups = [...groups, GeneralGroup(field, editField, getService), ...TableHeaderGroups(field, editField), SecurityAttributesGroup(field, editField), ConditionGroup(field, editField), LayoutGroup(field, editField), AppearanceGroup(field, editField), SerializationGroup(field, editField), ...OptionsGroups(field, editField, getService), ConstraintsGroup(field, editField), ValidationGroup(field, editField), CustomPropertiesGroup(field, editField)].filter(group => group != null);
13250
+ groups = [...groups, GeneralGroup(field, editField, getService), ...OptionsGroups(field, editField, getService), ...TableHeaderGroups(field, editField), SecurityAttributesGroup(field, editField), ConditionGroup(field, editField), LayoutGroup(field, editField), AppearanceGroup(field, editField), SerializationGroup(field, editField), ConstraintsGroup(field, editField), ValidationGroup(field, editField), CustomPropertiesGroup(field, editField)].filter(group => group != null);
13246
13251
  this._filterVisibleEntries(groups, field, getService);
13247
13252
 
13248
13253
  // contract: if a group has no entries or items, it should not be displayed at all
@@ -13643,16 +13648,16 @@ function exportSchema(schema, exporter, schemaVersion) {
13643
13648
  };
13644
13649
  }
13645
13650
 
13646
- /**
13647
- * @typedef { import('./types').CreateFormEditorOptions } CreateFormEditorOptions
13651
+ /**
13652
+ * @typedef { import('./types').CreateFormEditorOptions } CreateFormEditorOptions
13648
13653
  */
13649
13654
 
13650
- /**
13651
- * Create a form editor.
13652
- *
13653
- * @param {CreateFormEditorOptions} options
13654
- *
13655
- * @return {Promise<FormEditor>}
13655
+ /**
13656
+ * Create a form editor.
13657
+ *
13658
+ * @param {CreateFormEditorOptions} options
13659
+ *
13660
+ * @return {Promise<FormEditor>}
13656
13661
  */
13657
13662
  function createFormEditor(options) {
13658
13663
  const {