@knime/jsonforms 1.19.5 → 1.20.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/{AnyOfTwinlist-gIm_R7yi.js → AnyOfTwinlist-CosNPUKG.js} +1 -1
  3. package/dist/{Checkbox-D1QZ8D8U.js → Checkbox-BLHyWo4X.js} +1 -1
  4. package/dist/{CheckboxControl-DitntAd8.js → CheckboxControl-DyBcYCFe.js} +1 -1
  5. package/dist/{CheckboxesControl-C_Wwb06j.js → CheckboxesControl-DqcN6RcZ.js} +2 -2
  6. package/dist/{ColorControl-86_aeUMf.js → ColorControl-CPklP_Ox.js} +1 -1
  7. package/dist/{ColorPreviewControl-HgbFwMCE.js → ColorPreviewControl-BhbI9XDV.js} +1 -1
  8. package/dist/{ComboBoxControl-CGwWGyDl.js → ComboBoxControl-DR9x8i0b.js} +8 -8
  9. package/dist/{DateControl-BofbO5lM.js → DateControl-DJxV5wzs.js} +1 -1
  10. package/dist/DateTimeControl-CoNsGbev.js +44 -0
  11. package/dist/{DateTimeFormatPickerControl-7KTdYrMN.js → DateTimeFormatPickerControl-BmtxQjzI.js} +1 -1
  12. package/dist/{DateTimeFormatPickerWithTypeControl-DmevlqK8.js → DateTimeFormatPickerWithTypeControl-CK7LsO-R.js} +12 -12
  13. package/dist/{DropdownControl-XAeknlV2.js → DropdownControl-nLA0kshc.js} +5 -5
  14. package/dist/ExecutorCoresControl-BgB0R_Xv.js +42 -0
  15. package/dist/ExecutorMemoryControl-Ck5naUl2.js +41 -0
  16. package/dist/FileUploadControl-CByhtwi1.js +197 -0
  17. package/dist/GridSelectionControl-8g--blrX.js +115 -0
  18. package/dist/{HorizontalLayout-BQFvLK2X.js → HorizontalLayout-Bc4F2xJR.js} +6 -6
  19. package/dist/InputField-Gw6K93vY.js +148 -0
  20. package/dist/{IntegerControl-XNoJU3s2.js → IntegerControl-CAh031mO.js} +1 -1
  21. package/dist/{IntervalControl-DaQTfsx8.js → IntervalControl-ocjzEBto.js} +168 -184
  22. package/dist/LinkControl-BML6cXj-.js +35 -0
  23. package/dist/LoadingDropdown.vue_vue_type_script_setup_true_lang-C2sH3IaG.js +57 -0
  24. package/dist/{LoadingIcon-D3kls_iA.js → LoadingIcon-B0S8ig5H.js} +1 -1
  25. package/dist/{ManualTwinlistControl-BCgJbfp5.js → ManualTwinlistControl-BdbrjZtS.js} +4 -4
  26. package/dist/{MultiSelectListBoxControl-B6tvY3Al.js → MultiSelectListBoxControl-0M1iLfXZ.js} +2 -2
  27. package/dist/{MultimodeTwinlistControl-CUWzYCUm.js → MultimodeTwinlistControl-aL0Jr_Hp.js} +19 -20
  28. package/dist/{MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_0aa76d2b_lang-C8itN9TE.js → MultimodeTwinlistControl.vue_vue_type_style_index_0_scoped_0aa76d2b_lang-C61plPNM.js} +2 -2
  29. package/dist/{MultiselectListBox-C1rI0rOG.js → MultiselectListBox-BJqQv0AT.js} +5 -5
  30. package/dist/{NameFilter-CaPBJKzh.js → NameFilter-DvoXjvd8.js} +1 -1
  31. package/dist/{NumberControl-DOnwoK8Z.js → NumberControl-BEYR3aHU.js} +1 -1
  32. package/dist/{NumberControlBase.vue_vue_type_script_setup_true_lang-IP3X2jko.js → NumberControlBase.vue_vue_type_script_setup_true_lang-CSwuzJVa.js} +2 -2
  33. package/dist/{OneOfDropdown-CHt7_dgU.js → OneOfDropdown-Bg1JOuCZ.js} +1 -1
  34. package/dist/RadioButtonsWithDescriptionControl-Cmzn6X0W.js +57 -0
  35. package/dist/{RadioControl-CP7QiYX1.js → RadioControl-D4invwra.js} +2 -2
  36. package/dist/{RadioControlBase.vue_vue_type_script_setup_true_lang-qv1xOkqz.js → RadioControlBase.vue_vue_type_script_setup_true_lang-CuOORFSE.js} +2 -2
  37. package/dist/ResourceControlBase-BCx6cBBz.js +158 -0
  38. package/dist/{RichTextControl-DKlFtbdd.js → RichTextControl-TbANBneT.js} +2059 -1991
  39. package/dist/{SectionHeading-DbcAkyOk.js → SectionHeading-DoNDREK2.js} +1 -1
  40. package/dist/{SectionLayout-BRfbEX0H.js → SectionLayout-Dsd4wFck.js} +3 -3
  41. package/dist/SettingsSubPanel-sQPONy-U.js +5 -0
  42. package/dist/{SettingsSubPanelLayout-nMEM9Js5.js → SettingsSubPanelLayout-DbYqmGOS.js} +7 -7
  43. package/dist/{SimpleButtonControl-Cs9fDA9V.js → SimpleButtonControl-DhM4t6v3.js} +10 -9
  44. package/dist/SimpleButtonControl.vue_vue_type_style_index_0_scoped_17a4a240_lang-DAdzHTim.js +26176 -0
  45. package/dist/{SimpleTwinlistControl-CMJCJOPx.js → SimpleTwinlistControl-Chay0D48.js} +2 -2
  46. package/dist/{SingleSelectControl-DrqxOX0c.js → SingleSelectControl-BRfqeLOh.js} +2 -2
  47. package/dist/{SingleSelectListBoxControl-2ORQoAtg.js → SingleSelectListBoxControl-DyDspddM.js} +5 -5
  48. package/dist/{SortListControl-BLWFLyUn.js → SortListControl-DX0uhRfk.js} +104 -118
  49. package/dist/{StyledListItem-DhsQSwUn.js → StyledListItem-B_FaDixp.js} +1 -1
  50. package/dist/TeamAndSpacesControl-CVGPGpqd.js +64 -0
  51. package/dist/TeamResourceControl-DD-USgie.js +38 -0
  52. package/dist/{TextAreaControl-v3fhzCGm.js → TextAreaControl-BCIrrOzR.js} +1 -1
  53. package/dist/{TextControl-CNlNwI8q.js → TextControl-B_2oeFoq.js} +1 -1
  54. package/dist/TextControl.vue_vue_type_script_setup_true_lang-CuCBV4pA.js +45 -0
  55. package/dist/{TimeControl-uBNUovJi.js → TimeControl-CeL2KxIB.js} +1 -1
  56. package/dist/TimePartInput-BbHxGv7L.js +254 -0
  57. package/dist/TimeframesControl-BBUDxMaB.js +87 -0
  58. package/dist/Tooltip-B5O8iOuG.js +24 -0
  59. package/dist/{TwinlistControlBase-BfsU0lp4.js → TwinlistControlBase--CFSodU_.js} +3 -3
  60. package/dist/{TwinlistLoadingInfo-CZpH6CqT.js → TwinlistLoadingInfo-aB5QCSFX.js} +18 -18
  61. package/dist/{TypedStringFilter-ElEPYctF.js → TypedStringFilter-BjyKvhn1.js} +1 -1
  62. package/dist/{ValueSwitch-BfYlPI2B.js → ValueSwitch-DYxCMQ9c.js} +4 -4
  63. package/dist/{ValueSwitchControl-DyV85jLv.js → ValueSwitchControl-CQkiPcwC.js} +1 -1
  64. package/dist/{VerticalLayout-CFGNNSaB.js → VerticalLayout-DygOb7L9.js} +2 -2
  65. package/dist/{VerticalLayoutBase-CCtK1J1U.js → VerticalLayoutBase-Dq_p4WmZ.js} +1 -1
  66. package/dist/{ZonedDateTimeControl-BtPeUK4M.js → ZonedDateTimeControl-CKyKzTtF.js} +2 -2
  67. package/dist/_Uint8Array-Boy5On8p.js +349 -0
  68. package/dist/_baseAssignValue-CG1hoqdJ.js +19 -0
  69. package/dist/{_baseEach-DR1qyPMo.js → _baseEach-LxtQB6N-.js} +1 -1
  70. package/dist/_baseIteratee-BBGehgFZ.js +308 -0
  71. package/dist/floating-ui.vue-Bk6u3tWN.js +1060 -0
  72. package/dist/isArray-WzO_os3q.js +4 -0
  73. package/dist/knime-jsonforms.css +1 -1
  74. package/dist/knime-jsonforms.js +53 -51
  75. package/dist/{localTimeUtils-C1z-tWPY.js → localTimeUtils-C7kma5fB.js} +3163 -3553
  76. package/dist/src/constants/inputFormats.d.ts +14 -0
  77. package/dist/src/higherOrderComponents/control/DescriptionPopover.vue.d.ts +6 -0
  78. package/dist/src/higherOrderComponents/control/index.d.ts +1 -0
  79. package/dist/src/higherOrderComponents/control/withDescription.d.ts +2 -0
  80. package/dist/src/layoutComponents/index.d.ts +2 -1
  81. package/dist/src/layoutComponents/simpleArrayLayout/SimpleArrayLayout.vue.d.ts +74 -0
  82. package/dist/src/layoutComponents/simpleArrayLayout/SimpleArrayLayoutItemControls.vue.d.ts +16 -0
  83. package/dist/src/renderers/defaultRenderers.d.ts +152 -3
  84. package/dist/src/renderers/executorCoresResourceRenderer.d.ts +1 -0
  85. package/dist/src/renderers/executorMemoryResourceRenderer.d.ts +1 -0
  86. package/dist/src/renderers/fileUploadRenderer.d.ts +1 -0
  87. package/dist/src/renderers/gridSelectionRenderer.d.ts +1 -0
  88. package/dist/src/renderers/linkRenderer.d.ts +69 -0
  89. package/dist/src/renderers/passwordRenderer.d.ts +1 -0
  90. package/dist/src/renderers/quantityRenderer.d.ts +1 -0
  91. package/dist/src/renderers/radioWithDescriptionRenderer.d.ts +69 -0
  92. package/dist/src/renderers/simpleArrayLayoutRenderer.d.ts +76 -0
  93. package/dist/src/renderers/sortListRenderer.d.ts +1 -3
  94. package/dist/src/renderers/teamAndSpaceDropdownRenderer.d.ts +3 -0
  95. package/dist/src/renderers/teamResourceRenderer.d.ts +1 -0
  96. package/dist/src/renderers/timeframesRenderer.d.ts +4 -0
  97. package/dist/src/renderers/usernameRenderer.d.ts +1 -0
  98. package/dist/src/types/ChoicesUiSchema.d.ts +13 -1
  99. package/dist/src/uiComponents/DateControl.vue.d.ts +1 -1
  100. package/dist/src/uiComponents/DateTimeControl.vue.d.ts +1 -1
  101. package/dist/src/uiComponents/FileUploadControl.vue.d.ts +6 -0
  102. package/dist/src/uiComponents/GridSelectionControl.vue.d.ts +9 -0
  103. package/dist/src/uiComponents/LinkControl.vue.d.ts +4 -0
  104. package/dist/src/uiComponents/PasswordControl.vue.d.ts +4 -0
  105. package/dist/src/uiComponents/QuantityControl.vue.d.ts +4 -0
  106. package/dist/src/uiComponents/RadioButtonsWithDescriptionControl.vue.d.ts +4 -0
  107. package/dist/src/uiComponents/SortListControl.vue.d.ts +1 -3
  108. package/dist/src/uiComponents/TeamAndSpacesControl.vue.d.ts +4 -0
  109. package/dist/src/uiComponents/TimeControl.vue.d.ts +1 -1
  110. package/dist/src/uiComponents/TimeframesControl.vue.d.ts +8 -0
  111. package/dist/src/uiComponents/UsernameControl.vue.d.ts +4 -0
  112. package/dist/src/uiComponents/configs/executionContexts.config.d.ts +29 -0
  113. package/dist/src/uiComponents/loading/types/LoadingDropdownProps.d.ts +2 -2
  114. package/dist/src/uiComponents/resourceControls/ExecutorCoresControl.vue.d.ts +4 -0
  115. package/dist/src/uiComponents/resourceControls/ExecutorMemoryControl.vue.d.ts +4 -0
  116. package/dist/src/uiComponents/resourceControls/ResourceControlBase.vue.d.ts +19 -0
  117. package/dist/src/uiComponents/resourceControls/SmallDonutChart.vue.d.ts +20 -0
  118. package/dist/src/uiComponents/resourceControls/TeamResourceControl.vue.d.ts +4 -0
  119. package/dist/src/uiComponents/richTextControl/RichTextControl.vue.d.ts +1 -3
  120. package/dist/testing.js +2602 -2589
  121. package/dist/toString-Bbm8o0hZ.js +25 -0
  122. package/dist/{useBuiltinValidations-CXYzLTj1.js → useBuiltinValidations-zKGc6Pdt.js} +1 -1
  123. package/dist/useDropdownNavigation-EOwf_fL0.js +946 -0
  124. package/dist/{usePossibleValues-BGGWIVzM.js → usePossibleValues-DhdKca4Z.js} +1 -1
  125. package/package.json +2 -2
  126. package/dist/DateTimeControl-BzWk51J8.js +0 -44
  127. package/dist/Label-BckcZVsr.js +0 -218
  128. package/dist/LoadingDropdown.vue_vue_type_script_setup_true_lang-M581gyEa.js +0 -48
  129. package/dist/SectionHeading.vue_vue_type_style_index_0_scoped_2310b6b8_lang-B1Ey6pj2.js +0 -25430
  130. package/dist/SettingsSubPanel-Bw-wC4JV.js +0 -5
  131. package/dist/TextControl.vue_vue_type_script_setup_true_lang-BQReBqLi.js +0 -45
  132. package/dist/_baseIteratee-DrBvc1GG.js +0 -640
  133. package/dist/floating-ui.vue-Fx4CxKut.js +0 -1057
  134. package/dist/toString-lufkO4XX.js +0 -25
  135. package/dist/useDropdownNavigation-2Yhk7zes.js +0 -821
