@luomus/laji-form 15.1.97 → 15.1.99
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/lib/components/LajiForm.d.ts +1 -0
- package/lib/components/fields/ArrayPropertyCountField.d.ts +21 -0
- package/lib/components/fields/ArrayPropertyCountField.js +67 -0
- package/lib/components/fields/index.d.ts +1 -0
- package/lib/components/fields/index.js +4 -2
- package/lib/components/widgets/AutosuggestWidget.d.ts +1 -1
- package/lib/components/widgets/AutosuggestWidget.js +6 -4
- package/package.json +1 -1
|
@@ -199,6 +199,7 @@ export default class LajiForm extends React.Component<LajiFormProps, LajiFormSta
|
|
|
199
199
|
ObjectField: (props: any) => JSX.Element;
|
|
200
200
|
NestField: typeof fields.NestField;
|
|
201
201
|
ArrayPropertySumField: typeof fields.ArrayPropertySumField;
|
|
202
|
+
ArrayPropertyCountField: typeof fields.ArrayPropertyCountField;
|
|
202
203
|
ScopeField: typeof fields.ScopeField;
|
|
203
204
|
SelectTreeField: typeof fields.SelectTreeField;
|
|
204
205
|
GridLayoutField: {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as PropTypes from "prop-types";
|
|
3
|
+
import { FieldProps, JSONSchemaObject } from "../../types";
|
|
4
|
+
interface State {
|
|
5
|
+
count: number;
|
|
6
|
+
}
|
|
7
|
+
export default class ArrayPropertyCountField extends React.Component<FieldProps<JSONSchemaObject[], JSONSchemaObject>, State> {
|
|
8
|
+
static propTypes: {
|
|
9
|
+
uiSchema: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
|
10
|
+
"ui:options": PropTypes.Requireable<PropTypes.InferProps<{
|
|
11
|
+
propertyField: PropTypes.Validator<string>;
|
|
12
|
+
}>>;
|
|
13
|
+
uiSchema: PropTypes.Requireable<object>;
|
|
14
|
+
}>>>;
|
|
15
|
+
schema: PropTypes.Validator<object>;
|
|
16
|
+
formData: PropTypes.Validator<any[]>;
|
|
17
|
+
};
|
|
18
|
+
static getName(): string;
|
|
19
|
+
render(): JSX.Element;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const React = __importStar(require("react"));
|
|
37
|
+
const PropTypes = __importStar(require("prop-types"));
|
|
38
|
+
const utils_1 = require("../../utils");
|
|
39
|
+
class ArrayPropertyCountField extends React.Component {
|
|
40
|
+
static getName() { return "ArrayPropertyCountField"; }
|
|
41
|
+
render() {
|
|
42
|
+
const SchemaField = this.props.registry.fields.SchemaField;
|
|
43
|
+
const count = getCount(this.props);
|
|
44
|
+
return (React.createElement(React.Fragment, null,
|
|
45
|
+
React.createElement(SchemaField, Object.assign({}, this.props, { uiSchema: (0, utils_1.getInnerUiSchema)(this.props.uiSchema) })),
|
|
46
|
+
React.createElement("h4", null,
|
|
47
|
+
this.props.uiSchema["ui:title"],
|
|
48
|
+
": ",
|
|
49
|
+
count)));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
ArrayPropertyCountField.propTypes = {
|
|
53
|
+
uiSchema: PropTypes.shape({
|
|
54
|
+
"ui:options": PropTypes.shape({
|
|
55
|
+
propertyField: PropTypes.string.isRequired
|
|
56
|
+
}),
|
|
57
|
+
uiSchema: PropTypes.object
|
|
58
|
+
}).isRequired,
|
|
59
|
+
schema: PropTypes.object.isRequired,
|
|
60
|
+
formData: PropTypes.array.isRequired
|
|
61
|
+
};
|
|
62
|
+
exports.default = ArrayPropertyCountField;
|
|
63
|
+
const getCount = (props) => {
|
|
64
|
+
const formData = props.formData || [];
|
|
65
|
+
const propertyField = (0, utils_1.getUiOptions)(props.uiSchema).propertyField;
|
|
66
|
+
return formData.filter(item => item === null || item === void 0 ? void 0 : item[propertyField]).length;
|
|
67
|
+
};
|
|
@@ -3,6 +3,7 @@ export { default as ArrayField } from "./ArrayField";
|
|
|
3
3
|
export { default as ObjectField } from "./ObjectField";
|
|
4
4
|
export { default as NestField } from "./NestField";
|
|
5
5
|
export { default as ArrayPropertySumField } from "./ArrayPropertySumField";
|
|
6
|
+
export { default as ArrayPropertyCountField } from "./ArrayPropertyCountField";
|
|
6
7
|
export { default as ScopeField } from "./ScopeField";
|
|
7
8
|
export { default as SelectTreeField } from "./SelectTreeField";
|
|
8
9
|
export { default as GridLayoutField } from "./GridLayoutField";
|
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.AccordionArrayField = exports.UnitRapidField = exports.ConditionalField = exports.InputTransformerField = exports.ArraySchemaField = exports.ScientificNameTaxonAutosuggestField = exports.TaxonSetPopulatorField = exports.FillDateRangeField = exports.PrefixArrayField = exports.MultiActiveArrayField = exports.CondensedObjectField = exports.AsArrayField = exports.PdfArrayField = exports.MultiTagArrayField = exports.InputWithDefaultValueButtonField = exports.SortArrayField = exports.MultiLanguageField = exports.UiFieldApplierField = exports.DefaultValueArrayField = exports.ToggleAdditionalArrayFieldsField = exports.UnitCountShorthandField = exports.MultiAnyToBooleanField = exports.FilterArrayField = exports.AudioArrayField = exports.MultiArrayField = void 0;
|
|
6
|
+
exports.FakePropertyField = exports.ImageDisplayField = exports.LocalityField = exports.DataLeakerField = exports.LocationChooserField = exports.UnitListShorthandArrayField = exports.EnumRangeArrayField = exports.AnyToBooleanField = exports.PrefillingArrayField = exports.AnnotationField = exports.ConditionalUiSchemaField = exports.ConditionalOnChangeField = exports.StringToArrayField = exports.TagArrayField = exports.GeocoderField = exports.MapField = exports.NamedPlaceSaverField = exports.NamedPlaceChooserField = exports.SumField = exports.ExtraLabelRowField = exports.UiFieldMapperArrayField = exports.CombinedValueDisplayField = exports.UnitShorthandField = exports.SingleItemArrayField = exports.SingleActiveArrayField = exports.FlatField = exports.SplitField = exports.ImageArrayField = exports.ContextInjectionField = exports.InitiallyHiddenField = exports.HiddenWithTextField = exports.HiddenField = exports.AutosuggestField = exports.AutoArrayField = exports.MapArrayField = exports.DependentDisableField = exports.DependentBooleanField = exports.ArrayCombinerField = exports.InjectDefaultValueField = exports.InjectField = exports.TableField = exports.GridLayoutField = exports.SelectTreeField = exports.ScopeField = exports.ArrayPropertyCountField = exports.ArrayPropertySumField = exports.NestField = exports.ObjectField = exports.ArrayField = exports.SchemaField = void 0;
|
|
7
|
+
exports.AccordionArrayField = exports.UnitRapidField = exports.ConditionalField = exports.InputTransformerField = exports.ArraySchemaField = exports.ScientificNameTaxonAutosuggestField = exports.TaxonSetPopulatorField = exports.FillDateRangeField = exports.PrefixArrayField = exports.MultiActiveArrayField = exports.CondensedObjectField = exports.AsArrayField = exports.PdfArrayField = exports.MultiTagArrayField = exports.InputWithDefaultValueButtonField = exports.SortArrayField = exports.MultiLanguageField = exports.UiFieldApplierField = exports.DefaultValueArrayField = exports.ToggleAdditionalArrayFieldsField = exports.UnitCountShorthandField = exports.MultiAnyToBooleanField = exports.FilterArrayField = exports.AudioArrayField = exports.MultiArrayField = exports.SectionArrayField = void 0;
|
|
8
8
|
var SchemaField_1 = require("./SchemaField");
|
|
9
9
|
Object.defineProperty(exports, "SchemaField", { enumerable: true, get: function () { return __importDefault(SchemaField_1).default; } });
|
|
10
10
|
var ArrayField_1 = require("./ArrayField");
|
|
@@ -15,6 +15,8 @@ var NestField_1 = require("./NestField");
|
|
|
15
15
|
Object.defineProperty(exports, "NestField", { enumerable: true, get: function () { return __importDefault(NestField_1).default; } });
|
|
16
16
|
var ArrayPropertySumField_1 = require("./ArrayPropertySumField");
|
|
17
17
|
Object.defineProperty(exports, "ArrayPropertySumField", { enumerable: true, get: function () { return __importDefault(ArrayPropertySumField_1).default; } });
|
|
18
|
+
var ArrayPropertyCountField_1 = require("./ArrayPropertyCountField");
|
|
19
|
+
Object.defineProperty(exports, "ArrayPropertyCountField", { enumerable: true, get: function () { return __importDefault(ArrayPropertyCountField_1).default; } });
|
|
18
20
|
var ScopeField_1 = require("./ScopeField");
|
|
19
21
|
Object.defineProperty(exports, "ScopeField", { enumerable: true, get: function () { return __importDefault(ScopeField_1).default; } });
|
|
20
22
|
var SelectTreeField_1 = require("./SelectTreeField");
|
|
@@ -66,7 +66,7 @@ export class Autosuggest extends React.Component<any, any, any> {
|
|
|
66
66
|
promiseTimestamp: number | undefined;
|
|
67
67
|
timeout: any;
|
|
68
68
|
onFocus: (e: any) => void;
|
|
69
|
-
onBlur: (e: any) => void;
|
|
69
|
+
onBlur: (e: any, blurSelected?: boolean) => void;
|
|
70
70
|
_valueForBlurAndFetch: any;
|
|
71
71
|
afterBlurAndFetch: (suggestions: any, callback: any) => void;
|
|
72
72
|
render(): JSX.Element;
|
|
@@ -626,10 +626,12 @@ class Autosuggest extends React.Component {
|
|
|
626
626
|
this.setState({ focused: true });
|
|
627
627
|
(0, utils_1.triggerParentComponent)("onFocus", e, this.props.inputProps);
|
|
628
628
|
};
|
|
629
|
-
this.onBlur = (e) => {
|
|
629
|
+
this.onBlur = (e, blurSelected = false) => {
|
|
630
630
|
this.setState({ focused: false }, () => {
|
|
631
|
-
|
|
632
|
-
|
|
631
|
+
if (!blurSelected) {
|
|
632
|
+
this._valueForBlurAndFetch = this.state.inputValue;
|
|
633
|
+
this.afterBlurAndFetch(this.state.suggestions);
|
|
634
|
+
}
|
|
633
635
|
(0, utils_1.triggerParentComponent)("onBlur", e, this.props.inputProps);
|
|
634
636
|
const overlay = this.wrapperRef.current;
|
|
635
637
|
if (overlay && overlay.overlayTriggerRef && overlay.overlayTriggerRef.hide) {
|
|
@@ -1208,7 +1210,7 @@ class ReactAutosuggest extends React.Component {
|
|
|
1208
1210
|
const suggestion = (this.props.suggestions || [])[this.state.focusedIdx];
|
|
1209
1211
|
suggestion && this.onSuggestionSelected(this.props.suggestions[this.state.focusedIdx]);
|
|
1210
1212
|
this.setState({ focused: false, focusedIdx: undefined, touched: false });
|
|
1211
|
-
(_b = (_a = this.props.inputProps) === null || _a === void 0 ? void 0 : _a.onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
1213
|
+
(_b = (_a = this.props.inputProps) === null || _a === void 0 ? void 0 : _a.onBlur) === null || _b === void 0 ? void 0 : _b.call(_a, e, !!suggestion);
|
|
1212
1214
|
}
|
|
1213
1215
|
renderInput() {
|
|
1214
1216
|
const { inputProps, renderInputComponent = this.renderDefaultInputComponent } = this.props;
|