@luomus/laji-form 15.1.55 → 15.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/laji-form.js +1 -1
- package/dist/styles.css +6 -3
- package/lib/ReactContext.js +20 -1
- package/lib/components/LajiForm.js +47 -25
- package/lib/components/VirtualSchemaField.d.ts +1 -1
- package/lib/components/VirtualSchemaField.js +25 -3
- package/lib/components/components/Affix.d.ts +38 -0
- package/lib/components/components/Affix.js +155 -0
- package/lib/components/components/Button.d.ts +14 -0
- package/lib/components/components/Button.js +46 -0
- package/lib/components/components/DeleteButton.d.ts +36 -0
- package/lib/components/components/DeleteButton.js +132 -0
- package/lib/components/components/ErrorPanel.d.ts +29 -0
- package/lib/components/components/ErrorPanel.js +75 -0
- package/lib/components/components/FailedBackgroundJobsPanel.d.ts +24 -0
- package/lib/components/components/FailedBackgroundJobsPanel.js +97 -0
- package/lib/components/components/FetcherInput.d.ts +14 -0
- package/lib/components/components/FetcherInput.js +62 -0
- package/lib/components/components/Fullscreen.d.ts +14 -0
- package/lib/components/components/Fullscreen.js +43 -0
- package/lib/components/components/GlyphButton.d.ts +10 -0
- package/lib/components/components/GlyphButton.js +46 -0
- package/lib/components/components/Help.d.ts +19 -0
- package/lib/components/components/Help.js +54 -0
- package/lib/components/components/Label.d.ts +12 -0
- package/lib/components/components/Label.js +59 -0
- package/lib/components/components/OverlayTrigger.d.ts +36 -0
- package/lib/components/components/OverlayTrigger.js +90 -0
- package/lib/components/components/Stretch.d.ts +36 -0
- package/lib/components/components/Stretch.js +115 -0
- package/lib/components/components/TooltipComponent.d.ts +12 -0
- package/lib/components/components/TooltipComponent.js +38 -0
- package/lib/components/components/index.d.ts +13 -0
- package/lib/components/components/index.js +25 -0
- package/lib/components/fields/AnnotationField.js +30 -8
- package/lib/components/fields/AnyToBooleanField.js +21 -2
- package/lib/components/fields/ArrayBulkField.js +25 -3
- package/lib/components/fields/ArrayCombinerField.js +27 -5
- package/lib/components/fields/ArrayField.js +27 -5
- package/lib/components/fields/ArrayPropertySumField.js +25 -3
- package/lib/components/fields/AsArrayField.js +25 -3
- package/lib/components/fields/AudioArrayField.js +28 -6
- package/lib/components/fields/AutoArrayField.js +25 -3
- package/lib/components/fields/AutosuggestField.js +27 -5
- package/lib/components/fields/CombinedValueDisplayField.js +25 -3
- package/lib/components/fields/CondensedObjectField.d.ts +1 -1
- package/lib/components/fields/CondensedObjectField.js +29 -7
- package/lib/components/fields/ConditionalOnChangeField.js +25 -3
- package/lib/components/fields/ConditionalUiSchemaField.js +27 -5
- package/lib/components/fields/ContextInjectionField.js +26 -4
- package/lib/components/fields/DataLeakerField.js +25 -3
- package/lib/components/fields/DefaultValueArrayField.js +26 -4
- package/lib/components/fields/DependentBooleanField.js +26 -4
- package/lib/components/fields/DependentDisableField.js +26 -4
- package/lib/components/fields/EnumRangeArrayField.js +25 -3
- package/lib/components/fields/ExtraLabelRowField.d.ts +1 -3
- package/lib/components/fields/ExtraLabelRowField.js +29 -12
- package/lib/components/fields/FakePropertyField.js +25 -3
- package/lib/components/fields/FilterArrayField.js +25 -3
- package/lib/components/fields/FlatField.js +26 -4
- package/lib/components/fields/GeocoderField.js +32 -10
- package/lib/components/fields/GridLayoutField.js +21 -2
- package/lib/components/fields/HiddenField.js +21 -2
- package/lib/components/fields/HiddenWithTextField.js +21 -2
- package/lib/components/fields/ImageArrayField.js +41 -19
- package/lib/components/fields/ImageDisplayField.js +26 -4
- package/lib/components/fields/InitiallyHiddenField.js +26 -4
- package/lib/components/fields/InjectDefaultValueField.js +26 -4
- package/lib/components/fields/InjectField.js +25 -3
- package/lib/components/fields/InputWithDefaultValueButtonField.js +27 -5
- package/lib/components/fields/LocalityField.js +27 -5
- package/lib/components/fields/LocationChooserField.js +27 -5
- package/lib/components/fields/MapArrayField.js +33 -12
- package/lib/components/fields/MapField.js +29 -8
- package/lib/components/fields/MultiAnyToBooleanField.js +26 -4
- package/lib/components/fields/MultiArrayField.js +26 -4
- package/lib/components/fields/MultiLanguageField.js +25 -3
- package/lib/components/fields/MultiTagArrayField.d.ts +2 -5
- package/lib/components/fields/MultiTagArrayField.js +34 -19
- package/lib/components/fields/NamedPlaceChooserField.js +31 -9
- package/lib/components/fields/NamedPlaceSaverField.js +33 -11
- package/lib/components/fields/NestField.js +28 -6
- package/lib/components/fields/ObjectField.js +24 -2
- package/lib/components/fields/PdfArrayField.js +20 -1
- package/lib/components/fields/PrefillingArrayField.js +25 -3
- package/lib/components/fields/SchemaField.js +20 -1
- package/lib/components/fields/ScopeField.js +30 -8
- package/lib/components/fields/SectionArrayField.js +34 -13
- package/lib/components/fields/SelectTreeField.js +20 -1
- package/lib/components/fields/SingleActiveArrayField.js +41 -26
- package/lib/components/fields/SingleItemArrayField.js +25 -3
- package/lib/components/fields/SortArrayField.js +31 -9
- package/lib/components/fields/SplitField.js +26 -4
- package/lib/components/fields/StringToArrayField.js +25 -3
- package/lib/components/fields/SumField.js +25 -3
- package/lib/components/fields/TableField.js +26 -4
- package/lib/components/fields/TagArrayField.d.ts +1 -1
- package/lib/components/fields/TagArrayField.js +28 -6
- package/lib/components/fields/ToggleAdditionalArrayFieldsField.js +26 -4
- package/lib/components/fields/UiFieldApplierField.js +25 -3
- package/lib/components/fields/UiFieldMapperArrayField.js +25 -3
- package/lib/components/fields/UnitCountShorthandField.js +29 -7
- package/lib/components/fields/UnitListShorthandArrayField.js +26 -4
- package/lib/components/fields/UnitShorthandField.js +27 -5
- package/lib/components/templates/ArrayFieldTemplate.js +27 -5
- package/lib/components/templates/BaseInputTemplate.js +24 -2
- package/lib/components/templates/DescriptionField.js +21 -2
- package/lib/components/templates/ErrorListTemplate.js +24 -2
- package/lib/components/templates/FieldTemplate.js +24 -2
- package/lib/components/templates/ObjectFieldTemplate.js +24 -2
- package/lib/components/templates/TitleField.js +25 -3
- package/lib/components/widgets/AnyToBooleanWidget.js +21 -2
- package/lib/components/widgets/AutosuggestWidget.js +33 -7
- package/lib/components/widgets/CheckboxWidget.js +25 -3
- package/lib/components/widgets/DateTimeWidget.d.ts +1 -1
- package/lib/components/widgets/DateTimeWidget.js +38 -16
- package/lib/components/widgets/DateWidget.js +27 -5
- package/lib/components/widgets/HiddenWidget.js +21 -2
- package/lib/components/widgets/ImageSelectWidget.js +28 -6
- package/lib/components/widgets/InformalTaxonGroupChooserWidget.js +30 -8
- package/lib/components/widgets/InputGroupWidget.js +27 -5
- package/lib/components/widgets/InputWithDefaultValueButtonWidget.js +26 -4
- package/lib/components/widgets/NumberWidget.js +25 -3
- package/lib/components/widgets/PlainTextWidget.js +21 -2
- package/lib/components/widgets/SelectWidget.js +48 -26
- package/lib/components/widgets/SeparatedDateTimeWidget.js +28 -6
- package/lib/components/widgets/TaxonImageWidget.js +21 -2
- package/lib/components/widgets/TextSelectWidget.js +27 -5
- package/lib/components/widgets/TextareaWidget.js +26 -4
- package/lib/components/widgets/TimeWidget.js +28 -6
- package/lib/components/widgets/URLWidget.js +21 -2
- package/lib/components/widgets/UpperCaseWidget.js +25 -3
- package/lib/index.js +24 -2
- package/lib/services/id-service.d.ts +1 -1
- package/lib/services/id-service.js +1 -1
- package/lib/services/key-handler-service.js +4 -1
- package/lib/services/singleton-map-service.js +4 -1
- package/lib/services/submit-hook-service.d.ts +4 -2
- package/lib/services/submit-hook-service.js +1 -0
- package/lib/themes/bs3.js +94 -72
- package/lib/themes/bs5.js +20 -1
- package/lib/themes/stub.js +20 -1
- package/lib/themes/theme.d.ts +5 -3
- package/lib/utils.js +27 -5
- package/lib/validation.js +20 -1
- package/package.json +1 -1
- package/test-export/test-utils.js +20 -1
- package/lib/components/components.d.ts +0 -129
- package/lib/components/components.js +0 -633
|
@@ -1,23 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
2
14
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
19
|
};
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
8
30
|
var DateTimeWidget_1;
|
|
9
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
32
|
exports.YEAR_MATCH = void 0;
|
|
11
|
-
const React = require("react");
|
|
33
|
+
const React = __importStar(require("react"));
|
|
12
34
|
const react_dom_1 = require("react-dom");
|
|
13
|
-
const PropTypes = require("prop-types");
|
|
14
|
-
const DateTimePicker = require("react-widgets/lib/DateTimePicker");
|
|
15
|
-
const
|
|
16
|
-
const
|
|
35
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
36
|
+
const DateTimePicker = __importStar(require("react-widgets/lib/DateTimePicker"));
|
|
37
|
+
const moment_1 = __importDefault(require("moment"));
|
|
38
|
+
const react_widgets_moment_1 = __importDefault(require("react-widgets-moment"));
|
|
17
39
|
const localizers_1 = require("react-widgets/lib/util/localizers");
|
|
18
40
|
const utils_1 = require("../../utils");
|
|
19
|
-
const BaseComponent_1 = require("../BaseComponent");
|
|
20
|
-
const ReactContext_1 = require("../../ReactContext");
|
|
41
|
+
const BaseComponent_1 = __importDefault(require("../BaseComponent"));
|
|
42
|
+
const ReactContext_1 = __importDefault(require("../../ReactContext"));
|
|
21
43
|
const DATE_TIME_SEPARATOR = ", ";
|
|
22
44
|
exports.YEAR_MATCH = /^\d{4}$/;
|
|
23
45
|
let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Component {
|
|
@@ -32,7 +54,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
32
54
|
const { allowOnlyYear } = utils_1.getUiOptions(this.props);
|
|
33
55
|
const hasTime = value.includes(DATE_TIME_SEPARATOR) || this.state.time && !this.state.calendar;
|
|
34
56
|
const onlyYear = allowOnlyYear && this.state.calendar && value.match(exports.YEAR_MATCH);
|
|
35
|
-
let momentValue =
|
|
57
|
+
let momentValue = moment_1.default(value, onlyYear ? "YYYY" : this.state.format);
|
|
36
58
|
if (!momentValue.isValid()) {
|
|
37
59
|
return "";
|
|
38
60
|
}
|
|
@@ -43,7 +65,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
43
65
|
: momentValue.format("YYYY-MM-DD");
|
|
44
66
|
this.timeWritten = hasTime;
|
|
45
67
|
this.onlyYearWritten = onlyYear;
|
|
46
|
-
return onlyYear ? isoValue :
|
|
68
|
+
return onlyYear ? isoValue : moment_1.default(isoValue).toDate();
|
|
47
69
|
};
|
|
48
70
|
this.onChange = (value) => {
|
|
49
71
|
this.props.onChange(value, !!"force");
|
|
@@ -65,7 +87,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
65
87
|
!utils_1.isDescendant(react_dom_1.findDOMNode(this.containerRef), document.activeElement) && this.setState({ textInputFocused: false });
|
|
66
88
|
};
|
|
67
89
|
this.onDateTimePickerChange = (value) => {
|
|
68
|
-
const momentValue =
|
|
90
|
+
const momentValue = moment_1.default(value);
|
|
69
91
|
let formattedValue = momentValue.format("YYYY-MM-DDTHH:mm");
|
|
70
92
|
if (this.onlyYearWritten) {
|
|
71
93
|
formattedValue = value;
|
|
@@ -88,10 +110,10 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
88
110
|
return time ? `${date}T${time}` : date;
|
|
89
111
|
};
|
|
90
112
|
this.setToday = () => {
|
|
91
|
-
this.onChange(this.getDateWithCurrentTime(
|
|
113
|
+
this.onChange(this.getDateWithCurrentTime(moment_1.default().format("YYYY-MM-DD")));
|
|
92
114
|
};
|
|
93
115
|
this.setYesterday = () => {
|
|
94
|
-
this.onChange(this.getDateWithCurrentTime(
|
|
116
|
+
this.onChange(this.getDateWithCurrentTime(moment_1.default().subtract(1, "d").format("YYYY-MM-DD")));
|
|
95
117
|
};
|
|
96
118
|
this.setSameAsToday = () => {
|
|
97
119
|
const formData = this.props.formContext.services.rootInstance.getFormData();
|
|
@@ -118,7 +140,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
118
140
|
this.onChange(date.add(1, "y").format("YYYY-MM-DD"));
|
|
119
141
|
}
|
|
120
142
|
};
|
|
121
|
-
|
|
143
|
+
react_widgets_moment_1.default(moment_1.default);
|
|
122
144
|
}
|
|
123
145
|
componentDidMount() {
|
|
124
146
|
this.props.formContext.services.focus.addFocusHandler(this.props.id, this.focus);
|
|
@@ -129,7 +151,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
129
151
|
getStateFromProps(props) {
|
|
130
152
|
const { lang, translations } = props.formContext;
|
|
131
153
|
const formatLang = lang === "sv" ? "fi" : lang === "en" ? "en-gb" : lang;
|
|
132
|
-
let localeFormats =
|
|
154
|
+
let localeFormats = moment_1.default().locale(formatLang)._locale._longDateFormat;
|
|
133
155
|
let { allowOnlyYear, dateFormat = "" } = utils_1.getUiOptions(props);
|
|
134
156
|
let timeFormat = "";
|
|
135
157
|
let placeholder = "";
|
|
@@ -172,7 +194,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
172
194
|
render() {
|
|
173
195
|
const { value, readonly, disabled } = this.props;
|
|
174
196
|
const { translations, lang } = this.props.formContext;
|
|
175
|
-
const momentValue =
|
|
197
|
+
const momentValue = moment_1.default(value);
|
|
176
198
|
if (!this.state.textInputFocused && value !== null && !momentValue.isValid()) {
|
|
177
199
|
const { TextWidget } = this.props.registry.widgets;
|
|
178
200
|
return React.createElement(TextWidget, Object.assign({}, this.props, { onFocus: this.onTextWidgetFocus }));
|
|
@@ -241,7 +263,7 @@ let DateTimeWidget = DateTimeWidget_1 = class DateTimeWidget extends React.Compo
|
|
|
241
263
|
if (!value) {
|
|
242
264
|
return;
|
|
243
265
|
}
|
|
244
|
-
const date =
|
|
266
|
+
const date = moment_1.default(value);
|
|
245
267
|
if (date.isValid()) {
|
|
246
268
|
return date;
|
|
247
269
|
}
|
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
5
|
-
const
|
|
6
|
-
const DateTimeWidget_1 = require("./DateTimeWidget");
|
|
25
|
+
const React = __importStar(require("react"));
|
|
26
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
27
|
+
const moment_1 = __importDefault(require("moment"));
|
|
28
|
+
const DateTimeWidget_1 = __importStar(require("./DateTimeWidget"));
|
|
7
29
|
const utils_1 = require("../../utils");
|
|
8
|
-
const format = (allowOnlyYear, value) =>
|
|
30
|
+
const format = (allowOnlyYear, value) => moment_1.default(value).format(allowOnlyYear && value.match(DateTimeWidget_1.YEAR_MATCH)
|
|
9
31
|
? "YYYY"
|
|
10
32
|
: "YYYY-MM-DD");
|
|
11
33
|
const DateWidget = (props) => {
|
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
22
|
+
const React = __importStar(require("react"));
|
|
23
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
5
24
|
function HiddenWidget({ id, value }) {
|
|
6
25
|
return (React.createElement("input", { type: "hidden", id: id, value: typeof value === "undefined" ? "" : value }));
|
|
7
26
|
}
|
|
@@ -1,18 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
2
14
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
19
|
};
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
8
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const React = require("react");
|
|
10
|
-
const PropTypes = require("prop-types");
|
|
11
|
-
const Context_1 = require("../../Context");
|
|
31
|
+
const React = __importStar(require("react"));
|
|
32
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
33
|
+
const Context_1 = __importDefault(require("../../Context"));
|
|
12
34
|
const utils_1 = require("../../utils");
|
|
13
|
-
const react_inlinesvg_1 = require("react-inlinesvg");
|
|
14
|
-
const SelectWidget_1 = require("./SelectWidget");
|
|
15
|
-
const BaseComponent_1 = require("../BaseComponent");
|
|
35
|
+
const react_inlinesvg_1 = __importDefault(require("react-inlinesvg"));
|
|
36
|
+
const SelectWidget_1 = __importDefault(require("./SelectWidget"));
|
|
37
|
+
const BaseComponent_1 = __importDefault(require("../BaseComponent"));
|
|
16
38
|
let ImageSelectWidget = class ImageSelectWidget extends React.Component {
|
|
17
39
|
constructor(props) {
|
|
18
40
|
super(props);
|
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
2
14
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
19
|
};
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
27
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
28
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
|
+
};
|
|
8
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
31
|
exports.InformalTaxonGroupChooser = exports.getInformalGroups = void 0;
|
|
10
|
-
const React = require("react");
|
|
11
|
-
const PropTypes = require("prop-types");
|
|
32
|
+
const React = __importStar(require("react"));
|
|
33
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
12
34
|
const components_1 = require("../components");
|
|
13
|
-
const Context_1 = require("../../Context");
|
|
14
|
-
const ReactContext_1 = require("../../ReactContext");
|
|
15
|
-
const
|
|
16
|
-
const BaseComponent_1 = require("../BaseComponent");
|
|
35
|
+
const Context_1 = __importDefault(require("../../Context"));
|
|
36
|
+
const ReactContext_1 = __importDefault(require("../../ReactContext"));
|
|
37
|
+
const react_spinner_1 = __importDefault(require("react-spinner"));
|
|
38
|
+
const BaseComponent_1 = __importDefault(require("../BaseComponent"));
|
|
17
39
|
const utils_1 = require("../../utils");
|
|
18
40
|
let InformalTaxonGroupChooserWidget = class InformalTaxonGroupChooserWidget extends React.Component {
|
|
19
41
|
constructor(props) {
|
|
@@ -81,7 +103,7 @@ let InformalTaxonGroupChooserWidget = class InformalTaxonGroupChooserWidget exte
|
|
|
81
103
|
React.createElement("span", null, this.props.formContext.translations.PickInformalTaxonGroup))
|
|
82
104
|
: (React.createElement("div", { className: "informal-group-chooser-button-content" },
|
|
83
105
|
React.createElement("div", { className: `informal-group-image ${imageID}` }),
|
|
84
|
-
this.state.informalTaxonGroup ? React.createElement("span", null, this.state.informalTaxonGroup.name) : React.createElement(
|
|
106
|
+
this.state.informalTaxonGroup ? React.createElement("span", null, this.state.informalTaxonGroup.name) : React.createElement(react_spinner_1.default, null),
|
|
85
107
|
React.createElement("div", { className: "close", onClick: this.onClear }, "\u00D7")));
|
|
86
108
|
return (React.createElement(components_1.TooltipComponent, { tooltip: this.state.informalTaxonGroup && this.state.informalTaxonGroup.name },
|
|
87
109
|
React.createElement("div", { className: "informal-taxon-groups-list" },
|
|
@@ -226,7 +248,7 @@ class InformalTaxonGroupChooser extends React.Component {
|
|
|
226
248
|
!rootOnly && (React.createElement(Breadcrumb, null, path.map(id => React.createElement(Breadcrumb.Item, { key: id === undefined ? "root" : id, onClick: this.onSubgroupSelected(id) }, id === undefined ? translations.All : informalTaxonGroupsById[id].name)))),
|
|
227
249
|
informalTaxonGroups
|
|
228
250
|
? React.createElement(GroupsContainer, null, Object.keys(informalTaxonGroups).map(Item))
|
|
229
|
-
: React.createElement(
|
|
251
|
+
: React.createElement(react_spinner_1.default, null)));
|
|
230
252
|
}
|
|
231
253
|
}
|
|
232
254
|
exports.InformalTaxonGroupChooser = InformalTaxonGroupChooser;
|
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
5
|
-
const BaseInputTemplate_1 = require("../templates/BaseInputTemplate");
|
|
6
|
-
const ReactContext_1 = require("../../ReactContext");
|
|
25
|
+
const React = __importStar(require("react"));
|
|
26
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
27
|
+
const BaseInputTemplate_1 = __importDefault(require("../templates/BaseInputTemplate"));
|
|
28
|
+
const ReactContext_1 = __importDefault(require("../../ReactContext"));
|
|
7
29
|
const utils_1 = require("../../utils");
|
|
8
|
-
const TextareaWidget_1 = require("./TextareaWidget");
|
|
30
|
+
const TextareaWidget_1 = __importDefault(require("./TextareaWidget"));
|
|
9
31
|
class InputGroupWidget extends React.Component {
|
|
10
32
|
render() {
|
|
11
33
|
const { InputGroup } = this.context.theme;
|
|
@@ -1,9 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
5
|
-
const BaseInputTemplate_1 = require("../templates/BaseInputTemplate");
|
|
6
|
-
const ReactContext_1 = require("../../ReactContext");
|
|
25
|
+
const React = __importStar(require("react"));
|
|
26
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
27
|
+
const BaseInputTemplate_1 = __importDefault(require("../templates/BaseInputTemplate"));
|
|
28
|
+
const ReactContext_1 = __importDefault(require("../../ReactContext"));
|
|
7
29
|
const utils_1 = require("../../utils");
|
|
8
30
|
class InputWithDefaultValueButtonWidget extends React.Component {
|
|
9
31
|
constructor() {
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
5
|
-
const BaseInputTemplate_1 = require("../templates/BaseInputTemplate");
|
|
25
|
+
const React = __importStar(require("react"));
|
|
26
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
27
|
+
const BaseInputTemplate_1 = __importDefault(require("../templates/BaseInputTemplate"));
|
|
6
28
|
class NumberWidget extends React.Component {
|
|
7
29
|
constructor() {
|
|
8
30
|
super(...arguments);
|
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const React = require("react");
|
|
4
|
-
const PropTypes = require("prop-types");
|
|
22
|
+
const React = __importStar(require("react"));
|
|
23
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
5
24
|
const utils_1 = require("../../utils");
|
|
6
25
|
function PlainTextWidget(props) {
|
|
7
26
|
const { id, value } = props;
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
22
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
23
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,14 +27,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
27
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
28
|
});
|
|
10
29
|
};
|
|
30
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
|
+
};
|
|
11
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const React = require("react");
|
|
34
|
+
const React = __importStar(require("react"));
|
|
13
35
|
// import * as PropTypes from "prop-types";
|
|
14
|
-
const ReactContext_1 = require("../../ReactContext");
|
|
36
|
+
const ReactContext_1 = __importDefault(require("../../ReactContext"));
|
|
15
37
|
const utils_1 = require("../../utils");
|
|
16
38
|
const react_1 = require("react");
|
|
17
39
|
const react_dom_1 = require("react-dom");
|
|
18
|
-
const
|
|
40
|
+
const react_spinner_1 = __importDefault(require("react-spinner"));
|
|
19
41
|
const useRangeIncrementor = (length, defaultIdx) => {
|
|
20
42
|
const [idx, _setIdx] = react_1.useState(defaultIdx);
|
|
21
43
|
const setIdx = react_1.useCallback((idx) => {
|
|
@@ -69,12 +91,12 @@ function SearchableDrowndown(props) {
|
|
|
69
91
|
: "", [enumOptions]);
|
|
70
92
|
const [filterTerm, setFilterTerm] = react_1.useState(undefined);
|
|
71
93
|
const [isOpen, show, hide] = utils_1.useBooleanSetter(false);
|
|
72
|
-
const
|
|
94
|
+
const filteredEnums = react_1.useMemo(() => {
|
|
73
95
|
return filterTerm !== undefined && filterTerm !== ""
|
|
74
96
|
? enumOptions.filter(({ label }) => label.toLowerCase().match(filterTerm.toLowerCase()))
|
|
75
97
|
: enumOptions;
|
|
76
98
|
}, [filterTerm, enumOptions]);
|
|
77
|
-
const [activeIdx, activeIdxUp, activeIdxDown, setActiveIdx] = useRangeIncrementor((
|
|
99
|
+
const [activeIdx, activeIdxUp, activeIdxDown, setActiveIdx] = useRangeIncrementor((filteredEnums || []).length, getDefaultActiveIdx(filteredEnums, value));
|
|
78
100
|
const inputValue = filterTerm !== null && filterTerm !== void 0 ? filterTerm : getLabelFromValue(value);
|
|
79
101
|
const showAndSelectText = react_1.useCallback(() => {
|
|
80
102
|
var _a;
|
|
@@ -89,9 +111,9 @@ function SearchableDrowndown(props) {
|
|
|
89
111
|
const onItemSelected = react_1.useCallback((item) => {
|
|
90
112
|
onChange(item.value);
|
|
91
113
|
setFilterTerm(undefined);
|
|
92
|
-
setActiveIdx(
|
|
114
|
+
setActiveIdx(enumOptions.findIndex(enu => enu.value === item.value));
|
|
93
115
|
hide();
|
|
94
|
-
}, [
|
|
116
|
+
}, [enumOptions, hide, onChange, setActiveIdx]);
|
|
95
117
|
const onBlur = react_1.useCallback((e) => {
|
|
96
118
|
// Fixes the issue that when user tries to click an enum item, `setOpen(false)`
|
|
97
119
|
// hides the enum list, so the elem list item is hidden before the click, thus never
|
|
@@ -99,14 +121,14 @@ function SearchableDrowndown(props) {
|
|
|
99
121
|
if (e.relatedTarget && utils_1.isDescendant(containerRef.current, e.relatedTarget)) {
|
|
100
122
|
return;
|
|
101
123
|
}
|
|
102
|
-
if (activeIdx !== undefined &&
|
|
103
|
-
onItemSelected(
|
|
124
|
+
if (activeIdx !== undefined && filteredEnums[activeIdx]) {
|
|
125
|
+
onItemSelected(filteredEnums[activeIdx]);
|
|
104
126
|
}
|
|
105
127
|
else {
|
|
106
128
|
setFilterTerm(undefined);
|
|
107
129
|
}
|
|
108
130
|
hide();
|
|
109
|
-
}, [activeIdx,
|
|
131
|
+
}, [activeIdx, filteredEnums, hide, onItemSelected]);
|
|
110
132
|
const onKeyDown = react_1.useCallback((e) => {
|
|
111
133
|
switch (e.key) {
|
|
112
134
|
case "ArrowDown":
|
|
@@ -128,22 +150,22 @@ function SearchableDrowndown(props) {
|
|
|
128
150
|
e.preventDefault();
|
|
129
151
|
break;
|
|
130
152
|
case "Enter":
|
|
131
|
-
if (activeIdx !== undefined &&
|
|
132
|
-
onItemSelected(
|
|
153
|
+
if (activeIdx !== undefined && filteredEnums) {
|
|
154
|
+
onItemSelected(filteredEnums[activeIdx]);
|
|
133
155
|
}
|
|
134
156
|
e.preventDefault();
|
|
135
157
|
break;
|
|
136
158
|
case "Escape":
|
|
137
159
|
setFilterTerm(undefined);
|
|
138
|
-
setActiveIdx(getDefaultActiveIdx(
|
|
160
|
+
setActiveIdx(getDefaultActiveIdx(filteredEnums, value));
|
|
139
161
|
e.preventDefault();
|
|
140
162
|
break;
|
|
141
163
|
}
|
|
142
|
-
}, [activeIdx, activeIdxDown, activeIdxUp,
|
|
164
|
+
}, [activeIdx, activeIdxDown, activeIdxUp, filteredEnums, isOpen, onItemSelected, setActiveIdx, showAndSelectText, value]);
|
|
143
165
|
return (React.createElement("div", { onBlur: onBlur, onKeyDown: onKeyDown, ref: containerRef, style: { position: "relative" }, className: "laji-form-dropdown-container" },
|
|
144
166
|
React.createElement(FormControl, { disabled: disabled || readonly, id: id, onClick: showAndSelectText, onFocus: showAndSelectText, value: inputValue, onChange: onInputChange, autoComplete: "off", ref: inputRef }),
|
|
145
167
|
React.createElement(Caret, null),
|
|
146
|
-
React.createElement("div", { className: `laji-form-dropdown laji-form-dropdown-${isOpen ? "open" : "closed"}`, style: { position: "absolute" }, tabIndex: -1, ref: dropdownRef },
|
|
168
|
+
React.createElement("div", { className: `laji-form-dropdown laji-form-dropdown-${isOpen ? "open" : "closed"}`, style: { position: "absolute" }, tabIndex: -1, ref: dropdownRef }, filteredEnums.map((oneOf, idx) => {
|
|
147
169
|
var _a;
|
|
148
170
|
return (React.createElement(ListItem, { key: (_a = oneOf.value) !== null && _a !== void 0 ? _a : "", onSelected: onItemSelected, active: idx === activeIdx }, oneOf));
|
|
149
171
|
}))));
|
|
@@ -167,7 +189,7 @@ function SearchableMultiDrowndown(props) {
|
|
|
167
189
|
React.useEffect(() => {
|
|
168
190
|
setFilterTerm(inputValue);
|
|
169
191
|
}, [inputValue]);
|
|
170
|
-
const
|
|
192
|
+
const filteredEnums = React.useMemo(() => {
|
|
171
193
|
if (!enumOptions) {
|
|
172
194
|
return [];
|
|
173
195
|
}
|
|
@@ -179,7 +201,7 @@ function SearchableMultiDrowndown(props) {
|
|
|
179
201
|
|| label.toLowerCase().match(filterTerm.toLowerCase()))
|
|
180
202
|
: notAlreadySelected;
|
|
181
203
|
}, [filterTerm, enumOptions, value]);
|
|
182
|
-
const [activeIdx, activeIdxUp, activeIdxDown, setActiveIdx] = useRangeIncrementor((
|
|
204
|
+
const [activeIdx, activeIdxUp, activeIdxDown, setActiveIdx] = useRangeIncrementor((filteredEnums || []).length, undefined);
|
|
183
205
|
const onItemSelected = react_1.useCallback((item) => {
|
|
184
206
|
var _a;
|
|
185
207
|
onChange([...(value || []), item.value]);
|
|
@@ -241,13 +263,13 @@ function SearchableMultiDrowndown(props) {
|
|
|
241
263
|
}
|
|
242
264
|
setBlurred();
|
|
243
265
|
hide();
|
|
244
|
-
if (activeIdx !== undefined &&
|
|
245
|
-
onItemSelectedByBlur(
|
|
266
|
+
if (activeIdx !== undefined && filteredEnums[activeIdx]) {
|
|
267
|
+
onItemSelectedByBlur(filteredEnums[activeIdx]);
|
|
246
268
|
}
|
|
247
269
|
else {
|
|
248
270
|
setUserTypedInputValue("");
|
|
249
271
|
}
|
|
250
|
-
}, [activeIdx,
|
|
272
|
+
}, [activeIdx, filteredEnums, hide, onItemSelectedByBlur, setBlurred]);
|
|
251
273
|
const onKeyDown = react_1.useCallback((e) => {
|
|
252
274
|
switch (e.key) {
|
|
253
275
|
case "ArrowDown":
|
|
@@ -259,7 +281,7 @@ function SearchableMultiDrowndown(props) {
|
|
|
259
281
|
e.preventDefault();
|
|
260
282
|
break;
|
|
261
283
|
case "Enter":
|
|
262
|
-
activeIdx !== undefined &&
|
|
284
|
+
activeIdx !== undefined && filteredEnums && onItemSelected(filteredEnums[activeIdx]);
|
|
263
285
|
e.preventDefault();
|
|
264
286
|
break;
|
|
265
287
|
case "Escape":
|
|
@@ -275,7 +297,7 @@ function SearchableMultiDrowndown(props) {
|
|
|
275
297
|
}
|
|
276
298
|
break;
|
|
277
299
|
}
|
|
278
|
-
}, [activeIdx, activeIdxDown, activeIdxUp,
|
|
300
|
+
}, [activeIdx, activeIdxDown, activeIdxUp, filteredEnums, inputValue, onChange, onItemSelected, setActiveIdx, value]);
|
|
279
301
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
280
302
|
const onDelete = react_1.useCallback((enu) => {
|
|
281
303
|
const filtered = value.filter(v => v !== enu.value);
|
|
@@ -296,9 +318,9 @@ function SearchableMultiDrowndown(props) {
|
|
|
296
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 }))
|
|
297
319
|
.map(enu => React.createElement(SelectedMultiValue, { key: enu.value, onDelete: onDelete, readonly: readonly || disabled }, enu))),
|
|
298
320
|
React.createElement("input", { disabled: disabled || readonly, id: id, onFocus: onFocus, value: inputValue, onChange: onInputChange, autoComplete: "off", ref: inputRef }),
|
|
299
|
-
loading && React.createElement(
|
|
321
|
+
loading && React.createElement(react_spinner_1.default, null)),
|
|
300
322
|
React.createElement(Caret, null),
|
|
301
|
-
React.createElement("div", { className: `laji-form-dropdown laji-form-dropdown-${isOpen ? "open" : "closed"}`, style: { position: "absolute", zIndex: 99999 }, tabIndex: -1 },
|
|
323
|
+
React.createElement("div", { className: `laji-form-dropdown laji-form-dropdown-${isOpen ? "open" : "closed"}`, style: { position: "absolute", zIndex: 99999 }, tabIndex: -1 }, filteredEnums.map((oneOf, idx) => {
|
|
302
324
|
var _a;
|
|
303
325
|
return (React.createElement(ListItem, { key: (_a = oneOf.value) !== null && _a !== void 0 ? _a : "", onSelected: onItemSelected, active: idx === activeIdx }, oneOf));
|
|
304
326
|
}))));
|
|
@@ -318,6 +340,6 @@ function ListItem({ onSelected, active, children }) {
|
|
|
318
340
|
}, [children, onSelected]);
|
|
319
341
|
return (React.createElement("div", { onClick: onClick, className: utils_1.classNames("laji-form-dropdown-item", active && "active"), tabIndex: -1 }, children.label));
|
|
320
342
|
}
|
|
321
|
-
const getDefaultActiveIdx = (
|
|
322
|
-
?
|
|
343
|
+
const getDefaultActiveIdx = (filteredEnums, value) => value !== undefined && value !== ""
|
|
344
|
+
? filteredEnums.findIndex(item => item.value === value)
|
|
323
345
|
: 0;
|