@icure/form 3.0.46 → 3.1.1

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 (68) hide show
  1. package/.yarn/cache/{@babel-runtime-npm-7.28.4-31bc1b0001-934b0a0460.zip → @babel-runtime-npm-7.28.6-f40c99aeef-42d8a868c2.zip} +0 -0
  2. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.5.1-3b3c832bd1-22c404c481.zip +0 -0
  3. package/.yarn/cache/@lit-reactive-element-npm-2.1.2-2c713bebce-e0ed931b9c.zip +0 -0
  4. package/.yarn/cache/{lit-element-npm-4.2.1-b5bc114ced-5925326176.zip → lit-element-npm-4.2.2-70d4af2233-554254b87c.zip} +0 -0
  5. package/.yarn/cache/lit-html-npm-3.3.2-4a3e00215f-7fe23502ca.zip +0 -0
  6. package/.yarn/cache/{lit-npm-3.3.1-8f683c51f1-fb88f1ff80.zip → lit-npm-3.3.2-7dea58471e-2136d4beac.zip} +0 -0
  7. package/.yarn/cache/{markdown-it-npm-14.1.0-e337d75bfe-07296b45eb.zip → markdown-it-npm-14.1.1-45c173274d-d6d55865c6.zip} +0 -0
  8. package/.yarn/cache/prosemirror-markdown-npm-1.13.4-1a47b172bd-3306b4eca0.zip +0 -0
  9. package/.yarn/cache/prosemirror-transform-npm-1.11.0-fa260ad6f3-71989931b8.zip +0 -0
  10. package/.yarn/cache/prosemirror-view-npm-1.41.6-a9d2feed27-68f6a8bd66.zip +0 -0
  11. package/.yarn/install-state.gz +0 -0
  12. package/components/common/field.d.ts +14 -2
  13. package/components/common/field.js +95 -2
  14. package/components/common/field.js.map +1 -1
  15. package/components/common/utils.js +11 -1
  16. package/components/common/utils.js.map +1 -1
  17. package/components/icure-form/fields/button-group/checkbox.js +3 -4
  18. package/components/icure-form/fields/button-group/checkbox.js.map +1 -1
  19. package/components/icure-form/fields/button-group/radio-button.js +3 -4
  20. package/components/icure-form/fields/button-group/radio-button.js.map +1 -1
  21. package/components/icure-form/fields/date-picker/date-picker.js +3 -4
  22. package/components/icure-form/fields/date-picker/date-picker.js.map +1 -1
  23. package/components/icure-form/fields/date-picker/date-time-picker.js +3 -4
  24. package/components/icure-form/fields/date-picker/date-time-picker.js.map +1 -1
  25. package/components/icure-form/fields/date-picker/time-picker.js +3 -4
  26. package/components/icure-form/fields/date-picker/time-picker.js.map +1 -1
  27. package/components/icure-form/fields/dropdown/dropdown-field.js +3 -4
  28. package/components/icure-form/fields/dropdown/dropdown-field.js.map +1 -1
  29. package/components/icure-form/fields/measure-field/measure-field.js +3 -4
  30. package/components/icure-form/fields/measure-field/measure-field.js.map +1 -1
  31. package/components/icure-form/fields/number-field/number-field.js +3 -4
  32. package/components/icure-form/fields/number-field/number-field.js.map +1 -1
  33. package/components/icure-form/fields/text-field/text-field.js +3 -4
  34. package/components/icure-form/fields/text-field/text-field.js.map +1 -1
  35. package/components/icure-form/fields/utils/index.d.ts +0 -5
  36. package/components/icure-form/fields/utils/index.js +0 -8
  37. package/components/icure-form/fields/utils/index.js.map +1 -1
  38. package/components/icure-form/index.js +14 -10
  39. package/components/icure-form/index.js.map +1 -1
  40. package/components/icure-form/renderer/form/form.js +7 -5
  41. package/components/icure-form/renderer/form/form.js.map +1 -1
  42. package/components/icure-text-field/index.js +0 -2
  43. package/components/icure-text-field/index.js.map +1 -1
  44. package/components/icure-text-field/schema/measure-schema.js +0 -1
  45. package/components/icure-text-field/schema/measure-schema.js.map +1 -1
  46. package/components/model/index.d.ts +16 -16
  47. package/components/model/index.js +34 -30
  48. package/components/model/index.js.map +1 -1
  49. package/conversion/icure-convert.d.ts +3 -0
  50. package/conversion/icure-convert.js +161 -0
  51. package/conversion/icure-convert.js.map +1 -0
  52. package/generic/model.d.ts +11 -6
  53. package/generic/model.js.map +1 -1
  54. package/icure/form-values-container.d.ts +27 -21
  55. package/icure/form-values-container.js +318 -125
  56. package/icure/form-values-container.js.map +1 -1
  57. package/icure/icure-utils.js +47 -17
  58. package/icure/icure-utils.js.map +1 -1
  59. package/package.json +1 -1
  60. package/utils/fields-values-provider.d.ts +1 -1
  61. package/utils/fields-values-provider.js +6 -4
  62. package/utils/fields-values-provider.js.map +1 -1
  63. package/.yarn/cache/@lit-labs-ssr-dom-shim-npm-1.4.0-e5ef5fbeba-e267c25576.zip +0 -0
  64. package/.yarn/cache/@lit-reactive-element-npm-2.1.1-3875228c32-b9bbc9c089.zip +0 -0
  65. package/.yarn/cache/lit-html-npm-3.3.1-e3722d4f4a-de07c66945.zip +0 -0
  66. package/.yarn/cache/prosemirror-markdown-npm-1.13.2-6e2f179fd8-ce9fcb3b13.zip +0 -0
  67. package/.yarn/cache/prosemirror-transform-npm-1.10.5-5b3b4f5f61-6f5921e53a.zip +0 -0
  68. package/.yarn/cache/prosemirror-view-npm-1.41.4-cf361fd330-b663b8c6ce.zip +0 -0
@@ -141,7 +141,7 @@ export declare abstract class Field {
141
141
  event?: string;
142
142
  payload?: unknown;
143
143
  });
144
- abstract copy(properties: Partial<Field>): Field;
144
+ abstract copyIfNeeded(properties: Partial<Field>): Field;
145
145
  static parse(json: Field): Field;
146
146
  toJson(): {
147
147
  grows: boolean | undefined;
@@ -206,7 +206,7 @@ export declare class TextField extends Field {
206
206
  alignItems: string;
207
207
  };
208
208
  });
209
- copy(properties: Partial<TextField>): TextField;
209
+ copyIfNeeded(properties: Partial<TextField>): TextField;
210
210
  }
211
211
  export declare class MeasureField extends Field {
212
212
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }: {
@@ -237,7 +237,7 @@ export declare class MeasureField extends Field {
237
237
  alignItems: string;
238
238
  };
239
239
  });
240
- copy(properties: Partial<MeasureField>): MeasureField;
240
+ copyIfNeeded(properties: Partial<MeasureField>): MeasureField;
241
241
  }
242
242
  export declare class NumberField extends Field {
243
243
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }: {
@@ -268,7 +268,7 @@ export declare class NumberField extends Field {
268
268
  alignItems: string;
269
269
  };
270
270
  });
271
- copy(properties: Partial<NumberField>): NumberField;
271
+ copyIfNeeded(properties: Partial<NumberField>): NumberField;
272
272
  }
273
273
  export declare class TokenField extends Field {
274
274
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }: {
@@ -299,7 +299,7 @@ export declare class TokenField extends Field {
299
299
  alignItems: string;
300
300
  };
301
301
  });
302
- copy(properties: Partial<TokenField>): TokenField;
302
+ copyIfNeeded(properties: Partial<TokenField>): TokenField;
303
303
  }
304
304
  export declare class ItemsListField extends Field {
305
305
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, translate, width, styleOptions, }: {
@@ -330,7 +330,7 @@ export declare class ItemsListField extends Field {
330
330
  alignItems: string;
331
331
  };
332
332
  });
333
- copy(properties: Partial<ItemsListField>): ItemsListField;
333
+ copyIfNeeded(properties: Partial<ItemsListField>): ItemsListField;
334
334
  }
335
335
  export declare class DatePicker extends Field {
336
336
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }: {
@@ -362,7 +362,7 @@ export declare class DatePicker extends Field {
362
362
  alignItems: string;
363
363
  };
364
364
  });
365
- copy(properties: Partial<DatePicker>): DatePicker;
365
+ copyIfNeeded(properties: Partial<DatePicker>): DatePicker;
366
366
  }