@@ -1,27 +1,27 @@
1
- import { defineComponent as c, ref as v, onMounted as N, openBlock as l, createElementBlock as F, createElementVNode as L, createCommentVNode as $, provide as A, computed as i, watch as _, createBlock as g, Suspense as I, withCtx as f, createVNode as h, renderSlot as b, unref as k, mergeProps as B, nextTick as O } from "vue";
2
- import { _ as w, p as J, F as M, s as R, U as V, i as U, a as z } from "./SectionHeading.vue_vue_type_style_index_0_scoped_2310b6b8_lang-B1Ey6pj2.js";
3
- import { E as ne, L as le, c as ie, b as ce, d as de, e as ue, f as me, g as pe, h as fe, j as he, l as ve, k as ge, m as De, n as ye, o as Pe, t as xe, u as Se, w as _e } from "./SectionHeading.vue_vue_type_style_index_0_scoped_2310b6b8_lang-B1Ey6pj2.js";
4
- import { default as Ce } from "./SimpleButtonControl-Cs9fDA9V.js";
5
- import { _ as Le } from "./TextControl.vue_vue_type_script_setup_true_lang-BQReBqLi.js";
6
- import { V as we } from "./VerticalLayoutBase-CCtK1J1U.js";
7
- import { S as Ee } from "./SectionHeading-DbcAkyOk.js";
8
- import { S as Ne } from "./SettingsSubPanel-Bw-wC4JV.js";
9
- const G = {
1
+ import { defineComponent as c, ref as v, onMounted as N, openBlock as l, createElementBlock as w, createElementVNode as C, createCommentVNode as $, provide as A, computed as i, watch as _, createBlock as g, Suspense as B, withCtx as f, createVNode as h, renderSlot as L, unref as F, mergeProps as I, nextTick as O } from "vue";
2
+ import { _ as k, p as J, F as M, s as R, U as V, i as U, a as z } from "./SimpleButtonControl.vue_vue_type_style_index_0_scoped_17a4a240_lang-DAdzHTim.js";
3
+ import { E as ne, L as le, S as ie, c as ce, b as de, d as ue, e as me, f as pe, g as fe, h as he, j as ve, l as ge, k as ye, m as De, n as Pe, o as Se, t as xe, u as _e, w as Le, q as be } from "./SimpleButtonControl.vue_vue_type_style_index_0_scoped_17a4a240_lang-DAdzHTim.js";
4
+ import { default as Ce } from "./SimpleButtonControl-DhM4t6v3.js";
5
+ import { _ as ke } from "./TextControl.vue_vue_type_script_setup_true_lang-CuCBV4pA.js";
6
+ import { V as Ee } from "./VerticalLayoutBase-Dq_p4WmZ.js";
7
+ import { S as Ne } from "./SectionHeading-DoNDREK2.js";
8
+ import { S as Ae } from "./SettingsSubPanel-sQPONy-U.js";
9
+ const q = {
10
10
  key: 0,
11
11
  class: "loading-dialog skeleton-wrapper"
12
- }, H = 200, q = /* @__PURE__ */ c({
12
+ }, G = 200, H = /* @__PURE__ */ c({
13
13
  __name: "LoadingDialog",
14
14
  setup(t) {
15
15
  const s = v(!1);
16
16
  return N(() => {
17
17
  setTimeout(() => {
18
18
  s.value = !0;
19
- }, H);
20
- }), (r, a) => s.value ? (l(), F("div", G, [...a[0] || (a[0] = [
21
- L("div", { class: "loading-dialog-content skeleton" }, null, -1)
19
+ }, G);
20
+ }), (r, a) => s.value ? (l(), w("div", q, [...a[0] || (a[0] = [
21
+ C("div", { class: "loading-dialog-content skeleton" }, null, -1)
22
22
  ])])) : $("", !0);
23
23
  }
24
- }), X = /* @__PURE__ */ w(q, [["__scopeId", "data-v-9c94592d"]]), Y = { class: "dialog" }, C = "EXPOSED_METHOD", K = /* @__PURE__ */ c({
24
+ }), X = /* @__PURE__ */ k(H, [["__scopeId", "data-v-9c94592d"]]), Y = { class: "dialog" }, b = "EXPOSED_METHOD", K = /* @__PURE__ */ c({
25
25
  __name: "JsonFormsDialog",
26
26
  props: {
27
27
  schema: {},
@@ -35,7 +35,7 @@ const G = {
35
35
  emits: ["updateData", "trigger", "change", "alert", "stateProviderListener", "initialized"],
36
36
  setup(t, { expose: s, emit: r }) {
37
37
  const a = r, d = (e, o, p) => (o.type === V && // @ts-expect-error source doesn't exist on type object
38
- o.context?.source !== C && setTimeout(() => O(() => a("updateData", o.path))), p(e, o)), n = (e) => {
38
+ o.context?.source !== b && setTimeout(() => O(() => a("updateData", o.path))), p(e, o)), n = (e) => {
39
39
  a("change", e);
40
40
  };
41
41
  Object.entries({
@@ -52,16 +52,16 @@ const G = {
52
52
  return t.validate(e, o);
53
53
  }
54
54
  }).forEach(([e, o]) => A(e, o));
55
- const m = v(null), D = [], y = (e, o) => {
55
+ const m = v(null), y = [], D = (e, o) => {
56
56
  m.value.dispatch(
57
57
  U.update(e, () => o, {
58
- source: C
58
+ source: b
59
59
  })
60
60
  );
61
61
  }, P = i(() => m.value !== null);
62
- let x;
62
+ let S;
63
63
  const j = new Promise((e) => {
64
- x = e;
64
+ S = e;
65
65
  }), E = _(
66
66
  () => P.value,
67
67
  (e) => {
@@ -72,17 +72,17 @@ const G = {
72
72
  _(
73
73
  () => P.value,
74
74
  (e) => {
75
- e && (x(), D.forEach(
76
- ({ path: o, value: p }) => y(o, p)
75
+ e && (S(), y.forEach(
76
+ ({ path: o, value: p }) => D(o, p)
77
77
  ));
78
78
  }
79
79
  ), s({
80
80
  updateData: async (e, o) => {
81
- m.value ? y(e, o) : (D.push({ path: e, value: o }), await j);
81
+ m.value ? D(e, o) : (y.push({ path: e, value: o }), await j);
82
82
  }
83
83
  });
84
- const S = v(null);
85
- J(S);
84
+ const x = v(null);
85
+ J(x);
86
86
  const T = i(() => ({
87
87
  data: t.data,
88
88
  schema: t.schema,
@@ -91,24 +91,24 @@ const G = {
91
91
  middleware: d,
92
92
  ...t.ajv ? { ajv: t.ajv } : {}
93
93
  }));
94
- return (e, o) => (l(), F("div", Y, [
95
- L("div", {
94
+ return (e, o) => (l(), w("div", Y, [
95
+ C("div", {
96
96
  ref_key: "subPanelTeleportDest",
97
- ref: S
97
+ ref: x
98
98
  }, null, 512),
99
- (l(), g(I, null, {
99
+ (l(), g(B, null, {
100
100
  fallback: f(() => [
101
101
  h(X)
102
102
  ]),
103
103
  default: f(() => [
104
104
  h(M, null, {
105
105
  default: f(() => [
106
- b(e.$slots, "top", {}, void 0, !0),
107
- h(k(R), B({
106
+ L(e.$slots, "top", {}, void 0, !0),
107
+ h(F(R), I({
108
108
  ref_key: "jsonforms",
109
109
  ref: m
110
110
  }, T.value, { onChange: n }), null, 16),
111
- b(e.$slots, "bottom", {}, void 0, !0)
111
+ L(e.$slots, "bottom", {}, void 0, !0)
112
112
  ]),
113
113
  _: 3
114
114
  })
@@ -117,7 +117,7 @@ const G = {
117
117
  }))
118
118
  ]));
119
119
  }
120
- }), te = /* @__PURE__ */ w(K, [["__scopeId", "data-v-dea72941"]]), Q = {
120
+ }), te = /* @__PURE__ */ k(K, [["__scopeId", "data-v-dea72941"]]), Q = {
121
121
  layout: {
122
122
  type: Object,
123
123
  required: !0
@@ -135,7 +135,7 @@ const G = {
135
135
  const s = (n, u) => n === "" ? u : `${n}.${u}`, r = t, a = i(() => s(r.control.path, r.fieldName)), d = i(
136
136
  () => r.control.schema.properties[r.fieldName]
137
137
  );
138
- return (n, u) => (l(), g(k(z), {
138
+ return (n, u) => (l(), g(F(z), {
139
139
  key: a.value,
140
140
  schema: d.value,
141
141
  uischema: t.uischema,
@@ -175,27 +175,29 @@ export {
175
175
  M as Form,
176
176
  te as JsonFormsDialog,
177
177
  le as LabeledControl,
178
- Ee as SectionHeading,
179
- Ne as SettingsSubPanel,
178
+ Ne as SectionHeading,
179
+ Ae as SettingsSubPanel,
180
+ ie as SimpleArrayLayout,
180
181
  Ce as SimpleButtonControl,
181
- Le as TextControl,
182
- we as VerticalLayoutBase,
183
- ie as controlProps,
184
- ce as controlToRenderer,
185
- de as controls,
186
- ue as defaultRenderers,
187
- me as defineControl,
182
+ ke as TextControl,
183
+ Ee as VerticalLayoutBase,
184
+ ce as controlProps,
185
+ de as controlToRenderer,
186
+ ue as controls,
187
+ me as defaultRenderers,
188
+ pe as defineControl,
188
189
  oe as defineLayout,
189
- pe as getAsyncSetupMethod,
190
- fe as handleAsyncComponents,
191
- he as inputFormats,
190
+ fe as getAsyncSetupMethod,
191
+ he as handleAsyncComponents,
192
+ ve as inputFormats,
192
193
  Q as layoutProps,
193
- ve as layoutToRenderer,
194
- ge as layouts,
194
+ ge as layoutToRenderer,
195
+ ye as layouts,
195
196
  De as mapControls,
196
- ye as mapLayouts,
197
- Pe as priorityRanks,
197
+ Pe as mapLayouts,
198
+ Se as priorityRanks,
198
199
  xe as toRenderers,
199
- Se as useProvidedState,
200
- _e as withLabel
200
+ _e as useProvidedState,
201
+ Le as withDescriptionButton,
202
+ be as withLabel
201
203
  };