@overmap-ai/forms 1.1.4 → 1.1.5-field-schema-improvements.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/form/builder/Root.d.ts +2 -2
  2. package/dist/form/builder/components/FieldDropdownMenu.d.ts +1 -0
  3. package/dist/form/builder/list/sectionSerialization.d.ts +3 -3
  4. package/dist/form/builder/typings.d.ts +3 -3
  5. package/dist/form/conditions/BaseCondition/BaseCondition.d.ts +9 -14
  6. package/dist/form/conditions/BaseCondition/typings.d.ts +4 -6
  7. package/dist/form/conditions/BooleanFieldCondition/BooleanFieldCondition.d.ts +5 -6
  8. package/dist/form/conditions/BooleanFieldCondition/BooleanFieldCondition.test.d.ts +1 -0
  9. package/dist/form/conditions/BooleanFieldCondition/typings.d.ts +5 -4
  10. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldCondition.d.ts +5 -6
  11. package/dist/form/conditions/CheckboxListFieldCondition/CheckboxListFieldCondition.test.d.ts +1 -0
  12. package/dist/form/conditions/CheckboxListFieldCondition/typings.d.ts +5 -4
  13. package/dist/form/conditions/DateFieldCondition/DateFieldCondition.d.ts +12 -13
  14. package/dist/form/conditions/DateFieldCondition/DateFieldCondition.test.d.ts +1 -0
  15. package/dist/form/conditions/DateFieldCondition/typings.d.ts +6 -4
  16. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldCondition.d.ts +5 -6
  17. package/dist/form/conditions/MultiSelectFieldCondition/MultiSelectFieldCondition.test.d.ts +1 -0
  18. package/dist/form/conditions/MultiSelectFieldCondition/typings.d.ts +5 -4
  19. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldCondition.d.ts +5 -6
  20. package/dist/form/conditions/MultiStringFieldCondition/MultiStringFieldCondition.test.d.ts +1 -0
  21. package/dist/form/conditions/MultiStringFieldCondition/typings.d.ts +5 -4
  22. package/dist/form/conditions/NumberFieldCondition/NumberFieldCondition.d.ts +5 -6
  23. package/dist/form/conditions/NumberFieldCondition/NumberFieldCondition.test.d.ts +1 -0
  24. package/dist/form/conditions/NumberFieldCondition/typings.d.ts +5 -4
  25. package/dist/form/conditions/OTPFieldCondition/OTPFieldCondition.d.ts +5 -6
  26. package/dist/form/conditions/OTPFieldCondition/OTPFieldCondition.test.d.ts +1 -0
  27. package/dist/form/conditions/OTPFieldCondition/typings.d.ts +5 -4
  28. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldCondition.d.ts +6 -7
  29. package/dist/form/conditions/PassFailFieldCondition/PassFailFieldCondition.test.d.ts +1 -0
  30. package/dist/form/conditions/PassFailFieldCondition/typings.d.ts +5 -4
  31. package/dist/form/conditions/RadioFieldCondition/RadioFieldCondition.d.ts +5 -6
  32. package/dist/form/conditions/RadioFieldCondition/RadioFieldCondition.test.d.ts +1 -0
  33. package/dist/form/conditions/RadioFieldCondition/typings.d.ts +5 -4
  34. package/dist/form/conditions/RatingFieldCondition/RatingFieldCondition.d.ts +5 -6
  35. package/dist/form/conditions/RatingFieldCondition/RatingFieldCondition.test.d.ts +1 -0
  36. package/dist/form/conditions/RatingFieldCondition/typings.d.ts +5 -4
  37. package/dist/form/conditions/ScanFieldCondition/ScanFieldCondition.d.ts +5 -6
  38. package/dist/form/conditions/ScanFieldCondition/ScanFieldCondition.test.d.ts +1 -0
  39. package/dist/form/conditions/ScanFieldCondition/typings.d.ts +5 -4
  40. package/dist/form/conditions/SelectFieldCondition/SelectFieldCondition.d.ts +5 -6
  41. package/dist/form/conditions/SelectFieldCondition/SelectFieldCondition.test.d.ts +1 -0
  42. package/dist/form/conditions/SelectFieldCondition/typings.d.ts +5 -4
  43. package/dist/form/conditions/StringFieldCondition/StringFieldCondition.d.ts +5 -6
  44. package/dist/form/conditions/StringFieldCondition/StringFieldCondition.test.d.ts +1 -0
  45. package/dist/form/conditions/StringFieldCondition/typings.d.ts +5 -4
  46. package/dist/form/conditions/TextFieldCondition/TextFieldCondition.d.ts +5 -7
  47. package/dist/form/conditions/TextFieldCondition/TextFieldCondition.test.d.ts +1 -0
  48. package/dist/form/conditions/TextFieldCondition/typings.d.ts +6 -4
  49. package/dist/form/conditions/TimeFieldCondition/TimeFieldCondition.d.ts +6 -7
  50. package/dist/form/conditions/TimeFieldCondition/typings.d.ts +5 -4
  51. package/dist/form/conditions/URLFieldCondition/URLFieldCondition.d.ts +5 -6
  52. package/dist/form/conditions/URLFieldCondition/URLFieldCondition.test.d.ts +1 -0
  53. package/dist/form/conditions/URLFieldCondition/typings.d.ts +5 -4
  54. package/dist/form/conditions/UploadFieldCondition/UploadFieldCondition.d.ts +5 -6
  55. package/dist/form/conditions/UploadFieldCondition/UploadFieldCondition.test.d.ts +1 -0
  56. package/dist/form/conditions/UploadFieldCondition/index.d.ts +1 -1
  57. package/dist/form/conditions/UploadFieldCondition/typings.d.ts +5 -4
  58. package/dist/form/conditions/components/SelectFieldOptionMultiSelectGroup.d.ts +1 -1
  59. package/dist/form/conditions/components/SelectFieldOptionSelectGroup.d.ts +1 -1
  60. package/dist/form/conditions/components/TimeInputPopover.d.ts +1 -1
  61. package/dist/form/conditions/typings.d.ts +24 -25
  62. package/dist/form/conditions/utils.d.ts +6 -5
  63. package/dist/form/fields/BaseField/BaseField.d.ts +13 -9
  64. package/dist/form/fields/BaseField/typings.d.ts +9 -9
  65. package/dist/form/fields/BaseFormElement/BaseFormElement.d.ts +11 -7
  66. package/dist/form/fields/BaseFormElement/typings.d.ts +5 -5
  67. package/dist/form/fields/BaseOptionsField/BaseOptionsField.d.ts +7 -6
  68. package/dist/form/fields/BaseOptionsField/index.d.ts +1 -0
  69. package/dist/form/fields/BaseOptionsField/typings.d.ts +6 -7
  70. package/dist/form/fields/BaseOptionsField/utils.d.ts +3 -0
  71. package/dist/form/fields/BaseStringField/BaseStringField.d.ts +8 -9
  72. package/dist/form/fields/BaseStringField/typings.d.ts +9 -4
  73. package/dist/form/fields/BooleanField/BooleanField.d.ts +10 -6
  74. package/dist/form/fields/BooleanField/typings.d.ts +3 -2
  75. package/dist/form/fields/CheckboxListField/CheckboxListField.d.ts +10 -7
  76. package/dist/form/fields/CheckboxListField/index.d.ts +0 -1
  77. package/dist/form/fields/CheckboxListField/typings.d.ts +4 -2
  78. package/dist/form/fields/DateField/DateField.d.ts +10 -7
  79. package/dist/form/fields/DateField/typings.d.ts +4 -2
  80. package/dist/form/fields/FieldSection/FieldSection.d.ts +19 -20
  81. package/dist/form/fields/FieldSection/FieldSection.test.d.ts +1 -0
  82. package/dist/form/fields/FieldSection/index.d.ts +0 -1
  83. package/dist/form/fields/FieldSection/typings.d.ts +15 -9
  84. package/dist/form/fields/MultiSelectField/MultiSelectField.d.ts +10 -8
  85. package/dist/form/fields/MultiSelectField/index.d.ts +0 -1
  86. package/dist/form/fields/MultiSelectField/typings.d.ts +5 -2
  87. package/dist/form/fields/MultiStringField/MultiStringField.d.ts +13 -13
  88. package/dist/form/fields/MultiStringField/index.d.ts +0 -1
  89. package/dist/form/fields/MultiStringField/typings.d.ts +9 -4
  90. package/dist/form/fields/NumberField/NumberField.d.ts +13 -14
  91. package/dist/form/fields/NumberField/index.d.ts +0 -1
  92. package/dist/form/fields/NumberField/typings.d.ts +11 -5
  93. package/dist/form/fields/OTPField/OTPField.d.ts +12 -16
  94. package/dist/form/fields/OTPField/index.d.ts +0 -1
  95. package/dist/form/fields/OTPField/typings.d.ts +5 -6
  96. package/dist/form/fields/PassFailField/PassFailField.d.ts +17 -15
  97. package/dist/form/fields/PassFailField/constants.d.ts +1 -1
  98. package/dist/form/fields/PassFailField/index.d.ts +0 -1
  99. package/dist/form/fields/PassFailField/typings.d.ts +5 -7
  100. package/dist/form/fields/PassFailField/utils.d.ts +6 -5
  101. package/dist/form/fields/RadioField/RadioField.d.ts +10 -7
  102. package/dist/form/fields/RadioField/index.d.ts +0 -1
  103. package/dist/form/fields/RadioField/typings.d.ts +4 -2
  104. package/dist/form/fields/RatingField/RatingField.d.ts +10 -8
  105. package/dist/form/fields/RatingField/index.d.ts +0 -1
  106. package/dist/form/fields/RatingField/typings.d.ts +5 -2
  107. package/dist/form/fields/ScanField/ScanField.d.ts +10 -7
  108. package/dist/form/fields/ScanField/index.d.ts +0 -1
  109. package/dist/form/fields/ScanField/typings.d.ts +4 -2
  110. package/dist/form/fields/SelectField/SelectField.d.ts +10 -8
  111. package/dist/form/fields/SelectField/index.d.ts +0 -1
  112. package/dist/form/fields/SelectField/typings.d.ts +5 -2
  113. package/dist/form/fields/StringField/StringField.d.ts +10 -7
  114. package/dist/form/fields/StringField/index.d.ts +0 -2
  115. package/dist/form/fields/StringField/typings.d.ts +4 -2
  116. package/dist/form/fields/TextField/TextField.d.ts +10 -6
  117. package/dist/form/fields/TextField/index.d.ts +0 -2
  118. package/dist/form/fields/TextField/typings.d.ts +3 -2
  119. package/dist/form/fields/TimeField/TimeField.d.ts +9 -5
  120. package/dist/form/fields/TimeField/TimeFieldControl.d.ts +1 -1
  121. package/dist/form/fields/TimeField/index.d.ts +1 -1
  122. package/dist/form/fields/TimeField/typings.d.ts +3 -10
  123. package/dist/form/fields/TimeField/utils.d.ts +1 -1
  124. package/dist/form/fields/URLField/URLField.d.ts +11 -9
  125. package/dist/form/fields/URLField/index.d.ts +0 -1
  126. package/dist/form/fields/URLField/typings.d.ts +5 -2
  127. package/dist/form/fields/UploadField/UploadField.d.ts +12 -12
  128. package/dist/form/fields/UploadField/index.d.ts +1 -2
  129. package/dist/form/fields/UploadField/typings.d.ts +9 -9
  130. package/dist/form/fields/components/InputWithLabel.d.ts +4 -4
  131. package/dist/form/fields/constants.d.ts +1 -4
  132. package/dist/form/fields/hooks.d.ts +1 -1
  133. package/dist/form/fields/typings.d.ts +27 -22
  134. package/dist/form/fields/utils.d.ts +23 -12
  135. package/dist/form/modifiers/passFailStatus.d.ts +1 -1
  136. package/dist/form/modifiers/time.d.ts +1 -1
  137. package/dist/form/schema/FieldSchema.d.ts +20 -14
  138. package/dist/form/schema/index.d.ts +1 -0
  139. package/dist/form/schema/typings.d.ts +3 -0
  140. package/dist/form/typings.d.ts +5 -6
  141. package/dist/form/utils.d.ts +3 -5
  142. package/dist/forms.js +3625 -3298
  143. package/dist/forms.umd.cjs +1 -1
  144. package/package.json +7 -5
  145. package/dist/form/fields/StringField/constants.d.ts +0 -1
  146. package/dist/form/fields/TextField/constants.d.ts +0 -1