367
367
  export declare class TimePicker extends Field {
368
368
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }: {
@@ -394,7 +394,7 @@ export declare class TimePicker extends Field {
394
394
  alignItems: string;
395
395
  };
396
396
  });
397
- copy(properties: Partial<TimePicker>): TimePicker;
397
+ copyIfNeeded(properties: Partial<TimePicker>): TimePicker;
398
398
  }
399
399
  export declare class DateTimePicker extends Field {
400
400
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, labels, value, unit, computedProperties, validators, now, translate, width, styleOptions, }: {
@@ -426,7 +426,7 @@ export declare class DateTimePicker extends Field {
426
426
  alignItems: string;
427
427
  };
428
428
  });
429
- copy(properties: Partial<DateTimePicker>): DateTimePicker;
429
+ copyIfNeeded(properties: Partial<DateTimePicker>): DateTimePicker;
430
430
  }
431
431
  export declare class DropdownField extends Field {
432
432
  constructor(label: string, options: {
@@ -457,7 +457,7 @@ export declare class DropdownField extends Field {
457
457
  alignItems: string;
458
458
  };
459
459
  });
460
- copy(properties: Partial<DropdownField>): DropdownField;
460
+ copyIfNeeded(properties: Partial<DropdownField>): DropdownField;
461
461
  }
462
462
  export declare class RadioButton extends Field {
463
463
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, value, computedProperties, validators, translate, sortOptions, width, styleOptions, hasOther, }: {
@@ -488,7 +488,7 @@ export declare class RadioButton extends Field {
488
488
  alignItems: string;
489
489
  };
490
490
  });
491
- copy(properties: Partial<RadioButton>): RadioButton;
491
+ copyIfNeeded(properties: Partial<RadioButton>): RadioButton;
492
492
  }
493
493
  export declare class CheckBox extends Field {
494
494
  constructor(label: string, { shortLabel, grows, span, rowSpan, tags, codifications, readonly, options, value, computedProperties, validators, translate, sortOptions, width, styleOptions, }: {
@@ -518,7 +518,7 @@ export declare class CheckBox extends Field {
518
518
  alignItems: string;
519
519
  };
520
520
  });
521
- copy(properties: Partial<CheckBox>): CheckBox;
521
+ copyIfNeeded(properties: Partial<CheckBox>): CheckBox;
522
522
  }
523
523
  export declare class Label extends Field {
524
524
  constructor(label: string, { shortLabel, grows, span }: {
@@ -527,7 +527,7 @@ export declare class Label extends Field {
527
527
  span?: number;
528
528
  rowSpan?: number;
529
529
  });
530
- copy(properties: Partial<Label>): Label;
530
+ copyIfNeeded(properties: Partial<Label>): Label;
531
531
  }
532
532
  export declare class Button extends Field {
533
533
  constructor(label: string, { shortLabel, grows, span, event, payload }: {
@@ -538,7 +538,7 @@ export declare class Button extends Field {
538
538
  event?: string;
539
539
  payload?: unknown;
540
540
  });
541
- copy(properties: Partial<Button>): Button;
541
+ copyIfNeeded(properties: Partial<Button>): Button;
542
542
  }
543
543
  export declare class Group {
544
544
  clazz: "group";
@@ -568,7 +568,7 @@ export declare class Group {
568
568
  [_key: string]: unknown;
569
569
  };
570
570
  });
571
- copy(properties: Partial<Group>): Group;
571
+ copyIfNeeded(properties: Partial<Group>): Group;
572
572
  static parse({ borderless, span, computedProperties, fields, group, translate, width, }: {
573
573
  group: string;
574
574
  fields?: Array<Field | Group | Subform>;
@@ -618,7 +618,7 @@ export declare class Subform {
618
618
  refs?: string[];
619
619
  labels?: Labels;
620
620
  });
621
- copy(properties: Partial<Subform>): Subform;
621
+ copyIfNeeded(properties: Partial<Subform>): Subform;
622
622
  static parse(json: {
623
623
  subform: string;
624
624
  shortLabel?: string;
@@ -1,3 +1,7 @@
1
+ function hasChanges(target, properties) {
2
+ const keys = Object.keys(properties);
3
+ return keys.length > 0 && keys.some((k) => target[k] !== properties[k]);
4
+ }
1
5
  export const pteq = (a, b) => {
2
6
  if (a === b) {
3
7
  return true;
@@ -114,8 +118,8 @@ export class TextField extends Field {
114
118
  styleOptions,
115
119
  });
116
120
  }
117
- copy(properties) {
118
- return new TextField(this.field, Object.assign(Object.assign({}, this), properties));
121
+ copyIfNeeded(properties) {
122
+ return hasChanges(this, properties) ? new TextField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
119
123
  }
120
124
  }
121
125
  export class MeasureField extends Field {
@@ -139,8 +143,8 @@ export class MeasureField extends Field {
139
143
  styleOptions,
140
144
  });
141
145
  }
142
- copy(properties) {
143
- return new MeasureField(this.field, Object.assign(Object.assign({}, this), properties));
146
+ copyIfNeeded(properties) {
147
+ return hasChanges(this, properties) ? new MeasureField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
144
148
  }
145
149
  }
146
150
  export class NumberField extends Field {
@@ -164,8 +168,8 @@ export class NumberField extends Field {
164
168
  styleOptions,
165
169
  });
166
170
  }
167
- copy(properties) {
168
- return new NumberField(this.field, Object.assign(Object.assign({}, this), properties));
171
+ copyIfNeeded(properties) {
172
+ return hasChanges(this, properties) ? new NumberField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
169
173
  }
170
174
  }
171
175
  export class TokenField extends Field {
@@ -189,8 +193,8 @@ export class TokenField extends Field {
189
193
  styleOptions,
190
194
  });
191
195
  }
192
- copy(properties) {
193
- return new TokenField(this.field, Object.assign(Object.assign({}, this), properties));
196
+ copyIfNeeded(properties) {
197
+ return hasChanges(this, properties) ? new TokenField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
194
198
  }
195
199
  }
196
200
  export class ItemsListField extends Field {
@@ -214,8 +218,8 @@ export class ItemsListField extends Field {
214
218
  styleOptions,
215
219
  });
216
220
  }
217
- copy(properties) {
218
- return new ItemsListField(this.field, Object.assign(Object.assign({}, this), properties));
221
+ copyIfNeeded(properties) {
222
+ return hasChanges(this, properties) ? new ItemsListField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
219
223
  }
220
224
  }
221
225
  export class DatePicker extends Field {
@@ -240,8 +244,8 @@ export class DatePicker extends Field {
240
244
  styleOptions,
241
245
  });
242
246
  }
243
- copy(properties) {
244
- return new DatePicker(this.field, Object.assign(Object.assign({}, this), properties));
247
+ copyIfNeeded(properties) {
248
+ return hasChanges(this, properties) ? new DatePicker(this.field, Object.assign(Object.assign({}, this), properties)) : this;
245
249
  }
246
250
  }
247
251
  export class TimePicker extends Field {
@@ -266,8 +270,8 @@ export class TimePicker extends Field {
266
270
  styleOptions,
267
271
  });
268
272
  }
269
- copy(properties) {
270
- return new TimePicker(this.field, Object.assign(Object.assign({}, this), properties));
273
+ copyIfNeeded(properties) {
274
+ return hasChanges(this, properties) ? new TimePicker(this.field, Object.assign(Object.assign({}, this), properties)) : this;
271
275
  }
272
276
  }
273
277
  export class DateTimePicker extends Field {
@@ -292,8 +296,8 @@ export class DateTimePicker extends Field {
292
296
  styleOptions,
293
297
  });
294
298
  }
295
- copy(properties) {
296
- return new DateTimePicker(this.field, Object.assign(Object.assign({}, this), properties));
299
+ copyIfNeeded(properties) {
300
+ return hasChanges(this, properties) ? new DateTimePicker(this.field, Object.assign(Object.assign({}, this), properties)) : this;
297
301
  }
298
302
  }
299
303
  export class DropdownField extends Field {
@@ -316,8 +320,8 @@ export class DropdownField extends Field {
316
320
  });
317
321
  this.sortOptions = (_a = options.sortOptions) !== null && _a !== void 0 ? _a : undefined;
318
322
  }
319
- copy(properties) {
320
- return new DropdownField(this.field, Object.assign(Object.assign({}, this), properties));
323
+ copyIfNeeded(properties) {
324
+ return hasChanges(this, properties) ? new DropdownField(this.field, Object.assign(Object.assign({}, this), properties)) : this;
321
325
  }
322
326
  }
323
327
  export class RadioButton extends Field {
@@ -341,8 +345,8 @@ export class RadioButton extends Field {
341
345
  });
