@bpmn-io/form-js-viewer 1.10.0 → 1.11.0-alpha.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.es.js CHANGED
@@ -645,6 +645,12 @@ const FormContext = createContext({
645
645
  formId: null
646
646
  });
647
647
 
648
+ /**
649
+ * @template T
650
+ * @param {string} type
651
+ * @param {boolean} [strict=true]
652
+ * @returns {T | null}
653
+ */
648
654
  function useService(type, strict) {
649
655
  const {
650
656
  getService
@@ -723,11 +729,10 @@ function buildExpressionContext(context) {
723
729
  }
724
730
 
725
731
  /**
726
- * Evaluate a string based on the expressionLanguage and context information.
727
- * If the string is not an expression, it is returned as is.
732
+ * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.
728
733
  *
729
734
  * @param {any} expressionLanguage - The expression language to use.
730
- * @param {string} value - The string to evaluate.
735
+ * @param {any} value - The static value or expression to evaluate.
731
736
  * @param {Object} expressionContextInfo - The context information to use.
732
737
  * @returns {any} - Evaluated value or the original value if not an expression.
733
738
  */
@@ -858,11 +863,10 @@ function _isAllowedValue(value) {
858
863
  }
859
864
 
860
865
  /**
861
- * Evaluate a string reactively based on the expressionLanguage and form data.
862
- * If the string is not an expression, it is returned as is.
866
+ * If the value is a valid expression, it is evaluated and returned. Otherwise, it is returned as-is.
863
867
  * The function is memoized to minimize re-renders.
864
868
  *
865
- * @param {string} value - The string to evaluate.
869
+ * @param {any} value - A static value or expression to evaluate.
866
870
  * @returns {any} - Evaluated value or the original value if not an expression.
867
871
  */
868
872
  function useExpressionEvaluation(value) {
@@ -1102,7 +1106,7 @@ function _isElementScrollable(el) {
1102
1106
  }
1103
1107
 
1104
1108
  const EMPTY_OBJECT = {};
1105
- const EMPTY_ARRAY = [];
1109
+ const EMPTY_ARRAY$2 = [];
1106
1110
 
1107
1111
  /**
1108
1112
  * Custom hook to scroll an element within a scrollable container.
@@ -1118,7 +1122,7 @@ const EMPTY_ARRAY = [];
1118
1122
  */
1119
1123
  function useScrollIntoView(scrolledElementRef, deps, scrollOptions, flagRefs) {
1120
1124
  const _scrollOptions = scrollOptions || EMPTY_OBJECT;
1121
- const _flagRefs = flagRefs || EMPTY_ARRAY;
1125
+ const _flagRefs = flagRefs || EMPTY_ARRAY$2;
1122
1126
  useEffect(() => {
1123
1127
  // return early if flags are not raised, or component is not mounted
1124
1128
  if (some(_flagRefs, ref => !ref.current) || !scrolledElementRef.current) {
@@ -1172,6 +1176,23 @@ function _getTopOffset(item, scrollContainer, options) {
1172
1176
  return 0;
1173
1177
  }
1174
1178
 
1179
+ /**
1180
+ * If the value is a valid expression, we evaluate it. Otherwise, we continue with the value as-is.
1181
+ * If the resulting value isn't a boolean, we return 'false'
1182
+ * The function is memoized to minimize re-renders.
1183
+ *
1184
+ * @param {boolean | string} value - A static boolean or expression to evaluate.
1185
+ * @returns {boolean} - Evaluated boolean result.
1186
+ */
1187
+ function useBooleanExpressionEvaluation(value) {
1188
+ const expressionLanguage = useService('expressionLanguage');
1189
+ const expressionContextInfo = useContext(LocalExpressionContext);
1190
+ return useMemo(() => {
1191
+ const evaluationResult = runExpressionEvaluation(expressionLanguage, value, expressionContextInfo);
1192
+ return typeof evaluationResult === 'boolean' ? evaluationResult : false;
1193
+ }, [expressionLanguage, expressionContextInfo, value]);
1194
+ }
1195
+
1175
1196
  /**
1176
1197
  * Returns the conditionally filtered data of a form reactively.
1177
1198
  * Memoised to minimize re-renders
@@ -1656,7 +1677,7 @@ function useCleanupMultiSelectValue(props) {
1656
1677
  }, [field, options, onChange, memoizedValues, loadState]);
1657
1678
  }
1658
1679
 
1659
- const type$h = 'button';
1680
+ const type$i = 'button';
1660
1681
  function Button(props) {
1661
1682
  const {
1662
1683
  disabled,
@@ -1671,7 +1692,7 @@ function Button(props) {
1671
1692
  debug: true
1672
1693
  });
1673
1694
  return jsx("div", {
1674
- class: formFieldClasses(type$h),
1695
+ class: formFieldClasses(type$i),
1675
1696
  children: jsx("button", {
1676
1697
  class: "fjs-button",
1677
1698
  type: action,
@@ -1683,7 +1704,7 @@ function Button(props) {
1683
1704
  });
1684
1705
  }
1685
1706
  Button.config = {
1686
- type: type$h,
1707
+ type: type$i,
1687
1708
  keyed: false,
1688
1709
  label: 'Button',
1689
1710
  group: 'action',
@@ -1758,7 +1779,7 @@ function Label(props) {
1758
1779
  });
1759
1780
  }
1760
1781
 
1761
- const type$g = 'checkbox';
1782
+ const type$h = 'checkbox';
1762
1783
  function Checkbox(props) {
1763
1784
  const {
1764
1785
  disabled,
@@ -1788,7 +1809,7 @@ function Checkbox(props) {
1788
1809
  const descriptionId = `${domId}-description`;
1789
1810
  const errorMessageId = `${domId}-error-message`;
1790
1811
  return jsxs("div", {
1791
- class: classNames(formFieldClasses(type$g, {
1812
+ class: classNames(formFieldClasses(type$h, {
1792
1813
  errors,
1793
1814
  disabled,
1794
1815
  readonly
@@ -1823,7 +1844,7 @@ function Checkbox(props) {
1823
1844
  });
1824
1845
  }
1825
1846
  Checkbox.config = {
1826
- type: type$g,
1847
+ type: type$h,
1827
1848
  keyed: true,
1828
1849
  label: 'Checkbox',
1829
1850
  group: 'selection',
@@ -1836,7 +1857,7 @@ Checkbox.config = {
1836
1857
  })
1837
1858
  };
1838
1859
 
1839
- const type$f = 'checklist';
1860
+ const type$g = 'checklist';
1840
1861
  function Checklist(props) {
1841
1862
  const {
1842
1863
  disabled,
@@ -1889,7 +1910,7 @@ function Checklist(props) {
1889
1910
  const descriptionId = `${domId}-description`;
1890
1911
  const errorMessageId = `${domId}-error-message`;
1891
1912
  return jsxs("div", {
1892
- class: classNames(formFieldClasses(type$f, {
1913
+ class: classNames(formFieldClasses(type$g, {
1893
1914
  errors,
1894
1915
  disabled,
1895
1916
  readonly
@@ -1933,7 +1954,7 @@ function Checklist(props) {
1933
1954
  });
1934
1955
  }
1935
1956
  Checklist.config = {
1936
- type: type$f,
1957
+ type: type$g,
1937
1958
  keyed: true,
1938
1959
  label: 'Checkbox group',
1939
1960
  group: 'selection',
@@ -1943,7 +1964,9 @@ Checklist.config = {
1943
1964
  };
1944
1965
 
1945
1966
  const noop$1 = () => false;
1967
+ const ids$2 = new Ids([32, 36, 1]);
1946
1968
  function FormField(props) {
1969
+ const instanceIdRef = useRef(ids$2.next());
1947
1970
  const {
1948
1971
  field,
1949
1972
  indexes,
@@ -1989,22 +2012,28 @@ function FormField(props) {
1989
2012
  // add precedence: global readonly > form field disabled
1990
2013
  const disabled = !properties.readOnly && (properties.disabled || field.disabled || false);
1991
2014
  const hidden = useCondition(field.conditional && field.conditional.hide || null);
1992
- const fieldInstance = useMemo(() => ({
1993
- id: field.id,
1994
- expressionContextInfo: localExpressionContext,
1995
- valuePath,
1996
- indexes
1997
- }), [field.id, valuePath, localExpressionContext, indexes]);
2015
+ const instanceId = useMemo(() => {
2016
+ if (!formFieldInstanceRegistry) {
2017
+ return null;
2018
+ }
2019
+ return formFieldInstanceRegistry.syncInstance(instanceIdRef.current, {
2020
+ id: field.id,
2021
+ expressionContextInfo: localExpressionContext,
2022
+ valuePath,
2023
+ value,
2024
+ indexes,
2025
+ hidden
2026
+ });
2027
+ }, [formFieldInstanceRegistry, field.id, localExpressionContext, valuePath, value, indexes, hidden]);
2028
+ const fieldInstance = instanceId ? formFieldInstanceRegistry.get(instanceId) : null;
1998
2029
 
1999
- // register form field instance
2030
+ // cleanup the instance on unmount
2000
2031
  useEffect(() => {
2001
- if (formFieldInstanceRegistry && !hidden) {
2002
- const instanceId = formFieldInstanceRegistry.add(fieldInstance);
2003
- return () => {
2004
- formFieldInstanceRegistry.remove(instanceId);
2005
- };
2032
+ const instanceId = instanceIdRef.current;
2033
+ if (formFieldInstanceRegistry) {
2034
+ return () => formFieldInstanceRegistry.cleanupInstance(instanceId);
2006
2035
  }
2007
- }, [fieldInstance, formFieldInstanceRegistry, hidden]);
2036
+ }, [formFieldInstanceRegistry]);
2008
2037
 
2009
2038
  // ensures the initial validation behavior can be re-triggered upon form reset
2010
2039
  useEffect(() => {
@@ -2240,16 +2269,16 @@ Default.config = {
2240
2269
  })
2241
2270
  };
2242
2271
 
2243
- var _path$w;
2244
- 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); }
2272
+ var _path$x;
2273
+ function _extends$y() { _extends$y = 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$y.apply(this, arguments); }
2245
2274
  var SvgCalendar = function SvgCalendar(props) {
2246
- return /*#__PURE__*/React.createElement("svg", _extends$x({
2275
+ return /*#__PURE__*/React.createElement("svg", _extends$y({
2247
2276
  xmlns: "http://www.w3.org/2000/svg",
2248
2277
  width: 14,
2249
2278
  height: 15,
2250
2279
  fill: "none",
2251
2280
  viewBox: "0 0 28 30"
2252
- }, props), _path$w || (_path$w = /*#__PURE__*/React.createElement("path", {
2281
+ }, props), _path$x || (_path$x = /*#__PURE__*/React.createElement("path", {
2253
2282
  fill: "currentColor",
2254
2283
  fillRule: "evenodd",
2255
2284
  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-2zM7 7V4H2v5h24V4h-5v3h-2V4H9v3zm-5 4v17h24V11z",
@@ -2514,16 +2543,16 @@ function Datepicker(props) {
2514
2543
  });
2515
2544
  }
2516
2545
 
2517
- var _path$v, _path2$4;
2518
- 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); }
2546
+ var _path$w, _path2$4;
2547
+ 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); }
2519
2548
  var SvgClock = function SvgClock(props) {
2520
- return /*#__PURE__*/React.createElement("svg", _extends$w({
2549
+ return /*#__PURE__*/React.createElement("svg", _extends$x({
2521
2550
  xmlns: "http://www.w3.org/2000/svg",
2522
2551
  width: 16,
2523
2552
  height: 16,
2524
2553
  fill: "none",
2525
2554
  viewBox: "0 0 28 29"
2526
- }, props), _path$v || (_path$v = /*#__PURE__*/React.createElement("path", {
2555
+ }, props), _path$w || (_path$w = /*#__PURE__*/React.createElement("path", {
2527
2556
  fill: "currentColor",
2528
2557
  d: "M13 14.41 18.59 20 20 18.59l-5-5.01V5h-2z"
2529
2558
  })), _path2$4 || (_path2$4 = /*#__PURE__*/React.createElement("path", {
@@ -2792,7 +2821,7 @@ function Timepicker(props) {
2792
2821
  });
2793
2822
  }
2794
2823
 
2795
- const type$e = 'datetime';
2824
+ const type$f = 'datetime';
2796
2825
  function Datetime(props) {
2797
2826
  const {
2798
2827
  disabled,
@@ -2961,7 +2990,7 @@ function Datetime(props) {
2961
2990
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
2962
2991
  };
2963
2992
  return jsxs("div", {
2964
- class: formFieldClasses(type$e, {
2993
+ class: formFieldClasses(type$f, {
2965
2994
  errors: allErrors,
2966
2995
  disabled,
2967
2996
  readonly
@@ -2986,7 +3015,7 @@ function Datetime(props) {
2986
3015
  });
2987
3016
  }
2988
3017
  Datetime.config = {
2989
- type: type$e,
3018
+ type: type$f,
2990
3019
  keyed: true,
2991
3020
  label: 'Date time',
2992
3021
  group: 'basic-input',
@@ -3046,7 +3075,7 @@ Group.config = {
3046
3075
  })
3047
3076
  };
3048
3077
 
3049
- const type$d = 'iframe';
3078
+ const type$e = 'iframe';
3050
3079
  const DEFAULT_HEIGHT = 300;
3051
3080
  function IFrame(props) {
3052
3081
  const {
@@ -3076,7 +3105,7 @@ function IFrame(props) {
3076
3105
  setIframeRefresh(count => count + 1);
3077
3106
  }, [sandbox, allow]);
3078
3107
  return jsxs("div", {
3079
- class: formFieldClasses(type$d, {
3108
+ class: formFieldClasses(type$e, {
3080
3109
  disabled,
3081
3110
  readonly
3082
3111
  }),
@@ -3111,7 +3140,7 @@ function IFramePlaceholder(props) {
3111
3140
  });
3112
3141
  }
3113
3142
  IFrame.config = {
3114
- type: type$d,
3143
+ type: type$e,
3115
3144
  keyed: false,
3116
3145
  label: 'iFrame',
3117
3146
  group: 'container',
@@ -3123,42 +3152,42 @@ IFrame.config = {
3123
3152
  })
3124
3153
  };
3125
3154
 
3126
- var _path$u;
3127
- 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); }
3155
+ var _path$v;
3156
+ 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); }
3128
3157
  var SvgButton = function SvgButton(props) {
3129
- return /*#__PURE__*/React.createElement("svg", _extends$v({
3158
+ return /*#__PURE__*/React.createElement("svg", _extends$w({
3130
3159
  xmlns: "http://www.w3.org/2000/svg",
3131
3160
  width: 54,
3132
3161
  height: 54,
3133
3162
  fill: "currentcolor"
3134
- }, props), _path$u || (_path$u = /*#__PURE__*/React.createElement("path", {
3163
+ }, props), _path$v || (_path$v = /*#__PURE__*/React.createElement("path", {
3135
3164
  fillRule: "evenodd",
3136
3165
  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-3zm-9 8.889H18v2.222h18z"
3137
3166
  })));
3138
3167
  };
3139
3168
 
3140
- var _path$t;
3141
- 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); }
3169
+ var _path$u;
3170
+ 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); }
3142
3171
  var SvgCheckbox = function SvgCheckbox(props) {
3143
- return /*#__PURE__*/React.createElement("svg", _extends$u({
3172
+ return /*#__PURE__*/React.createElement("svg", _extends$v({
3144
3173
  xmlns: "http://www.w3.org/2000/svg",
3145
3174
  width: 54,
3146
3175
  height: 54,
3147
3176
  fill: "currentcolor"
3148
- }, props), _path$t || (_path$t = /*#__PURE__*/React.createElement("path", {
3177
+ }, props), _path$u || (_path$u = /*#__PURE__*/React.createElement("path", {
3149
3178
  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-2m-9 14-5-5 1.41-1.41L25 29.17l7.59-7.59L34 23z"
3150
3179
  })));
3151
3180
  };
3152
3181
 
3153
- var _path$s;
3154
- 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); }
3182
+ var _path$t;
3183
+ 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); }
3155
3184
  var SvgChecklist = function SvgChecklist(props) {
3156
- return /*#__PURE__*/React.createElement("svg", _extends$t({
3185
+ return /*#__PURE__*/React.createElement("svg", _extends$u({
3157
3186
  xmlns: "http://www.w3.org/2000/svg",
3158
3187
  width: 54,
3159
3188
  height: 54,
3160
3189
  fill: "none"
3161
- }, props), _path$s || (_path$s = /*#__PURE__*/React.createElement("path", {
3190
+ }, props), _path$t || (_path$t = /*#__PURE__*/React.createElement("path", {
3162
3191
  fill: "currentColor",
3163
3192
  fillRule: "evenodd",
3164
3193
  d: "M14.35 24.75H19v4.65h-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.414M14.35 37.05H19v4.65h-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.414M14.35 12.45H19v4.65h-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.414m12.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.293m0 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.293m0-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.293",
@@ -3166,15 +3195,15 @@ var SvgChecklist = function SvgChecklist(props) {
3166
3195
  })));
3167
3196
  };
3168
3197
 
3169
- var _path$r, _path2$3, _path3;
3170
- 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); }
3198
+ var _path$s, _path2$3, _path3;
3199
+ 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); }
3171
3200
  var SvgDatetime = function SvgDatetime(props) {
3172
- return /*#__PURE__*/React.createElement("svg", _extends$s({
3201
+ return /*#__PURE__*/React.createElement("svg", _extends$t({
3173
3202
  xmlns: "http://www.w3.org/2000/svg",
3174
3203
  width: 54,
3175
3204
  height: 54,
3176
3205
  fill: "currentcolor"
3177
- }, props), _path$r || (_path$r = /*#__PURE__*/React.createElement("path", {
3206
+ }, props), _path$s || (_path$s = /*#__PURE__*/React.createElement("path", {
3178
3207
  fillRule: "evenodd",
3179
3208
  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.06"
3180
3209
  })), _path2$3 || (_path2$3 = /*#__PURE__*/React.createElement("path", {
@@ -3185,15 +3214,15 @@ var SvgDatetime = function SvgDatetime(props) {
3185
3214
  })));
3186
3215
  };
3187
3216
 
3188
- var _path$q, _path2$2;
3189
- 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); }
3217
+ var _path$r, _path2$2;
3218
+ 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); }
3190
3219
  var SvgTaglist = function SvgTaglist(props) {
3191
- return /*#__PURE__*/React.createElement("svg", _extends$r({
3220
+ return /*#__PURE__*/React.createElement("svg", _extends$s({
3192
3221
  xmlns: "http://www.w3.org/2000/svg",
3193
3222
  width: 54,
3194
3223
  height: 54,
3195
3224
  fill: "currentcolor"
3196
- }, props), _path$q || (_path$q = /*#__PURE__*/React.createElement("path", {
3225
+ }, props), _path$r || (_path$r = /*#__PURE__*/React.createElement("path", {
3197
3226
  fillRule: "evenodd",
3198
3227
  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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1"
3199
3228
  })), _path2$2 || (_path2$2 = /*#__PURE__*/React.createElement("path", {
@@ -3202,9 +3231,9 @@ var SvgTaglist = function SvgTaglist(props) {
3202
3231
  };
3203
3232
 
3204
3233
  var _rect, _rect2, _rect3;
3205
- 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); }
3234
+ 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); }
3206
3235
  var SvgForm = function SvgForm(props) {
3207
- return /*#__PURE__*/React.createElement("svg", _extends$q({
3236
+ return /*#__PURE__*/React.createElement("svg", _extends$r({
3208
3237
  xmlns: "http://www.w3.org/2000/svg",
3209
3238
  width: 54,
3210
3239
  height: 54
@@ -3229,15 +3258,15 @@ var SvgForm = function SvgForm(props) {
3229
3258
  })));
3230
3259
  };
3231
3260
 
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); }
3261
+ var _path$q;
3262
+ 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); }
3234
3263
  var SvgGroup = function SvgGroup(props) {
3235
- return /*#__PURE__*/React.createElement("svg", _extends$p({
3264
+ return /*#__PURE__*/React.createElement("svg", _extends$q({
3236
3265
  xmlns: "http://www.w3.org/2000/svg",
3237
3266
  width: 54,
3238
3267
  height: 54,
3239
3268
  fill: "none"
3240
- }, props), _path$p || (_path$p = /*#__PURE__*/React.createElement("path", {
3269
+ }, props), _path$q || (_path$q = /*#__PURE__*/React.createElement("path", {
3241
3270
  fill: "#000",
3242
3271
  fillRule: "evenodd",
3243
3272
  d: "M4.05 42.132v1.164c0 .693.604 1.254 1.35 1.254h1.35v-2.507h-2.7v.09Zm0-2.328h2.7v-2.328h-2.7zm0-4.656h2.7V32.82h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656h2.7v-2.328h-2.7zm0-4.656v.09h2.7V9.45H5.4c-.746 0-1.35.561-1.35 1.254zm5.4-2.418v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7V9.45zm5.4 0v2.507h2.7v-1.253c0-.693-.604-1.254-1.35-1.254zm2.7 4.746h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656h-2.7v2.328h2.7zm0 4.656v-.09h-2.7v2.508h1.35c.746 0 1.35-.561 1.35-1.254zm-5.4 2.418v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507zm-5.4 0v-2.507h-2.7v2.507z",
@@ -3245,50 +3274,64 @@ var SvgGroup = function SvgGroup(props) {
3245
3274
  })));
3246
3275
  };
3247
3276
 
3277
+ var _path$p;
3278
+ 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); }
3279
+ var SvgNumber = function SvgNumber(props) {
3280
+ return /*#__PURE__*/React.createElement("svg", _extends$p({
3281
+ xmlns: "http://www.w3.org/2000/svg",
3282
+ width: 54,
3283
+ height: 54,
3284
+ fill: "currentcolor"
3285
+ }, props), _path$p || (_path$p = /*#__PURE__*/React.createElement("path", {
3286
+ fillRule: "evenodd",
3287
+ 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1M35 28.444h7l-3.5 4zM35 26h7l-3.5-4z"
3288
+ })));
3289
+ };
3290
+
3248
3291
  var _path$o;
3249
3292
  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); }
3250
- var SvgNumber = function SvgNumber(props) {
3293
+ var SvgRadio = function SvgRadio(props) {
3251
3294
  return /*#__PURE__*/React.createElement("svg", _extends$o({
3252
3295
  xmlns: "http://www.w3.org/2000/svg",
3253
3296
  width: 54,
3254
3297
  height: 54,
3255
3298
  fill: "currentcolor"
3256
3299
  }, props), _path$o || (_path$o = /*#__PURE__*/React.createElement("path", {
3257
- fillRule: "evenodd",
3258
- 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1M35 28.444h7l-3.5 4zM35 26h7l-3.5-4z"
3300
+ d: "M27 22c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16"
3259
3301
  })));
3260
3302
  };
3261
3303
 
3262
3304
  var _path$n;
3263
3305
  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); }
3264
- var SvgRadio = function SvgRadio(props) {
3306
+ var SvgSelect = function SvgSelect(props) {
3265
3307
  return /*#__PURE__*/React.createElement("svg", _extends$n({
3266
3308
  xmlns: "http://www.w3.org/2000/svg",
3267
3309
  width: 54,
3268
3310
  height: 54,
3269
3311
  fill: "currentcolor"
3270
3312
  }, props), _path$n || (_path$n = /*#__PURE__*/React.createElement("path", {
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-5m0-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10m0 18a8 8 0 1 1 0-16 8 8 0 1 1 0 16"
3313
+ fillRule: "evenodd",
3314
+ 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-12 7h9l-4.5 6z"
3272
3315
  })));
3273
3316
  };
3274
3317
 
3275
3318
  var _path$m;
3276
3319
  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); }
3277
- var SvgSelect = function SvgSelect(props) {
3320
+ var SvgSeparator = function SvgSeparator(props) {
3278
3321
  return /*#__PURE__*/React.createElement("svg", _extends$m({
3279
3322
  xmlns: "http://www.w3.org/2000/svg",
3280
3323
  width: 54,
3281
3324
  height: 54,
3282
- fill: "currentcolor"
3325
+ fill: "none"
3283
3326
  }, props), _path$m || (_path$m = /*#__PURE__*/React.createElement("path", {
3284
- fillRule: "evenodd",
3285
- 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-12 7h9l-4.5 6z"
3327
+ fill: "currentColor",
3328
+ 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.414zM9 26h36v2H9zm13.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.414"
3286
3329
  })));
3287
3330
  };
3288
3331
 
3289
3332
  var _path$l;
3290
3333
  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); }
3291
- var SvgSeparator = function SvgSeparator(props) {
3334
+ var SvgSpacer = function SvgSpacer(props) {
3292
3335
  return /*#__PURE__*/React.createElement("svg", _extends$l({
3293
3336
  xmlns: "http://www.w3.org/2000/svg",
3294
3337
  width: 54,
@@ -3296,13 +3339,13 @@ var SvgSeparator = function SvgSeparator(props) {
3296
3339
  fill: "none"
3297
3340
  }, props), _path$l || (_path$l = /*#__PURE__*/React.createElement("path", {
3298
3341
  fill: "currentColor",
3299
- 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.414zM9 26h36v2H9zm13.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.414"
3342
+ d: "M9 15v2h36v-2zm0 22v2h36v-2zm17.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.414zm-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.414"
3300
3343
  })));
3301
3344
  };
3302
3345
 
3303
3346
  var _path$k;
3304
3347
  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); }
3305
- var SvgSpacer = function SvgSpacer(props) {
3348
+ var SvgDynamicList = function SvgDynamicList(props) {
3306
3349
  return /*#__PURE__*/React.createElement("svg", _extends$k({
3307
3350
  xmlns: "http://www.w3.org/2000/svg",
3308
3351
  width: 54,
@@ -3310,74 +3353,74 @@ var SvgSpacer = function SvgSpacer(props) {
3310
3353
  fill: "none"
3311
3354
  }, props), _path$k || (_path$k = /*#__PURE__*/React.createElement("path", {
3312
3355
  fill: "currentColor",
3313
- d: "M9 15v2h36v-2zm0 22v2h36v-2zm17.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.414zm-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.414"
3356
+ fillRule: "evenodd",
3357
+ d: "M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795q.074.211.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096zm2.7-2.507v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507zm0-5.014V13.21H2.7v2.507zm-2.7-5.014h1.852a1.4 1.4 0 0 1-.502.096h1.275v-.096H5.4V9.45q0 .235-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45zm5.175.096h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1-2.7v1.795a1.4 1.4 0 0 1-.075-.445v1.254h.075v.096h1.275a1.4 1.4 0 0 1-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35zm-.075 5.11v2.508h2.7V13.21zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7V23.24zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm2.7 5.014h-1.852a1.4 1.4 0 0 1 .502-.096h-1.275v.096H48.6v1.254q0-.235.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35zm-5.175-.096h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zM16.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.05zm0 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.35m27 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.05zm-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.35M43.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.7zm-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.05z",
3358
+ clipRule: "evenodd"
3314
3359
  })));
3315
3360
  };
3316
3361
 
3317
3362
  var _path$j;
3318
3363
  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); }
3319
- var SvgDynamicList = function SvgDynamicList(props) {
3364
+ var SvgText = function SvgText(props) {
3320
3365
  return /*#__PURE__*/React.createElement("svg", _extends$j({
3321
3366
  xmlns: "http://www.w3.org/2000/svg",
3322
3367
  width: 54,
3323
3368
  height: 54,
3324
- fill: "none"
3369
+ fill: "currentcolor"
3325
3370
  }, props), _path$j || (_path$j = /*#__PURE__*/React.createElement("path", {
3326
- fill: "currentColor",
3327
- fillRule: "evenodd",
3328
- d: "M2.7 43.296v1.254c0 .746.604 1.35 1.35 1.35h1.275v-1.795q.074.211.075.445v-1.254h-.075V43.2H4.05c.177 0 .347.034.502.096zm2.7-2.507v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.014v-2.507H2.7v2.507zm0-5.015V23.24H2.7v2.507h2.7Zm0-5.014v-2.507H2.7v2.507zm0-5.014V13.21H2.7v2.507zm-2.7-5.014h1.852a1.4 1.4 0 0 1-.502.096h1.275v-.096H5.4V9.45q0 .235-.075.445V8.1H4.05A1.35 1.35 0 0 0 2.7 9.45zm5.175.096h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1 0h2.55V8.1h-2.55zm5.1-2.7v1.795a1.4 1.4 0 0 1-.075-.445v1.254h.075v.096h1.275a1.4 1.4 0 0 1-.502-.096H51.3V9.45a1.35 1.35 0 0 0-1.35-1.35zm-.075 5.11v2.508h2.7V13.21zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7V23.24zm0 5.015v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm0 5.014v2.507h2.7v-2.507zm2.7 5.014h-1.852a1.4 1.4 0 0 1 .502-.096h-1.275v.096H48.6v1.254q0-.235.075-.445V45.9h1.275a1.35 1.35 0 0 0 1.35-1.35zm-5.175-.096h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zm-5.1 0h-2.55v2.7h2.55zM16.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.05zm0 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.35m27 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.05zm-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.35M43.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.7zm-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.05z",
3329
- clipRule: "evenodd"
3371
+ 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.5 15.5 0 0 1 2.4.14 3.4 3.4 0 0 1 1.41.55 3.5 3.5 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.6 3.6 0 0 1-1.09 1.4 3.9 3.9 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.8 1.8 0 0 0 1.1-.49 1.4 1.4 0 0 0 .41-1 1.5 1.5 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.5 11.5 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.7 1.7 0 0 0-.86-.62 9.3 9.3 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.1 7.1 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.3 5.3 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.21"
3330
3372
  })));
3331
3373
  };
3332
3374
 
3333
3375
  var _path$i;
3334
3376
  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); }
3335
- var SvgText = function SvgText(props) {
3377
+ var SvgHtml = function SvgHtml(props) {
3336
3378
  return /*#__PURE__*/React.createElement("svg", _extends$i({
3337
3379
  xmlns: "http://www.w3.org/2000/svg",
3338
3380
  width: 54,
3339
3381
  height: 54,
3340
- fill: "currentcolor"
3382
+ fill: "none"
3341
3383
  }, props), _path$i || (_path$i = /*#__PURE__*/React.createElement("path", {
3342
- 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.5 15.5 0 0 1 2.4.14 3.4 3.4 0 0 1 1.41.55 3.5 3.5 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.6 3.6 0 0 1-1.09 1.4 3.9 3.9 0 0 1-1.83.65q-.69.07-3.3.09H22zm2.73 2.25v3.13h3.8a1.8 1.8 0 0 0 1.1-.49 1.4 1.4 0 0 0 .41-1 1.5 1.5 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.5 11.5 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.7 1.7 0 0 0-.86-.62 9.3 9.3 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.1 7.1 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.3 5.3 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.21"
3384
+ fill: "currentColor",
3385
+ fillRule: "evenodd",
3386
+ 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.039zm0 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.013M14.934 26.055v-3.78h2.194v9.45h-2.194v-3.78h-3.29v3.78H9.45v-9.45h2.194v3.78zm4.388-1.89h2.194v7.56h2.193v-7.56h2.194v-1.89h-6.581zm14.26-1.89h2.193v9.45h-2.194V25.11l-1.645 3.78-1.645-3.78v6.615h-2.194v-9.45h2.194l1.645 3.78zm4.387 0h2.194v7.56h4.387v1.89h-6.581z",
3387
+ clipRule: "evenodd"
3343
3388
  })));
3344
3389
  };
3345
3390
 
3346
3391
  var _path$h;
3347
3392
  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); }
3348
- var SvgHtml = function SvgHtml(props) {
3393
+ var SvgExpressionField = function SvgExpressionField(props) {
3349
3394
  return /*#__PURE__*/React.createElement("svg", _extends$h({
3350
3395
  xmlns: "http://www.w3.org/2000/svg",
3351
3396
  width: 54,
3352
3397
  height: 54,
3353
3398
  fill: "none"
3354
3399
  }, props), _path$h || (_path$h = /*#__PURE__*/React.createElement("path", {
3355
- fill: "currentColor",
3400
+ fill: "currentcolor",
3356
3401
  fillRule: "evenodd",
3357
- 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.039zm0 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.013M14.934 26.055v-3.78h2.194v9.45h-2.194v-3.78h-3.29v3.78H9.45v-9.45h2.194v3.78zm4.388-1.89h2.194v7.56h2.193v-7.56h2.194v-1.89h-6.581zm14.26-1.89h2.193v9.45h-2.194V25.11l-1.645 3.78-1.645-3.78v6.615h-2.194v-9.45h2.194l1.645 3.78zm4.387 0h2.194v7.56h4.387v1.89h-6.581z",
3402
+ 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.7zm30.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.7M21.8 34.531q.7-.569.959-1.758l1.788-8.34h1.585l.387-1.828h-1.585l.405-1.878h1.585l.387-1.827H25.69q-1.271 0-1.972.569-.681.569-.94 1.758l-.294 1.378H21.34l-.387 1.827h1.142l-1.898 8.841h-1.585l-.387 1.827h1.622q1.272 0 1.953-.569m7.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.599z",
3358
3403
  clipRule: "evenodd"
3359
3404
  })));
3360
3405
  };
3361
3406
 
3362
3407
  var _path$g;
3363
3408
  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); }
3364
- var SvgExpressionField = function SvgExpressionField(props) {
3409
+ var SvgTextfield = function SvgTextfield(props) {
3365
3410
  return /*#__PURE__*/React.createElement("svg", _extends$g({
3366
3411
  xmlns: "http://www.w3.org/2000/svg",
3367
3412
  width: 54,
3368
3413
  height: 54,
3369
- fill: "none"
3414
+ fill: "currentcolor"
3370
3415
  }, props), _path$g || (_path$g = /*#__PURE__*/React.createElement("path", {
3371
- fill: "currentcolor",
3372
3416
  fillRule: "evenodd",
3373
- 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.7zm30.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.7M21.8 34.531q.7-.569.959-1.758l1.788-8.34h1.585l.387-1.828h-1.585l.405-1.878h1.585l.387-1.827H25.69q-1.271 0-1.972.569-.681.569-.94 1.758l-.294 1.378H21.34l-.387 1.827h1.142l-1.898 8.841h-1.585l-.387 1.827h1.622q1.272 0 1.953-.569m7.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.599z",
3374
- clipRule: "evenodd"
3417
+ 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-32 4v10h-2V22z"
3375
3418
  })));
3376
3419
  };
3377
3420
 
3378
3421
  var _path$f;
3379
3422
  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); }
3380
- var SvgTextfield = function SvgTextfield(props) {
3423
+ var SvgTextarea = function SvgTextarea(props) {
3381
3424
  return /*#__PURE__*/React.createElement("svg", _extends$f({
3382
3425
  xmlns: "http://www.w3.org/2000/svg",
3383
3426
  width: 54,
@@ -3385,70 +3428,72 @@ var SvgTextfield = function SvgTextfield(props) {
3385
3428
  fill: "currentcolor"
3386
3429
  }, props), _path$f || (_path$f = /*#__PURE__*/React.createElement("path", {
3387
3430
  fillRule: "evenodd",
3388
- 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-3zm0 2H9a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V19a1 1 0 0 0-1-1m-32 4v10h-2V22z"
3431
+ d: "M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1m-1.136 15.5.849.849-6.364 6.364-.849-.849zm.264 3.5.849.849-2.828 2.828-.849-.849zM13 19v10h-2V19z"
3389
3432
  })));
3390
3433
  };
3391
3434
 
3392
3435
  var _path$e;
3393
3436
  function _extends$e() { _extends$e = 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$e.apply(this, arguments); }
3394
- var SvgTextarea = function SvgTextarea(props) {
3437
+ var SvgIFrame = function SvgIFrame(props) {
3395
3438
  return /*#__PURE__*/React.createElement("svg", _extends$e({
3396
3439
  xmlns: "http://www.w3.org/2000/svg",
3397
3440
  width: 54,
3398
3441
  height: 54,
3399
- fill: "currentcolor"
3442
+ fill: "none"
3400
3443
  }, props), _path$e || (_path$e = /*#__PURE__*/React.createElement("path", {
3444
+ fill: "currentColor",
3401
3445
  fillRule: "evenodd",
3402
- d: "M45 13a3 3 0 0 1 3 3v22a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V16a3 3 0 0 1 3-3zm0 2H9a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h36a1 1 0 0 0 1-1V16a1 1 0 0 0-1-1m-1.136 15.5.849.849-6.364 6.364-.849-.849zm.264 3.5.849.849-2.828 2.828-.849-.849zM13 19v10h-2V19z"
3446
+ d: "M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.77 8.77 0 0 1 39.825 27a8.77 8.77 0 0 1 8.775 8.775 8.77 8.77 0 0 1-8.775 8.775 8.77 8.77 0 0 1-8.775-8.775m12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0q-.155 2.632-.929 4.645c1.858-.826 3.304-2.58 3.923-4.645z",
3447
+ clipRule: "evenodd"
3403
3448
  })));
3404
3449
  };
3405
3450
 
3406
- var _path$d;
3451
+ var _path$d, _path2$1;
3407
3452
  function _extends$d() { _extends$d = 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$d.apply(this, arguments); }
3408
- var SvgIFrame = function SvgIFrame(props) {
3453
+ var SvgImage = function SvgImage(props) {
3409
3454
  return /*#__PURE__*/React.createElement("svg", _extends$d({
3410
3455
  xmlns: "http://www.w3.org/2000/svg",
3411
3456
  width: 54,
3412
3457
  height: 54,
3413
- fill: "none"
3458
+ fill: "currentcolor"
3414
3459
  }, props), _path$d || (_path$d = /*#__PURE__*/React.createElement("path", {
3415
- fill: "currentColor",
3416
3460
  fillRule: "evenodd",
3417
- d: "M45.658 9.45c1.625 0 2.942 1.36 2.942 3.039V22.95h-1.961v-4.383H7.36V41.51c0 .56.44 1.013.98 1.013H27v2.026H8.342c-1.625 0-2.942-1.36-2.942-3.039V12.489c0-1.678 1.317-3.039 2.942-3.039zm0 2.026H8.342c-.542 0-.98.454-.98 1.013v4.052h39.277v-4.052c0-.56-.44-1.013-.98-1.013ZM31.05 35.775A8.77 8.77 0 0 1 39.825 27a8.77 8.77 0 0 1 8.775 8.775 8.77 8.77 0 0 1-8.775 8.775 8.77 8.77 0 0 1-8.775-8.775m12.388-.516h3.097c-.206-2.581-1.858-4.646-4.026-5.678.62 1.548.93 3.613.93 5.678Zm-5.162 2.065c.207 3.303 1.136 4.955 1.549 5.161.413-.206 1.239-1.858 1.445-5.161zm1.446-8.26c-.31.207-1.342 2.272-1.446 6.195h2.994c-.103-3.923-1.135-5.988-1.548-6.194Zm-3.51 6.195c.103-2.065.31-4.13.929-5.678-2.168 1.032-3.82 3.097-4.026 5.678zm0 2.065h-2.89c.515 2.064 1.96 3.82 3.819 4.645-.516-1.342-.826-2.994-.93-4.645Zm7.226 0q-.155 2.632-.929 4.645c1.858-.826 3.304-2.58 3.923-4.645z",
3461
+ d: "M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z",
3462
+ clipRule: "evenodd"
3463
+ })), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
3464
+ fillRule: "evenodd",
3465
+ d: "M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73zM15 39v-8.754a1 1 0 0 0 .168-.135l5.893-5.893 6.684 6.685a1.91 1.91 0 0 0 2.41.238l2.657-1.77 6.02 6.02q.078.077.168.135V39z",
3418
3466
  clipRule: "evenodd"
3419
3467
  })));
3420
3468
  };
3421
3469
 
3422
- var _path$c, _path2$1;
3470
+ var _path$c;
3423
3471
  function _extends$c() { _extends$c = 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$c.apply(this, arguments); }
3424
- var SvgImage = function SvgImage(props) {
3472
+ var SvgTable = function SvgTable(props) {
3425
3473
  return /*#__PURE__*/React.createElement("svg", _extends$c({
3426
3474
  xmlns: "http://www.w3.org/2000/svg",
3427
- width: 54,
3428
- height: 54,
3429
- fill: "currentcolor"
3475
+ fill: "none",
3476
+ viewBox: "0 0 54 54"
3430
3477
  }, props), _path$c || (_path$c = /*#__PURE__*/React.createElement("path", {
3478
+ fill: "currentcolor",
3431
3479
  fillRule: "evenodd",
3432
- d: "M34.636 21.91A3.818 3.818 0 1 1 27 21.908a3.818 3.818 0 0 1 7.636 0Zm-2 0A1.818 1.818 0 1 1 29 21.908a1.818 1.818 0 0 1 3.636 0Z",
3433
- clipRule: "evenodd"
3434
- })), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement("path", {
3435
- fillRule: "evenodd",
3436
- d: "M15 13a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V15a2 2 0 0 0-2-2zm24 2H15v12.45l4.71-4.709a1.91 1.91 0 0 1 2.702 0l6.695 6.695 2.656-1.77a1.91 1.91 0 0 1 2.411.239L39 32.73zM15 39v-8.754a1 1 0 0 0 .168-.135l5.893-5.893 6.684 6.685a1.91 1.91 0 0 0 2.41.238l2.657-1.77 6.02 6.02q.078.077.168.135V39z",
3480
+ d: "M42.545 12.273A2.455 2.455 0 0 1 45 14.727v24.546a2.455 2.455 0 0 1-2.455 2.454h-31.09A2.455 2.455 0 0 1 9 39.273V14.727a2.455 2.455 0 0 1 2.455-2.454zM27.818 40.09h14.727a.82.82 0 0 0 .819-.818v-4.91H27.818Zm-1.636-5.727v5.727H11.455a.82.82 0 0 1-.819-.818v-4.91zm1.636-1.637h15.546V27H27.818ZM26.182 27v5.727H10.636V27zm1.636-1.636h15.546v-5.728H27.818Zm-1.636-5.728v5.728H10.636v-5.728z",
3437
3481
  clipRule: "evenodd"
3438
3482
  })));
3439
3483
  };
3440
3484
 
3441
3485
  var _path$b;
3442
3486
  function _extends$b() { _extends$b = 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$b.apply(this, arguments); }
3443
- var SvgTable = function SvgTable(props) {
3487
+ var SvgFilePicker = function SvgFilePicker(props) {
3444
3488
  return /*#__PURE__*/React.createElement("svg", _extends$b({
3445
3489
  xmlns: "http://www.w3.org/2000/svg",
3446
- fill: "none",
3447
- viewBox: "0 0 54 54"
3490
+ width: 54,
3491
+ height: 54,
3492
+ fill: "none"
3448
3493
  }, props), _path$b || (_path$b = /*#__PURE__*/React.createElement("path", {
3449
3494
  fill: "currentcolor",
3450
3495
  fillRule: "evenodd",
3451
- d: "M42.545 12.273A2.455 2.455 0 0 1 45 14.727v24.546a2.455 2.455 0 0 1-2.455 2.454h-31.09A2.455 2.455 0 0 1 9 39.273V14.727a2.455 2.455 0 0 1 2.455-2.454zM27.818 40.09h14.727a.82.82 0 0 0 .819-.818v-4.91H27.818Zm-1.636-5.727v5.727H11.455a.82.82 0 0 1-.819-.818v-4.91zm1.636-1.637h15.546V27H27.818ZM26.182 27v5.727H10.636V27zm1.636-1.636h15.546v-5.728H27.818Zm-1.636-5.728v5.728H10.636v-5.728z",
3496
+ d: "M17.55 41.175H27v2.362h-9.45a2.37 2.37 0 0 1-2.363-2.362v-28.35a2.37 2.37 0 0 1 2.363-2.363h11.813a1.07 1.07 0 0 1 .826.355l8.27 8.269a1.07 1.07 0 0 1 .353.826v5.907H36.45v-3.544h-7.088A2.37 2.37 0 0 1 27 19.912v-7.087h-9.45zm18.427-21.263-6.614-6.615v6.615zm4.253 18.664 3.308 3.308-1.654 1.653-3.308-3.307a6.35 6.35 0 0 1-3.307.945c-3.308 0-5.906-2.599-5.906-5.906 0-3.308 2.598-5.907 5.906-5.907s5.906 2.6 5.906 5.907a6.35 6.35 0 0 1-.945 3.307m-4.961-6.851c-2.008 0-3.544 1.536-3.544 3.544s1.536 3.543 3.544 3.543 3.544-1.535 3.544-3.543-1.536-3.544-3.544-3.544",
3452
3497
  clipRule: "evenodd"
3453
3498
  })));
3454
3499
  };
@@ -3476,11 +3521,12 @@ const iconsByType = type => {
3476
3521
  textfield: SvgTextfield,
3477
3522
  textarea: SvgTextarea,
3478
3523
  table: SvgTable,
3524
+ filepicker: SvgFilePicker,
3479
3525
  default: SvgForm
3480
3526
  }[type];
3481
3527
  };
3482
3528
 
3483
- const type$c = 'image';
3529
+ const type$d = 'image';
3484
3530
  function Image(props) {
3485
3531
  const {
3486
3532
  field
@@ -3502,7 +3548,7 @@ function Image(props) {
3502
3548
  formId
3503
3549
  } = useContext(FormContext);
3504
3550
  return jsxs("div", {
3505
- class: formFieldClasses(type$c),
3551
+ class: formFieldClasses(type$d),
3506
3552
  children: [safeSource && jsx("div", {
3507
3553
  class: "fjs-image-container",
3508
3554
  children: jsx("img", {
@@ -3526,7 +3572,7 @@ function Image(props) {
3526
3572
  });
3527
3573
  }
3528
3574
  Image.config = {
3529
- type: type$c,
3575
+ type: type$d,
3530
3576
  keyed: false,
3531
3577
  label: 'Image view',
3532
3578
  group: 'presentation',
@@ -3616,7 +3662,7 @@ function isNullEquivalentValue(value) {
3616
3662
  return value === undefined || value === null || value === '';
3617
3663
  }
3618
3664
 
3619
- const type$b = 'number';
3665
+ const type$c = 'number';
3620
3666
  function Numberfield(props) {
3621
3667
  const {
3622
3668
  disabled,
@@ -3761,7 +3807,7 @@ function Numberfield(props) {
3761
3807
  const descriptionId = `${domId}-description`;
3762
3808
  const errorMessageId = `${domId}-error-message`;
3763
3809
  return jsxs("div", {
3764
- class: formFieldClasses(type$b, {
3810
+ class: formFieldClasses(type$c, {
3765
3811
  errors,
3766
3812
  disabled,
3767
3813
  readonly
@@ -3837,7 +3883,7 @@ function Numberfield(props) {
3837
3883
  });
3838
3884
  }
3839
3885
  Numberfield.config = {
3840
- type: type$b,
3886
+ type: type$c,
3841
3887
  keyed: true,
3842
3888
  label: 'Number',
3843
3889
  group: 'basic-input',
@@ -3857,7 +3903,7 @@ Numberfield.config = {
3857
3903
  })
3858
3904
  };
3859
3905
 
3860
- const type$a = 'radio';
3906
+ const type$b = 'radio';
3861
3907
  function Radio(props) {
3862
3908
  const {
3863
3909
  disabled,
@@ -3909,7 +3955,7 @@ function Radio(props) {
3909
3955
  const descriptionId = `${domId}-description`;
3910
3956
  const errorMessageId = `${domId}-error-message`;
3911
3957
  return jsxs("div", {
3912
- class: formFieldClasses(type$a, {
3958
+ class: formFieldClasses(type$b, {
3913
3959
  errors,
3914
3960
  disabled,
3915
3961
  readonly
@@ -3953,7 +3999,7 @@ function Radio(props) {
3953
3999
  });
3954
4000
  }
3955
4001
  Radio.config = {
3956
- type: type$a,
4002
+ type: type$b,
3957
4003
  keyed: true,
3958
4004
  label: 'Radio group',
3959
4005
  group: 'selection',
@@ -4263,7 +4309,7 @@ function SimpleSelect(props) {
4263
4309
  });
4264
4310
  }
4265
4311
 
4266
- const type$9 = 'select';
4312
+ const type$a = 'select';
4267
4313
  function Select(props) {
4268
4314
  const {
4269
4315
  disabled,
@@ -4302,7 +4348,7 @@ function Select(props) {
4302
4348
  'aria-describedby': [descriptionId, errorMessageId].join(' ')
4303
4349
  };
4304
4350
  return jsxs("div", {
4305
- class: formFieldClasses(type$9, {
4351
+ class: formFieldClasses(type$a, {
4306
4352
  errors,
4307
4353
  disabled,
4308
4354
  readonly
@@ -4331,7 +4377,7 @@ function Select(props) {
4331
4377
  });
4332
4378
  }
4333
4379
  Select.config = {
4334
- type: type$9,
4380
+ type: type$a,
4335
4381
  keyed: true,
4336
4382
  label: 'Select',
4337
4383
  group: 'selection',
@@ -4340,15 +4386,15 @@ Select.config = {
4340
4386
  create: createEmptyOptions
4341
4387
  };
4342
4388
 
4343
- const type$8 = 'separator';
4389
+ const type$9 = 'separator';
4344
4390
  function Separator() {
4345
4391
  return jsx("div", {
4346
- class: formFieldClasses(type$8),
4392
+ class: formFieldClasses(type$9),
4347
4393
  children: jsx("hr", {})
4348
4394
  });
4349
4395
  }
4350
4396
  Separator.config = {
4351
- type: type$8,
4397
+ type: type$9,
4352
4398
  keyed: false,
4353
4399
  label: 'Separator',
4354
4400
  group: 'presentation',
@@ -4357,7 +4403,7 @@ Separator.config = {
4357
4403
  })
4358
4404
  };
4359
4405
 
4360
- const type$7 = 'spacer';
4406
+ const type$8 = 'spacer';
4361
4407
  function Spacer(props) {
4362
4408
  const {
4363
4409
  field
@@ -4366,14 +4412,14 @@ function Spacer(props) {
4366
4412
  height = 60
4367
4413
  } = field;
4368
4414
  return jsx("div", {
4369
- class: formFieldClasses(type$7),
4415
+ class: formFieldClasses(type$8),
4370
4416
  style: {
4371
4417
  height: height
4372
4418
  }
4373
4419
  });
4374
4420
  }
4375
4421
  Spacer.config = {
4376
- type: type$7,
4422
+ type: type$8,
4377
4423
  keyed: false,
4378
4424
  label: 'Spacer',
4379
4425
  group: 'presentation',
@@ -4454,7 +4500,7 @@ function SkipLink(props) {
4454
4500
  });
4455
4501
  }
4456
4502
 
4457
- const type$6 = 'taglist';
4503
+ const type$7 = 'taglist';
4458
4504
  function Taglist(props) {
4459
4505
  const {
4460
4506
  disabled,
@@ -4596,7 +4642,7 @@ function Taglist(props) {
4596
4642
  const errorMessageId = `${domId}-error-message`;
4597
4643
  return jsxs("div", {
4598
4644
  ref: focusScopeRef,
4599
- class: formFieldClasses(type$6, {
4645
+ class: formFieldClasses(type$7, {
4600
4646
  errors,
4601
4647
  disabled,
4602
4648
  readonly
@@ -4681,7 +4727,7 @@ function Taglist(props) {
4681
4727
  });
4682
4728
  }
4683
4729
  Taglist.config = {
4684
- type: type$6,
4730
+ type: type$7,
4685
4731
  keyed: true,
4686
4732
  label: 'Tag list',
4687
4733
  group: 'selection',
@@ -4802,7 +4848,7 @@ function isValidAttribute(lcTag, lcName, value) {
4802
4848
  return true;
4803
4849
  }
4804
4850
 
4805
- const type$5 = 'text';
4851
+ const type$6 = 'text';
4806
4852
  function Text(props) {
4807
4853
  const form = useService('form');
4808
4854
  const {
@@ -4849,12 +4895,12 @@ function Text(props) {
4849
4895
  sanitizeStyleTags: false
4850
4896
  });
4851
4897
  return jsx("div", {
4852
- class: formFieldClasses(type$5),
4898
+ class: formFieldClasses(type$6),
4853
4899
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4854
4900
  });
4855
4901
  }
4856
4902
  Text.config = {
4857
- type: type$5,
4903
+ type: type$6,
4858
4904
  keyed: false,
4859
4905
  label: 'Text view',
4860
4906
  group: 'presentation',
@@ -4864,7 +4910,7 @@ Text.config = {
4864
4910
  })
4865
4911
  };
4866
4912
 
4867
- const type$4 = 'html';
4913
+ const type$5 = 'html';
4868
4914
  function Html(props) {
4869
4915
  const form = useService('form');
4870
4916
  const {
@@ -4915,12 +4961,12 @@ function Html(props) {
4915
4961
  sanitizeStyleTags: false
4916
4962
  });
4917
4963
  return jsx("div", {
4918
- class: classNames(formFieldClasses(type$4), styleScope),
4964
+ class: classNames(formFieldClasses(type$5), styleScope),
4919
4965
  dangerouslySetInnerHTML: dangerouslySetInnerHTML
4920
4966
  });
4921
4967
  }
4922
4968
  Html.config = {
4923
- type: type$4,
4969
+ type: type$5,
4924
4970
  keyed: false,
4925
4971
  label: 'HTML view',
4926
4972
  group: 'presentation',
@@ -4930,7 +4976,7 @@ Html.config = {
4930
4976
  })
4931
4977
  };
4932
4978
 
4933
- const type$3 = 'expression';
4979
+ const type$4 = 'expression';
4934
4980
  function ExpressionField(props) {
4935
4981
  const {
4936
4982
  field,
@@ -4967,7 +5013,7 @@ function ExpressionField(props) {
4967
5013
  return null;
4968
5014
  }
4969
5015
  ExpressionField.config = {
4970
- type: type$3,
5016
+ type: type$4,
4971
5017
  label: 'Expression',
4972
5018
  group: 'basic-input',
4973
5019
  keyed: true,
@@ -4979,7 +5025,7 @@ ExpressionField.config = {
4979
5025
  })
4980
5026
  };
4981
5027
 
4982
- const type$2 = 'textfield';
5028
+ const type$3 = 'textfield';
4983
5029
  function Textfield(props) {
4984
5030
  const {
4985
5031
  disabled,
@@ -5021,7 +5067,7 @@ function Textfield(props) {
5021
5067
  const descriptionId = `${domId}-description`;
5022
5068
  const errorMessageId = `${domId}-error-message`;
5023
5069
  return jsxs("div", {
5024
- class: formFieldClasses(type$2, {
5070
+ class: formFieldClasses(type$3, {
5025
5071
  errors,
5026
5072
  disabled,
5027
5073
  readonly
@@ -5059,7 +5105,7 @@ function Textfield(props) {
5059
5105
  });
5060
5106
  }
5061
5107
  Textfield.config = {
5062
- type: type$2,
5108
+ type: type$3,
5063
5109
  keyed: true,
5064
5110
  label: 'Text field',
5065
5111
  group: 'basic-input',
@@ -5082,7 +5128,7 @@ Textfield.config = {
5082
5128
  })
5083
5129
  };
5084
5130
 
5085
- const type$1 = 'textarea';
5131
+ const type$2 = 'textarea';
5086
5132
  function Textarea(props) {
5087
5133
  const {
5088
5134
  disabled,
@@ -5132,7 +5178,7 @@ function Textarea(props) {
5132
5178
  const descriptionId = `${domId}-description`;
5133
5179
  const errorMessageId = `${domId}-error-message`;
5134
5180
  return jsxs("div", {
5135
- class: formFieldClasses(type$1, {
5181
+ class: formFieldClasses(type$2, {
5136
5182
  errors,
5137
5183
  disabled,
5138
5184
  readonly
@@ -5164,7 +5210,7 @@ function Textarea(props) {
5164
5210
  });
5165
5211
  }
5166
5212
  Textarea.config = {
5167
- type: type$1,
5213
+ type: type$2,
5168
5214
  keyed: true,
5169
5215
  label: 'Text area',
5170
5216
  group: 'basic-input',
@@ -5245,7 +5291,7 @@ var SvgCaretRight = function SvgCaretRight(props) {
5245
5291
  })));
5246
5292
  };
5247
5293
 
5248
- const type = 'table';
5294
+ const type$1 = 'table';
5249
5295
 
5250
5296
  /**
5251
5297
  * @typedef {('asc'|'desc')} Direction
@@ -5322,7 +5368,7 @@ function Table(props) {
5322
5368
  });
5323
5369
  }
5324
5370
  return jsxs("div", {
5325
- class: formFieldClasses(type),
5371
+ class: formFieldClasses(type$1),
5326
5372
  children: [jsx(Label, {
5327
5373
  htmlFor: prefixId(id),
5328
5374
  label: label
@@ -5419,7 +5465,7 @@ function Table(props) {
5419
5465
  });
5420
5466
  }
5421
5467
  Table.config = {
5422
- type,
5468
+ type: type$1,
5423
5469
  keyed: false,
5424
5470
  label: 'Table',
5425
5471
  group: 'presentation',
@@ -5571,6 +5617,161 @@ function getHeaderAriaLabel(sortBy, key, label) {
5571
5617
  return `Click to sort by ${label} ascending`;
5572
5618
  }
5573
5619
 
5620
+ const FILE_PICKER_FILE_KEY_PREFIX = 'files::';
5621
+
5622
+ const type = 'filepicker';
5623
+ const ids$1 = new Ids();
5624
+ const EMPTY_ARRAY$1 = [];
5625
+
5626
+ /**
5627
+ * @typedef Props
5628
+ * @property {(props: { value: string }) => void} onChange
5629
+ * @property {string} domId
5630
+ * @property {string[]} errors
5631
+ * @property {boolean} disabled
5632
+ * @property {boolean} readonly
5633
+ * @property {boolean} required
5634
+ * @property {Object} field
5635
+ * @property {string} field.id
5636
+ * @property {string} [field.label]
5637
+ * @property {string} [field.accept]
5638
+ * @property {string|boolean} [field.multiple]
5639
+ * @property {string} [value]
5640
+ *
5641
+ * @param {Props} props
5642
+ * @returns {import("preact").JSX.Element}
5643
+ */
5644
+ function FilePicker(props) {
5645
+ /** @type {import("preact/hooks").Ref<HTMLInputElement>} */
5646
+ const fileInputRef = useRef(null);
5647
+ /** @type {import('../../FileRegistry').FileRegistry} */
5648
+ const fileRegistry = useService('fileRegistry', false);
5649
+ const {
5650
+ field,
5651
+ onChange,
5652
+ domId,
5653
+ errors = [],
5654
+ disabled,
5655
+ readonly,
5656
+ required,
5657
+ value: filesKey = ''
5658
+ } = props;
5659
+ const {
5660
+ label,
5661
+ multiple = false,
5662
+ accept = ''
5663
+ } = field;
5664
+ /** @type {string} */
5665
+ const evaluatedAccept = useSingleLineTemplateEvaluation(accept);
5666
+ const evaluatedMultiple = useBooleanExpressionEvaluation(multiple);
5667
+ const errorMessageId = `${domId}-error-message`;
5668
+ /** @type {File[]} */
5669
+ const selectedFiles = fileRegistry === null ? EMPTY_ARRAY$1 : fileRegistry.getFiles(filesKey);
5670
+ useEffect(() => {
5671
+ if (filesKey && fileRegistry !== null && !fileRegistry.hasKey(filesKey)) {
5672
+ onChange({
5673
+ value: null
5674
+ });
5675
+ }
5676
+ }, [fileRegistry, filesKey, onChange, selectedFiles.length]);
5677
+ useEffect(() => {
5678
+ const data = new DataTransfer();
5679
+ selectedFiles.forEach(file => data.items.add(file));
5680
+ fileInputRef.current.files = data.files;
5681
+ }, [selectedFiles]);
5682
+
5683
+ /**
5684
+ * @type import("preact").JSX.GenericEventHandler<HTMLInputElement>
5685
+ */
5686
+ const onFileChange = event => {
5687
+ const input = /** @type {HTMLInputElement} */event.target;
5688
+
5689
+ // if we have an associated file key but no files are selected, clear the file key and associated files
5690
+ if ((input.files === null || input.files.length === 0) && filesKey !== '') {
5691
+ fileRegistry.deleteFiles(filesKey);
5692
+ onChange({
5693
+ value: null
5694
+ });
5695
+ return;
5696
+ }
5697
+ const files = Array.from(input.files);
5698
+
5699
+ // ensure fileKey exists
5700
+ const updatedFilesKey = filesKey || ids$1.nextPrefixed(FILE_PICKER_FILE_KEY_PREFIX);
5701
+ fileRegistry.setFiles(updatedFilesKey, files);
5702
+ onChange({
5703
+ value: updatedFilesKey
5704
+ });
5705
+ };
5706
+ const isInputDisabled = disabled || readonly || fileRegistry === null;
5707
+ return jsxs("div", {
5708
+ className: formFieldClasses(type, {
5709
+ errors,
5710
+ disabled,
5711
+ readonly
5712
+ }),
5713
+ children: [jsx(Label, {
5714
+ htmlFor: domId,
5715
+ label: label,
5716
+ required: required
5717
+ }), jsx("input", {
5718
+ type: "file",
5719
+ className: "fjs-hidden",
5720
+ ref: fileInputRef,
5721
+ id: domId,
5722
+ name: domId,
5723
+ disabled: isInputDisabled,
5724
+ multiple: evaluatedMultiple || undefined,
5725
+ accept: evaluatedAccept || undefined,
5726
+ onChange: onFileChange
5727
+ }), jsxs("div", {
5728
+ className: "fjs-filepicker-container",
5729
+ children: [jsx("button", {
5730
+ type: "button",
5731
+ disabled: isInputDisabled,
5732
+ readonly: readonly,
5733
+ className: "fjs-button fjs-filepicker-button",
5734
+ onClick: () => {
5735
+ fileInputRef.current.click();
5736
+ },
5737
+ children: "Browse"
5738
+ }), jsx("span", {
5739
+ className: "fjs-form-field-label",
5740
+ children: getSelectedFilesLabel(selectedFiles)
5741
+ })]
5742
+ }), jsx(Errors, {
5743
+ id: errorMessageId,
5744
+ errors: errors
5745
+ })]
5746
+ });
5747
+ }
5748
+ FilePicker.config = {
5749
+ type: 'filepicker',
5750
+ keyed: true,
5751
+ label: 'File picker',
5752
+ group: 'basic-input',
5753
+ emptyValue: null,
5754
+ create: (options = {}) => ({
5755
+ ...options
5756
+ })
5757
+ };
5758
+
5759
+ // helper //////////
5760
+
5761
+ /**
5762
+ * @param {File[]} files
5763
+ * @returns {string}
5764
+ */
5765
+ function getSelectedFilesLabel(files) {
5766
+ if (files.length === 0) {
5767
+ return 'No files selected';
5768
+ }
5769
+ if (files.length === 1) {
5770
+ return files[0].name;
5771
+ }
5772
+ return `${files.length} files selected`;
5773
+ }
5774
+
5574
5775
  /**
5575
5776
  * This file must not be changed or exchanged.
5576
5777
  *
@@ -5707,7 +5908,7 @@ function FormComponent(props) {
5707
5908
  }
5708
5909
 
5709
5910
  const formFields = [/* Input */
5710
- Textfield, Textarea, Numberfield, Datetime, ExpressionField, /* Selection */
5911
+ Textfield, Textarea, Numberfield, Datetime, ExpressionField, FilePicker, /* Selection */
5711
5912
  Checkbox, Checklist, Radio, Select, Taglist, /* Presentation */
5712
5913
  Text, Image, Table, Html, Spacer, Separator, /* Containers */
5713
5914
  Group, DynamicList, IFrame, /* Other */
@@ -5728,7 +5929,7 @@ class FormFields {
5728
5929
  }
5729
5930
  }
5730
5931
 
5731
- const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression', 'url', 'dataSource', 'columnsExpression', 'expression'];
5932
+ const EXPRESSION_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'conditional.hide', 'description', 'label', 'source', 'readonly', 'text', 'validate.min', 'validate.max', 'validate.minLength', 'validate.maxLength', 'valuesExpression', 'url', 'dataSource', 'columnsExpression', 'expression', 'accept', 'multiple'];
5732
5933
  const TEMPLATE_PROPERTIES = ['alt', 'appearance.prefixAdorner', 'appearance.suffixAdorner', 'description', 'label', 'source', 'text', 'content', 'url'];
5733
5934
 
5734
5935
  /**
@@ -5946,11 +6147,21 @@ class ConditionChecker {
5946
6147
  // if we have a hidden repeatable field, and the data structure allows, we clear it directly at the root and stop recursion
5947
6148
  if (context.isHidden && isRepeatable) {
5948
6149
  context.preventRecursion = true;
6150
+ this._eventBus.fire('conditionChecker.remove', {
6151
+ item: {
6152
+ [field.key]: get(workingData, getFilterPath(field, indexes))
6153
+ }
6154
+ });
5949
6155
  this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);
5950
6156
  }
5951
6157
 
5952
6158
  // for simple leaf fields, we always clear
5953
6159
  if (context.isHidden && isClosed) {
6160
+ this._eventBus.fire('conditionChecker.remove', {
6161
+ item: {
6162
+ [field.key]: get(workingData, getFilterPath(field, indexes))
6163
+ }
6164
+ });
5954
6165
  this._cleanlyClearDataAtPath(getFilterPath(field, indexes), workingData);
5955
6166
  }
5956
6167
  });
@@ -6744,11 +6955,16 @@ var SvgDelete = function SvgDelete(props) {
6744
6955
  /* eslint-disable react-hooks/rules-of-hooks */
6745
6956
 
6746
6957
  class RepeatRenderManager {
6747
- constructor(form, formFields, formFieldRegistry, pathRegistry) {
6958
+ constructor(form, formFields, formFieldRegistry, pathRegistry, eventBus) {
6748
6959
  this._form = form;
6960
+ /** @type {import('../../render/FormFields').FormFields} */
6749
6961
  this._formFields = formFields;
6962
+ /** @type {import('../../core/FormFieldRegistry').FormFieldRegistry} */
6750
6963
  this._formFieldRegistry = formFieldRegistry;
6964
+ /** @type {import('../../core/PathRegistry').PathRegistry} */
6751
6965
  this._pathRegistry = pathRegistry;
6966
+ /** @type {import('../../core/EventBus').EventBus} */
6967
+ this._eventBus = eventBus;
6752
6968
  this.Repeater = this.Repeater.bind(this);
6753
6969
  this.RepeatFooter = this.RepeatFooter.bind(this);
6754
6970
  }
@@ -6788,11 +7004,18 @@ class RepeatRenderManager {
6788
7004
  const isCollapsed = collapseEnabled && sharedRepeatState.isCollapsed;
6789
7005
  const hasChildren = repeaterField.components && repeaterField.components.length > 0;
6790
7006
  const showRemove = repeaterField.allowAddRemove && hasChildren;
6791
- const displayValues = isCollapsed ? values.slice(0, nonCollapsedItems) : values;
6792
- const hiddenValues = isCollapsed ? values.slice(nonCollapsedItems) : [];
7007
+
7008
+ /**
7009
+ * @param {number} index
7010
+ */
6793
7011
  const onDeleteItem = index => {
6794
7012
  const updatedValues = values.slice();
6795
- updatedValues.splice(index, 1);
7013
+ const removedItem = updatedValues.splice(index, 1)[0];
7014
+ this._eventBus.fire('repeatRenderManager.remove', {
7015
+ dataPath,
7016
+ index,
7017
+ item: removedItem
7018
+ });
6796
7019
  props.onChange({
6797
7020
  field: repeaterField,
6798
7021
  value: updatedValues,
@@ -6800,21 +7023,13 @@ class RepeatRenderManager {
6800
7023
  });
6801
7024
  };
6802
7025
  const parentExpressionContextInfo = useContext(LocalExpressionContext);
6803
- return jsxs(Fragment, {
6804
- children: [displayValues.map((itemValue, itemIndex) => jsx(RepetitionScaffold, {
6805
- itemIndex: itemIndex,
6806
- itemValue: itemValue,
6807
- parentExpressionContextInfo: parentExpressionContextInfo,
6808
- repeaterField: repeaterField,
6809
- RowsRenderer: RowsRenderer,
6810
- indexes: indexes,
6811
- onDeleteItem: onDeleteItem,
6812
- showRemove: showRemove,
6813
- ...restProps
6814
- }, itemIndex)), hiddenValues.length > 0 ? jsx("div", {
6815
- className: "fjs-repeat-row-collapsed",
6816
- children: hiddenValues.map((itemValue, itemIndex) => jsx(RepetitionScaffold, {
6817
- itemIndex: itemIndex + nonCollapsedItems,
7026
+ return jsx(Fragment, {
7027
+ children: values.map((itemValue, itemIndex) => jsx("div", {
7028
+ class: classNames({
7029
+ 'fjs-repeat-row-collapsed': isCollapsed ? itemIndex >= nonCollapsedItems : false
7030
+ }),
7031
+ children: jsx(RepetitionScaffold, {
7032
+ itemIndex: itemIndex,
6818
7033
  itemValue: itemValue,
6819
7034
  parentExpressionContextInfo: parentExpressionContextInfo,
6820
7035
  repeaterField: repeaterField,
@@ -6823,8 +7038,8 @@ class RepeatRenderManager {
6823
7038
  onDeleteItem: onDeleteItem,
6824
7039
  showRemove: showRemove,
6825
7040
  ...restProps
6826
- }, itemIndex))
6827
- }) : null]
7041
+ })
7042
+ }))
6828
7043
  });
6829
7044
  }
6830
7045
  RepeatFooter(props) {
@@ -6867,6 +7082,11 @@ class RepeatRenderManager {
6867
7082
  });
6868
7083
  updatedValues.push(newItem);
6869
7084
  shouldScroll.current = true;
7085
+ this._eventBus.fire('repeatRenderManager.add', {
7086
+ dataPath,
7087
+ index: updatedValues.length - 1,
7088
+ item: newItem
7089
+ });
6870
7090
  props.onChange({
6871
7091
  value: updatedValues
6872
7092
  });
@@ -6899,7 +7119,7 @@ class RepeatRenderManager {
6899
7119
  class: "fjs-repeat-render-collapse",
6900
7120
  onClick: toggle,
6901
7121
  children: isCollapsed ? jsxs(Fragment, {
6902
- children: [jsx(SvgExpand, {}), " ", `Expand all (${values.length})`]
7122
+ children: [jsx(SvgExpand, {}), " ", `Expand all (${values.length - 1})`]
6903
7123
  }) : jsxs(Fragment, {
6904
7124
  children: [jsx(SvgCollapse, {}), " ", 'Collapse']
6905
7125
  })
@@ -6984,7 +7204,7 @@ const RepetitionScaffold = props => {
6984
7204
  })]
6985
7205
  });
6986
7206
  };
6987
- RepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry'];
7207
+ RepeatRenderManager.$inject = ['form', 'formFields', 'formFieldRegistry', 'pathRegistry', 'eventBus'];
6988
7208
 
6989
7209
  const RepeatRenderModule = {
6990
7210
  __init__: ['repeatRenderManager'],
@@ -8375,39 +8595,52 @@ class FormFieldInstanceRegistry {
8375
8595
  this._formFieldInstances = {};
8376
8596
  eventBus.on('form.clear', () => this.clear());
8377
8597
  }
8378
- add(instance) {
8598
+ syncInstance(instanceId, formFieldInfo) {
8379
8599
  const {
8380
- id,
8381
- expressionContextInfo,
8382
- valuePath,
8383
- indexes
8384
- } = instance;
8385
- const instanceId = [id, ...Object.values(indexes || {})].join('_');
8386
- if (this._formFieldInstances[instanceId]) {
8387
- throw new Error('this form field instance is already registered');
8600
+ hidden,
8601
+ ...restInfo
8602
+ } = formFieldInfo;
8603
+ const isInstanceExpected = !hidden;
8604
+ const doesInstanceExist = this._formFieldInstances[instanceId];
8605
+ if (isInstanceExpected && !doesInstanceExist) {
8606
+ this._formFieldInstances[instanceId] = {
8607
+ instanceId,
8608
+ ...restInfo
8609
+ };
8610
+ this._eventBus.fire('formFieldInstance.added', {
8611
+ instanceId
8612
+ });
8613
+ } else if (!isInstanceExpected && doesInstanceExist) {
8614
+ delete this._formFieldInstances[instanceId];
8615
+ this._eventBus.fire('formFieldInstance.removed', {
8616
+ instanceId
8617
+ });
8618
+ } else if (isInstanceExpected && doesInstanceExist) {
8619
+ const wasInstanceChaged = Object.keys(restInfo).some(key => {
8620
+ return this._formFieldInstances[instanceId][key] !== restInfo[key];
8621
+ });
8622
+ if (wasInstanceChaged) {
8623
+ this._formFieldInstances[instanceId] = {
8624
+ instanceId,
8625
+ ...restInfo
8626
+ };
8627
+ this._eventBus.fire('formFieldInstance.changed', {
8628
+ instanceId
8629
+ });
8630
+ }
8388
8631
  }
8389
- this._formFieldInstances[instanceId] = {
8390
- id,
8391
- instanceId,
8392
- expressionContextInfo,
8393
- valuePath,
8394
- indexes
8395
- };
8396
- this._eventBus.fire('formFieldInstanceRegistry.changed', {
8397
- instanceId,
8398
- action: 'added'
8399
- });
8400
8632
  return instanceId;
8401
8633
  }
8402
- remove(instanceId) {
8403
- if (!this._formFieldInstances[instanceId]) {
8404
- return;
8634
+ cleanupInstance(instanceId) {
8635
+ if (this._formFieldInstances[instanceId]) {
8636
+ delete this._formFieldInstances[instanceId];
8637
+ this._eventBus.fire('formFieldInstance.removed', {
8638
+ instanceId
8639
+ });
8405
8640
  }
8406
- delete this._formFieldInstances[instanceId];
8407
- this._eventBus.fire('formFieldInstanceRegistry.changed', {
8408
- instanceId,
8409
- action: 'removed'
8410
- });
8641
+ }
8642
+ get(instanceId) {
8643
+ return this._formFieldInstances[instanceId];
8411
8644
  }
8412
8645
  getAll() {
8413
8646
  return Object.values(this._formFieldInstances);
@@ -8487,10 +8720,122 @@ function Renderer(config, eventBus, form, injector) {
8487
8720
  }
8488
8721
  Renderer.$inject = ['config.renderer', 'eventBus', 'form', 'injector'];
8489
8722
 
8723
+ /**
8724
+ * @typedef {Record<PropertyKey, unknown>} RemovedData
8725
+ * @param {RemovedData} removedData
8726
+ * @returns {string[]}
8727
+ */
8728
+ const extractFileReferencesFromRemovedData = removedData => {
8729
+ /** @type {string[]} */
8730
+ const fileReferences = [];
8731
+ if (removedData === null) {
8732
+ return fileReferences;
8733
+ }
8734
+ Object.values(removedData).forEach(value => {
8735
+ if (value === null) {
8736
+ return;
8737
+ }
8738
+ if (typeof value === 'object') {
8739
+ fileReferences.push(...extractFileReferencesFromRemovedData( /** @type {RemovedData} */value));
8740
+ } else if (Array.isArray(value)) {
8741
+ fileReferences.push(...value.map(extractFileReferencesFromRemovedData).flat());
8742
+ } else if (typeof value === 'string' && value.startsWith(FILE_PICKER_FILE_KEY_PREFIX)) {
8743
+ fileReferences.push(value);
8744
+ }
8745
+ });
8746
+ return fileReferences;
8747
+ };
8748
+
8749
+ const fileRegistry = Symbol('fileRegistry');
8750
+ const eventBusSymbol = Symbol('eventBus');
8751
+ const formFieldRegistrySymbol = Symbol('formFieldRegistry');
8752
+ const formFieldInstanceRegistrySymbol = Symbol('formFieldInstanceRegistry');
8753
+ const EMPTY_ARRAY = [];
8754
+ class FileRegistry {
8755
+ /**
8756
+ * @param {import('../core/EventBus').EventBus} eventBus
8757
+ * @param {import('../core/FormFieldRegistry').FormFieldRegistry} formFieldRegistry
8758
+ * @param {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} formFieldInstanceRegistry
8759
+ */
8760
+ constructor(eventBus, formFieldRegistry, formFieldInstanceRegistry) {
8761
+ /** @type {Map<string, File[]>} */
8762
+ this[fileRegistry] = new Map();
8763
+ /** @type {import('../core/EventBus').EventBus} */
8764
+ this[eventBusSymbol] = eventBus;
8765
+ /** @type {import('../core/FormFieldRegistry').FormFieldRegistry} */
8766
+ this[formFieldRegistrySymbol] = formFieldRegistry;
8767
+ /** @type {import('../core/FormFieldInstanceRegistry').FormFieldInstanceRegistry} */
8768
+ this[formFieldInstanceRegistrySymbol] = formFieldInstanceRegistry;
8769
+ const removeFileHandler = ({
8770
+ item
8771
+ }) => {
8772
+ const fileReferences = extractFileReferencesFromRemovedData(item);
8773
+
8774
+ // Remove all file references from the registry
8775
+ fileReferences.forEach(fileReference => {
8776
+ this.deleteFiles(fileReference);
8777
+ });
8778
+ };
8779
+ eventBus.on('form.clear', () => this.clear());
8780
+ eventBus.on('conditionChecker.remove', removeFileHandler);
8781
+ eventBus.on('repeatRenderManager.remove', removeFileHandler);
8782
+ }
8783
+
8784
+ /**
8785
+ * @param {string} id
8786
+ * @param {File[]} files
8787
+ */
8788
+ setFiles(id, files) {
8789
+ this[fileRegistry].set(id, files);
8790
+ }
8791
+
8792
+ /**
8793
+ * @param {string} id
8794
+ * @returns {File[]}
8795
+ */
8796
+ getFiles(id) {
8797
+ return this[fileRegistry].get(id) || EMPTY_ARRAY;
8798
+ }
8799
+
8800
+ /**
8801
+ * @returns {string[]}
8802
+ */
8803
+ getKeys() {
8804
+ return Array.from(this[fileRegistry].keys());
8805
+ }
8806
+
8807
+ /**
8808
+ * @param {string} id
8809
+ * @returns {boolean}
8810
+ */
8811
+ hasKey(id) {
8812
+ return this[fileRegistry].has(id);
8813
+ }
8814
+
8815
+ /**
8816
+ * @param {string} id
8817
+ */
8818
+ deleteFiles(id) {
8819
+ this[fileRegistry].delete(id);
8820
+ }
8821
+
8822
+ /**
8823
+ * @returns {Map<string, File[]>}
8824
+ */
8825
+ getAllFiles() {
8826
+ return new Map(this[fileRegistry]);
8827
+ }
8828
+ clear() {
8829
+ this[fileRegistry].clear();
8830
+ }
8831
+ }
8832
+ FileRegistry.$inject = ['eventBus', 'formFieldRegistry', 'formFieldInstanceRegistry'];
8833
+
8490
8834
  const RenderModule = {
8491
8835
  __init__: ['formFields', 'renderer'],
8492
8836
  formFields: ['type', FormFields],
8493
- renderer: ['type', Renderer]
8837
+ renderer: ['type', Renderer],
8838
+ fileRegistry: ['type', FileRegistry]
8494
8839
  };
8495
8840
 
8496
8841
  const CoreModule = {
@@ -8643,7 +8988,7 @@ class Form {
8643
8988
  /**
8644
8989
  * Submit the form, triggering all field validations.
8645
8990
  *
8646
- * @returns { { data: Data, errors: Errors } }
8991
+ * @returns { { data: Data, errors: Errors, files: Map<string, File[]> } }
8647
8992
  */
8648
8993
  submit() {
8649
8994
  const {
@@ -8655,9 +9000,11 @@ class Form {
8655
9000
  this._emit('presubmit');
8656
9001
  const data = this._getSubmitData();
8657
9002
  const errors = this.validate();
9003
+ const files = this.get('fileRegistry').getAllFiles();
8658
9004
  const result = {
8659
9005
  data,
8660
- errors
9006
+ errors,
9007
+ files
8661
9008
  };
8662
9009
  this._emit('submit', result);
8663
9010
  return result;
@@ -9001,5 +9348,5 @@ function createForm(options) {
9001
9348
  });
9002
9349
  }
9003
9350
 
9004
- export { ALLOW_ATTRIBUTE, Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, Default, Description, DynamicList, Errors, ExpressionField, ExpressionFieldModule, ExpressionLanguageModule, ExpressionLoopPreventer, FeelExpressionLanguage, FeelersTemplating, FieldFactory, Form, FormComponent, FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext, Group, Html, IFrame, Image, Importer, Label, LocalExpressionContext, MINUTES_IN_DAY, MarkdownRenderer, MarkdownRendererModule, Numberfield, OPTIONS_SOURCES, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, OPTIONS_SOURCES_PATHS, OPTIONS_SOURCE_DEFAULT, PathRegistry, Radio, RenderModule, RepeatRenderManager, RepeatRenderModule, SANDBOX_ATTRIBUTE, SECURITY_ATTRIBUTES_DEFINITIONS, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Table, Taglist, Text, Textarea, Textfield, ViewerCommands, ViewerCommandsModule, buildExpressionContext, clone, createForm, createFormContainer, createInjector, escapeHTML, formFields, generateIdForType, generateIndexForType, getAncestryList, getOptionsSource, getSchemaVariables, getScrollContainer, hasEqualValue, iconsByType, isRequired, pathParse, pathsEqual, runExpressionEvaluation, runRecursively, sanitizeDateTimePickerValue, sanitizeHTML, sanitizeIFrameSource, sanitizeImageSource, sanitizeMultiSelectValue, sanitizeSingleSelectValue, schemaVersion, useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation, wrapCSSStyles, wrapObjectKeysWithUnderscores };
9351
+ export { ALLOW_ATTRIBUTE, Button, Checkbox, Checklist, ConditionChecker, DATETIME_SUBTYPES, DATETIME_SUBTYPES_LABELS, DATETIME_SUBTYPE_PATH, DATE_DISALLOW_PAST_PATH, DATE_LABEL_PATH, Datetime, Default, Description, DynamicList, Errors, ExpressionField, ExpressionFieldModule, ExpressionLanguageModule, ExpressionLoopPreventer, FeelExpressionLanguage, FeelersTemplating, FieldFactory, FilePicker, Form, FormComponent, FormContext, FormField, FormFieldRegistry, FormFields, FormLayouter, FormRenderContext, Group, Html, IFrame, Image, Importer, Label, LocalExpressionContext, MINUTES_IN_DAY, MarkdownRenderer, MarkdownRendererModule, Numberfield, OPTIONS_SOURCES, OPTIONS_SOURCES_DEFAULTS, OPTIONS_SOURCES_LABELS, OPTIONS_SOURCES_PATHS, OPTIONS_SOURCE_DEFAULT, PathRegistry, Radio, RenderModule, RepeatRenderManager, RepeatRenderModule, SANDBOX_ATTRIBUTE, SECURITY_ATTRIBUTES_DEFINITIONS, Select, Separator, Spacer, TIME_INTERVAL_PATH, TIME_LABEL_PATH, TIME_SERIALISINGFORMAT_LABELS, TIME_SERIALISING_FORMATS, TIME_SERIALISING_FORMAT_PATH, TIME_USE24H_PATH, Table, Taglist, Text, Textarea, Textfield, ViewerCommands, ViewerCommandsModule, buildExpressionContext, clone, createForm, createFormContainer, createInjector, escapeHTML, formFields, generateIdForType, generateIndexForType, getAncestryList, getOptionsSource, getSchemaVariables, getScrollContainer, hasEqualValue, iconsByType, isRequired, pathParse, pathsEqual, runExpressionEvaluation, runRecursively, sanitizeDateTimePickerValue, sanitizeHTML, sanitizeIFrameSource, sanitizeImageSource, sanitizeMultiSelectValue, sanitizeSingleSelectValue, schemaVersion, useExpressionEvaluation, useSingleLineTemplateEvaluation, useTemplateEvaluation, wrapCSSStyles, wrapObjectKeysWithUnderscores };
9005
9352
  //# sourceMappingURL=index.es.js.map