@luomus/laji-form 15.1.57 → 15.1.59

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 (44) hide show
  1. package/dist/laji-form.js +1 -1
  2. package/lib/components/LajiForm.d.ts +6 -2
  3. package/lib/components/VirtualSchemaField.d.ts +9 -9
  4. package/lib/components/VirtualSchemaField.js +1 -1
  5. package/lib/components/fields/ArrayPropertySumField.d.ts +1 -1
  6. package/lib/components/fields/AsArrayField.d.ts +3 -393
  7. package/lib/components/fields/CondensedObjectField.d.ts +3 -3
  8. package/lib/components/fields/ExtraLabelRowField.d.ts +1 -1
  9. package/lib/components/fields/ImageArrayField.d.ts +11 -11
  10. package/lib/components/fields/InitiallyHiddenField.d.ts +1 -1
  11. package/lib/components/fields/LocationChooserField.d.ts +1 -1
  12. package/lib/components/fields/MapArrayField.js +6 -1
  13. package/lib/components/fields/MapField.js +17 -7
  14. package/lib/components/fields/MultiTagArrayField.js +1 -1
  15. package/lib/components/fields/NamedPlaceChooserField/NamedPlaceChooser.d.ts +54 -0
  16. package/lib/components/fields/NamedPlaceChooserField/NamedPlaceChooser.js +169 -0
  17. package/lib/components/fields/NamedPlaceChooserField/NamedPlaceChooserField.d.ts +71 -0
  18. package/lib/components/fields/NamedPlaceChooserField/NamedPlaceChooserField.js +193 -0
  19. package/lib/components/fields/NamedPlaceChooserField/Popup.d.ts +12 -0
  20. package/lib/components/fields/NamedPlaceChooserField/Popup.js +67 -0
  21. package/lib/components/fields/NamedPlaceChooserField/index.d.ts +1 -0
  22. package/lib/components/fields/NamedPlaceChooserField/index.js +8 -0
  23. package/lib/components/fields/NamedPlaceSaverField.d.ts +16 -16
  24. package/lib/components/fields/PdfArrayField.d.ts +1 -1
  25. package/lib/components/fields/SchemaField.d.ts +5 -6
  26. package/lib/components/fields/SchemaField.js +4 -24
  27. package/lib/components/fields/ScopeField.d.ts +1 -1
  28. package/lib/components/fields/SelectTreeField.js +1 -1
  29. package/lib/components/fields/SortArrayField.d.ts +32 -32
  30. package/lib/components/fields/SplitField.js +1 -1
  31. package/lib/components/fields/StringToArrayField.d.ts +17 -17
  32. package/lib/components/fields/ToggleAdditionalArrayFieldsField.d.ts +1 -1
  33. package/lib/components/fields/UnitListShorthandArrayField.d.ts +16 -16
  34. package/lib/components/widgets/SelectWidget.d.ts +15 -14
  35. package/lib/components/widgets/SelectWidget.js +37 -26
  36. package/lib/services/submit-hook-service.d.ts +1 -1
  37. package/lib/translations.json +5 -0
  38. package/lib/types.d.ts +8 -10
  39. package/lib/types.js +5 -1
  40. package/lib/utils.d.ts +5 -4
  41. package/lib/utils.js +8 -8
  42. package/package.json +3 -2
  43. package/lib/components/fields/NamedPlaceChooserField.d.ts +0 -115
  44. package/lib/components/fields/NamedPlaceChooserField.js +0 -402
@@ -14,20 +14,20 @@ export default class NamedPlaceSaverField extends React.Component<any, any, any>
14
14
  getStateFromProps(props: any): {
15
15
  uiSchema: {
16
16
  "ui:options": any;
17
- "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
18
- "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
19
- "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
20
- "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
21
- "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
22
- "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
23
- "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
24
- "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
25
- "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
26
- "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
27
- "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
28
- "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
29
- "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
30
- "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
17
+ "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
18
+ "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, any, import("../LajiForm").FormContext>> | undefined;
19
+ "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, any, import("../LajiForm").FormContext>> | undefined;
20
+ "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, any, import("../LajiForm").FormContext>> | undefined;
21
+ "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, any, import("../LajiForm").FormContext>> | undefined;
22
+ "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
23
+ "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, any, import("../LajiForm").FormContext>> | undefined;
24
+ "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, any, import("../LajiForm").FormContext>> | undefined;
25
+ "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, any, import("../LajiForm").FormContext>> | undefined;
26
+ "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
27
+ "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
28
+ "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
29
+ "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
30
+ "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
31
31
  "ui:classNames"?: string | undefined;
32
32
  "ui:style"?: React.StyleHTMLAttributes<any> | undefined;
33
33
  "ui:title"?: string | undefined;
@@ -50,10 +50,10 @@ export default class NamedPlaceSaverField extends React.Component<any, any, any>
50
50
  "ui:label"?: boolean | undefined;
51
51
  "ui:rows"?: number | undefined;
52
52
  "ui:submitButtonOptions"?: import("@rjsf/utils").UISchemaSubmitButtonOptions | undefined;
53
- "ui:widget"?: string | import("@rjsf/utils").Widget<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
53
+ "ui:widget"?: string | import("@rjsf/utils").Widget<any, any, import("../LajiForm").FormContext> | undefined;
54
54
  "ui:duplicateKeySuffixSeparator"?: string | undefined;
55
55
  "ui:rootFieldId"?: string | undefined;
56
- "ui:field"?: string | import("@rjsf/utils").Field<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
56
+ "ui:field"?: string | import("@rjsf/utils").Field<any, any, import("../LajiForm").FormContext> | undefined;
57
57
  "ui:fieldReplacesAnyOrOneOf"?: boolean | undefined;
58
58
  };
59
59
  };
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { FieldProps, JSONSchemaArray, JSONSchemaObject } from "../../types";
3
3
  import { MediaArrayState } from "./ImageArrayField";