342
346
  this.sortOptions = sortOptions !== null && sortOptions !== void 0 ? sortOptions : undefined;
343
347
  }
344
- copy(properties) {
345
- return new RadioButton(this.field, Object.assign(Object.assign({}, this), properties));
348
+ copyIfNeeded(properties) {
349
+ return hasChanges(this, properties) ? new RadioButton(this.field, Object.assign(Object.assign({}, this), properties)) : this;
346
350
  }
347
351
  }
348
352
  export class CheckBox extends Field {
@@ -365,24 +369,24 @@ export class CheckBox extends Field {
365
369
  });
366
370
  this.sortOptions = sortOptions !== null && sortOptions !== void 0 ? sortOptions : undefined;
367
371
  }
368
- copy(properties) {
369
- return new CheckBox(this.field, Object.assign(Object.assign({}, this), properties));
372
+ copyIfNeeded(properties) {
373
+ return hasChanges(this, properties) ? new CheckBox(this.field, Object.assign(Object.assign({}, this), properties)) : this;
370
374
  }
371
375
  }
372
376
  export class Label extends Field {
373
377
  constructor(label, { shortLabel, grows, span }) {
374
378
  super('label', label, { shortLabel, grows, span });
375
379
  }
376
- copy(properties) {
377
- return new Label(this.field, Object.assign(Object.assign({}, this), properties));
380
+ copyIfNeeded(properties) {
381
+ return hasChanges(this, properties) ? new Label(this.field, Object.assign(Object.assign({}, this), properties)) : this;
378
382
  }
379
383
  }
380
384
  export class Button extends Field {
381
385
  constructor(label, { shortLabel, grows, span, event, payload }) {
382
386
  super('action', label, { shortLabel, grows, span, event, payload });
383
387
  }
384
- copy(properties) {
385
- return new Button(this.field, Object.assign(Object.assign({}, this), properties));
388
+ copyIfNeeded(properties) {
389
+ return hasChanges(this, properties) ? new Button(this.field, Object.assign(Object.assign({}, this), properties)) : this;
386
390
  }
387
391
  }
388
392
  export class Group {
@@ -399,9 +403,9 @@ export class Group {
399
403
  this.width = width;
400
404
  this.styleOptions = styleOptions;
401
405
  }
402
- copy(properties) {
406
+ copyIfNeeded(properties) {
403
407
  var _a;
404
- return new Group(this.group, (_a = this.fields) !== null && _a !== void 0 ? _a : [], Object.assign(Object.assign({}, this), properties));
408
+ return hasChanges(this, properties) ? new Group(this.group, (_a = this.fields) !== null && _a !== void 0 ? _a : [], Object.assign(Object.assign({}, this), properties)) : this;
405
409
  }
406
410
  static parse({ borderless, span, computedProperties, fields, group, translate, width, }) {
407
411
  return new Group(group, (fields || []).map((s) => s['group']
@@ -443,8 +447,8 @@ export class Subform {
443
447
  this.refs = refs;
444
448
  this.labels = labels !== null && labels !== void 0 ? labels : {};
445
449
  }
446
- copy(properties) {
447
- return new Subform(this.id, this.forms, Object.assign(Object.assign({}, this), properties));
450
+ copyIfNeeded(properties) {
451
+ return hasChanges(this, properties) ? new Subform(this.id, this.forms, Object.assign(Object.assign({}, this), properties)) : this;
448
452
  }
449
453
  static parse(json) {
450
454
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentSchema, InlineSchema, StyledSchema } from '../icure-text-field/schema/markdown-schema'\nimport { TokensSchema } from '../icure-text-field/schema/token-schema'\nimport { ItemsListSchema } from '../icure-text-field/schema/items-list-schema'\nimport { DateSchema, DateTimeSchema, TimeSchema } from '../icure-text-field/schema/date-time-schema'\nimport { DecimalSchema } from '../icure-text-field/schema/decimal-schema'\nimport { MeasureSchema } from '../icure-text-field/schema/measure-schema'\n\nexport interface Code {\n\tid: string\n\tlabel: { [key: string]: string }\n}\n\nexport interface FieldMetadata {\n\tlabel: string\n\tindex?: number\n\tvalueDate?: number\n\towner?: string\n\ttags?: Code[]\n\n\t//The metadata values that are considered as exceptional\n\tdiscordantMetadata?: () => Partial<FieldMetadata>\n}\n\nexport interface FieldValue {\n\tcontent: { [language: string]: PrimitiveType }\n\tcodes?: Code[]\n}\n\nexport type PrimitiveType = StringType | NumberType | BooleanType | TimestampType | DateTimeType | MeasureType | CompoundType\n\nexport interface StringType {\n\ttype: 'string'\n\tvalue: string\n}\n\nexport interface NumberType {\n\ttype: 'number'\n\tvalue: number\n}\n\nexport interface BooleanType {\n\ttype: 'boolean'\n\tvalue: boolean\n}\n\nexport interface TimestampType {\n\ttype: 'timestamp'\n\tvalue: number\n}\n\nexport interface DateTimeType {\n\ttype: 'datetime'\n\tvalue: number\n}\n\nexport interface MeasureType {\n\ttype: 'measure'\n\tvalue?: number\n\tunit?: string\n}\n\nexport interface CompoundType {\n\ttype: 'compound'\n\tvalue: { [label: string]: PrimitiveType }\n}\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom' | 'float' | 'add' | 'remove'\n\nexport type Labels = Partial<Record<Position, string>>\n\nexport interface SortOptions {\n\tsort: 'asc' | 'desc' | 'natural'\n\tpromotions?: string\n}\n\nexport const pteq = (a: PrimitiveType | undefined, b: PrimitiveType | undefined): boolean => {\n\tif (a === b) {\n\t\treturn true\n\t}\n\tif (a === undefined || b === undefined) {\n\t\treturn false\n\t}\n\tif (a?.type !== b?.type) {\n\t\treturn false\n\t}\n\tif (a.value === b.value && (a.type !== 'measure' || b.type !== 'measure' || a.unit === b.unit)) {\n\t\treturn true\n\t}\n\tif (a.type === 'compound' && b.type === 'compound') {\n\t\treturn Object.keys(a.value).every((k) => pteq(a.value[k], b.value[k]))\n\t}\n\treturn false\n}\n\nexport type IcureTextFieldSchema = DocumentSchema | TokensSchema | ItemsListSchema | StyledSchema | InlineSchema | DateSchema | TimeSchema | DateTimeSchema | DecimalSchema | MeasureSchema\n\ntype FieldType =\n\t| 'text-field'\n\t| 'measure-field'\n\t| 'number-field'\n\t| 'token-field'\n\t| 'items-list-field'\n\t| 'date-picker'\n\t| 'time-picker'\n\t| 'date-time-picker'\n\t| 'multiple-choice'\n\t| 'dropdown-field'\n\t| 'radio-button'\n\t| 'checkbox'\n\t| 'label'\n\t| 'action'\n\nexport interface Validator {\n\tvalidation: string\n\tmessage: string\n}\n\nexport abstract class Field {\n\tclazz = 'field' as const\n\tfield: string\n\ttype: FieldType\n\tshortLabel?: string\n\tspan?: number\n\trowSpan?: number\n\tgrows: boolean\n\tschema?: IcureTextFieldSchema\n\ttags?: string[]\n\tcodifications?: string[]\n\treadonly?: boolean\n\toptions?: { [_key: string]: unknown }\n\tlabels?: Labels\n\tvalue?: string\n\tunit?: string\n\tmultiline?: boolean\n\tcomputedProperties?: { [_key: string]: string }\n\tvalidators?: Validator[]\n\tnow?: boolean\n\ttranslate?: boolean\n\tsortOptions?: SortOptions\n\twidth?: number\n\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\thasOther?: boolean\n\tevent?: string\n\tpayload?: unknown\n\n\tlabel(): string {\n\t\treturn this.field\n\t}\n\n\tprotected constructor(\n\t\ttype: FieldType,\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t\tevent,\n\t\t\tpayload,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t\thasOther?: boolean\n\t\t\tevent?: string\n\t\t\tpayload?: unknown\n\t\t},\n\t) {\n\t\tthis.field = label\n\t\tthis.type = type\n\t\tthis.shortLabel = shortLabel\n\t\tthis.grows = grows === undefined ? true : grows\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.schema = schema\n\t\tthis.tags = tags\n\t\tthis.codifications = codifications\n\t\tthis.readonly = readonly || false\n\t\tthis.options = options\n\t\tthis.labels = labels\n\t\tthis.value = value\n\t\tthis.unit = unit\n\t\tthis.multiline = multiline || false\n\t\tthis.computedProperties = computedProperties\n\t\tthis.validators = validators\n\t\tthis.now = now\n\t\tthis.translate = translate ?? true\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.hasOther = hasOther\n\t\tthis.event = event\n\t\tthis.payload = payload\n\t}\n\n\tabstract copy(properties: Partial<Field>): Field\n\n\tstatic parse(json: Field): Field {\n\t\treturn (\n\t\t\t(\n\t\t\t\t{\n\t\t\t\t\t'text-field': () => new TextField(json.field, { ...json }),\n\t\t\t\t\t'measure-field': () => new MeasureField(json.field, { ...json }),\n\t\t\t\t\t'token-field': () => new TokenField(json.field, { ...json }),\n\t\t\t\t\t'items-list-field': () => new ItemsListField(json.field, { ...json }),\n\t\t\t\t\t'number-field': () => new NumberField(json.field, { ...json }),\n\t\t\t\t\t'date-picker': () => new DatePicker(json.field, { ...json }),\n\t\t\t\t\t'time-picker': () => new TimePicker(json.field, { ...json }),\n\t\t\t\t\t'date-time-picker': () => new DateTimePicker(json.field, { ...json }),\n\t\t\t\t\tdropdown: () => new DropdownField(json.field, { ...json }),\n\t\t\t\t\t'radio-button': () => new RadioButton(json.field, { ...json }),\n\t\t\t\t\tcheckbox: () => new CheckBox(json.field, { ...json }),\n\t\t\t\t\tlabel: () => new Label(json.field, { ...json }),\n\t\t\t\t\taction: () => new Button(json.field, { ...json }),\n\t\t\t\t} as { [key: string]: () => Field }\n\t\t\t)[json.type as string]?.() ?? new TextField(json.field, { ...json })\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tgrows: boolean | undefined\n\t\tschema: string | undefined\n\t\tspan: number | undefined\n\t\tcodifications: string[] | undefined\n\t\ttype:\n\t\t\t| 'text-field'\n\t\t\t| 'measure-field'\n\t\t\t| 'number-field'\n\t\t\t| 'token-field'\n\t\t\t| 'items-list-field'\n\t\t\t| 'date-picker'\n\t\t\t| 'time-picker'\n\t\t\t| 'date-time-picker'\n\t\t\t| 'multiple-choice'\n\t\t\t| 'dropdown-field'\n\t\t\t| 'radio-button'\n\t\t\t| 'checkbox'\n\t\t\t| 'label'\n\t\t\t| 'action'\n\t\ttranslate: boolean | undefined\n\t\ttags: string[] | undefined\n\t\tlabels: Labels | undefined\n\t\tunit: string | undefined\n\t\tfield: string\n\t\tstyleOptions: { width: number; direction: string; span: number; rows: number; alignItems: string } | undefined\n\t\tsortOptions: SortOptions | undefined\n\t\tmultiline: boolean | undefined\n\t\tnow: boolean | undefined\n\t\toptions: { [_key: string]: unknown } | undefined\n\t\twidth: number | undefined\n\t\tshortLabel: string | undefined\n\t\tcomputedProperties: { [key: string]: string } | undefined\n\t\tvalue: string | undefined\n\t} {\n\t\treturn {\n\t\t\tfield: this.field,\n\t\t\ttype: this.type,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tgrows: this.grows,\n\t\t\tspan: this.span,\n\t\t\tschema: this.schema?.toString(),\n\t\t\ttags: this.tags,\n\t\t\tcodifications: this.codifications,\n\t\t\toptions: this.options,\n\t\t\tlabels: this.labels,\n\t\t\tvalue: this.value,\n\t\t\tunit: this.unit,\n\t\t\tmultiline: this.multiline,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tnow: this.now,\n\t\t\ttranslate: this.translate,\n\t\t\tsortOptions: this.sortOptions,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\n\nexport class TextField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('text-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema: schema || 'styled-text-with-codes',\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline: multiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\n\toverride copy(properties: Partial<TextField>): TextField {\n\t\treturn new TextField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class MeasureField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('measure-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<MeasureField>): MeasureField {\n\t\treturn new MeasureField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class NumberField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('number-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<NumberField>): NumberField {\n\t\treturn new NumberField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class TokenField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('token-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<TokenField>): TokenField {\n\t\treturn new TokenField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class ItemsListField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('items-list-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<ItemsListField>): ItemsListField {\n\t\treturn new ItemsListField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class DatePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<DatePicker>): DatePicker {\n\t\treturn new DatePicker(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class TimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<TimePicker>): TimePicker {\n\t\treturn new TimePicker(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class DateTimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copy(properties: Partial<DateTimePicker>): DateTimePicker {\n\t\treturn new DateTimePicker(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class DropdownField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\toptions: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('dropdown-field', label, {\n\t\t\tshortLabel: options.shortLabel,\n\t\t\tgrows: options.grows,\n\t\t\tspan: options.span,\n\t\t\ttags: options.tags,\n\t\t\tcodifications: options.codifications,\n\t\t\toptions: options.options,\n\t\t\tlabels: options.labels,\n\t\t\tvalidators: options.validators,\n\t\t\tvalue: options.value,\n\t\t\tcomputedProperties: options.computedProperties,\n\t\t\ttranslate: options.translate,\n\t\t\twidth: options.width,\n\t\t\tstyleOptions: options.styleOptions,\n\t\t})\n\t\tthis.sortOptions = options.sortOptions ?? undefined\n\t}\n\toverride copy(properties: Partial<DropdownField>): DropdownField {\n\t\treturn new DropdownField(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class RadioButton extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\thasOther?: boolean\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('radio-button', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copy(properties: Partial<RadioButton>): RadioButton {\n\t\treturn new RadioButton(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class CheckBox extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('checkbox', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copy(properties: Partial<CheckBox>): CheckBox {\n\t\treturn new CheckBox(this.field, { ...this, ...properties })\n\t}\n}\nexport class Label extends Field {\n\tconstructor(label: string, { shortLabel, grows, span }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number }) {\n\t\tsuper('label', label, { shortLabel, grows, span })\n\t}\n\toverride copy(properties: Partial<Label>): Label {\n\t\treturn new Label(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class Button extends Field {\n\tconstructor(label: string, { shortLabel, grows, span, event, payload }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number; event?: string; payload?: unknown }) {\n\t\tsuper('action', label, { shortLabel, grows, span, event, payload })\n\t}\n\toverride copy(properties: Partial<Button>): Button {\n\t\treturn new Button(this.field, { ...this, ...properties })\n\t}\n}\n\nexport class Group {\n\tclazz = 'group' as const\n\tgroup: string\n\tborderless: boolean\n\ttranslate: boolean\n\tfields?: Array<Field | Group | Subform>\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\n\tconstructor(\n\t\ttitle: string,\n\t\tfields: Array<Field | Group | Subform>,\n\t\t{\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tborderless,\n\t\t\ttranslate,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tborderless?: boolean\n\t\t\ttranslate?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t},\n\t) {\n\t\tthis.group = title\n\t\tthis.fields = fields\n\t\tthis.borderless = borderless ?? false\n\t\tthis.translate = translate ?? true\n\t\tthis.fields = fields\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t}\n\n\tcopy(properties: Partial<Group>): Group {\n\t\treturn new Group(this.group, this.fields ?? [], { ...this, ...properties })\n\t}\n\n\tstatic parse({\n\t\tborderless,\n\t\tspan,\n\t\tcomputedProperties,\n\t\tfields,\n\t\tgroup,\n\t\ttranslate,\n\t\twidth,\n\t}: {\n\t\tgroup: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tborderless?: boolean\n\t\ttranslate?: boolean\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t}): Group {\n\t\treturn new Group(\n\t\t\tgroup,\n\t\t\t(fields || []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: span,\n\t\t\t\tborderless: borderless,\n\t\t\t\ttranslate: translate,\n\t\t\t\tcomputedProperties: computedProperties,\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t)\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tgroup: this.group,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tfields: this.fields?.map((f: Field | Group) => f.toJson()),\n\t\t\tborderless: this.borderless,\n\t\t\ttranslatable: this.translate,\n\t\t\tspan: this.span,\n\t\t\twidth: this.width,\n\t\t}\n\t}\n}\n\nexport class Subform {\n\tclazz = 'subform' as const\n\tid: string\n\tshortLabel?: string\n\trefs?: string[]\n\tforms: { [key: string]: Form }\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\tlabels: Labels\n\n\tconstructor(\n\t\ttitle: string,\n\t\tforms: { [key: string]: Form },\n\t\t{\n\t\t\tid,\n\t\t\tshortLabel,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\trefs,\n\t\t\tlabels,\n\t\t}: {\n\t\t\tid?: string\n\t\t\tshortLabel?: string\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t\trefs?: string[]\n\t\t\tlabels?: Labels\n\t\t},\n\t) {\n\t\tthis.id = id || title\n\t\tthis.shortLabel = shortLabel\n\t\tthis.forms = forms\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.refs = refs\n\t\tthis.labels = labels ?? {}\n\t}\n\n\tcopy(properties: Partial<Subform>): Subform {\n\t\treturn new Subform(this.id, this.forms, { ...this, ...properties })\n\t}\n\n\tstatic parse(json: {\n\t\tsubform: string\n\t\tshortLabel?: string\n\t\tforms?: { [key: string]: Form }\n\t\trefs?: string[]\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t\tstyleOptions?: { [_key: string]: unknown }\n\t\tlabels?: Labels\n\t\tid: string\n\t}): Subform {\n\t\treturn new Subform(json.subform, json.forms ?? {}, {\n\t\t\tid: json.id,\n\t\t\tshortLabel: json.shortLabel,\n\t\t\tspan: json.span,\n\t\t\tcomputedProperties: json.computedProperties,\n\t\t\twidth: json.width,\n\t\t\tstyleOptions: json.styleOptions,\n\t\t\trefs: json.refs,\n\t\t\tlabels: json.labels,\n\t\t})\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tsubform: this.id,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tforms: Object.fromEntries(Object.entries(this.forms).map(([k, f]) => [k, f.toJson()])),\n\t\t\tspan: this.span,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\nexport class Section {\n\tsection: string\n\tfields: Array<Field | Group | Subform>\n\tdescription?: string\n\tkeywords?: string[]\n\n\tconstructor(title: string, fields: Array<Field | Group | Subform>, description?: string, keywords?: string[]) {\n\t\tthis.section = title\n\t\tthis.fields = fields\n\t\tthis.description = description\n\t\tthis.keywords = keywords\n\t}\n\n\tstatic parse(json: {\n\t\tsection: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tgroups?: Array<Field | Group | Subform>\n\t\tsections?: Array<Field | Group | Subform>\n\t\tdescription?: string\n\t\tkeywords?: string[]\n\t}): Section {\n\t\treturn new Section(\n\t\t\tjson.section,\n\t\t\t(json.fields ?? json.groups ?? json.sections ?? []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t)\n\t}\n\n\ttoJson(): {\n\t\tsection: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tfields: (Field | Group | Subform)[]\n\t} {\n\t\treturn {\n\t\t\tsection: this.section,\n\t\t\tfields: this.fields.map((f: Field | Group | Subform) => (f && f.toJson ? f.toJson() : JSON.stringify(f))),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n\nexport class Codification {\n\ttype: string\n\tcodes: Code[]\n\n\tconstructor(type: string, codes: Code[]) {\n\t\tthis.type = type\n\t\tthis.codes = codes\n\t}\n\n\tstatic parse(json: { type: string; codes: Code[] }): Codification {\n\t\treturn new Codification(\n\t\t\tjson.type,\n\t\t\tjson.codes.map((code) => {\n\t\t\t\tconst parts = code.id.split('|')\n\t\t\t\tif (parts.length === 1) {\n\t\t\t\t\treturn { ...code, id: `${json.type}|${code.id}|1` }\n\t\t\t\t} else if (parts.length === 2) {\n\t\t\t\t\treturn { ...code, id: `${code.id}|1` }\n\t\t\t\t} else {\n\t\t\t\t\treturn code\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { type: string; codes: Code[] } {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcodes: this.codes,\n\t\t}\n\t}\n}\n\nexport class TranslationTable {\n\tlanguage: string\n\ttranslations: { [key: string]: string }\n\n\tconstructor(language: string, translations: { [key: string]: string }) {\n\t\tthis.language = language\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(json: { language: string; translations: { [key: string]: string } }): TranslationTable {\n\t\treturn new TranslationTable(json.language, json.translations)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { language: string; translations: { [key: string]: string } } {\n\t\treturn {\n\t\t\tlanguage: this.language,\n\t\t\ttranslations: this.translations,\n\t\t}\n\t}\n}\n\nexport class Form {\n\tform: string\n\tsections: Section[]\n\tid?: string\n\tdescription?: string\n\tkeywords?: string[]\n\tcodifications?: Codification[]\n\ttranslations?: TranslationTable[]\n\n\tconstructor(title: string, sections: Section[], id?: string, description?: string, keywords?: string[], codifications?: Codification[], translations?: TranslationTable[]) {\n\t\tthis.form = title\n\t\tthis.description = description\n\t\tthis.id = id\n\t\tthis.keywords = keywords\n\t\tthis.sections = sections\n\t\tthis.codifications = codifications\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(\n\t\tjson: {\n\t\t\tform: string\n\t\t\tsections: Section[]\n\t\t\tid?: string\n\t\t\tdescription?: string\n\t\t\tkeywords?: string[]\n\t\t\tcodifications?: Codification[]\n\t\t\ttranslations?: TranslationTable[]\n\t\t\tsubForms?: { [key: string]: Form }\n\t\t},\n\t\tlibrary: Form[] = [],\n\t\tsubforms: { [key: string]: Form } = {},\n\t): Form {\n\t\tconst parsed = new Form(\n\t\t\tjson.form,\n\t\t\t(json.sections || []).map((s: Section) => Section.parse(s)),\n\t\t\tjson.id,\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t\tjson.codifications?.map((c: Codification) => Codification.parse(c)),\n\t\t\tjson.translations?.map((t: TranslationTable) => TranslationTable.parse(t)),\n\t\t)\n\n\t\tconst allSubforms = { ...subforms, ...(json.subForms || {}) }\n\n\t\tconst resolveAndCheckConsistencyInSubForm = (f: Subform, seenSubformId: string[]) => {\n\t\t\tif (seenSubformId.includes(f.id)) {\n\t\t\t\tthrow new Error(`Subform ${f.id} is already declared in this form`)\n\t\t\t}\n\t\t\tseenSubformId.push(f.id)\n\t\t\tObject.entries((f as Subform).forms ?? {}).forEach(([k, subForm]) => {\n\t\t\t\tf.forms[k] = Form.parse({ ...subForm, id: k }, library, allSubforms)\n\t\t\t})\n\t\t\t;(f as Subform).refs?.forEach((r) => {\n\t\t\t\tconst subForm = allSubforms?.[r]\n\t\t\t\tconst form = subForm ? Form.parse({ ...subForm, id: r }, library, allSubforms) : library.find((f) => f.id === r)\n\t\t\t\tif (!form) {\n\t\t\t\t\tthrow new Error(`Subform ${r} not found in top subForms declarations or the provided library of forms`)\n\t\t\t\t}\n\t\t\t\tf.forms[r] = form\n\t\t\t})\n\t\t\tObject.entries(f.forms).forEach(([, f]) => resolveAndCheckConsistencyInForm(f, seenSubformId))\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInForm = (f: Form, seenSubformId: string[] = []) => {\n\t\t\tf.sections.forEach((s: Section) => {\n\t\t\t\ts.fields.forEach((f: Field | Group | Subform) => {\n\t\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\treturn f\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInGroup = (g: Group, seenSubformId: string[]) => {\n\t\t\tg.fields?.forEach((f: Field | Group | Subform) => {\n\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn g\n\t\t}\n\n\t\treturn resolveAndCheckConsistencyInForm(parsed, [])\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tform: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tsections: { section: string; keywords?: string[]; description?: string; fields: any[] }[]\n\t} {\n\t\treturn {\n\t\t\tform: this.form,\n\t\t\tsections: this.sections.map((s: Section) => s.toJson()),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tmp/components/model/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DocumentSchema, InlineSchema, StyledSchema } from '../icure-text-field/schema/markdown-schema'\nimport { TokensSchema } from '../icure-text-field/schema/token-schema'\nimport { ItemsListSchema } from '../icure-text-field/schema/items-list-schema'\nimport { DateSchema, DateTimeSchema, TimeSchema } from '../icure-text-field/schema/date-time-schema'\nimport { DecimalSchema } from '../icure-text-field/schema/decimal-schema'\nimport { MeasureSchema } from '../icure-text-field/schema/measure-schema'\n\nexport interface Code {\n\tid: string\n\tlabel: { [key: string]: string }\n}\n\nexport interface FieldMetadata {\n\tlabel: string\n\tindex?: number\n\tvalueDate?: number\n\towner?: string\n\ttags?: Code[]\n\n\t//The metadata values that are considered as exceptional\n\tdiscordantMetadata?: () => Partial<FieldMetadata>\n}\n\nexport interface FieldValue {\n\tcontent: { [language: string]: PrimitiveType }\n\tcodes?: Code[]\n}\n\nexport type PrimitiveType = StringType | NumberType | BooleanType | TimestampType | DateTimeType | MeasureType | CompoundType\n\nexport interface StringType {\n\ttype: 'string'\n\tvalue: string\n}\n\nexport interface NumberType {\n\ttype: 'number'\n\tvalue: number\n}\n\nexport interface BooleanType {\n\ttype: 'boolean'\n\tvalue: boolean\n}\n\nexport interface TimestampType {\n\ttype: 'timestamp'\n\tvalue: number\n}\n\nexport interface DateTimeType {\n\ttype: 'datetime'\n\tvalue: number\n}\n\nexport interface MeasureType {\n\ttype: 'measure'\n\tvalue?: number\n\tunit?: string\n}\n\nexport interface CompoundType {\n\ttype: 'compound'\n\tvalue: { [label: string]: PrimitiveType }\n}\n\nfunction hasChanges<T>(target: T, properties: Partial<T>): boolean {\n\tconst keys = Object.keys(properties) as (keyof T)[]\n\treturn keys.length > 0 && keys.some((k) => target[k] !== properties[k])\n}\n\nexport type Position = 'top' | 'left' | 'right' | 'bottom' | 'float' | 'add' | 'remove'\n\nexport type Labels = Partial<Record<Position, string>>\n\nexport interface SortOptions {\n\tsort: 'asc' | 'desc' | 'natural'\n\tpromotions?: string\n}\n\nexport const pteq = (a: PrimitiveType | undefined, b: PrimitiveType | undefined): boolean => {\n\tif (a === b) {\n\t\treturn true\n\t}\n\tif (a === undefined || b === undefined) {\n\t\treturn false\n\t}\n\tif (a?.type !== b?.type) {\n\t\treturn false\n\t}\n\tif (a.value === b.value && (a.type !== 'measure' || b.type !== 'measure' || a.unit === b.unit)) {\n\t\treturn true\n\t}\n\tif (a.type === 'compound' && b.type === 'compound') {\n\t\treturn Object.keys(a.value).every((k) => pteq(a.value[k], b.value[k]))\n\t}\n\treturn false\n}\n\nexport type IcureTextFieldSchema = DocumentSchema | TokensSchema | ItemsListSchema | StyledSchema | InlineSchema | DateSchema | TimeSchema | DateTimeSchema | DecimalSchema | MeasureSchema\n\ntype FieldType =\n\t| 'text-field'\n\t| 'measure-field'\n\t| 'number-field'\n\t| 'token-field'\n\t| 'items-list-field'\n\t| 'date-picker'\n\t| 'time-picker'\n\t| 'date-time-picker'\n\t| 'multiple-choice'\n\t| 'dropdown-field'\n\t| 'radio-button'\n\t| 'checkbox'\n\t| 'label'\n\t| 'action'\n\nexport interface Validator {\n\tvalidation: string\n\tmessage: string\n}\n\nexport abstract class Field {\n\tclazz = 'field' as const\n\tfield: string\n\ttype: FieldType\n\tshortLabel?: string\n\tspan?: number\n\trowSpan?: number\n\tgrows: boolean\n\tschema?: IcureTextFieldSchema\n\ttags?: string[]\n\tcodifications?: string[]\n\treadonly?: boolean\n\toptions?: { [_key: string]: unknown }\n\tlabels?: Labels\n\tvalue?: string\n\tunit?: string\n\tmultiline?: boolean\n\tcomputedProperties?: { [_key: string]: string }\n\tvalidators?: Validator[]\n\tnow?: boolean\n\ttranslate?: boolean\n\tsortOptions?: SortOptions\n\twidth?: number\n\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\thasOther?: boolean\n\tevent?: string\n\tpayload?: unknown\n\n\tlabel(): string {\n\t\treturn this.field\n\t}\n\n\tprotected constructor(\n\t\ttype: FieldType,\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t\tevent,\n\t\t\tpayload,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t\thasOther?: boolean\n\t\t\tevent?: string\n\t\t\tpayload?: unknown\n\t\t},\n\t) {\n\t\tthis.field = label\n\t\tthis.type = type\n\t\tthis.shortLabel = shortLabel\n\t\tthis.grows = grows === undefined ? true : grows\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.schema = schema\n\t\tthis.tags = tags\n\t\tthis.codifications = codifications\n\t\tthis.readonly = readonly || false\n\t\tthis.options = options\n\t\tthis.labels = labels\n\t\tthis.value = value\n\t\tthis.unit = unit\n\t\tthis.multiline = multiline || false\n\t\tthis.computedProperties = computedProperties\n\t\tthis.validators = validators\n\t\tthis.now = now\n\t\tthis.translate = translate ?? true\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.hasOther = hasOther\n\t\tthis.event = event\n\t\tthis.payload = payload\n\t}\n\n\tabstract copyIfNeeded(properties: Partial<Field>): Field\n\n\tstatic parse(json: Field): Field {\n\t\treturn (\n\t\t\t(\n\t\t\t\t{\n\t\t\t\t\t'text-field': () => new TextField(json.field, { ...json }),\n\t\t\t\t\t'measure-field': () => new MeasureField(json.field, { ...json }),\n\t\t\t\t\t'token-field': () => new TokenField(json.field, { ...json }),\n\t\t\t\t\t'items-list-field': () => new ItemsListField(json.field, { ...json }),\n\t\t\t\t\t'number-field': () => new NumberField(json.field, { ...json }),\n\t\t\t\t\t'date-picker': () => new DatePicker(json.field, { ...json }),\n\t\t\t\t\t'time-picker': () => new TimePicker(json.field, { ...json }),\n\t\t\t\t\t'date-time-picker': () => new DateTimePicker(json.field, { ...json }),\n\t\t\t\t\tdropdown: () => new DropdownField(json.field, { ...json }),\n\t\t\t\t\t'radio-button': () => new RadioButton(json.field, { ...json }),\n\t\t\t\t\tcheckbox: () => new CheckBox(json.field, { ...json }),\n\t\t\t\t\tlabel: () => new Label(json.field, { ...json }),\n\t\t\t\t\taction: () => new Button(json.field, { ...json }),\n\t\t\t\t} as { [key: string]: () => Field }\n\t\t\t)[json.type as string]?.() ?? new TextField(json.field, { ...json })\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tgrows: boolean | undefined\n\t\tschema: string | undefined\n\t\tspan: number | undefined\n\t\tcodifications: string[] | undefined\n\t\ttype:\n\t\t\t| 'text-field'\n\t\t\t| 'measure-field'\n\t\t\t| 'number-field'\n\t\t\t| 'token-field'\n\t\t\t| 'items-list-field'\n\t\t\t| 'date-picker'\n\t\t\t| 'time-picker'\n\t\t\t| 'date-time-picker'\n\t\t\t| 'multiple-choice'\n\t\t\t| 'dropdown-field'\n\t\t\t| 'radio-button'\n\t\t\t| 'checkbox'\n\t\t\t| 'label'\n\t\t\t| 'action'\n\t\ttranslate: boolean | undefined\n\t\ttags: string[] | undefined\n\t\tlabels: Labels | undefined\n\t\tunit: string | undefined\n\t\tfield: string\n\t\tstyleOptions: { width: number; direction: string; span: number; rows: number; alignItems: string } | undefined\n\t\tsortOptions: SortOptions | undefined\n\t\tmultiline: boolean | undefined\n\t\tnow: boolean | undefined\n\t\toptions: { [_key: string]: unknown } | undefined\n\t\twidth: number | undefined\n\t\tshortLabel: string | undefined\n\t\tcomputedProperties: { [key: string]: string } | undefined\n\t\tvalue: string | undefined\n\t} {\n\t\treturn {\n\t\t\tfield: this.field,\n\t\t\ttype: this.type,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tgrows: this.grows,\n\t\t\tspan: this.span,\n\t\t\tschema: this.schema?.toString(),\n\t\t\ttags: this.tags,\n\t\t\tcodifications: this.codifications,\n\t\t\toptions: this.options,\n\t\t\tlabels: this.labels,\n\t\t\tvalue: this.value,\n\t\t\tunit: this.unit,\n\t\t\tmultiline: this.multiline,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tnow: this.now,\n\t\t\ttranslate: this.translate,\n\t\t\tsortOptions: this.sortOptions,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\n\nexport class TextField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tschema?: IcureTextFieldSchema\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tmultiline?: boolean\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('text-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tschema: schema || 'styled-text-with-codes',\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tmultiline: multiline,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\n\toverride copyIfNeeded(properties: Partial<TextField>): TextField {\n\t\treturn hasChanges(this, properties) ? new TextField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class MeasureField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('measure-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<MeasureField>): MeasureField {\n\t\treturn hasChanges(this, properties) ? new MeasureField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class NumberField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('number-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<NumberField>): NumberField {\n\t\treturn hasChanges(this, properties) ? new NumberField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TokenField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('token-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TokenField>): TokenField {\n\t\treturn hasChanges(this, properties) ? new TokenField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class ItemsListField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('items-list-field', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<ItemsListField>): ItemsListField {\n\t\treturn hasChanges(this, properties) ? new ItemsListField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DatePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DatePicker>): DatePicker {\n\t\treturn hasChanges(this, properties) ? new DatePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class TimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<TimePicker>): TimePicker {\n\t\treturn hasChanges(this, properties) ? new TimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DateTimePicker extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tunit?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\tnow?: boolean\n\t\t\ttranslate?: boolean\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('date-time-picker', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tlabels,\n\t\t\tvalue,\n\t\t\tunit,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\tnow,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t}\n\toverride copyIfNeeded(properties: Partial<DateTimePicker>): DateTimePicker {\n\t\treturn hasChanges(this, properties) ? new DateTimePicker(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class DropdownField extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\toptions: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tlabels?: Labels\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('dropdown-field', label, {\n\t\t\tshortLabel: options.shortLabel,\n\t\t\tgrows: options.grows,\n\t\t\tspan: options.span,\n\t\t\ttags: options.tags,\n\t\t\tcodifications: options.codifications,\n\t\t\toptions: options.options,\n\t\t\tlabels: options.labels,\n\t\t\tvalidators: options.validators,\n\t\t\tvalue: options.value,\n\t\t\tcomputedProperties: options.computedProperties,\n\t\t\ttranslate: options.translate,\n\t\t\twidth: options.width,\n\t\t\tstyleOptions: options.styleOptions,\n\t\t})\n\t\tthis.sortOptions = options.sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<DropdownField>): DropdownField {\n\t\treturn hasChanges(this, properties) ? new DropdownField(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class RadioButton extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\thasOther?: boolean\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('radio-button', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\thasOther,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<RadioButton>): RadioButton {\n\t\treturn hasChanges(this, properties) ? new RadioButton(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class CheckBox extends Field {\n\tconstructor(\n\t\tlabel: string,\n\t\t{\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\tsortOptions,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tshortLabel?: string\n\t\t\tgrows?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\ttags?: string[]\n\t\t\tcodifications?: string[]\n\t\t\treadonly?: boolean\n\t\t\toptions?: { [_key: string]: unknown }\n\t\t\tvalue?: string\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\tvalidators?: Validator[]\n\t\t\ttranslate?: boolean\n\t\t\tsortOptions?: SortOptions\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { width: number; direction: string; span: number; rows: number; alignItems: string }\n\t\t},\n\t) {\n\t\tsuper('checkbox', label, {\n\t\t\tshortLabel,\n\t\t\tgrows,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\ttags,\n\t\t\tcodifications,\n\t\t\treadonly,\n\t\t\toptions,\n\t\t\tvalue,\n\t\t\tcomputedProperties,\n\t\t\tvalidators,\n\t\t\ttranslate,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t})\n\t\tthis.sortOptions = sortOptions ?? undefined\n\t}\n\toverride copyIfNeeded(properties: Partial<CheckBox>): CheckBox {\n\t\treturn hasChanges(this, properties) ? new CheckBox(this.field, { ...this, ...properties }) : this\n\t}\n}\nexport class Label extends Field {\n\tconstructor(label: string, { shortLabel, grows, span }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number }) {\n\t\tsuper('label', label, { shortLabel, grows, span })\n\t}\n\toverride copyIfNeeded(properties: Partial<Label>): Label {\n\t\treturn hasChanges(this, properties) ? new Label(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Button extends Field {\n\tconstructor(label: string, { shortLabel, grows, span, event, payload }: { shortLabel?: string; grows?: boolean; span?: number; rowSpan?: number; event?: string; payload?: unknown }) {\n\t\tsuper('action', label, { shortLabel, grows, span, event, payload })\n\t}\n\toverride copyIfNeeded(properties: Partial<Button>): Button {\n\t\treturn hasChanges(this, properties) ? new Button(this.field, { ...this, ...properties }) : this\n\t}\n}\n\nexport class Group {\n\tclazz = 'group' as const\n\tgroup: string\n\tborderless: boolean\n\ttranslate: boolean\n\tfields?: Array<Field | Group | Subform>\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\n\tconstructor(\n\t\ttitle: string,\n\t\tfields: Array<Field | Group | Subform>,\n\t\t{\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tborderless,\n\t\t\ttranslate,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t}: {\n\t\t\tborderless?: boolean\n\t\t\ttranslate?: boolean\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t},\n\t) {\n\t\tthis.group = title\n\t\tthis.fields = fields\n\t\tthis.borderless = borderless ?? false\n\t\tthis.translate = translate ?? true\n\t\tthis.fields = fields\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t}\n\n\tcopyIfNeeded(properties: Partial<Group>): Group {\n\t\treturn hasChanges(this, properties) ? new Group(this.group, this.fields ?? [], { ...this, ...properties }) : this\n\t}\n\n\tstatic parse({\n\t\tborderless,\n\t\tspan,\n\t\tcomputedProperties,\n\t\tfields,\n\t\tgroup,\n\t\ttranslate,\n\t\twidth,\n\t}: {\n\t\tgroup: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tborderless?: boolean\n\t\ttranslate?: boolean\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t}): Group {\n\t\treturn new Group(\n\t\t\tgroup,\n\t\t\t(fields || []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\t{\n\t\t\t\tspan: span,\n\t\t\t\tborderless: borderless,\n\t\t\t\ttranslate: translate,\n\t\t\t\tcomputedProperties: computedProperties,\n\t\t\t\twidth: width,\n\t\t\t},\n\t\t)\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tgroup: this.group,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\tfields: this.fields?.map((f: Field | Group) => f.toJson()),\n\t\t\tborderless: this.borderless,\n\t\t\ttranslatable: this.translate,\n\t\t\tspan: this.span,\n\t\t\twidth: this.width,\n\t\t}\n\t}\n}\n\nexport class Subform {\n\tclazz = 'subform' as const\n\tid: string\n\tshortLabel?: string\n\trefs?: string[]\n\tforms: { [key: string]: Form }\n\tspan?: number\n\trowSpan?: number\n\tcomputedProperties?: { [_key: string]: string }\n\twidth?: number\n\tstyleOptions?: { [_key: string]: unknown }\n\tlabels: Labels\n\n\tconstructor(\n\t\ttitle: string,\n\t\tforms: { [key: string]: Form },\n\t\t{\n\t\t\tid,\n\t\t\tshortLabel,\n\t\t\tspan,\n\t\t\trowSpan,\n\t\t\tcomputedProperties,\n\t\t\twidth,\n\t\t\tstyleOptions,\n\t\t\trefs,\n\t\t\tlabels,\n\t\t}: {\n\t\t\tid?: string\n\t\t\tshortLabel?: string\n\t\t\tspan?: number\n\t\t\trowSpan?: number\n\t\t\tcomputedProperties?: { [_key: string]: string }\n\t\t\twidth?: number\n\t\t\tstyleOptions?: { [_key: string]: unknown }\n\t\t\trefs?: string[]\n\t\t\tlabels?: Labels\n\t\t},\n\t) {\n\t\tthis.id = id || title\n\t\tthis.shortLabel = shortLabel\n\t\tthis.forms = forms\n\t\tthis.span = span\n\t\tthis.rowSpan = rowSpan\n\t\tthis.computedProperties = computedProperties\n\t\tthis.width = width\n\t\tthis.styleOptions = styleOptions\n\t\tthis.refs = refs\n\t\tthis.labels = labels ?? {}\n\t}\n\n\tcopyIfNeeded(properties: Partial<Subform>): Subform {\n\t\treturn hasChanges(this, properties) ? new Subform(this.id, this.forms, { ...this, ...properties }) : this\n\t}\n\n\tstatic parse(json: {\n\t\tsubform: string\n\t\tshortLabel?: string\n\t\tforms?: { [key: string]: Form }\n\t\trefs?: string[]\n\t\tspan?: number\n\t\trowSpan?: number\n\t\tcomputedProperties?: { [_key: string]: string }\n\t\twidth?: number\n\t\tstyleOptions?: { [_key: string]: unknown }\n\t\tlabels?: Labels\n\t\tid: string\n\t}): Subform {\n\t\treturn new Subform(json.subform, json.forms ?? {}, {\n\t\t\tid: json.id,\n\t\t\tshortLabel: json.shortLabel,\n\t\t\tspan: json.span,\n\t\t\tcomputedProperties: json.computedProperties,\n\t\t\twidth: json.width,\n\t\t\tstyleOptions: json.styleOptions,\n\t\t\trefs: json.refs,\n\t\t\tlabels: json.labels,\n\t\t})\n\t}\n\n\ttoJson(): any {\n\t\treturn {\n\t\t\tsubform: this.id,\n\t\t\tshortLabel: this.shortLabel,\n\t\t\tforms: Object.fromEntries(Object.entries(this.forms).map(([k, f]) => [k, f.toJson()])),\n\t\t\tspan: this.span,\n\t\t\tcomputedProperties: this.computedProperties,\n\t\t\twidth: this.width,\n\t\t\tstyleOptions: this.styleOptions,\n\t\t}\n\t}\n}\nexport class Section {\n\tsection: string\n\tfields: Array<Field | Group | Subform>\n\tdescription?: string\n\tkeywords?: string[]\n\n\tconstructor(title: string, fields: Array<Field | Group | Subform>, description?: string, keywords?: string[]) {\n\t\tthis.section = title\n\t\tthis.fields = fields\n\t\tthis.description = description\n\t\tthis.keywords = keywords\n\t}\n\n\tstatic parse(json: {\n\t\tsection: string\n\t\tfields?: Array<Field | Group | Subform>\n\t\tgroups?: Array<Field | Group | Subform>\n\t\tsections?: Array<Field | Group | Subform>\n\t\tdescription?: string\n\t\tkeywords?: string[]\n\t}): Section {\n\t\treturn new Section(\n\t\t\tjson.section,\n\t\t\t(json.fields ?? json.groups ?? json.sections ?? []).map((s: Field | Group | Subform) =>\n\t\t\t\t(s as Group)['group']\n\t\t\t\t\t? Group.parse(s as Group)\n\t\t\t\t\t: (s as unknown as { subform: string })['subform'] || (s as Subform)['forms'] || (s as Subform)['refs']\n\t\t\t\t\t? Subform.parse(s as Subform & { subform: string })\n\t\t\t\t\t: Field.parse(s as Field),\n\t\t\t),\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t)\n\t}\n\n\ttoJson(): {\n\t\tsection: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tfields: (Field | Group | Subform)[]\n\t} {\n\t\treturn {\n\t\t\tsection: this.section,\n\t\t\tfields: this.fields.map((f: Field | Group | Subform) => (f && f.toJson ? f.toJson() : JSON.stringify(f))),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n\nexport class Codification {\n\ttype: string\n\tcodes: Code[]\n\n\tconstructor(type: string, codes: Code[]) {\n\t\tthis.type = type\n\t\tthis.codes = codes\n\t}\n\n\tstatic parse(json: { type: string; codes: Code[] }): Codification {\n\t\treturn new Codification(\n\t\t\tjson.type,\n\t\t\tjson.codes.map((code) => {\n\t\t\t\tconst parts = code.id.split('|')\n\t\t\t\tif (parts.length === 1) {\n\t\t\t\t\treturn { ...code, id: `${json.type}|${code.id}|1` }\n\t\t\t\t} else if (parts.length === 2) {\n\t\t\t\t\treturn { ...code, id: `${code.id}|1` }\n\t\t\t\t} else {\n\t\t\t\t\treturn code\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { type: string; codes: Code[] } {\n\t\treturn {\n\t\t\ttype: this.type,\n\t\t\tcodes: this.codes,\n\t\t}\n\t}\n}\n\nexport class TranslationTable {\n\tlanguage: string\n\ttranslations: { [key: string]: string }\n\n\tconstructor(language: string, translations: { [key: string]: string }) {\n\t\tthis.language = language\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(json: { language: string; translations: { [key: string]: string } }): TranslationTable {\n\t\treturn new TranslationTable(json.language, json.translations)\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): { language: string; translations: { [key: string]: string } } {\n\t\treturn {\n\t\t\tlanguage: this.language,\n\t\t\ttranslations: this.translations,\n\t\t}\n\t}\n}\n\nexport class Form {\n\tform: string\n\tsections: Section[]\n\tid?: string\n\tdescription?: string\n\tkeywords?: string[]\n\tcodifications?: Codification[]\n\ttranslations?: TranslationTable[]\n\n\tconstructor(title: string, sections: Section[], id?: string, description?: string, keywords?: string[], codifications?: Codification[], translations?: TranslationTable[]) {\n\t\tthis.form = title\n\t\tthis.description = description\n\t\tthis.id = id\n\t\tthis.keywords = keywords\n\t\tthis.sections = sections\n\t\tthis.codifications = codifications\n\t\tthis.translations = translations\n\t}\n\n\tstatic parse(\n\t\tjson: {\n\t\t\tform: string\n\t\t\tsections: Section[]\n\t\t\tid?: string\n\t\t\tdescription?: string\n\t\t\tkeywords?: string[]\n\t\t\tcodifications?: Codification[]\n\t\t\ttranslations?: TranslationTable[]\n\t\t\tsubForms?: { [key: string]: Form }\n\t\t},\n\t\tlibrary: Form[] = [],\n\t\tsubforms: { [key: string]: Form } = {},\n\t): Form {\n\t\tconst parsed = new Form(\n\t\t\tjson.form,\n\t\t\t(json.sections || []).map((s: Section) => Section.parse(s)),\n\t\t\tjson.id,\n\t\t\tjson.description,\n\t\t\tjson.keywords,\n\t\t\tjson.codifications?.map((c: Codification) => Codification.parse(c)),\n\t\t\tjson.translations?.map((t: TranslationTable) => TranslationTable.parse(t)),\n\t\t)\n\n\t\tconst allSubforms = { ...subforms, ...(json.subForms || {}) }\n\n\t\tconst resolveAndCheckConsistencyInSubForm = (f: Subform, seenSubformId: string[]) => {\n\t\t\tif (seenSubformId.includes(f.id)) {\n\t\t\t\tthrow new Error(`Subform ${f.id} is already declared in this form`)\n\t\t\t}\n\t\t\tseenSubformId.push(f.id)\n\t\t\tObject.entries((f as Subform).forms ?? {}).forEach(([k, subForm]) => {\n\t\t\t\tf.forms[k] = Form.parse({ ...subForm, id: k }, library, allSubforms)\n\t\t\t})\n\t\t\t;(f as Subform).refs?.forEach((r) => {\n\t\t\t\tconst subForm = allSubforms?.[r]\n\t\t\t\tconst form = subForm ? Form.parse({ ...subForm, id: r }, library, allSubforms) : library.find((f) => f.id === r)\n\t\t\t\tif (!form) {\n\t\t\t\t\tthrow new Error(`Subform ${r} not found in top subForms declarations or the provided library of forms`)\n\t\t\t\t}\n\t\t\t\tf.forms[r] = form\n\t\t\t})\n\t\t\tObject.entries(f.forms).forEach(([, f]) => resolveAndCheckConsistencyInForm(f, seenSubformId))\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInForm = (f: Form, seenSubformId: string[] = []) => {\n\t\t\tf.sections.forEach((s: Section) => {\n\t\t\t\ts.fields.forEach((f: Field | Group | Subform) => {\n\t\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\treturn f\n\t\t}\n\n\t\tconst resolveAndCheckConsistencyInGroup = (g: Group, seenSubformId: string[]) => {\n\t\t\tg.fields?.forEach((f: Field | Group | Subform) => {\n\t\t\t\tif (f.clazz === 'group') {\n\t\t\t\t\tresolveAndCheckConsistencyInGroup(f, seenSubformId)\n\t\t\t\t} else if (f.clazz === 'subform') {\n\t\t\t\t\tresolveAndCheckConsistencyInSubForm(f, seenSubformId)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn g\n\t\t}\n\n\t\treturn resolveAndCheckConsistencyInForm(parsed, [])\n\t}\n\n\t// noinspection JSUnusedGlobalSymbols\n\ttoJson(): {\n\t\tform: string\n\t\tkeywords?: string[]\n\t\tdescription?: string\n\t\tsections: { section: string; keywords?: string[]; description?: string; fields: any[] }[]\n\t} {\n\t\treturn {\n\t\t\tform: this.form,\n\t\t\tsections: this.sections.map((s: Section) => s.toJson()),\n\t\t\tdescription: this.description,\n\t\t\tkeywords: this.keywords,\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { FormLayout } from '@icure/api';
2
+ import { Form } from '../components/model';
3
+ export declare function convertLegacy(form: FormLayout, formsLibrary: FormLayout[]): Form;