@@ -1,18 +1,20 @@
1
+ import { JSONSelectField } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
- import { BaseOptionsField, BaseOptionsFieldOptions } from '../BaseOptionsField';
3
- import { SerializedSelectField } from './typings';
4
- export type SelectFieldOptions = BaseOptionsFieldOptions & {
5
- placeholder?: string;
6
- };
3
+ import { BaseOptionsField } from '../BaseOptionsField';
4
+ import { SelectFieldConfig, SelectFieldOptions } from './typings';
7
5
  export declare class SelectField extends BaseOptionsField<"select", string | null, string | null, SelectField> {
8
6
  readonly type = "select";
9
7
  placeholder?: string;
10
8
  constructor(options: SelectFieldOptions);
11
- serialize(): SerializedSelectField;
9
+ serialize(): JSONSelectField;
10
+ config(): SelectFieldConfig;
12
11
  getOptions(): SelectFieldOptions;
13
- duplicate(identifier: string): SelectField;
12
+ duplicate(id: string): SelectField;
14
13
  setOptions(options: Partial<SelectFieldOptions>): void;
15
- static deserialize(data: SerializedSelectField): SelectField;
14
+ static deserialize(data: JSONSelectField): SelectField;
15
+ static fromConfig(config: SelectFieldConfig): SelectField;
16
+ static deserializeConfig(data: JSONSelectField): SelectFieldConfig;
17
+ static serializeConfig(data: SelectFieldConfig): JSONSelectField;
16
18
  serializeValue(value: string | null): string | null;
17
19
  deserializeValue(value: string | null): string | null;
18
20
  render(): ReactNode;
@@ -1,3 +1,2 @@
1
1
  export * from './SelectField';
2
- export * from './SelectFieldInput';
3
2
  export type * from './typings';
@@ -1,4 +1,7 @@
1
- import { BaseSerializedOptionsField } from '../BaseOptionsField';
2
- export interface SerializedSelectField extends BaseSerializedOptionsField<"select"> {
1
+ import { BaseOptionsFieldConfig, BaseOptionsFieldOptions } from '../BaseOptionsField';
2
+ export interface SelectFieldConfig extends BaseOptionsFieldConfig<"select"> {
3
3
  placeholder?: string;
4
4
  }
5
+ export type SelectFieldOptions = BaseOptionsFieldOptions & {
6
+ placeholder?: string;
7
+ };
@@ -1,15 +1,18 @@
1
+ import { JSONStringField } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
- import { BaseStringField, BaseStringFieldOptions } from '../BaseStringField';
3
- import { SerializedStringField } from './typings';
4
- export interface StringFieldOptions extends BaseStringFieldOptions {
5
- }
3
+ import { BaseStringField } from '../BaseStringField';
4
+ import { StringFieldConfig, StringFieldOptions } from './typings';
6
5
  export declare class StringField extends BaseStringField<"string", StringField> {
7
6
  readonly type = "string";
8
7
  constructor(options: StringFieldOptions);
9
- serialize(): SerializedStringField;
8
+ serialize(): JSONStringField;
9
+ config(): StringFieldConfig;
10
10
  getOptions(): StringFieldOptions;
11
- duplicate(identifier: string): StringField;
11
+ duplicate(id: string): StringField;
12
12
  setOptions(options: Partial<StringFieldOptions>): void;
13
- static deserialize(data: SerializedStringField): StringField;
13
+ static deserialize(data: JSONStringField): StringField;
14
+ static fromConfig(config: StringFieldConfig): StringField;
15
+ static deserializeConfig(data: JSONStringField): StringFieldConfig;
16
+ static serializeConfig(data: StringFieldConfig): JSONStringField;
14
17
  render(): ReactNode;
15
18
  }
@@ -1,4 +1,2 @@
1
- export * from './constants';
2
1
  export * from './StringField';
3
- export * from './StringFieldInput';
4
2
  export type * from './typings';
@@ -1,3 +1,5 @@
1
- import { BaseSerializedStringField } from '../BaseStringField';
2
- export interface SerializedStringField extends BaseSerializedStringField<"string"> {
1
+ import { BaseStringFieldConfig, BaseStringFieldOptions } from '../BaseStringField';
2
+ export interface StringFieldConfig extends BaseStringFieldConfig<"string"> {
3
+ }
4
+ export interface StringFieldOptions extends BaseStringFieldOptions {
3
5
  }
@@ -1,14 +1,18 @@
1
+ import { JSONTextField } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
- import { BaseStringField, BaseStringFieldOptions } from '../BaseStringField';
3
- import { SerializedTextField } from './typings';
4
- export type TextFieldOptions = BaseStringFieldOptions;
3
+ import { BaseStringField } from '../BaseStringField';
4
+ import { TextFieldConfig, TextFieldOptions } from './typings';
5
5
  export declare class TextField extends BaseStringField<"text", TextField> {
6
6
  readonly type = "text";
7
7
  constructor(options: TextFieldOptions);
8
- serialize(): SerializedTextField;
8
+ serialize(): JSONTextField;
9
+ config(): TextFieldConfig;
9
10
  getOptions(): TextFieldOptions;
10
- duplicate(identifier: string): TextField;
11
+ duplicate(id: string): TextField;
11
12
  setOptions(options: Partial<TextFieldOptions>): void;
12
- static deserialize(data: SerializedTextField): TextField;
13
+ static deserialize(data: JSONTextField): TextField;
14
+ static fromConfig(config: TextFieldConfig): TextField;
15
+ static deserializeConfig(data: JSONTextField): TextFieldConfig;
16
+ static serializeConfig(data: TextFieldConfig): JSONTextField;
13
17
  render(): ReactNode;
14
18
  }
@@ -1,4 +1,2 @@
1
- export * from './constants';
2
1
  export * from './TextField';
3
- export * from './TextFieldInput';
4
2
  export type * from './typings';
@@ -1,3 +1,4 @@
1
- import { BaseSerializedStringField } from '../BaseStringField';
2
- export interface SerializedTextField extends BaseSerializedStringField<"text"> {
1
+ import { BaseStringFieldConfig, BaseStringFieldOptions } from '../BaseStringField';
2
+ export interface TextFieldConfig extends BaseStringFieldConfig<"text"> {
3
3
  }
4
+ export type TextFieldOptions = BaseStringFieldOptions;
@@ -1,13 +1,17 @@
1
+ import { JSONTimeField, Time } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
- import { BaseField, FieldOptions } from '../BaseField';
3
- import { SerializedTimeField, Time } from './typings';
4
- export type TimeFieldOptions = FieldOptions;
3
+ import { BaseField } from '../BaseField';
4
+ import { TimeFieldConfig, TimeFieldOptions } from './typings';
5
5
  export declare class TimeField extends BaseField<"time", Time | null, Time | null, TimeField> {
6
6
  readonly type = "time";
7
7
  constructor(config: TimeFieldOptions);
8
- static deserialize(data: SerializedTimeField): TimeField;
8
+ static deserialize(data: JSONTimeField): TimeField;
9
+ static fromConfig(config: TimeFieldConfig): TimeField;
10
+ static deserializeConfig(data: JSONTimeField): TimeFieldConfig;
11
+ static serializeConfig(data: TimeFieldConfig): JSONTimeField;
12
+ config(): TimeFieldConfig;
9
13
  getOptions(): TimeFieldOptions;
10
- duplicate(identifier: string): TimeField;
14
+ duplicate(id: string): TimeField;
11
15
  setOptions(options: Partial<TimeFieldOptions>): void;
12
16
  serializeValue(value: Time | null): Time | null;
13
17
  deserializeValue(value: Time | null): Time | null;
@@ -1,5 +1,5 @@
1
+ import { Time } from '@adrekic/fieldsjson';
1
2
  import { InputSize } from '@overmap-ai/blocks';
2
- import { Time } from './typings';
3
3
  export interface TimeFieldControlProps {
4
4
  value?: Time | null;
5
5
  onChange: (value: Time | null) => void;
@@ -1,6 +1,6 @@
1
1
  export * from './TimeField';
2
2
  export * from './TimeFieldControl';
3
3
  export * from './TimeFieldInput';
4
- export type * from './typings';
5
4
  export * from './utils';
6
5
  export * from './constants';
6
+ export type * from './typings';
@@ -1,11 +1,4 @@
1
- import { BaseSerializedField } from '../BaseField';
2
- export interface SerializedTimeField extends BaseSerializedField<"time"> {
3
- }
4
- export type UTCOffsetSign = "+" | "-";
5
- export type UTCOffsetTime = `${string}:${string}`;
6
- export type UTCOffset = `${UTCOffsetSign}${UTCOffsetTime}`;
7
- export type Time = `T${UTCOffsetTime}:00${UTCOffset}`;
8
- export interface TimeRange {
9
- from: Time | null;
10
- to: Time | null;
1
+ import { BaseFieldConfig, BaseFieldOptions } from '../BaseField';
2
+ export interface TimeFieldConfig extends BaseFieldConfig<"time"> {
11
3
  }
4
+ export type TimeFieldOptions = BaseFieldOptions;
@@ -1,4 +1,4 @@
1
- import { Time, TimeRange, UTCOffset } from './typings';
1
+ import { Time, TimeRange, UTCOffset } from '@adrekic/fieldsjson';
2
2
  export declare const isUTCOffset: (value: unknown) => value is UTCOffset;
3
3
  export declare const getCurrentUTCOffset: () => UTCOffset;
4
4
  export declare function getUTCOffsetMinutes(offset: UTCOffset): number;
@@ -1,18 +1,20 @@
1
+ import { JSONURLField } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
- import { BaseField, FieldOptions } from '../BaseField';
3
- import { SerializedURLField } from './typings';
4
- export interface URLFieldOptions extends FieldOptions {
5
- placeholder?: string;
6
- }
3
+ import { BaseField } from '../BaseField';
4
+ import { URLFieldConfig, URLFieldOptions } from './typings';
7
5
  export declare class URLField extends BaseField<"url", URL | null, string | null, URLField> {
8
6
  readonly type = "url";
9
- placeholder: string;
7
+ placeholder?: string;
10
8
  constructor(options: URLFieldOptions);
11
- serialize(): SerializedURLField;
9
+ serialize(): JSONURLField;
10
+ config(): URLFieldConfig;
12
11
  getOptions(): URLFieldOptions;
13
- duplicate(identifier: string): URLField;
12
+ duplicate(id: string): URLField;
14
13
  setOptions(options: Partial<URLFieldOptions>): void;
15
- static deserialize(data: SerializedURLField): URLField;
14
+ static deserialize(data: JSONURLField): URLField;
15
+ static fromConfig(config: URLFieldConfig): URLField;
16
+ static deserializeConfig(data: JSONURLField): URLFieldConfig;
17
+ static serializeConfig(data: URLFieldConfig): JSONURLField;
16
18
  serializeValue(value: URL | null): string | null;
17
19
  deserializeValue(value: string | null): URL | null;
18
20
  isSerializedValue(value: unknown): value is string | null;
@@ -1,3 +1,2 @@
1
1
  export * from './URLField';
2
- export * from './URLFieldInput';
3
2
  export type * from './typings';
@@ -1,4 +1,7 @@
1
- import { BaseSerializedField } from '../BaseField';
2
- export interface SerializedURLField extends BaseSerializedField<"url"> {
1
+ import { BaseFieldConfig, BaseFieldOptions } from '../BaseField';
2
+ export interface URLFieldConfig extends BaseFieldConfig<"url"> {
3
+ placeholder?: string;
4
+ }
5
+ export interface URLFieldOptions extends BaseFieldOptions {
3
6
  placeholder?: string;
4
7
  }
@@ -1,20 +1,16 @@
1
+ import { JSONUploadField } from '@adrekic/fieldsjson';
1
2
  import { ReactNode } from 'react';
2
3
  import { UUIDFile } from '../../UUIDFile';
3
4
  import { UUIDPromise } from '../../UUIDPromise';
4
- import { BaseField, FieldOptions, FieldValidator } from '../BaseField';
5
+ import { BaseField, FieldValidator } from '../BaseField';
5
6
  import { MultiSelectField } from '../MultiSelectField';
6
7
  import { NumberField } from '../NumberField';
7
- import { SerializedUploadField } from './typings';
8
- export interface UploadFieldOptions extends FieldOptions {
9
- extensions?: string[];
10
- maximum_size?: number | string;
11
- maximum_files?: number | string;
12
- }
8
+ import { UploadFieldConfig, UploadFieldOptions } from './typings';
13
9
  export declare class UploadField extends BaseField<"upload", (UUIDPromise<UUIDFile> | UUIDFile)[], never[], UploadField> {
14
10
  readonly type = "upload";
15
11
  extensions?: string[];
16
- maxFileSize: number | undefined;
17
- maxFiles: number;
12
+ maxSize?: number;
13
+ maxFiles?: number;
18
14
  constructor(options: UploadFieldOptions);
19
15
  static getFieldCreationSchema(parentPath?: string): ({
20
16
  field: NumberField;
@@ -24,11 +20,15 @@ export declare class UploadField extends BaseField<"upload", (UUIDPromise<UUIDFi
24
20
  showDirectly: boolean;
25
21
  })[];
26
22
  getFieldValidators(): FieldValidator<(UUIDPromise<UUIDFile> | UUIDFile)[]>[];
27
- serialize(): SerializedUploadField;
23
+ serialize(): JSONUploadField;
24
+ config(): UploadFieldConfig;
28
25
  getOptions(): UploadFieldOptions;
29
- duplicate(identifier: string): UploadField;
26
+ duplicate(id: string): UploadField;
30
27
  setOptions(options: Partial<UploadFieldOptions>): void;
31
- static deserialize(data: SerializedUploadField): UploadField;
28
+ static deserialize(data: JSONUploadField): UploadField;
29
+ static fromConfig(config: UploadFieldConfig): UploadField;
30
+ static deserializeConfig(data: JSONUploadField): UploadFieldConfig;
31
+ static serializeConfig(data: UploadFieldConfig): JSONUploadField;
32
32
  serializeValue(_value: (UUIDPromise<UUIDFile> | UUIDFile)[]): never[];
33
33
  deserializeValue(_value: never[]): (UUIDPromise<UUIDFile> | UUIDFile)[];
34
34
  render(): ReactNode;
@@ -1,3 +1,2 @@
1
- export type * from './typings';
2
1
  export * from './UploadField';
3
- export * from './UploadFieldInput';
2
+ export type * from './typings';
@@ -1,11 +1,11 @@
1
- import { BaseSerializedField } from '../BaseField';
2
- export interface SerializedUploadField extends BaseSerializedField<"upload"> {
3
- /** @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept */
1
+ import { BaseFieldConfig, BaseFieldOptions } from '../BaseField';
2
+ export interface UploadFieldConfig extends BaseFieldConfig<"upload"> {
4
3
  extensions?: string[];
5
- /** in bytes */
6
- maximum_size?: number;
7
- /** how many files the user can upload to this field
8
- * @default 1
9
- */
10
- maximum_files?: number;
4
+ maxSize?: number;
5
+ maxFiles?: number;
6
+ }
7
+ export interface UploadFieldOptions extends BaseFieldOptions {
8
+ extensions?: string[];
9
+ maxSize?: number;
10
+ maxFiles?: number;
11
11
  }
@@ -3,10 +3,10 @@ import { FieldsRendererSize } from '../../renderer';
3
3
  export interface InputWithLabelProps {
4
4
  size: FieldsRendererSize;
5
5
  inputId: string;
6
- label: string;
7
- required: boolean;
8
- description?: string | null;
9
- image: File | Promise<File> | undefined;
6
+ label?: string;
7
+ required?: boolean;
8
+ description?: string;
9
+ image?: File | Promise<File>;
10
10
  children: ReactNode;
11
11
  error: string;
12
12
  }
@@ -1,7 +1,7 @@
1
1
  import { IconComponent } from '@overmap-ai/blocks';
2
2
  import { FieldTypeGroup } from './enums';
3
3
  import { FieldClass, FieldType } from './typings';
4
- export declare const FieldTypeToClsMapping: Record<Exclude<FieldType, "section">, FieldClass>;
4
+ export declare const FieldTypeToClsMapping: Record<FieldType, FieldClass>;
5
5
  export declare const FIELD_TYPES: Exclude<FieldType, "section">[];
6
6
  export declare const fieldDataMapping: Record<Exclude<FieldType, "section">, {
7
7
  icon: IconComponent;
@@ -12,8 +12,5 @@ export declare const fieldDataMapping: Record<Exclude<FieldType, "section">, {
12
12
  export declare const fieldTypeGroupDataMapping: Record<FieldTypeGroup, {
13
13
  name: string;
14
14
  }>;
15
- export declare const maxFileSizeMB = 50;
16
- export declare const maxFileSizeKB: number;
17
- export declare const maxFileSizeB: number;
18
15
  export declare const UNLABELLED_FIELD_LABEL = "Unlabelled";
19
16
  export declare const UNLABELLED_SECTION_LABEL = "Unlabelled";
@@ -8,7 +8,7 @@ export interface useFieldInputProps<TField extends AnyField> {
8
8
  }
9
9
  export declare const useFieldInput: <TField extends AnyField>(props: useFieldInputProps<TField>) => {
10
10
  value: ValueOfField<TField>;
11
- name: TField["identifier"];
11
+ name: TField["id"];
12
12
  disabled: boolean | undefined;
13
13
  isTouched: boolean;
14
14
  error: string;
@@ -1,36 +1,41 @@
1
1
  import { BaseField } from './BaseField';
2
2
  import { BaseFormElement } from './BaseFormElement';
3
- import { BooleanField, SerializedBooleanField } from './BooleanField';
4
- import { CheckboxListField, SerializedCheckboxListField } from './CheckboxListField';
5
- import { DateField, SerializedDateField } from './DateField';
6
- import { FieldSection, SerializedFieldSection } from './FieldSection';
7
- import { MultiSelectField, SerializedMultiSelectField } from './MultiSelectField';
8
- import { MultiStringField, SerializedMultiStringField } from './MultiStringField';
9
- import { NumberField, SerializedNumberField } from './NumberField';
10
- import { OTPField, SerializedOTPField } from './OTPField';
11
- import { PassFailField, SerializedPassFailField } from './PassFailField';
12
- import { RadioField, SerializedRadioField } from './RadioField';
13
- import { RatingField, SerializedRatingField } from './RatingField';
14
- import { ScanField, SerializedScanField } from './ScanField';
15
- import { SelectField, SerializedSelectField } from './SelectField';
16
- import { SerializedStringField, StringField } from './StringField';
17
- import { SerializedTextField, TextField } from './TextField';
18
- import { SerializedTimeField, TimeField } from './TimeField';
19
- import { SerializedUploadField, UploadField } from './UploadField';
20
- import { SerializedURLField, URLField } from './URLField';
3
+ import { BooleanField, BooleanFieldConfig } from './BooleanField';
4
+ import { CheckboxListField, CheckboxListFieldConfig } from './CheckboxListField';
5
+ import { DateField, DateFieldConfig } from './DateField';
6
+ import { FieldSection, FieldSectionConfig } from './FieldSection';
7
+ import { MultiSelectField, MultiSelectFieldConfig } from './MultiSelectField';
8
+ import { MultiStringField, MultiStringFieldConfig } from './MultiStringField';
9
+ import { NumberField, NumberFieldConfig } from './NumberField';
10
+ import { OTPField, OTPFieldConfig } from './OTPField';
11
+ import { PassFailField, PassFailFieldConfig } from './PassFailField';
12
+ import { RadioField, RadioFieldConfig } from './RadioField';
13
+ import { RatingField, RatingFieldConfig } from './RatingField';
14
+ import { ScanField, ScanFieldConfig } from './ScanField';
15
+ import { SelectField, SelectFieldConfig } from './SelectField';
16
+ import { StringField, StringFieldConfig } from './StringField';
17
+ import { TextField, TextFieldConfig } from './TextField';
18
+ import { TimeField, TimeFieldConfig } from './TimeField';
19
+ import { UploadField, UploadFieldConfig } from './UploadField';
20
+ import { URLField, URLFieldConfig } from './URLField';
21
21
  export type AnyFormElement = BaseFormElement<any, any>;
22
22
  export type AnyField = BaseField<any, any, any, any>;
23
23
  export type TypeOfField<TField extends AnyFormElement> = TField extends BaseFormElement<infer TType, infer _TThis> ? TType : never;
24
24
  export type ValueOfField<TField extends AnyField> = TField extends BaseField<infer _TType, infer TValue, infer _TSerializedValue, infer _TThis> ? TValue : never;
25
25
  export type SerializedValueOfField<TField extends AnyField> = TField extends BaseField<infer _TType, infer _TValue, infer TSerializedValue, infer _TThis> ? TSerializedValue : never;
26
+ export type FieldType = TypeOfField<Field>;
27
+ export type FieldConfig = BooleanFieldConfig | CheckboxListFieldConfig | PassFailFieldConfig | DateFieldConfig | MultiSelectFieldConfig | MultiStringFieldConfig | NumberFieldConfig | RadioFieldConfig | RatingFieldConfig | ScanFieldConfig | SelectFieldConfig | StringFieldConfig | TextFieldConfig | UploadFieldConfig | URLFieldConfig | OTPFieldConfig | TimeFieldConfig;
26
28
  export type Field = BooleanField | CheckboxListField | PassFailField | DateField | MultiSelectField | MultiStringField | NumberField | RadioField | RatingField | ScanField | SelectField | StringField | TextField | UploadField | URLField | OTPField | TimeField;
27
29
  export type FieldClass = typeof BooleanField | typeof CheckboxListField | typeof PassFailField | typeof DateField | typeof MultiSelectField | typeof MultiStringField | typeof NumberField | typeof RadioField | typeof RatingField | typeof ScanField | typeof SelectField | typeof StringField | typeof TextField | typeof UploadField | typeof URLField | typeof OTPField | typeof TimeField;
28
- export type FieldType = TypeOfField<Field> | TypeOfField<FieldSection>;
30
+ export type ExtractByType<T, TType extends string> = Extract<T, {
31
+ type: TType;
32
+ }>;
33
+ export type FieldElementType = TypeOfField<FieldElement>;
34
+ export type FieldElementConfig = FieldConfig | FieldSectionConfig;
35
+ export type FieldElement = Field | FieldSection;
36
+ export type FieldElementClass = FieldClass | typeof FieldSection;
29
37
  export type FieldValue = ValueOfField<Field>;
30
38
  export type FieldError = string;
31
- export type SerializedFieldValue = SerializedValueOfField<Field>;
32
- export type SerializedField = SerializedTextField | SerializedBooleanField | SerializedNumberField | SerializedDateField | SerializedStringField | SerializedURLField | SerializedSelectField | SerializedFieldSection | SerializedMultiStringField | SerializedMultiSelectField | SerializedUploadField | SerializedScanField | SerializedRadioField | SerializedRatingField | SerializedCheckboxListField | SerializedOTPField | SerializedPassFailField | SerializedTimeField;
33
- export type SerializedOnlyField = Exclude<SerializedField, SerializedFieldSection>;
34
39
  export interface FieldsManager {
35
40
  readonly fields: Field[];
36
41
  getFields(): Field[];
@@ -1,16 +1,27 @@
1
- import { FieldFilesAndPromises, FieldValues, SerializedFieldValues } from '../typings';
2
- import { FieldSection } from './FieldSection';
3
- import { Field, SerializedField, SerializedOnlyField } from './typings';
4
- export declare const deserializeField: (serializedField: SerializedOnlyField) => Field;
5
- export declare function deserializeFields(fields: SerializedField[]): (Field | FieldSection)[];
6
- export declare const deserialize: (serialized: SerializedField) => Field | FieldSection;
7
- export declare function deserializeOnlyFields(fields: SerializedOnlyField[]): Field[];
8
- export declare function flattenFields(fields: (Field | FieldSection)[]): Field[];
9
- export declare function getFieldsMapping(fields: Field[]): Record<Field["identifier"], Field>;
10
- export declare function serializeFieldValues(fields: Field[], values: FieldValues, clean?: boolean): SerializedFieldValues;
11
- export declare function deserializeFieldValues(fields: Field[], values: SerializedFieldValues, clean?: boolean): FieldValues;
1
+ import { JSONField, JSONFieldElement, JSONFieldValues } from '@adrekic/fieldsjson';
2
+ import { FieldFilesAndPromises, FieldValues } from '../typings';
3
+ import { ExtractByType, Field, FieldConfig, FieldElement, FieldElementConfig } from './typings';
4
+ export declare const deserializeField: <T extends JSONField>(serializedField: T) => ExtractByType<Field, T["type"]>;
5
+ export declare function deserializeFields<T extends JSONField>(fields: T[]): ExtractByType<Field, T["type"]>[];
6
+ export declare function deserializeFieldElement<T extends JSONFieldElement>(serialized: T): ExtractByType<FieldElement, T["type"]>;
7
+ export declare const deserializeFieldElements: <T extends JSONFieldElement>(serialized: T[]) => ExtractByType<FieldElement, T["type"]>[];
8
+ export declare const fieldFromConfig: <T extends FieldConfig>(fieldConfig: T) => ExtractByType<Field, T["type"]>;
9
+ export declare const fieldsFromConfigs: <T extends FieldConfig>(fieldConfigs: T[]) => ExtractByType<Field, T["type"]>[];
10
+ export declare const fieldElementFromConfig: <T extends FieldElementConfig>(fieldElementConfig: T) => ExtractByType<FieldElement, T["type"]>;
11
+ export declare const fieldElementsFromConfigs: <T extends FieldElementConfig>(fieldElementConfigs: T[]) => ExtractByType<FieldElement, T["type"]>[];
12
+ export declare const deserializeFieldConfig: <T extends JSONField>(serialized: T) => ExtractByType<FieldConfig, T["type"]>;
13
+ export declare const deserializeFieldConfigs: <T extends JSONField>(serialized: T[]) => ExtractByType<FieldConfig, T["type"]>[];
14
+ export declare const deserializeFieldElementConfig: <T extends JSONFieldElement>(serialized: T) => ExtractByType<FieldElementConfig, T["type"]>;
15
+ export declare const deserializeFieldElementConfigs: <T extends JSONFieldElement>(serialized: T[]) => ExtractByType<FieldElementConfig, T["type"]>[];
16
+ export declare const serializeFieldConfig: <T extends FieldConfig>(config: T) => ExtractByType<JSONField, T["type"]>;
17
+ export declare const serializeFieldConfigs: <T extends FieldConfig>(config: T[]) => ExtractByType<JSONField, T["type"]>[];
18
+ export declare const serializeFieldElementConfig: <T extends FieldElementConfig>(config: T) => ExtractByType<JSONFieldElement, T["type"]>;
19
+ export declare const serializeFieldElementConfigs: <T extends FieldElementConfig>(config: T[]) => ExtractByType<JSONFieldElement, T["type"]>[];
20
+ export declare function getFieldsMapping(fields: Field[]): Record<Field["id"], Field>;
21
+ export declare function serializeFieldValues(fields: Field[], values: FieldValues, clean?: boolean): JSONFieldValues;
22
+ export declare function deserializeFieldValues(fields: Field[], values: JSONFieldValues, clean?: boolean): FieldValues;
12
23
  export declare function cleanFieldValues(fields: Field[], values: FieldValues): FieldValues;
13
- export declare function cleanSerializedFieldValues(fields: Field[], values: SerializedFieldValues): SerializedFieldValues;
24
+ export declare function cleanSerializedFieldValues(fields: Field[], values: JSONFieldValues): JSONFieldValues;
14
25
  export declare function extractFilesAndPromisesFromFieldValues(fields: Field[], values: FieldValues): readonly [FieldValues, FieldFilesAndPromises];
15
26
  export declare function insertFilesAndPromisesToFieldValues(fields: Field[], values: FieldValues, filesAndPromises: FieldFilesAndPromises): FieldValues;
16
27
  export declare const initializeFieldValues: (fields: Field[], values: FieldValues) => FieldValues;
@@ -1,4 +1,4 @@
1
- import { PassFailFieldStatus } from '../fields';
1
+ import { PassFailFieldStatus } from '@adrekic/fieldsjson';
2
2
  import { ConditionModifier } from './conditionModifier';
3
3
  export declare const PassFailEqualsConditionModifier: ConditionModifier<PassFailFieldStatus, PassFailFieldStatus, PassFailFieldStatus>;
4
4
  export declare const PassFailNotEqualsConditionModifier: ConditionModifier<PassFailFieldStatus, PassFailFieldStatus, PassFailFieldStatus>;
@@ -1,4 +1,4 @@
1
- import { TimeRange } from '../fields';
1
+ import { TimeRange } from '@adrekic/fieldsjson';
2
2
  import { ConditionModifier } from './conditionModifier';
3
3
  export declare const TimeEqualsConditionModifier: ConditionModifier<`T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`, `T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`, `T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`>;
4
4
  export declare const TimeNotEqualsConditionModifier: ConditionModifier<`T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`, `T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`, `T${string}:${string}:00+${string}:${string}` | `T${string}:${string}:00-${string}:${string}`>;
@@ -1,15 +1,21 @@
1
+ import { JSONCondition, JSONFieldSchema, JSONFieldSection, JSONFieldValues } from '@adrekic/fieldsjson';
1
2
  import { DirectedGraph } from 'graphology';
2
3
  import { ReseedOptions } from '../builder/list/sectionSerialization';
3
- import { Condition, SerializedCondition } from '../conditions';
4
- import { Field, FieldSection, FieldSectionManager, SerializedFieldSection } from '../fields';
4
+ import { Condition } from '../conditions';
5
+ import { Field, FieldSection, FieldSectionManager } from '../fields';
5
6
  import { Observable } from '../Observable';
6
- import { FieldFilesAndPromises, FieldValues, SerializedFieldValues } from '../typings';
7
+ import { FieldFilesAndPromises, FieldValues } from '../typings';
8
+ import { FieldSchemaConfig, FieldSchemaOptions } from './typings';
7
9
  export declare class FieldSchema extends Observable<FieldSchema> implements FieldSectionManager {
8
10
  fieldSections: FieldSection[];
9
- constructor(fields: FieldSection[]);
10
- serialize(): SerializedFieldSection[];
11
- static deserialize(serializedSections: SerializedFieldSection[]): FieldSchema;
12
- static reseedFieldSections(serializedSections: SerializedFieldSection[], options?: ReseedOptions): SerializedFieldSection[];
11
+ constructor(fields: FieldSchemaOptions);
12
+ serialize(): JSONFieldSection[];
13
+ config(): import('..').FieldSectionConfig[];
14
+ static deserialize(serialized: JSONFieldSchema): FieldSchema;
15
+ static fromConfig(config: FieldSchemaConfig): FieldSchema;
16
+ static serializeConfig(config: FieldSchemaConfig): JSONFieldSchema;
17
+ static deserializeConfig(serialized: JSONFieldSchema): FieldSchemaConfig;
18
+ static reseedFieldSections(serializedSections: JSONFieldSection[], options?: ReseedOptions): JSONFieldSection[];
13
19
  private fieldObserver;
14
20
  private initFields;
15
21
  getFields(): Field[];
@@ -18,18 +24,18 @@ export declare class FieldSchema extends Observable<FieldSchema> implements Fiel
18
24
  removeFieldSection(fieldSection: FieldSection): void;
19
25
  moveFieldSection(sourceIndex: number, targetIndex: number): void;
20
26
  getSectionDependencyGraph(): DirectedGraph<import('graphology-types').Attributes, import('graphology-types').Attributes, import('graphology-types').Attributes>;
21
- getDependenciesOfSection(fieldSectionId: FieldSection["identifier"]): FieldSection[];
27
+ getDependenciesOfSection(fieldSectionId: FieldSection["id"]): FieldSection[];
22
28
  cleanValues(values: FieldValues): FieldValues;
23
- cleanSerializedValues(values: SerializedFieldValues): SerializedFieldValues;
24
- deserializeValues(values: SerializedFieldValues, clean?: boolean): FieldValues;
25
- serializeValues(values: FieldValues, clean?: boolean): SerializedFieldValues;
29
+ cleanSerializedValues(values: JSONFieldValues): JSONFieldValues;
30
+ deserializeValues(values: JSONFieldValues, clean?: boolean): FieldValues;
31
+ serializeValues(values: FieldValues, clean?: boolean): JSONFieldValues;
26
32
  initializeValues(values: FieldValues): FieldValues;
27
33
  validateValues(values: FieldValues): import('..').FieldErrors;
28
34
  areValuesValid(values: FieldValues): boolean;
29
- deserializeConditions(serializedConditions: SerializedCondition[]): Condition[];
35
+ deserializeConditions(serializedConditions: JSONCondition[]): Condition[];
30
36
  cleanConditions(conditions: Condition[]): Condition[];
31
- serializeConditions(conditions: Condition[]): SerializedCondition[];
32
- cleanSerializedConditions(serializedConditions: SerializedCondition[]): SerializedCondition[];
37
+ serializeConditions(conditions: Condition[]): JSONCondition[];
38
+ cleanSerializedConditions(serializedConditions: JSONCondition[]): JSONCondition[];
33
39
  changedFieldValues(values1: FieldValues, values2: FieldValues): FieldValues;
34
40
  unchangedFieldValues(values1: FieldValues, values2: FieldValues): FieldValues;
35
41
  areValuesEqual(values1: FieldValues, values2: FieldValues): boolean;
@@ -1 +1,2 @@
1
1
  export * from './FieldSchema';
2
+ export type * from './typings';
@@ -0,0 +1,3 @@
1
+ import { FieldSection, FieldSectionConfig } from '../fields';
2
+ export type FieldSchemaConfig = FieldSectionConfig[];
3
+ export type FieldSchemaOptions = FieldSection[];
@@ -1,10 +1,9 @@
1
- import { Field, FieldError, FieldValue, SerializedFieldValue } from './fields';
1
+ import { Field, FieldError, FieldValue } from './fields';
2
2
  import { UUIDFile } from './UUIDFile';
3
3
  import { UUIDPromise } from './UUIDPromise';
4
- export type FieldValues = Record<Field["identifier"], FieldValue>;
4
+ export type FieldValues = Record<Field["id"], FieldValue>;
5
5
  export type FieldErrors = {
6
- [identifier: Field["identifier"]]: FieldError | FieldErrors;
6
+ [id: Field["id"]]: FieldError | FieldErrors;
7
7
  };
8
- export type FieldFilesAndPromises = Record<Field["identifier"], (UUIDFile | UUIDPromise<UUIDFile>)[]>;
9
- export type FieldFiles = Record<Field["identifier"], UUIDFile[]>;
10
- export type SerializedFieldValues = Record<Field["identifier"], SerializedFieldValue>;
8
+ export type FieldFilesAndPromises = Record<Field["id"], (UUIDFile | UUIDPromise<UUIDFile>)[]>;
9
+ export type FieldFiles = Record<Field["id"], UUIDFile[]>;
@@ -1,8 +1,6 @@
1
- import { AnyFormElement, SerializedFieldSection } from './fields';
1
+ import { AnyFormElement } from './fields';
2
+ import { FieldSchemaConfig } from './schema';
2
3
  import { FieldErrors, FieldFiles, FieldFilesAndPromises, FieldValues } from './typings';
3
4
  export declare const validateFieldValues: (fields: AnyFormElement[], values: FieldValues) => FieldErrors;
4
- export declare const separateImagesFromFields: (fields: SerializedFieldSection[]) => Promise<{
5
- fields: SerializedFieldSection[];
6
- images: Record<string, File>;
7
- }>;
5
+ export declare const getImagesFromFields: (fields: FieldSchemaConfig) => Promise<Record<string, File>>;
8
6
  export declare function awaitFilesAndPromises(values: FieldFilesAndPromises): Promise<FieldFiles>;