@bpmn-io/form-js-viewer 1.7.2 → 1.8.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/dist/index.cjs CHANGED
@@ -14,7 +14,7 @@ var DOMPurify = require('dompurify');
14
14
  var didi = require('didi');
15
15
  var feelin = require('feelin');
16
16
  var feelers = require('feelers');
17
- var showdown = require('showdown');
17
+ var marked = require('marked');
18
18
 
19
19
  function _interopNamespaceDefault(e) {
20
20
  var n = Object.create(null);
@@ -601,7 +601,7 @@ function prefixId(id, formId, indexes) {
601
601
  return result;
602
602
  }
603
603
 
604
- const type$g = 'button';
604
+ const type$h = 'button';
605
605
  function Button(props) {
606
606
  const {
607
607
  disabled,
@@ -613,7 +613,7 @@ function Button(props) {
613
613
  action = 'submit'
614
614
  } = field;
615
615
  return jsxRuntime.jsx("div", {
616
- class: formFieldClasses(type$g),
616
+ class: formFieldClasses(type$h),
617
617
  children: jsxRuntime.jsx("button", {
618
618
  class: "fjs-button",
619
619
  type: action,
@@ -625,7 +625,7 @@ function Button(props) {
625
625
  });
626
626
  }
627
627
  Button.config = {
628
- type: type$g,
628
+ type: type$h,
629
629
  keyed: false,
630
630
  label: 'Button',
631
631
  group: 'action',
@@ -1070,44 +1070,124 @@ const _getValueHash = value => {
1070
1070
  };
1071
1071
 
1072
1072
  /**
1073
- * Custom hook to scroll an element into view only when it is not visible within the viewport.
1073
+ * Wrap CSS styles with a given prefix.
1074
+ *
1075
+ * @param {HTMLElement} rootNode
1076
+ * @param {string} prefix
1077
+ *
1078
+ * @returns {HTMLElement}
1079
+ */
1080
+ function wrapCSSStyles(rootNode, prefix) {
1081
+ const styleTags = rootNode.querySelectorAll('style');
1082
+ styleTags.forEach(styleTag => {
1083
+ const topLevelRules = extractTopLevelRules(styleTag.textContent);
1084
+ const scopedCss = topLevelRules.map(rule => {
1085
+ const {
1086
+ selector,
1087
+ styles
1088
+ } = splitRule(rule);
1089
+ const scopedSelector = scopeSelector(selector, prefix);
1090
+ return `${scopedSelector} ${styles}`;
1091
+ }).join(' ');
1092
+ styleTag.textContent = scopedCss;
1093
+ });
1094
+ return rootNode;
1095
+ }
1096
+ function extractTopLevelRules(cssString) {
1097
+ let cursor = 0;
1098
+ let start = 0;
1099
+ let level = 0;
1100
+ const topLevelRules = [];
1101
+ while (cursor < cssString.length) {
1102
+ if (cssString[cursor] === '{') {
1103
+ level++;
1104
+ }
1105
+ if (cssString[cursor] === '}') {
1106
+ level--;
1107
+ if (level === 0) {
1108
+ topLevelRules.push(cssString.substring(start, cursor + 1));
1109
+ start = cursor + 1;
1110
+ }
1111
+ }
1112
+ cursor++;
1113
+ }
1114
+ return topLevelRules.map(rule => rule.trim());
1115
+ }
1116
+ function splitRule(rule) {
1117
+ const firstBracket = rule.indexOf('{');
1118
+ const selector = rule.substring(0, firstBracket);
1119
+ const styles = rule.substring(firstBracket);
1120
+ return {
1121
+ selector,
1122
+ styles
1123
+ };
1124
+ }
1125
+ function scopeSelector(selector, prefix) {
1126
+ return selector.split(',').map(sel => `${prefix} ${sel.trim()}`).join(', ');
1127
+ }
1128
+ function getScrollContainer(el) {
1129
+ while (el && el !== document.body && el !== document.documentElement) {
1130
+ if (_isElementScrollable(el)) {
1131
+ return el;
1132
+ }
1133
+ el = el.parentElement;
1134
+ }
1135
+ if (_isElementScrollable(document.body)) {
1136
+ return document.body;
1137
+ } else if (_isElementScrollable(document.documentElement)) {
1138
+ return document.documentElement;
1139
+ }
1140
+ return null;
1141
+ }
1142
+ function _isElementScrollable(el) {
1143
+ const style = window.getComputedStyle(el);
1144
+ const overflowY = style.overflowY || style.overflow;
1145
+ return (overflowY === 'auto' || overflowY === 'scroll') && el.scrollHeight > el.clientHeight;
1146
+ }
1147
+
1148
+ const EMPTY_OBJECT = {};
1149
+ const EMPTY_ARRAY = [];
1150
+
1151
+ /**
1152
+ * Custom hook to scroll an element within a scrollable container.
1074
1153
  *
1075
- * @param {Object} targetRef - A ref pointing to the DOM element to scroll into view.
1154
+ * @param {Object} scrolledElementRef - A ref pointing to the DOM element to scroll into view.
1076
1155
  * @param {Array} deps - An array of dependencies that trigger the effect.
1077
- * @param {Array} flagRefs - An array of refs that are used as flags to control when to scroll.
1078
1156
  * @param {Object} [scrollOptions={}] - Options defining the behavior of the scrolling.
1079
1157
  * @param {String} [scrollOptions.align='center'] - The alignment of the element within the viewport.
1080
1158
  * @param {String} [scrollOptions.behavior='auto'] - The scrolling behavior.
1081
1159
  * @param {Number} [scrollOptions.offset=0] - An offset that is added to the scroll position.
1082
1160
  * @param {Boolean} [scrollOptions.scrollIfVisible=false] - Whether to scroll even if the element is visible.
1161
+ * @param {Array} [flagRefs] - An array of refs that are used as flags to control when to scroll.
1083
1162
  */
1084
- function useScrollIntoView(targetRef, deps, scrollOptions = null, flagRefs = []) {
1163
+ function useScrollIntoView(scrolledElementRef, deps, scrollOptions, flagRefs) {
1164
+ const _scrollOptions = scrollOptions || EMPTY_OBJECT;
1165
+ const _flagRefs = flagRefs || EMPTY_ARRAY;
1085
1166
  hooks.useEffect(() => {
1086
1167
  // return early if flags are not raised, or component is not mounted
1087
- if (minDash.some(flagRefs, ref => !ref.current) || !targetRef.current) {
1168
+ if (minDash.some(_flagRefs, ref => !ref.current) || !scrolledElementRef.current) {
1088
1169
  return;
1089
1170
  }
1090
- for (let i = 0; i < flagRefs.length; i++) {
1091
- flagRefs[i].current = false;
1171
+ for (let i = 0; i < _flagRefs.length; i++) {
1172
+ _flagRefs[i].current = false;
1092
1173
  }
1093
- const itemToBeScrolled = targetRef.current;
1094
- const scrollContainer = _getNearestScrollableAncestor(itemToBeScrolled);
1174
+ const itemToBeScrolled = scrolledElementRef.current;
1175
+ const scrollContainer = getScrollContainer(itemToBeScrolled);
1095
1176
  if (!scrollContainer) {
1096
1177
  return;
1097
1178
  }
1098
1179
  const itemRect = itemToBeScrolled.getBoundingClientRect();
1099
1180
  const containerRect = scrollContainer.getBoundingClientRect();
1100
-
1101
- // should scroll if visible or scrollIfVisible option is set
1102
- const shouldScroll = scrollOptions.scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);
1103
- if (!shouldScroll) {
1104
- return;
1105
- }
1106
1181
  const {
1107
1182
  align = 'center',
1108
1183
  offset = 0,
1109
- behavior = 'auto'
1110
- } = scrollOptions;
1184
+ behavior = 'auto',
1185
+ scrollIfVisible = false
1186
+ } = _scrollOptions;
1187
+ const shouldScroll = scrollIfVisible || !(itemRect.top >= containerRect.top && itemRect.bottom <= containerRect.bottom);
1188
+ if (!shouldScroll) {
1189
+ return;
1190
+ }
1111
1191
  const topOffset = _getTopOffset(itemToBeScrolled, scrollContainer, {
1112
1192
  align,
1113
1193
  offset
@@ -1123,14 +1203,6 @@ function useScrollIntoView(targetRef, deps, scrollOptions = null, flagRefs = [])
1123
1203
 
1124
1204
  // helper //////////////////////
1125
1205
 
1126
- function _getNearestScrollableAncestor(el) {
1127
- while (el) {
1128
- if (el.scrollHeight > el.clientHeight) {
1129
- return el;
1130
- }
1131
- el = el.parentElement;
1132
- }
1133
- }
1134
1206
  function _getTopOffset(item, scrollContainer, options) {
1135
1207
  const itemRect = item.getBoundingClientRect();
1136
1208
  const containerRect = scrollContainer.getBoundingClientRect();
@@ -1248,6 +1320,17 @@ function useFlushDebounce(func) {
1248
1320
  return [debounceFunc, flushFunc];
1249
1321
  }
1250
1322
 
1323
+ function useEffectOnChange(value, callback, dependencies = []) {
1324
+ const previousValue = usePrevious(value);
1325
+ React.useEffect(() => {
1326
+ if (value !== previousValue) {
1327
+ callback();
1328
+ }
1329
+
1330
+ // eslint-disable-next-line react-hooks/exhaustive-deps
1331
+ }, [value, ...dependencies]);
1332
+ }
1333
+
1251
1334
  /**
1252
1335
  * Template a string reactively based on form data. If the string is not a template, it is returned as is.
1253
1336
  * Memoised to minimize re-renders
@@ -1681,7 +1764,7 @@ function Label(props) {
1681
1764
  });
1682
1765
  }
1683
1766
 
1684
- const type$f = 'checkbox';
1767
+ const type$g = 'checkbox';
1685
1768
  function Checkbox(props) {
1686
1769
  const {
1687
1770
  disabled,
@@ -1712,7 +1795,7 @@ function Checkbox(props) {
1712
1795
  const descriptionId = `${domId}-description`;
1713
1796
  const errorMessageId = `${domId}-error-message`;
1714
1797
  return jsxRuntime.jsxs("div", {
1715
- class: classNames(formFieldClasses(type$f, {
1798
+ class: classNames(formFieldClasses(type$g, {
1716
1799
  errors,
1717
1800
  disabled,
1718
1801
  readonly
@@ -1747,7 +1830,7 @@ function Checkbox(props) {
1747
1830
  });
1748
1831
  }
1749
1832
  Checkbox.config = {
1750
- type: type$f,
1833
+ type: type$g,
1751
1834
  keyed: true,
1752
1835
  label: 'Checkbox',
1753
1836
  group: 'selection',
@@ -1760,7 +1843,7 @@ Checkbox.config = {
1760
1843
  })
1761
1844
  };
1762
1845
 
1763
- const type$e = 'checklist';
1846
+ const type$f = 'checklist';
1764
1847
  function Checklist(props) {
1765
1848
  const {
1766
1849
  disabled,
@@ -1814,7 +1897,7 @@ function Checklist(props) {
1814
1897
  const descriptionId = `${domId}-description`;
1815
1898
  const errorMessageId = `${domId}-error-message`;
1816
1899
  return jsxRuntime.jsxs("div", {
1817
- class: classNames(formFieldClasses(type$e, {
1900
+ class: classNames(formFieldClasses(type$f, {
1818
1901
  errors,
1819
1902
  disabled,
1820
1903
  readonly
@@ -1858,7 +1941,7 @@ function Checklist(props) {
1858
1941
  });
1859
1942
  }
1860
1943
  Checklist.config = {
1861
- type: type$e,
1944
+ type: type$f,
1862
1945
  keyed: true,
1863
1946
  label: 'Checkbox group',
1864
1947
  group: 'selection',
@@ -1901,6 +1984,7 @@ function FormField(props) {
1901
1984
  if (!FormFieldComponent) {
1902
1985
  throw new Error(`cannot render field <${field.type}>`);
1903
1986
  }
1987
+ const fieldConfig = FormFieldComponent.config;
1904
1988
  const valuePath = hooks.useMemo(() => pathRegistry.getValuePath(field, {
1905
1989
  indexes
1906
1990
  }), [field, indexes, pathRegistry]);
@@ -1953,11 +2037,11 @@ function FormField(props) {
1953
2037
  setInitialValidationTrigger(false);
1954
2038
 
1955
2039
  // add indexes of the keyed field to the update, if any
1956
- onChange(FormFieldComponent.config.keyed ? {
2040
+ onChange(fieldConfig.keyed ? {
1957
2041
  ...update,
1958
2042
  indexes
1959
2043
  } : update);
1960
- }, [onChange, FormFieldComponent.config.keyed, indexes]);
2044
+ }, [onChange, fieldConfig.keyed, indexes]);
1961
2045
  if (hidden) {
1962
2046
  return jsxRuntime.jsx(Hidden, {
1963
2047
  field: field
@@ -1965,23 +2049,27 @@ function FormField(props) {
1965
2049
  }
1966
2050
  const domId = `${prefixId(field.id, formId, indexes)}`;
1967
2051
  const fieldErrors = minDash.get(errors, [field.id, ...Object.values(indexes || {})]) || [];
2052
+ const formFieldElement = jsxRuntime.jsx(FormFieldComponent, {
2053
+ ...props,
2054
+ disabled: disabled,
2055
+ errors: fieldErrors,
2056
+ domId: domId,
2057
+ onChange: disabled || readonly ? noop$1 : onChangeIndexed,
2058
+ onBlur: disabled || readonly ? noop$1 : onBlur,
2059
+ onFocus: disabled || readonly ? noop$1 : onFocus,
2060
+ readonly: readonly,
2061
+ value: value
2062
+ });
2063
+ if (fieldConfig.escapeGridRender) {
2064
+ return formFieldElement;
2065
+ }
1968
2066
  return jsxRuntime.jsx(Column, {
1969
2067
  field: field,
1970
2068
  class: gridColumnClasses(field),
1971
2069
  children: jsxRuntime.jsx(Element, {
1972
2070
  class: "fjs-element",
1973
2071
  field: field,
1974
- children: jsxRuntime.jsx(FormFieldComponent, {
1975
- ...props,
1976
- disabled: disabled,
1977
- errors: fieldErrors,
1978
- domId: domId,
1979
- onChange: disabled || readonly ? noop$1 : onChangeIndexed,
1980
- onBlur: disabled || readonly ? noop$1 : onBlur,
1981
- onFocus: disabled || readonly ? noop$1 : onFocus,
1982
- readonly: readonly,
1983
- value: value
1984
- })
2072
+ children: formFieldElement
1985
2073
  })
1986
2074
  });
1987
2075
  }
@@ -2141,16 +2229,16 @@ Default.config = {
2141
2229
  })
2142
2230
  };
2143
2231
 
2144
- var _path$v;
2145
- function _extends$w() { _extends$w = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); }
2232
+ var _path$w;
2233
+ function _extends$x() { _extends$x = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$x.apply(this, arguments); }
2146
2234
  var SvgCalendar = function SvgCalendar(props) {
2147
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$w({
2235
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$x({
2148
2236
  xmlns: "http://www.w3.org/2000/svg",
2149
2237
  width: 14,
2150
2238
  height: 15,
2151
2239
  fill: "none",
2152
2240
  viewBox: "0 0 28 30"
2153
- }, props), _path$v || (_path$v = /*#__PURE__*/React__namespace.createElement("path", {
2241
+ }, props), _path$w || (_path$w = /*#__PURE__*/React__namespace.createElement("path", {
2154
2242
  fill: "currentColor",
2155
2243
  fillRule: "evenodd",
2156
2244
  d: "M19 2H9V0H7v2H2a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5V0h-2v2ZM7 7V4H2v5h24V4h-5v3h-2V4H9v3H7Zm-5 4v17h24V11H2Z",
@@ -2414,16 +2502,16 @@ function Datepicker(props) {
2414
2502
  });
2415
2503
  }
2416
2504
 
2417
- var _path$u, _path2$5;
2418
- function _extends$v() { _extends$v = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); }
2505
+ var _path$v, _path2$5;
2506
+ function _extends$w() { _extends$w = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$w.apply(this, arguments); }
2419
2507
  var SvgClock = function SvgClock(props) {
2420
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$v({
2508
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$w({
2421
2509
  xmlns: "http://www.w3.org/2000/svg",
2422
2510
  width: 16,
2423
2511
  height: 16,
2424
2512
  fill: "none",
2425
2513
  viewBox: "0 0 28 29"
2426
- }, props), _path$u || (_path$u = /*#__PURE__*/React__namespace.createElement("path", {
2514
+ }, props), _path$v || (_path$v = /*#__PURE__*/React__namespace.createElement("path", {
2427
2515
  fill: "currentColor",
2428
2516
  d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2v9.41Z"
2429
2517
  })), _path2$5 || (_path2$5 = /*#__PURE__*/React__namespace.createElement("path", {
@@ -2695,7 +2783,7 @@ function Timepicker(props) {
2695
2783
  });
2696
2784
  }
2697
2785
 
2698
- const type$d = 'datetime';
2786
+ const type$e = 'datetime';
2699
2787
  function Datetime(props) {
2700
2788
  const {
2701
2789
  disabled,
@@ -2867,7 +2955,7 @@ function Datetime(props) {
2867
2955
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
2868
2956
  };
2869
2957
  return jsxRuntime.jsxs("div", {
2870
- class: formFieldClasses(type$d, {
2958
+ class: formFieldClasses(type$e, {
2871
2959
  errors: allErrors,
2872
2960
  disabled,
2873
2961
  readonly
@@ -2892,7 +2980,7 @@ function Datetime(props) {
2892
2980
  });
2893
2981
  }
2894
2982
  Datetime.config = {
2895
- type: type$d,
2983
+ type: type$e,
2896
2984
  keyed: true,
2897
2985
  label: 'Date time',
2898
2986
  group: 'basic-input',
@@ -2952,7 +3040,7 @@ Group.config = {
2952
3040
  })
2953
3041
  };
2954
3042
 
2955
- const type$c = 'iframe';
3043
+ const type$d = 'iframe';
2956
3044
  const DEFAULT_HEIGHT = 300;
2957
3045
  function IFrame(props) {
2958
3046
  const {
@@ -2982,7 +3070,7 @@ function IFrame(props) {
2982
3070
  setIframeRefresh(count => count + 1);
2983
3071
  }, [sandbox, allow]);
2984
3072
  return jsxRuntime.jsxs("div", {
2985
- class: formFieldClasses(type$c, {
3073
+ class: formFieldClasses(type$d, {
2986
3074
  disabled,
2987
3075
  readonly
2988
3076
  }),
@@ -3017,7 +3105,7 @@ function IFramePlaceholder(props) {
3017
3105
  });
3018
3106
  }
3019
3107
  IFrame.config = {
3020
- type: type$c,
3108
+ type: type$d,
3021
3109
  keyed: false,
3022
3110
  label: 'iFrame',
3023
3111
  group: 'container',
@@ -3029,44 +3117,44 @@ IFrame.config = {
3029
3117
  })
3030
3118
  };
3031
3119
 
3032
- var _path$t;
3033
- function _extends$u() { _extends$u = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); }
3120
+ var _path$u;
3121
+ function _extends$v() { _extends$v = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$v.apply(this, arguments); }
3034
3122
  var SvgButton = function SvgButton(props) {
3035
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$u({
3123
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$v({
3036
3124
  xmlns: "http://www.w3.org/2000/svg",
3037
3125
  width: 54,
3038
3126
  height: 54,
3039
3127
  fill: "currentcolor"
3040
- }, props), _path$t || (_path$t = /*#__PURE__*/React__namespace.createElement("path", {
3128
+ }, props), _path$u || (_path$u = /*#__PURE__*/React__namespace.createElement("path", {
3041
3129
  fillRule: "evenodd",
3042
3130
  d: "M45 17a3 3 0 0 1 3 3v14a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h36zm-9 8.889H18v2.222h18v-2.222z"
3043
3131
  })));
3044
3132
  };
3045
3133
  var ButtonIcon = SvgButton;
3046
3134
 
3047
- var _path$s;
3048
- function _extends$t() { _extends$t = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); }
3135
+ var _path$t;
3136
+ function _extends$u() { _extends$u = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$u.apply(this, arguments); }
3049
3137
  var SvgCheckbox = function SvgCheckbox(props) {
3050
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
3138
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$u({
3051
3139
  xmlns: "http://www.w3.org/2000/svg",
3052
3140
  width: 54,
3053
3141
  height: 54,
3054
3142
  fill: "currentcolor"
3055
- }, props), _path$s || (_path$s = /*#__PURE__*/React__namespace.createElement("path", {
3143
+ }, props), _path$t || (_path$t = /*#__PURE__*/React__namespace.createElement("path", {
3056
3144
  d: "M34 18H20a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V20a2 2 0 0 0-2-2zm-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23l-9 9z"
3057
3145
  })));
3058
3146
  };
3059
3147
  var CheckboxIcon = SvgCheckbox;
3060
3148
 
3061
- var _path$r;
3062
- function _extends$s() { _extends$s = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); }
3149
+ var _path$s;
3150
+ function _extends$t() { _extends$t = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$t.apply(this, arguments); }
3063
3151
  var SvgChecklist = function SvgChecklist(props) {
3064
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
3152
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$t({
3065
3153
  xmlns: "http://www.w3.org/2000/svg",
3066
3154
  width: 54,
3067
3155
  height: 54,
3068
3156
  fill: "none"
3069
- }, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
3157
+ }, props), _path$s || (_path$s = /*#__PURE__*/React__namespace.createElement("path", {
3070
3158
  fill: "currentColor",
3071
3159
  fillRule: "evenodd",
3072
3160
  d: "M14.35 24.75H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414ZM14.35 37.05H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414ZM14.35 12.45H19v4.65h-4.65v-4.65Zm-1.414-1.414a2 2 0 0 1 1.414-.586H19a2 2 0 0 1 2 2v4.65a2 2 0 0 1-2 2h-4.65a2 2 0 0 1-2-2v-4.65a2 2 0 0 1 .586-1.414Zm12.007 14.977a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Zm0 12.3a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Zm0-24.6a1 1 0 0 0-.293.707v.65a1 1 0 0 0 1 1h15a1 1 0 0 0 1-1v-.65a1 1 0 0 0-1-1h-15a1 1 0 0 0-.707.293Z",
@@ -3075,15 +3163,15 @@ var SvgChecklist = function SvgChecklist(props) {
3075
3163
  };
3076
3164
  var ChecklistIcon = SvgChecklist;
3077
3165
 
3078
- var _path$q, _path2$4, _path3;
3079
- function _extends$r() { _extends$r = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); }
3166
+ var _path$r, _path2$4, _path3;
3167
+ function _extends$s() { _extends$s = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$s.apply(this, arguments); }
3080
3168
  var SvgDatetime = function SvgDatetime(props) {
3081
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
3169
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$s({
3082
3170
  xmlns: "http://www.w3.org/2000/svg",
3083
3171
  width: 54,
3084
3172
  height: 54,
3085
3173
  fill: "currentcolor"
3086
- }, props), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
3174
+ }, props), _path$r || (_path$r = /*#__PURE__*/React__namespace.createElement("path", {
3087
3175
  fillRule: "evenodd",
3088
3176
  d: "M37.908 13.418h-5.004v-2.354h-1.766v2.354H21.13v-2.354h-1.766v2.354H14.36a2.07 2.07 0 0 0-2.06 2.06v23.549a2.07 2.07 0 0 0 2.06 2.06h6.77v-1.766h-6.358a.707.707 0 0 1-.706-.706V15.89c0-.39.316-.707.706-.707h4.592v2.355h1.766v-2.355h10.008v2.355h1.766v-2.355h4.592a.71.71 0 0 1 .707.707v6.358h1.765v-6.77c0-1.133-.927-2.06-2.06-2.06z"
3089
3177
  })), _path2$4 || (_path2$4 = /*#__PURE__*/React__namespace.createElement("path", {
@@ -3095,15 +3183,15 @@ var SvgDatetime = function SvgDatetime(props) {
3095
3183
  };
3096
3184
  var DatetimeIcon = SvgDatetime;
3097
3185
 
3098
- var _path$p, _path2$3;
3099
- function _extends$q() { _extends$q = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); }
3186
+ var _path$q, _path2$3;
3187
+ function _extends$r() { _extends$r = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$r.apply(this, arguments); }
3100
3188
  var SvgTaglist = function SvgTaglist(props) {
3101
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
3189
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$r({
3102
3190
  xmlns: "http://www.w3.org/2000/svg",
3103
3191
  width: 54,
3104
3192
  height: 54,
3105
3193
  fill: "currentcolor"
3106
- }, props), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
3194
+ }, props), _path$q || (_path$q = /*#__PURE__*/React__namespace.createElement("path", {
3107
3195
  fillRule: "evenodd",
3108
3196
  d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36Zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1Z"
3109
3197
  })), _path2$3 || (_path2$3 = /*#__PURE__*/React__namespace.createElement("path", {
@@ -3113,9 +3201,9 @@ var SvgTaglist = function SvgTaglist(props) {
3113
3201
  var TaglistIcon = SvgTaglist;
3114
3202
 
3115
3203
  var _rect, _rect2, _rect3;
3116
- function _extends$p() { _extends$p = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); }
3204
+ function _extends$q() { _extends$q = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$q.apply(this, arguments); }
3117
3205
  var SvgForm = function SvgForm(props) {
3118
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
3206
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$q({
3119
3207
  xmlns: "http://www.w3.org/2000/svg",
3120
3208
  width: 54,
3121
3209
  height: 54
@@ -3141,104 +3229,104 @@ var SvgForm = function SvgForm(props) {
3141
3229
  };
3142
3230
  var FormIcon = SvgForm;
3143
3231
 
3144
- var _path$o;
3145
- function _extends$o() { _extends$o = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); }
3232
+ var _path$p;
3233
+ function _extends$p() { _extends$p = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$p.apply(this, arguments); }
3146
3234
  var SvgGroup = function SvgGroup(props) {
3147
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
3235
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$p({
3148
3236
  xmlns: "http://www.w3.org/2000/svg",
3149
3237
  width: 54,
3150
3238
  height: 54,
3151
3239
  fill: "currentcolor"
3152
- }, props), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
3240
+ }, props), _path$p || (_path$p = /*#__PURE__*/React__namespace.createElement("path", {
3153
3241
  fillRule: "evenodd",
3154
3242
  d: "M8 33v5a1 1 0 0 0 1 1h4v2H9a3 3 0 0 1-3-3v-5h2Zm18 6v2H15v-2h11Zm13 0v2H28v-2h11Zm9-6v5a3 3 0 0 1-3 3h-4v-2h4a1 1 0 0 0 .993-.883L46 38v-5h2ZM8 22v9H6v-9h2Zm40 0v9h-2v-9h2Zm-35-9v2H9a1 1 0 0 0-.993.883L8 16v4H6v-4a3 3 0 0 1 3-3h4Zm32 0a3 3 0 0 1 3 3v4h-2v-4a1 1 0 0 0-.883-.993L45 15h-4v-2h4Zm-6 0v2H28v-2h11Zm-13 0v2H15v-2h11Z"
3155
3243
  })));
3156
3244
  };
3157
3245
  var GroupIcon = SvgGroup;
3158
3246
 
3159
- var _path$n;
3160
- function _extends$n() { _extends$n = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); }
3247
+ var _path$o;
3248
+ function _extends$o() { _extends$o = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$o.apply(this, arguments); }
3161
3249
  var SvgNumber = function SvgNumber(props) {
3162
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
3250
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$o({
3163
3251
  xmlns: "http://www.w3.org/2000/svg",
3164
3252
  width: 54,
3165
3253
  height: 54,
3166
3254
  fill: "currentcolor"
3167
- }, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
3255
+ }, props), _path$o || (_path$o = /*#__PURE__*/React__namespace.createElement("path", {
3168
3256
  fillRule: "evenodd",
3169
3257
  d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zM35 28.444h7l-3.5 4-3.5-4zM35 26h7l-3.5-4-3.5 4z"
3170
3258
  })));
3171
3259
  };
3172
3260
  var NumberIcon = SvgNumber;
3173
3261
 
3174
- var _path$m;
3175
- function _extends$m() { _extends$m = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
3262
+ var _path$n;
3263
+ function _extends$n() { _extends$n = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$n.apply(this, arguments); }
3176
3264
  var SvgRadio = function SvgRadio(props) {
3177
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
3265
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$n({
3178
3266
  xmlns: "http://www.w3.org/2000/svg",
3179
3267
  width: 54,
3180
3268
  height: 54,
3181
3269
  fill: "currentcolor"
3182
- }, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
3270
+ }, props), _path$n || (_path$n = /*#__PURE__*/React__namespace.createElement("path", {
3183
3271
  d: "M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16z"
3184
3272
  })));
3185
3273
  };
3186
3274
  var RadioIcon = SvgRadio;
3187
3275
 
3188
- var _path$l;
3189
- function _extends$l() { _extends$l = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
3276
+ var _path$m;
3277
+ function _extends$m() { _extends$m = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$m.apply(this, arguments); }
3190
3278
  var SvgSelect = function SvgSelect(props) {
3191
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
3279
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$m({
3192
3280
  xmlns: "http://www.w3.org/2000/svg",
3193
3281
  width: 54,
3194
3282
  height: 54,
3195
3283
  fill: "currentcolor"
3196
- }, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
3284
+ }, props), _path$m || (_path$m = /*#__PURE__*/React__namespace.createElement("path", {
3197
3285
  fillRule: "evenodd",
3198
3286
  d: "M45 16a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V19a3 3 0 0 1 3-3h36zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1zm-12 7h9l-4.5 6-4.5-6z"
3199
3287
  })));
3200
3288
  };
3201
3289
  var SelectIcon = SvgSelect;
3202
3290
 
3203
- var _path$k;
3204
- function _extends$k() { _extends$k = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
3291
+ var _path$l;
3292
+ function _extends$l() { _extends$l = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$l.apply(this, arguments); }
3205
3293
  var SvgSeparator = function SvgSeparator(props) {
3206
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
3294
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$l({
3207
3295
  xmlns: "http://www.w3.org/2000/svg",
3208
3296
  width: 54,
3209
3297
  height: 54,
3210
3298
  fill: "none"
3211
- }, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
3299
+ }, props), _path$l || (_path$l = /*#__PURE__*/React__namespace.createElement("path", {
3212
3300
  fill: "currentColor",
3213
3301
  d: "M26.293 16.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 18.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4ZM9 26h36v2H9v-2Zm13.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 35.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z"
3214
3302
  })));
3215
3303
  };
3216
3304
  var SeparatorIcon = SvgSeparator;
3217
3305
 
3218
- var _path$j;
3219
- function _extends$j() { _extends$j = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
3306
+ var _path$k;
3307
+ function _extends$k() { _extends$k = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$k.apply(this, arguments); }
3220
3308
  var SvgSpacer = function SvgSpacer(props) {
3221
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
3309
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$k({
3222
3310
  xmlns: "http://www.w3.org/2000/svg",
3223
3311
  width: 54,
3224
3312
  height: 54,
3225
3313
  fill: "none"
3226
- }, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
3314
+ }, props), _path$k || (_path$k = /*#__PURE__*/React__namespace.createElement("path", {
3227
3315
  fill: "currentColor",
3228
3316
  d: "M9 15v2h36v-2H9Zm0 22v2h36v-2H9Zm17.293-17.707a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1-1.414 1.414L27 21.414l-3.293 3.293a1 1 0 0 1-1.414-1.414l4-4Zm-4 11.414 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L27 32.586l-3.293-3.293a1 1 0 0 0-1.414 1.414Z"
3229
3317
  })));
3230
3318
  };
3231
3319
  var SpacerIcon = SvgSpacer;
3232
3320
 
3233
- var _path$i;
3234
- function _extends$i() { _extends$i = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
3321
+ var _path$j;
3322
+ function _extends$j() { _extends$j = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$j.apply(this, arguments); }
3235
3323
  var SvgDynamicList = function SvgDynamicList(props) {
3236
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
3324
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$j({
3237
3325
  xmlns: "http://www.w3.org/2000/svg",
3238
3326
  width: 54,
3239
3327
  height: 54,
3240
3328
  fill: "none"
3241
- }, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
3329
+ }, props), _path$j || (_path$j = /*#__PURE__*/React__namespace.createElement("path", {
3242
3330
  fill: "currentColor",
3243
3331
  fillRule: "evenodd",
3244
3332
  d: "M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795c.049.14.075.29.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096H2.7Zm2.7-2.507v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507h2.7Zm0-5.014V13.21H2.7v2.507h2.7Zm-2.7-5.014h1.852a1.346 1.346 0 0 1-.502.096h1.275v-.096H5.4V9.45c0 .156-.026.306-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45v1.254Zm5.175.096h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1 0h2.55V8.1h-2.55v2.7Zm5.1-2.7v1.795a1.348 1.348 0 0 1-.075-.445v1.254h.075v.096h1.275c-.177 0-.347-.034-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35h-1.275Zm-.075 5.11v2.508h2.7V13.21h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7V23.24h-2.7Zm0 5.015v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm0 5.014v2.507h2.7v-2.507h-2.7Zm2.7 5.014h-1.852c.155-.062.325-.096.502-.096h-1.275v.096H48.6v1.254c0-.156.026-.305.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35v-1.254Zm-5.175-.096h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7Zm-5.1 0h-2.55v2.7h2.55v-2.7ZM16.2 17.55a4.05 4.05 0 0 1 4.05 4.05v1.35A4.05 4.05 0 0 1 16.2 27h-1.35a4.05 4.05 0 0 1-4.05-4.05V21.6a4.05 4.05 0 0 1 4.05-4.05h1.35Zm0 2.7h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35c0 .746.604 1.35 1.35 1.35h1.35a1.35 1.35 0 0 0 1.35-1.35V21.6a1.35 1.35 0 0 0-1.35-1.35Zm27 1.35a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35A4.05 4.05 0 0 0 29.7 27h9.45a4.05 4.05 0 0 0 4.05-4.05V21.6Zm-13.5-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35a1.35 1.35 0 0 1-1.35 1.35H29.7a1.35 1.35 0 0 1-1.35-1.35V21.6c0-.746.604-1.35 1.35-1.35ZM43.2 37.8a4.05 4.05 0 0 0-4.05-4.05H29.7a4.05 4.05 0 0 0-4.05 4.05v1.35h2.7V37.8c0-.746.604-1.35 1.35-1.35h9.45c.746 0 1.35.604 1.35 1.35v1.35h2.7V37.8Zm-27-4.05a4.05 4.05 0 0 1 4.05 4.05v1.35h-2.7V37.8a1.35 1.35 0 0 0-1.35-1.35h-1.35a1.35 1.35 0 0 0-1.35 1.35v1.35h-2.7V37.8a4.05 4.05 0 0 1 4.05-4.05h1.35Z",
@@ -3247,29 +3335,29 @@ var SvgDynamicList = function SvgDynamicList(props) {
3247
3335
  };
3248
3336
  var DynamicListIcon = SvgDynamicList;
3249
3337
 
3250
- var _path$h;
3251
- function _extends$h() { _extends$h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
3338
+ var _path$i;
3339
+ function _extends$i() { _extends$i = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$i.apply(this, arguments); }
3252
3340
  var SvgText = function SvgText(props) {
3253
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
3341
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$i({
3254
3342
  xmlns: "http://www.w3.org/2000/svg",
3255
3343
  width: 54,
3256
3344
  height: 54,
3257
3345
  fill: "currentcolor"
3258
- }, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
3346
+ }, props), _path$i || (_path$i = /*#__PURE__*/React__namespace.createElement("path", {
3259
3347
  d: "M20.58 33.77h-3l-1.18-3.08H11l-1.1 3.08H7l5.27-13.54h2.89zm-5-5.36-1.86-5-1.83 5zM22 20.23h5.41a15.47 15.47 0 0 1 2.4.14 3.42 3.42 0 0 1 1.41.55 3.47 3.47 0 0 1 1 1.14 3 3 0 0 1 .42 1.58 3.26 3.26 0 0 1-1.91 2.94 3.63 3.63 0 0 1 1.91 1.22 3.28 3.28 0 0 1 .66 2 4 4 0 0 1-.43 1.8 3.63 3.63 0 0 1-1.09 1.4 3.89 3.89 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.79 1.79 0 0 0 1.1-.49 1.41 1.41 0 0 0 .41-1 1.49 1.49 0 0 0-.35-1 1.54 1.54 0 0 0-1-.48c-.27 0-1.05-.05-2.34-.05zm0 5.39v3.62h2.57a11.52 11.52 0 0 0 1.88-.09 1.65 1.65 0 0 0 1-.54 1.6 1.6 0 0 0 .38-1.14 1.75 1.75 0 0 0-.29-1 1.69 1.69 0 0 0-.86-.62 9.28 9.28 0 0 0-2.41-.23zm19.62.92 2.65.84a5.94 5.94 0 0 1-2 3.29A5.74 5.74 0 0 1 41.38 34a5.87 5.87 0 0 1-4.44-1.84 7.09 7.09 0 0 1-1.73-5A7.43 7.43 0 0 1 37 21.87 6 6 0 0 1 41.54 20a5.64 5.64 0 0 1 4 1.47A5.33 5.33 0 0 1 47 24l-2.7.65a2.8 2.8 0 0 0-2.86-2.27A3.09 3.09 0 0 0 39 23.42a5.31 5.31 0 0 0-.93 3.5 5.62 5.62 0 0 0 .93 3.65 3 3 0 0 0 2.4 1.09 2.72 2.72 0 0 0 1.82-.66 4 4 0 0 0 1.13-2.21z"
3260
3348
  })));
3261
3349
  };
3262
3350
  var TextIcon = SvgText;
3263
3351
 
3264
- var _path$g;
3265
- function _extends$g() { _extends$g = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
3352
+ var _path$h;
3353
+ function _extends$h() { _extends$h = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$h.apply(this, arguments); }
3266
3354
  var SvgHtml = function SvgHtml(props) {
3267
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
3355
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$h({
3268
3356
  xmlns: "http://www.w3.org/2000/svg",
3269
3357
  width: 54,
3270
3358
  height: 54,
3271
3359
  fill: "none"
3272
- }, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
3360
+ }, props), _path$h || (_path$h = /*#__PURE__*/React__namespace.createElement("path", {
3273
3361
  fill: "currentColor",
3274
3362
  fillRule: "evenodd",
3275
3363
  d: "M47.008 12.15c1.625 0 2.942 1.36 2.942 3.039v23.622c0 1.678-1.317 3.039-2.942 3.039H6.992c-1.625 0-2.942-1.36-2.942-3.039V15.189c0-1.678 1.317-3.039 2.942-3.039h40.016Zm0 2.026H6.992c-.542 0-.98.454-.98 1.013V16.2h-.004v2.7h.003v19.911c0 .56.44 1.013.98 1.013h40.017c.542 0 .98-.453.98-1.013V18.9h.005v-2.7h-.004v-1.011c0-.56-.44-1.013-.98-1.013ZM14.934 26.055v-3.78h2.194v9.45h-2.194v-3.78h-3.29v3.78H9.45v-9.45h2.194v3.78h3.29Zm4.388-1.89h2.194v7.56h2.193v-7.56h2.194v-1.89h-6.581v1.89Zm14.26-1.89h2.193v9.45h-2.194V25.11l-1.645 3.78-1.645-3.78v6.615h-2.194v-9.45h2.194l1.645 3.78 1.645-3.78Zm4.387 0h2.194v7.56h4.387v1.89h-6.581v-9.45Z",
@@ -3278,6 +3366,23 @@ var SvgHtml = function SvgHtml(props) {
3278
3366
  };
3279
3367
  var HTMLIcon = SvgHtml;
3280
3368
 
3369
+ var _path$g;
3370
+ function _extends$g() { _extends$g = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$g.apply(this, arguments); }
3371
+ var SvgExpressionField = function SvgExpressionField(props) {
3372
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$g({
3373
+ xmlns: "http://www.w3.org/2000/svg",
3374
+ width: 54,
3375
+ height: 54,
3376
+ fill: "none"
3377
+ }, props), _path$g || (_path$g = /*#__PURE__*/React__namespace.createElement("path", {
3378
+ fill: "currentcolor",
3379
+ fillRule: "evenodd",
3380
+ d: "M12.78 16.2v6.75c0 1.619-.635 3.059-1.618 4.05.983.991 1.618 2.431 1.618 4.05v6.75h3.51v2.7h-3.51c-1.289 0-2.34-1.213-2.34-2.7v-6.75c0-1.487-1.051-2.7-2.34-2.7v-2.7c1.289 0 2.34-1.213 2.34-2.7V16.2c0-1.487 1.051-2.7 2.34-2.7h3.51v2.7h-3.51Zm30.78 0v6.75c0 1.487 1.051 2.7 2.34 2.7v2.7c-1.289 0-2.34 1.213-2.34 2.7v6.75c0 1.487-1.051 2.7-2.34 2.7h-3.51v-2.7h3.51v-6.75c0-1.619.635-3.059 1.618-4.05-.983-.991-1.618-2.431-1.618-4.05V16.2h-3.51v-2.7h3.51c1.289 0 2.34 1.213 2.34 2.7ZM21.8 34.531c.467-.379.787-.965.959-1.758l1.788-8.34h1.585l.387-1.828h-1.585l.405-1.878h1.585l.387-1.827H25.69c-.847 0-1.505.19-1.972.569-.454.379-.768.965-.94 1.758l-.294 1.378H21.34l-.387 1.827h1.142l-1.898 8.841h-1.585l-.387 1.827h1.622c.848 0 1.499-.19 1.953-.569Zm7.248-7.686-3.797 4.808h2.599l2.12-3.016h.22l.885 3.016h2.599l-1.677-4.36 3.778-4.688h-2.599l-2.12 2.947h-.22l-.885-2.947h-2.599l1.696 4.24Z",
3381
+ clipRule: "evenodd"
3382
+ })));
3383
+ };
3384
+ var ExpressionFieldIcon = SvgExpressionField;
3385
+
3281
3386
  var _path$f;
3282
3387
  function _extends$f() { _extends$f = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$f.apply(this, arguments); }
3283
3388
  var SvgTextfield = function SvgTextfield(props) {
@@ -3375,6 +3480,7 @@ const iconsByType = type => {
3375
3480
  iframe: IFrameIcon,
3376
3481
  image: ImageIcon,
3377
3482
  number: NumberIcon,
3483
+ expression: ExpressionFieldIcon,
3378
3484
  radio: RadioIcon,
3379
3485
  select: SelectIcon,
3380
3486
  separator: SeparatorIcon,
@@ -3390,7 +3496,7 @@ const iconsByType = type => {
3390
3496
  }[type];
3391
3497
  };
3392
3498
 
3393
- const type$b = 'image';
3499
+ const type$c = 'image';
3394
3500
  function Image(props) {
3395
3501
  const {
3396
3502
  field
@@ -3412,7 +3518,7 @@ function Image(props) {
3412
3518
  formId
3413
3519
  } = hooks.useContext(FormContext);
3414
3520
  return jsxRuntime.jsxs("div", {
3415
- class: formFieldClasses(type$b),
3521
+ class: formFieldClasses(type$c),
3416
3522
  children: [safeSource && jsxRuntime.jsx("div", {
3417
3523
  class: "fjs-image-container",
3418
3524
  children: jsxRuntime.jsx("img", {
@@ -3436,7 +3542,7 @@ function Image(props) {
3436
3542
  });
3437
3543
  }
3438
3544
  Image.config = {
3439
- type: type$b,
3545
+ type: type$c,
3440
3546
  keyed: false,
3441
3547
  label: 'Image view',
3442
3548
  group: 'presentation',
@@ -3528,7 +3634,7 @@ function isNullEquivalentValue(value) {
3528
3634
  return value === undefined || value === null || value === '';
3529
3635
  }
3530
3636
 
3531
- const type$a = 'number';
3637
+ const type$b = 'number';
3532
3638
  function Numberfield(props) {
3533
3639
  const {
3534
3640
  disabled,
@@ -3673,7 +3779,7 @@ function Numberfield(props) {
3673
3779
  const descriptionId = `${domId}-description`;
3674
3780
  const errorMessageId = `${domId}-error-message`;
3675
3781
  return jsxRuntime.jsxs("div", {
3676
- class: formFieldClasses(type$a, {
3782
+ class: formFieldClasses(type$b, {
3677
3783
  errors,
3678
3784
  disabled,
3679
3785
  readonly
@@ -3750,7 +3856,7 @@ function Numberfield(props) {
3750
3856
  });
3751
3857
  }
3752
3858
  Numberfield.config = {
3753
- type: type$a,
3859
+ type: type$b,
3754
3860
  keyed: true,
3755
3861
  label: 'Number',
3756
3862
  group: 'basic-input',
@@ -3770,7 +3876,7 @@ Numberfield.config = {
3770
3876
  })
3771
3877
  };
3772
3878
 
3773
- const type$9 = 'radio';
3879
+ const type$a = 'radio';
3774
3880
  function Radio(props) {
3775
3881
  const {
3776
3882
  disabled,
@@ -3823,7 +3929,7 @@ function Radio(props) {
3823
3929
  const descriptionId = `${domId}-description`;
3824
3930
  const errorMessageId = `${domId}-error-message`;
3825
3931
  return jsxRuntime.jsxs("div", {
3826
- class: formFieldClasses(type$9, {
3932
+ class: formFieldClasses(type$a, {
3827
3933
  errors,
3828
3934
  disabled,
3829
3935
  readonly
@@ -3867,7 +3973,7 @@ function Radio(props) {
3867
3973
  });
3868
3974
  }
3869
3975
  Radio.config = {
3870
- type: type$9,
3976
+ type: type$a,
3871
3977
  keyed: true,
3872
3978
  label: 'Radio group',
3873
3979
  group: 'selection',
@@ -4180,7 +4286,7 @@ function SimpleSelect(props) {
4180
4286
  });
4181
4287
  }
4182
4288
 
4183
- const type$8 = 'select';
4289
+ const type$9 = 'select';
4184
4290
  function Select(props) {
4185
4291
  const {
4186
4292
  disabled,
@@ -4219,7 +4325,7 @@ function Select(props) {
4219
4325
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
4220
4326
  };
4221
4327
  return jsxRuntime.jsxs("div", {
4222
- class: formFieldClasses(type$8, {
4328
+ class: formFieldClasses(type$9, {
4223
4329
  errors,
4224
4330
  disabled,
4225
4331
  readonly
@@ -4248,7 +4354,7 @@ function Select(props) {
4248
4354
  });
4249
4355
  }
4250
4356
  Select.config = {
4251
- type: type$8,
4357
+ type: type$9,
4252
4358
  keyed: true,
4253
4359
  label: 'Select',
4254
4360
  group: 'selection',
@@ -4257,15 +4363,15 @@ Select.config = {
4257
4363
  create: createEmptyOptions
4258
4364
  };
4259
4365
 
4260
- const type$7 = 'separator';
4366
+ const type$8 = 'separator';
4261
4367
  function Separator() {
4262
4368
  return jsxRuntime.jsx("div", {
4263
- class: formFieldClasses(type$7),
4369
+ class: formFieldClasses(type$8),
4264
4370
  children: jsxRuntime.jsx("hr", {})
4265
4371
  });
4266
4372
  }
4267
4373
  Separator.config = {
4268
- type: type$7,
4374
+ type: type$8,
4269
4375
  keyed: false,
4270
4376
  label: 'Separator',
4271
4377
  group: 'presentation',
@@ -4274,7 +4380,7 @@ Separator.config = {
4274
4380
  })
4275
4381
  };
4276
4382
 
4277
- const type$6 = 'spacer';
4383
+ const type$7 = 'spacer';
4278
4384
  function Spacer(props) {
4279
4385
  const {
4280
4386
  field
@@ -4283,14 +4389,14 @@ function Spacer(props) {
4283
4389
  height = 60
4284
4390
  } = field;
4285
4391
  return jsxRuntime.jsx("div", {
4286
- class: formFieldClasses(type$6),
4392
+ class: formFieldClasses(type$7),
4287
4393
  style: {
4288
4394
  height: height
4289
4395
  }
4290
4396
  });
4291
4397
  }
4292
4398
  Spacer.config = {
4293
- type: type$6,
4399
+ type: type$7,
4294
4400
  keyed: false,
4295
4401
  label: 'Spacer',
4296
4402
  group: 'presentation',
@@ -4371,7 +4477,7 @@ function SkipLink(props) {
4371
4477
  });
4372
4478
  }
4373
4479
 
4374
- const type$5 = 'taglist';
4480
+ const type$6 = 'taglist';
4375
4481
  function Taglist(props) {
4376
4482
  const {
4377
4483
  disabled,
@@ -4515,7 +4621,7 @@ function Taglist(props) {
4515
4621
  const errorMessageId = `${domId}-error-message`;
4516
4622
  return jsxRuntime.jsxs("div", {
4517
4623
  ref: focusScopeRef,
4518
- class: formFieldClasses(type$5, {
4624
+ class: formFieldClasses(type$6, {
4519
4625
  errors,
4520
4626
  disabled,
4521
4627
  readonly
@@ -4600,7 +4706,7 @@ function Taglist(props) {
4600
4706
  });
4601
4707
  }
4602
4708
  Taglist.config = {
4603
- type: type$5,
4709
+ type: type$6,
4604
4710
  keyed: true,
4605
4711
  label: 'Tag list',
4606
4712
  group: 'selection',
@@ -4722,7 +4828,7 @@ function isValidAttribute(lcTag, lcName, value) {
4722
4828
  return true;
4723
4829
  }
4724
4830
 
4725
- const type$4 = 'text';
4831
+ const type$5 = 'text';
4726
4832
  function Text(props) {
4727
4833
  const form = useService('form');
4728
4834
  const {
@@ -4769,12 +4875,12 @@ function Text(props) {
4769
4875
  sanitizeStyleTags: false
4770
4876
  });
4771
4877
  return jsxRuntime.jsx("div", {
4772
- class: formFieldClasses(type$4),
4878
+ class: formFieldClasses(type$5),
4773
4879
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4774
4880
  });
4775
4881
  }
4776
4882
  Text.config = {
4777
- type: type$4,
4883
+ type: type$5,
4778
4884
  keyed: false,
4779
4885
  label: 'Text view',
4780
4886
  group: 'presentation',
@@ -4784,64 +4890,7 @@ Text.config = {
4784
4890
  })
4785
4891
  };
4786
4892
 
4787
- /**
4788
- * Wrap CSS styles with a given prefix.
4789
- *
4790
- * @param {HTMLElement} rootNode
4791
- * @param {string} prefix
4792
- *
4793
- * @returns {HTMLElement}
4794
- */
4795
- function wrapCSSStyles(rootNode, prefix) {
4796
- const styleTags = rootNode.querySelectorAll('style');
4797
- styleTags.forEach(styleTag => {
4798
- const topLevelRules = extractTopLevelRules(styleTag.textContent);
4799
- const scopedCss = topLevelRules.map(rule => {
4800
- const {
4801
- selector,
4802
- styles
4803
- } = splitRule(rule);
4804
- const scopedSelector = scopeSelector(selector, prefix);
4805
- return `${scopedSelector} ${styles}`;
4806
- }).join(' ');
4807
- styleTag.textContent = scopedCss;
4808
- });
4809
- return rootNode;
4810
- }
4811
- function extractTopLevelRules(cssString) {
4812
- let cursor = 0;
4813
- let start = 0;
4814
- let level = 0;
4815
- const topLevelRules = [];
4816
- while (cursor < cssString.length) {
4817
- if (cssString[cursor] === '{') {
4818
- level++;
4819
- }
4820
- if (cssString[cursor] === '}') {
4821
- level--;
4822
- if (level === 0) {
4823
- topLevelRules.push(cssString.substring(start, cursor + 1));
4824
- start = cursor + 1;
4825
- }
4826
- }
4827
- cursor++;
4828
- }
4829
- return topLevelRules.map(rule => rule.trim());
4830
- }
4831
- function splitRule(rule) {
4832
- const firstBracket = rule.indexOf('{');
4833
- const selector = rule.substring(0, firstBracket);
4834
- const styles = rule.substring(firstBracket);
4835
- return {
4836
- selector,
4837
- styles
4838
- };
4839
- }
4840
- function scopeSelector(selector, prefix) {
4841
- return selector.split(',').map(sel => `${prefix} ${sel.trim()}`).join(', ');
4842
- }
4843
-
4844
- const type$3 = 'html';
4893
+ const type$4 = 'html';
4845
4894
  function Html(props) {
4846
4895
  const form = useService('form');
4847
4896
  const {
@@ -4892,12 +4941,12 @@ function Html(props) {
4892
4941
  sanitizeStyleTags: false
4893
4942
  });
4894
4943
  return jsxRuntime.jsx("div", {
4895
- class: classNames(formFieldClasses(type$3), styleScope),
4944
+ class: classNames(formFieldClasses(type$4), styleScope),
4896
4945
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4897
4946
  });
4898
4947
  }
4899
4948
  Html.config = {
4900
- type: type$3,
4949
+ type: type$4,
4901
4950
  keyed: false,
4902
4951
  label: 'HTML',
4903
4952
  group: 'presentation',
@@ -4907,6 +4956,51 @@ Html.config = {
4907
4956
  })
4908
4957
  };
4909
4958
 
4959
+ const type$3 = 'expression';
4960
+ function ExpressionField(props) {
4961
+ const {
4962
+ field,
4963
+ onChange
4964
+ } = props;
4965
+ const {
4966
+ computeOn,
4967
+ expression
4968
+ } = field;
4969
+ const evaluation = useExpressionEvaluation(expression);
4970
+ const evaluationMemo = useDeepCompareMemoize(evaluation);
4971
+ const eventBus = useService('eventBus');
4972
+ const sendValue = hooks.useCallback(() => {
4973
+ onChange && onChange({
4974
+ field,
4975
+ value: evaluationMemo
4976
+ });
4977
+ }, [field, evaluationMemo, onChange]);
4978
+ useEffectOnChange(evaluationMemo, () => {
4979
+ if (computeOn !== 'change') {
4980
+ return;
4981
+ }
4982
+ sendValue();
4983
+ }, [computeOn, sendValue]);
4984
+ hooks.useEffect(() => {
4985
+ if (computeOn === 'presubmit') {
4986
+ eventBus.on('presubmit', sendValue);
4987
+ return () => eventBus.off('presubmit', sendValue);
4988
+ }
4989
+ }, [computeOn, sendValue, eventBus]);
4990
+ return null;
4991
+ }
4992
+ ExpressionField.config = {
4993
+ type: type$3,
4994
+ label: 'Expression',
4995
+ group: 'basic-input',
4996
+ keyed: true,
4997
+ escapeGridRender: true,
4998
+ create: (options = {}) => ({
4999
+ computeOn: 'change',
5000
+ ...options
5001
+ })
5002
+ };
5003
+
4910
5004
  const type$2 = 'textfield';
4911
5005
  function Textfield(props) {
4912
5006
  const {
@@ -5226,7 +5320,7 @@ function Table(props) {
5226
5320
  key
5227
5321
  }) => key);
5228
5322
  const evaluatedDataSource = useExpressionEvaluation(dataSource);
5229
- const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource : [];
5323
+ const data = Array.isArray(evaluatedDataSource) ? evaluatedDataSource.filter(i => i !== undefined) : [];
5230
5324
  const sortedData = sortBy === null ? data : sortByColumn(data, sortBy.key, sortBy.direction);
5231
5325
 
5232
5326
  /** @type {unknown[][]} */
@@ -5640,7 +5734,7 @@ function FormComponent(props) {
5640
5734
  });
5641
5735
  }
5642
5736
 
5643
- const formFields = [Button, Checkbox, Checklist, Default, DynamicList, Numberfield, Datetime, Radio, Select, Taglist, Textfield, Textarea, Text, Image, Table, Html, Spacer, Separator, Group, DynamicList, IFrame];
5737
+ const formFields = [Button, Checkbox, Checklist, Default, DynamicList, Numberfield, Datetime, Radio, Select, Taglist, Textfield, Textarea, ExpressionField, Text, Image, Table, Html, Spacer, Separator, Group, DynamicList, IFrame];
5644
5738
 
5645
5739
  class FormFields {
5646
5740
  constructor() {
@@ -5964,13 +6058,7 @@ const ExpressionLanguageModule = {
5964
6058
  conditionChecker: ['type', ConditionChecker]
5965
6059
  };
5966
6060
 
5967
- // bootstrap showdown to support github flavored markdown
5968
- showdown.setFlavor('github');
5969
6061
  class MarkdownRenderer {
5970
- constructor() {
5971
- this._converter = new showdown.Converter();
5972
- }
5973
-
5974
6062
  /**
5975
6063
  * Render markdown to HTML.
5976
6064
  *
@@ -5979,7 +6067,11 @@ class MarkdownRenderer {
5979
6067
  * @returns {string} HTML
5980
6068
  */
5981
6069
  render(markdown) {
5982
- return this._converter.makeHtml(markdown);
6070
+ // @ts-expect-error
6071
+ return marked.marked.parse(markdown, {
6072
+ gfm: true,
6073
+ breaks: true
6074
+ });
5983
6075
  }
5984
6076
  }
5985
6077
  MarkdownRenderer.$inject = [];
@@ -6644,9 +6736,9 @@ class RepeatRenderManager {
6644
6736
  };
6645
6737
  const parentExpressionContextInfo = hooks.useContext(LocalExpressionContext);
6646
6738
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
6647
- children: displayValues.map((value, index) => jsxRuntime.jsx(RepetitionScaffold, {
6648
- index: index,
6649
- value: value,
6739
+ children: displayValues.map((itemValue, itemIndex) => jsxRuntime.jsx(RepetitionScaffold, {
6740
+ itemIndex: itemIndex,
6741
+ itemValue: itemValue,
6650
6742
  parentExpressionContextInfo: parentExpressionContextInfo,
6651
6743
  repeaterField: repeaterField,
6652
6744
  RowsRenderer: RowsRenderer,
@@ -6654,7 +6746,7 @@ class RepeatRenderManager {
6654
6746
  onDeleteItem: onDeleteItem,
6655
6747
  showRemove: showRemove,
6656
6748
  ...restProps
6657
- }, index))
6749
+ }, itemIndex))
6658
6750
  });
6659
6751
  }
6660
6752
  RepeatFooter(props) {
@@ -6751,8 +6843,8 @@ class RepeatRenderManager {
6751
6843
  * Individual repetition of a repeated field and context scaffolding.
6752
6844
  *
6753
6845
  * @param {Object} props
6754
- * @param {number} props.index
6755
- * @param {Object} props.value
6846
+ * @param {number} props.itemIndex
6847
+ * @param {Object} props.itemValue
6756
6848
  * @param {Object} props.parentExpressionContextInfo
6757
6849
  * @param {Object} props.repeaterField
6758
6850
  * @param {Function} props.RowsRenderer
@@ -6763,8 +6855,8 @@ class RepeatRenderManager {
6763
6855
 
6764
6856
  const RepetitionScaffold = props => {
6765
6857
  const {
6766
- index,
6767
- value,
6858
+ itemIndex,
6859
+ itemValue,
6768
6860
  parentExpressionContextInfo,
6769
6861
  repeaterField,
6770
6862
  RowsRenderer,
@@ -6777,15 +6869,15 @@ const RepetitionScaffold = props => {
6777
6869
  ...restProps,
6778
6870
  indexes: {
6779
6871
  ...(indexes || {}),
6780
- [repeaterField.id]: index
6872
+ [repeaterField.id]: itemIndex
6781
6873
  }
6782
- }), [index, indexes, repeaterField.id, restProps]);
6874
+ }), [itemIndex, indexes, repeaterField.id, restProps]);
6783
6875
  const localExpressionContextInfo = hooks.useMemo(() => ({
6784
6876
  data: parentExpressionContextInfo.data,
6785
- this: value,
6877
+ this: itemValue,
6786
6878
  parent: buildExpressionContext(parentExpressionContextInfo),
6787
- i: [...parentExpressionContextInfo.i, index + 1]
6788
- }), [index, parentExpressionContextInfo, value]);
6879
+ i: [...parentExpressionContextInfo.i, itemIndex + 1]
6880
+ }), [itemIndex, parentExpressionContextInfo, itemValue]);
6789
6881
  return !showRemove ? jsxRuntime.jsx(LocalExpressionContext.Provider, {
6790
6882
  value: localExpressionContextInfo,
6791
6883
  children: jsxRuntime.jsx(RowsRenderer, {
@@ -6804,8 +6896,8 @@ const RepetitionScaffold = props => {
6804
6896
  }), jsxRuntime.jsx("button", {
6805
6897
  type: "button",
6806
6898
  class: "fjs-repeat-row-remove",
6807
- "aria-label": `Remove list item ${index + 1}`,
6808
- onClick: () => onDeleteItem(index),
6899
+ "aria-label": `Remove list item ${itemIndex + 1}`,
6900
+ onClick: () => onDeleteItem(itemIndex),
6809
6901
  children: jsxRuntime.jsx("div", {
6810
6902
  class: "fjs-repeat-row-remove-icon-container",
6811
6903
  children: jsxRuntime.jsx(DeleteSvg, {})
@@ -8321,6 +8413,7 @@ class Form {
8321
8413
  if (properties.readOnly || properties.disabled) {
8322
8414
  throw new Error('form is read-only');
8323
8415
  }
8416
+ this._emit('presubmit');
8324
8417
  const data = this._getSubmitData();
8325
8418
  const errors = this.validate();
8326
8419
  const result = {
@@ -8717,7 +8810,7 @@ class Form {
8717
8810
  }
8718
8811
  }
8719
8812
 
8720
- const schemaVersion = 15;
8813
+ const schemaVersion = 16;
8721
8814
 
8722
8815
  /**
8723
8816
  * @typedef { import('./types').CreateFormOptions } CreateFormOptions
@@ -8757,6 +8850,7 @@ exports.Default = Default;
8757
8850
  exports.Description = Description;
8758
8851
  exports.DynamicList = DynamicList;
8759
8852
  exports.Errors = Errors;
8853
+ exports.ExpressionField = ExpressionField;
8760
8854
  exports.ExpressionLanguageModule = ExpressionLanguageModule;
8761
8855
  exports.FeelExpressionLanguage = FeelExpressionLanguage;
8762
8856
  exports.FeelersTemplating = FeelersTemplating;
@@ -8820,6 +8914,7 @@ exports.generateIndexForType = generateIndexForType;
8820
8914
  exports.getAncestryList = getAncestryList;
8821
8915
  exports.getOptionsSource = getOptionsSource;
8822
8916
  exports.getSchemaVariables = getSchemaVariables;
8917
+ exports.getScrollContainer = getScrollContainer;
8823
8918
  exports.hasEqualValue = hasEqualValue;
8824
8919
  exports.iconsByType = iconsByType;
8825
8920
  exports.isRequired = isRequired;
@@ -8836,4 +8931,5 @@ exports.schemaVersion = schemaVersion;
8836
8931
  exports.useExpressionEvaluation = useExpressionEvaluation;
8837
8932
  exports.useSingleLineTemplateEvaluation = useSingleLineTemplateEvaluation;
8838
8933
  exports.useTemplateEvaluation = useTemplateEvaluation;
8934
+ exports.wrapCSSStyles = wrapCSSStyles;
8839
8935
  //# sourceMappingURL=index.cjs.map