4
- export default class PdfArrayField extends React.Component<FieldProps<JSONSchemaArray<JSONSchemaObject>>, MediaArrayState> {
4
+ export default class PdfArrayField extends React.Component<FieldProps<any, JSONSchemaArray<JSONSchemaObject>>, MediaArrayState> {
5
5
  ALLOWED_FILE_TYPES: string[];
6
6
  ACCEPT_FILE_TYPES: string[];
7
7
  MAX_FILE_SIZE: number;
@@ -1,7 +1,6 @@
1
- export default class _SchemaField extends React.Component<any, any, any> {
2
- constructor(props: any);
3
- updateVirtualInstance: (props: any, initial: any) => void;
4
- functionOutputProps: any;
5
- applyFunction(props: any): any;
6
- }
7
1
  import * as React from "react";
2
+ import { FieldProps } from "../../types";
3
+ export default class _SchemaField extends React.Component<FieldProps> {
4
+ applyFunction(props: FieldProps): FieldProps<any, import("../../types").JSONSchemaObject>;
5
+ render(): JSX.Element;
6
+ }
@@ -34,32 +34,12 @@ const React = __importStar(require("react"));
34
34
  const utils_1 = require("../../utils");
35
35
  const utils_2 = require("@luomus/laji-map/lib/utils");
36
36
  const ContextInjectionField_1 = require("./ContextInjectionField");
37
- const utils_3 = require("@rjsf/utils");
38
37
  const core_1 = require("@rjsf/core");
38
+ const types_1 = require("../../types");
39
39
  class _SchemaField extends React.Component {
40
- constructor(props) {
41
- super(props);
42
- this.updateVirtualInstance = (props, initial) => {
43
- const virtualizedProps = ["ui:functions", "ui:childFunctions", "ui:annotations", "ui:multiLanguage"];
44
- if ([props, this.props].some(_props => _props.uiSchema && virtualizedProps.some(prop => _props.uiSchema[prop])) &&
45
- (initial || !utils_3.deepEquals(this.props, props))) {
46
- this.functionOutputProps = this.applyFunction(props);
47
- }
48
- };
49
- this.updateVirtualInstance(props, !!"initial");
50
- this.state = { showAnnotations: false };
51
- }
52
- UNSAFE_componentWillReceiveProps(props) {
53
- this.updateVirtualInstance(props);
54
- }
55
40
  applyFunction(props) {
56
41
  let _a = (props.uiSchema || {}), { "ui:functions": functions, "ui:childFunctions": childFunctions, "ui:annotations": annotations, "ui:multiLanguage": multiLanguage } = _a, _uiSchema = __rest(_a, ["ui:functions", "ui:childFunctions", "ui:annotations", "ui:multiLanguage"]);
57
- const objectOrArrayAsArray = item => (item
58
- ? (Array.isArray(item)
59
- ? item
60
- : [item])
61
- : []);
62
- functions = objectOrArrayAsArray(functions);
42
+ functions = functions ? utils_1.asArray(functions) : [];
63
43
  if (childFunctions) {
64
44
  functions = [
65
45
  { "ui:field": "UiFieldMapperArrayField", "ui:options": { functions: childFunctions } },
@@ -97,13 +77,13 @@ class _SchemaField extends React.Component {
97
77
  return Object.assign(Object.assign({}, _props), { uiSchema: Object.assign(Object.assign({}, _props.uiSchema), { "ui:functions": restUiFns }) });
98
78
  }
99
79
  render() {
100
- const props = this.functionOutputProps || this.props;
80
+ const props = this.applyFunction(this.props);
101
81
  let { schema, uiSchema = {}, formContext, registry } = props, _props = __rest(props, ["schema", "uiSchema", "formContext", "registry"]); // eslint-disable-line @typescript-eslint/no-unused-vars
102
82
  const { formContext: _formContext } = registry;
103
83
  // rjsf displays a duplicate label if 'uniqueItems' is true in some cases. We prevent that here.
104
84
  // Example of when it shows duplicate is http://localhost:8083/?id=JX.652&local=true, "Elinympäristö" on gathering
105
85
  // level.
106
- if (props.schema.type === "array" && props.uiSchema && props.uiSchema.items && props.uiSchema.items["ui:field"]) {
86
+ if (types_1.isJSONSchemaArray(schema) && uiSchema && uiSchema.items && uiSchema.items["ui:field"]) {
107
87
  schema = Object.assign(Object.assign({}, schema), { uniqueItems: false });
108
88
  }
109
89
  const options = utils_1.getUiOptions(uiSchema);
@@ -60,7 +60,7 @@ export default class ScopeField extends React.Component<any, any, any> {
60
60
  _globals: any;
61
61
  getSchemasAndAdditionals: (props: any, state: any) => {
62
62
  schema: any;
63
- uiSchema: import("../../types").UiSchema;
63
+ uiSchema: import("../../types").UiSchema<any>;
64
64
  additionalFields: any;
65
65
  defaultFields: any;
66
66
  fieldsToShow: {};
@@ -58,7 +58,7 @@ const getChildProps = (props) => {
58
58
  let formData = {};
59
59
  let idSchema = { $id: props.idSchema.$id };
60
60
  let dictionarifiedEnums = {};
61
- props.schema.oneOf.forEach(e => {
61
+ props.schema.oneOf.forEach((e) => {
62
62
  dictionarifiedEnums[e.const] = e.title;
63
63
  });
64
64
  const tree = utils_1.getUiOptions(props.uiSchema).tree;
@@ -60,20 +60,20 @@ export default class SortArrayField extends React.Component<FieldProps<JSONSchem
60
60
  syncColumns(): void;
61
61
  getUiShema(props: FieldProps<JSONSchemaArray<JSONSchemaObject>>, { sortCols }: State, sortedData: any[]): {
62
62
  "ui:options": any;
63
- "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
64
- "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, JSONSchemaObject, FormContext>> | undefined;
65
- "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, JSONSchemaObject, FormContext>> | undefined;
66
- "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, JSONSchemaObject, FormContext>> | undefined;
67
- "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, JSONSchemaObject, FormContext>> | undefined;
68
- "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
69
- "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, JSONSchemaObject, FormContext>> | undefined;
70
- "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, JSONSchemaObject, FormContext>> | undefined;
71
- "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, JSONSchemaObject, FormContext>> | undefined;
72
- "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
73
- "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
74
- "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
75
- "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
76
- "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
63
+ "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, any, FormContext>> | undefined;
64
+ "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, any, FormContext>> | undefined;
65
+ "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, any, FormContext>> | undefined;
66
+ "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, any, FormContext>> | undefined;
67
+ "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, any, FormContext>> | undefined;
68
+ "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, any, FormContext>> | undefined;
69
+ "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, any, FormContext>> | undefined;
70
+ "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, any, FormContext>> | undefined;
71
+ "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, any, FormContext>> | undefined;
72
+ "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, any, FormContext>> | undefined;
73
+ "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, any, FormContext>> | undefined;
74
+ "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, any, FormContext>> | undefined;
75
+ "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, any, FormContext>> | undefined;
76
+ "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, any, FormContext>> | undefined;
77
77
  "ui:classNames"?: string | undefined;
78
78
  "ui:style"?: React.StyleHTMLAttributes<any> | undefined;
79
79
  "ui:title"?: string | undefined;
@@ -96,30 +96,30 @@ export default class SortArrayField extends React.Component<FieldProps<JSONSchem
96
96
  "ui:label"?: boolean | undefined;
97
97
  "ui:rows"?: number | undefined;
98
98
  "ui:submitButtonOptions"?: import("@rjsf/utils").UISchemaSubmitButtonOptions | undefined;
99
- "ui:widget"?: string | import("@rjsf/utils").Widget<any, JSONSchemaObject, FormContext> | undefined;
99
+ "ui:widget"?: string | import("@rjsf/utils").Widget<any, any, FormContext> | undefined;
100
100
  "ui:duplicateKeySuffixSeparator"?: string | undefined;
101
101
  "ui:rootFieldId"?: string | undefined;
102
- "ui:field"?: string | import("@rjsf/utils").Field<any, JSONSchemaObject, FormContext> | undefined;
102
+ "ui:field"?: string | import("@rjsf/utils").Field<any, any, FormContext> | undefined;
103
103
  "ui:fieldReplacesAnyOrOneOf"?: boolean | undefined;
104
104
  };
105
105
  getSortableColumns(props: FieldProps<JSONSchemaArray<JSONSchemaObject>>): string[] | undefined;
106
106
  getNextComponentProps(props: any, state: State): {
107
107
  uiSchema: {
108
108
  "ui:options": any;
109
- "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
110
- "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, JSONSchemaObject, FormContext>> | undefined;
111
- "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, JSONSchemaObject, FormContext>> | undefined;
112
- "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, JSONSchemaObject, FormContext>> | undefined;
113
- "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, JSONSchemaObject, FormContext>> | undefined;
114
- "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
115
- "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, JSONSchemaObject, FormContext>> | undefined;
116
- "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, JSONSchemaObject, FormContext>> | undefined;
117
- "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, JSONSchemaObject, FormContext>> | undefined;
118
- "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
119
- "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
120
- "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
121
- "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, JSONSchemaObject, FormContext>> | undefined;
122
- "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, JSONSchemaObject, FormContext>> | undefined;
109
+ "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, any, FormContext>> | undefined;
110
+ "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, any, FormContext>> | undefined;
111
+ "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, any, FormContext>> | undefined;
112
+ "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, any, FormContext>> | undefined;
113
+ "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, any, FormContext>> | undefined;
114
+ "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, any, FormContext>> | undefined;
115
+ "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, any, FormContext>> | undefined;
116
+ "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, any, FormContext>> | undefined;
117
+ "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, any, FormContext>> | undefined;
118
+ "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, any, FormContext>> | undefined;
119
+ "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, any, FormContext>> | undefined;
120
+ "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, any, FormContext>> | undefined;
121
+ "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, any, FormContext>> | undefined;
122
+ "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, any, FormContext>> | undefined;
123
123
  "ui:classNames"?: string | undefined;
124
124
  "ui:style"?: React.StyleHTMLAttributes<any> | undefined;
125
125
  "ui:title"?: string | undefined;
@@ -142,10 +142,10 @@ export default class SortArrayField extends React.Component<FieldProps<JSONSchem
142
142
  "ui:label"?: boolean | undefined;
143
143
  "ui:rows"?: number | undefined;
144
144
  "ui:submitButtonOptions"?: import("@rjsf/utils").UISchemaSubmitButtonOptions | undefined;
145
- "ui:widget"?: string | import("@rjsf/utils").Widget<any, JSONSchemaObject, FormContext> | undefined;
145
+ "ui:widget"?: string | import("@rjsf/utils").Widget<any, any, FormContext> | undefined;
146
146
  "ui:duplicateKeySuffixSeparator"?: string | undefined;
147
147
  "ui:rootFieldId"?: string | undefined;
148
- "ui:field"?: string | import("@rjsf/utils").Field<any, JSONSchemaObject, FormContext> | undefined;
148
+ "ui:field"?: string | import("@rjsf/utils").Field<any, any, FormContext> | undefined;
149
149
  "ui:fieldReplacesAnyOrOneOf"?: boolean | undefined;
150
150
  };
151
151
  formData: any[];
@@ -42,7 +42,7 @@ let SplitField = class SplitField extends React.Component {
42
42
  const { SchemaField } = this.props.registry.fields;
43
43
  // TODO TS fix typing after NestField ts conversion.
44
44
  const _props = NestField_1.getPropsForFields(this.props, fields);
45
- return (React.createElement(SchemaField, Object.assign({}, this.props, _props, { onChange: this.onChange(fields), name: "" })));
45
+ return (React.createElement(SchemaField, Object.assign({}, this.props, _props, { onChange: this.onChange(fields), name: "", onBlur: this.props.onBlur, onFocus: this.props.onFocus, disabled: this.props.disabled, readonly: this.props.readonly })));
46
46
  };
47
47
  this.onChange = (fields) => (formData) => {
48
48
  this.props.onChange(fields.reduce((updatedFormData, field) => {
@@ -16,20 +16,20 @@ export default class StringToArrayField extends React.Component<any, any, any> {
16
16
  };
17
17
  formData: any;
18
18
  uiSchema: {
19
- "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
20
- "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
21
- "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
22
- "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
23
- "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
24
- "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
25
- "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
26
- "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
27
- "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
28
- "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
29
- "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
30
- "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
31
- "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
32
- "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
19
+ "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
20
+ "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, any, import("../LajiForm").FormContext>> | undefined;
21
+ "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, any, import("../LajiForm").FormContext>> | undefined;
22
+ "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, any, import("../LajiForm").FormContext>> | undefined;
23
+ "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, any, import("../LajiForm").FormContext>> | undefined;
24
+ "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
25
+ "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, any, import("../LajiForm").FormContext>> | undefined;
26
+ "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, any, import("../LajiForm").FormContext>> | undefined;
27
+ "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, any, import("../LajiForm").FormContext>> | undefined;
28
+ "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
29
+ "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
30
+ "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
31
+ "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
32
+ "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
33
33
  "ui:classNames"?: string | undefined;
34
34
  "ui:style"?: React.StyleHTMLAttributes<any> | undefined;
35
35
  "ui:title"?: string | undefined;
@@ -52,12 +52,12 @@ export default class StringToArrayField extends React.Component<any, any, any> {
52
52
  "ui:label"?: boolean | undefined;
53
53
  "ui:rows"?: number | undefined;
54
54
  "ui:submitButtonOptions"?: import("@rjsf/utils").UISchemaSubmitButtonOptions | undefined;
55
- "ui:widget"?: string | import("@rjsf/utils").Widget<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
55
+ "ui:widget"?: string | import("@rjsf/utils").Widget<any, any, import("../LajiForm").FormContext> | undefined;
56
56
  "ui:duplicateKeySuffixSeparator"?: string | undefined;
57
57
  "ui:rootFieldId"?: string | undefined;
58
- "ui:field"?: string | import("@rjsf/utils").Field<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
58
+ "ui:field"?: string | import("@rjsf/utils").Field<any, any, import("../LajiForm").FormContext> | undefined;
59
59
  "ui:fieldReplacesAnyOrOneOf"?: boolean | undefined;
60
- "ui:options"?: import("@rjsf/utils").UIOptionsType<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
60
+ "ui:options"?: import("@rjsf/utils").UIOptionsType<any, any, import("../LajiForm").FormContext> | undefined;
61
61
  };
62
62
  onChange: (formData: any) => void;
63
63
  };
@@ -18,7 +18,7 @@ export default class ToggleAdditionalArrayFieldsField extends React.Component<an
18
18
  getTogglePersistenceContextKey: (props: any) => string;
19
19
  getInitialVisible(props: any): unknown;
20
20
  getStateFromProps(props: any): {
21
- uiSchema: import("../../types").UiSchema;
21
+ uiSchema: import("../../types").UiSchema<any>;
22
22
  };
23
23
  toggleVisibility: () => void;
24
24
  }
@@ -14,20 +14,20 @@ export default class UnitListShorthandArrayField extends React.Component<any, an
14
14
  getStateFromProps(props: any): {
15
15
  uiSchema: {
16
16
  "ui:options": any;
17
- "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
18
- "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
19
- "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
20
- "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
21
- "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
22
- "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
23
- "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
24
- "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
25
- "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
26
- "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
27
- "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
28
- "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
29
- "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
30
- "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext>> | undefined;
17
+ "ui:ArrayFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
18
+ "ui:ArrayFieldDescriptionTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldDescriptionProps<any, any, import("../LajiForm").FormContext>> | undefined;
19
+ "ui:ArrayFieldItemTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTemplateItemType<any, any, import("../LajiForm").FormContext>> | undefined;
20
+ "ui:ArrayFieldTitleTemplate"?: React.ComponentType<import("@rjsf/utils").ArrayFieldTitleProps<any, any, import("../LajiForm").FormContext>> | undefined;
21
+ "ui:BaseInputTemplate"?: React.ComponentType<import("@rjsf/utils").WidgetProps<any, any, import("../LajiForm").FormContext>> | undefined;
22
+ "ui:DescriptionFieldTemplate"?: React.ComponentType<import("@rjsf/utils").DescriptionFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
23
+ "ui:ErrorListTemplate"?: React.ComponentType<import("@rjsf/utils").ErrorListProps<any, any, import("../LajiForm").FormContext>> | undefined;
24
+ "ui:FieldErrorTemplate"?: React.ComponentType<import("@rjsf/utils").FieldErrorProps<any, any, import("../LajiForm").FormContext>> | undefined;
25
+ "ui:FieldHelpTemplate"?: React.ComponentType<import("@rjsf/utils").FieldHelpProps<any, any, import("../LajiForm").FormContext>> | undefined;
26
+ "ui:FieldTemplate"?: React.ComponentType<import("@rjsf/utils").FieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
27
+ "ui:ObjectFieldTemplate"?: React.ComponentType<import("@rjsf/utils").ObjectFieldTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
28
+ "ui:TitleFieldTemplate"?: React.ComponentType<import("@rjsf/utils").TitleFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
29
+ "ui:UnsupportedFieldTemplate"?: React.ComponentType<import("@rjsf/utils").UnsupportedFieldProps<any, any, import("../LajiForm").FormContext>> | undefined;
30
+ "ui:WrapIfAdditionalTemplate"?: React.ComponentType<import("@rjsf/utils").WrapIfAdditionalTemplateProps<any, any, import("../LajiForm").FormContext>> | undefined;
31
31
  "ui:classNames"?: string | undefined;
32
32
  "ui:style"?: React.StyleHTMLAttributes<any> | undefined;
33
33
  "ui:title"?: string | undefined;
@@ -50,10 +50,10 @@ export default class UnitListShorthandArrayField extends React.Component<any, an
50
50
  "ui:label"?: boolean | undefined;
51
51
  "ui:rows"?: number | undefined;
52
52
  "ui:submitButtonOptions"?: import("@rjsf/utils").UISchemaSubmitButtonOptions | undefined;
53
- "ui:widget"?: string | import("@rjsf/utils").Widget<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
53
+ "ui:widget"?: string | import("@rjsf/utils").Widget<any, any, import("../LajiForm").FormContext> | undefined;
54
54
  "ui:duplicateKeySuffixSeparator"?: string | undefined;
55
55
  "ui:rootFieldId"?: string | undefined;
56
- "ui:field"?: string | import("@rjsf/utils").Field<any, import("../../types").JSONSchemaObject, import("../LajiForm").FormContext> | undefined;
56
+ "ui:field"?: string | import("@rjsf/utils").Field<any, any, import("../LajiForm").FormContext> | undefined;
57
57
  "ui:fieldReplacesAnyOrOneOf"?: boolean | undefined;
58
58
  };
59
59
  };
@@ -1,21 +1,22 @@
1
1
  /// <reference types="react" />
2
2
  import { EnumOptionsType as _EnumOptionsType } from "@rjsf/utils";
3
3
  import { JSONSchemaArray, JSONSchemaEnum, JSONSchemaEnumOneOf, WidgetProps } from "../../types";
4
- declare type EnumOptionsType<T = string | undefined> = Omit<_EnumOptionsType, "value"> & {
4
+ declare type EnumOptionsType<T = string | number | undefined> = Omit<_EnumOptionsType, "value"> & {
5
5
  value: T;
6
6
  };
7
- declare type SelectWidgetCustomProps = {
7
+ declare type SelectWidgetCustomProps<T> = {
8
8
  includeEmpty?: boolean;
9
- getEnumOptionsAsync?: () => Promise<EnumOptionsType<string>[]>;
9
+ getEnumOptionsAsync?: () => Promise<EnumOptionsType<T>[]>;
10
10
  };
11
- declare type SingleSelectWidgetProps = Omit<WidgetProps<JSONSchemaEnum>, "value" | "onChange"> & {
12
- value?: string;
13
- onChange: (value?: string) => void;
14
- } & SelectWidgetCustomProps;
15
- declare type MultiSelectWidgetProps = Omit<WidgetProps<JSONSchemaArray<JSONSchemaEnumOneOf>>, "value" | "onChange"> & {
16
- value?: string[];
17
- onChange: (value?: string[]) => void;
18
- } & SelectWidgetCustomProps;
19
- declare type SelectWidgetProps = SingleSelectWidgetProps | MultiSelectWidgetProps;
20
- export default function SelectWidget(props: SelectWidgetProps): JSX.Element | null;
21
- export {};
11
+ declare type SingleSelectWidgetProps<T extends string | number> = Omit<WidgetProps<JSONSchemaEnum>, "value" | "onChange"> & {
12
+ value?: T;
13
+ onChange: (value?: T) => void;
14
+ } & SelectWidgetCustomProps<T>;
15
+ declare type MultiSelectWidgetProps<T extends string | number> = Omit<WidgetProps<JSONSchemaArray<JSONSchemaEnumOneOf>>, "value" | "onChange"> & {
16
+ value?: T[];
17
+ onChange: (value?: T[]) => void;
18
+ } & SelectWidgetCustomProps<T>;
19
+ declare type SelectWidgetProps<T extends string | number> = SingleSelectWidgetProps<T> | MultiSelectWidgetProps<T>;
20
+ declare const SelectWidget: <T extends string | number>(props: SelectWidgetProps<T>) => JSX.Element;
21
+ export default SelectWidget;
22
+ export declare function SearchableDrowndown<T extends string | number>(props: SingleSelectWidgetProps<T>): JSX.Element;
@@ -31,8 +31,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.SearchableDrowndown = void 0;
34
35
  const React = __importStar(require("react"));
35
- // import * as PropTypes from "prop-types";
36
36
  const ReactContext_1 = __importDefault(require("../../ReactContext"));
37
37
  const utils_1 = require("../../utils");
38
38
  const react_1 = require("react");
@@ -71,9 +71,9 @@ function getEnumOptions(enumOptions, uiSchema, includeEmpty = true) {
71
71
  : [{ value: undefined, label: "" }, ...enums];
72
72
  }
73
73
  }
74
- function SelectWidget(props) {
75
- return props.schema.type === "array" ? React.createElement(SearchableMultiDrowndown, Object.assign({}, props)) : React.createElement(SearchableDrowndown, Object.assign({}, props));
76
- }
74
+ const SelectWidget = (props) => props.schema.type === "array"
75
+ ? React.createElement(SearchableMultiDrowndown, Object.assign({}, props))
76
+ : React.createElement(SearchableDrowndown, Object.assign({}, props));
77
77
  exports.default = SelectWidget;
78
78
  function SearchableDrowndown(props) {
79
79
  const { id, disabled, readonly, value, uiSchema, options, onChange, includeEmpty = true } = props;
@@ -109,11 +109,14 @@ function SearchableDrowndown(props) {
109
109
  setActiveIdx(0);
110
110
  }, [setActiveIdx]);
111
111
  const onItemSelected = react_1.useCallback((item) => {
112
+ if (item.value === value) {
113
+ return;
114
+ }
112
115
  onChange(item.value);
113
116
  setFilterTerm(undefined);
114
117
  setActiveIdx(enumOptions.findIndex(enu => enu.value === item.value));
115
118
  hide();
116
- }, [enumOptions, hide, onChange, setActiveIdx]);
119
+ }, [enumOptions, hide, onChange, setActiveIdx, value]);
117
120
  const onBlur = react_1.useCallback((e) => {
118
121
  // Fixes the issue that when user tries to click an enum item, `setOpen(false)`
119
122
  // hides the enum list, so the elem list item is hidden before the click, thus never
@@ -170,25 +173,19 @@ function SearchableDrowndown(props) {
170
173
  return (React.createElement(ListItem, { key: (_a = oneOf.value) !== null && _a !== void 0 ? _a : "", onSelected: onItemSelected, active: idx === activeIdx }, oneOf));
171
174
  }))));
172
175
  }
176
+ exports.SearchableDrowndown = SearchableDrowndown;
173
177
  function SearchableMultiDrowndown(props) {
174
178
  const { id, disabled, readonly, value, uiSchema, options, onChange, getEnumOptionsAsync } = props;
175
179
  const [enumOptions, setEnumOptions] = react_1.useState(getEnumOptionsAsync
176
180
  ? undefined
177
181
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
178
182
  : getEnumOptions(options.enumOptions, uiSchema, false));
179
- const [inputValue, setUserTypedInputValue] = react_1.useState("");
180
- const [filterTerm, setFilterTerm] = react_1.useState("");
183
+ const [filterTerm, setFilterTerm] = react_1.useState();
181
184
  const [loading, setLoading] = react_1.useState(undefined);
182
185
  const [isOpen, show, hide] = utils_1.useBooleanSetter(false);
186
+ const inputValue = filterTerm !== null && filterTerm !== void 0 ? filterTerm : "";
183
187
  const containerRef = React.useRef(null);
184
188
  const inputRef = React.useRef(null);
185
- const onInputChange = react_1.useCallback((e) => {
186
- const { value } = e.target;
187
- setUserTypedInputValue(value);
188
- }, []);
189
- React.useEffect(() => {
190
- setFilterTerm(inputValue);
191
- }, [inputValue]);
192
189
  const filteredEnums = React.useMemo(() => {
193
190
  if (!enumOptions) {
194
191
  return [];
@@ -196,20 +193,27 @@ function SearchableMultiDrowndown(props) {
196
193
  const notAlreadySelected = (value === null || value === void 0 ? void 0 : value.length)
197
194
  ? enumOptions.filter(({ value: enumValue }) => !value.includes(enumValue))
198
195
  : enumOptions;
199
- return filterTerm !== ""
196
+ return filterTerm !== undefined && filterTerm !== ""
200
197
  ? notAlreadySelected.filter(({ label, value: enumValue }) => (value || []).includes(enumValue)
201
198
  || label.toLowerCase().match(filterTerm.toLowerCase()))
202
199
  : notAlreadySelected;
203
200
  }, [filterTerm, enumOptions, value]);
204
201
  const [activeIdx, activeIdxUp, activeIdxDown, setActiveIdx] = useRangeIncrementor((filteredEnums || []).length, undefined);
202
+ const onInputChange = react_1.useCallback((e) => {
203
+ const { value } = e.target;
204
+ setFilterTerm(value);
205
+ setActiveIdx(undefined);
206
+ }, [setActiveIdx]);
205
207
  const onItemSelected = react_1.useCallback((item) => {
206
208
  var _a;
207
209
  onChange([...(value || []), item.value]);
210
+ setFilterTerm(undefined);
208
211
  (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
209
212
  setActiveIdx(undefined);
210
213
  }, [onChange, setActiveIdx, value]);
211
214
  const onItemSelectedByBlur = react_1.useCallback((item) => {
212
215
  onChange([...(value || []), item.value]);
216
+ setFilterTerm(undefined);
213
217
  setActiveIdx(undefined);
214
218
  }, [onChange, setActiveIdx, value]);
215
219
  const [isFocused, setFocused, setBlurred] = utils_1.useBooleanSetter(false);
@@ -267,7 +271,7 @@ function SearchableMultiDrowndown(props) {
267
271
  onItemSelectedByBlur(filteredEnums[activeIdx]);
268
272
  }
269
273
  else {
270
- setUserTypedInputValue("");
274
+ setFilterTerm(undefined);
271
275
  }
272
276
  }, [activeIdx, filteredEnums, hide, onItemSelectedByBlur, setBlurred]);
273
277
  const onKeyDown = react_1.useCallback((e) => {
@@ -285,8 +289,9 @@ function SearchableMultiDrowndown(props) {
285
289
  e.preventDefault();
286
290
  break;
287
291
  case "Escape":
288
- setUserTypedInputValue("");
289
- setActiveIdx(undefined);
292
+ if (activeIdx !== undefined && filteredEnums) {
293
+ onItemSelected(filteredEnums[activeIdx]);
294
+ }
290
295
  e.preventDefault();
291
296
  break;
292
297
  case "Backspace":
@@ -297,12 +302,16 @@ function SearchableMultiDrowndown(props) {
297
302
  }
298
303
  break;
299
304
  }
300
- }, [activeIdx, activeIdxDown, activeIdxUp, filteredEnums, inputValue, onChange, onItemSelected, setActiveIdx, value]);
305
+ }, [activeIdx, activeIdxDown, activeIdxUp, filteredEnums, inputValue, onChange, onItemSelected, value]);
301
306
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
302
307
  const onDelete = react_1.useCallback((enu) => {
308
+ var _a;
303
309
  const filtered = value.filter(v => v !== enu.value);
304
310
  onChange(value.length === 0 ? undefined : filtered);
305
- }, [onChange, value]);
311
+ if (isOpen) {
312
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
313
+ }
314
+ }, [isOpen, onChange, value]);
306
315
  /* eslint-enable @typescript-eslint/no-non-null-assertion */
307
316
  const redirectFocusToInput = react_1.useCallback((e) => {
308
317
  var _a;
@@ -315,7 +324,7 @@ function SearchableMultiDrowndown(props) {
315
324
  const wrapperClassNames = utils_1.classNames("laji-form-multiselect-input-wrapper", isOpen && "laji-form-multiselect-input-wrapper-focus", isOpen && "input-highlight", (readonly || disabled) && "laji-form-multiselect-input-wrapper-readonly");
316
325
  return (React.createElement("div", { onBlur: onBlur, onKeyDown: onKeyDown, ref: containerRef, className: "laji-form-multiselect", style: { position: "relative" } },
317
326
  React.createElement("div", { className: wrapperClassNames, tabIndex: -1, onFocus: redirectFocusToInput, style: { cursor: "text" } },
318
- React.createElement("ul", { style: { listStyle: "none", display: "inline-block" } }, value && enumOptions && value.map(v => enumOptions.find(({ value: _value }) => v === _value) || ({ value: v, label: v }))
327
+ React.createElement("ul", { style: { listStyle: "none", display: "inline-block" } }, value && enumOptions && value.map(v => enumOptions.find(({ value: _value }) => v === _value) || ({ value: v, label: "" + v }))
319
328
  .map(enu => React.createElement(SelectedMultiValue, { key: enu.value, onDelete: onDelete, readonly: readonly || disabled }, enu))),
320
329
  React.createElement("input", { disabled: disabled || readonly, id: id, onFocus: onFocus, value: inputValue, onChange: onInputChange, autoComplete: "off", ref: inputRef }),
321
330
  loading && React.createElement(react_spinner_1.default, null)),
@@ -325,12 +334,12 @@ function SearchableMultiDrowndown(props) {
325
334
  return (React.createElement(ListItem, { key: (_a = oneOf.value) !== null && _a !== void 0 ? _a : "", onSelected: onItemSelected, active: idx === activeIdx }, oneOf));
326
335
  }))));
327
336
  }
328
- const SelectedMultiValue = ({ children: enu, onDelete, readonly }) => {
337
+ function SelectedMultiValue({ children: enu, onDelete, readonly }) {
329
338
  const onDeleteClick = react_1.useCallback(() => !readonly && onDelete(enu), [enu, onDelete, readonly]);
330
339
  return (React.createElement("li", { key: enu.value, style: { display: "inline-table" }, className: "laji-form-multiselect-tag" },
331
340
  enu.label,
332
341
  React.createElement("span", { tabIndex: readonly ? undefined : 0, role: readonly ? undefined : "button", onClick: onDeleteClick }, "\u00D7")));
333
- };
342
+ }
334
343
  const Caret = () => (React.createElement("div", { className: "laji-form-dropdown-caret-container", style: { position: "absolute", pointerEvents: "none" } },
335
344
  React.createElement("span", { className: "laji-form-dropdown-caret" },
336
345
  React.createElement("img", { src: "https://cdn.laji.fi/images/icons/caret-down.svg" }))));
@@ -340,6 +349,8 @@ function ListItem({ onSelected, active, children }) {
340
349
  }, [children, onSelected]);
341
350
  return (React.createElement("div", { onClick: onClick, className: utils_1.classNames("laji-form-dropdown-item", active && "active"), tabIndex: -1 }, children.label));
342
351
  }
343
- const getDefaultActiveIdx = (filteredEnums, value) => value !== undefined && value !== ""
344
- ? filteredEnums.findIndex(item => item.value === value)
345
- : 0;
352
+ function getDefaultActiveIdx(filteredEnums, value) {
353
+ return value !== undefined && value !== ""
354
+ ? filteredEnums.findIndex(item => item.value === value)
355
+ : 0;
356
+ }