@react-typed-forms/schemas 11.16.0 → 11.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/DefaultArrayRenderer.d.ts +2 -1
- package/lib/controlRender.d.ts +6 -1
- package/lib/index.js +76 -34
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +3 -0
- package/lib/util.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ArrayRendererRegistration, DataRendererRegistration } from "../renderers";
|
|
2
2
|
import { ActionRendererProps, ArrayRendererProps } from "../controlRender";
|
|
3
3
|
import React, { ReactNode } from "react";
|
|
4
|
+
import { ArrayActionOptions } from "../types";
|
|
4
5
|
export declare function createDefaultArrayDataRenderer(): DataRendererRegistration;
|
|
5
|
-
export interface DefaultArrayRendererOptions {
|
|
6
|
+
export interface DefaultArrayRendererOptions extends ArrayActionOptions {
|
|
6
7
|
className?: string;
|
|
7
8
|
removableClass?: string;
|
|
8
9
|
childClass?: string;
|
package/lib/controlRender.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { FC, Key, ReactElement, ReactNode } from "react";
|
|
2
2
|
import { Control } from "@react-typed-forms/core";
|
|
3
|
-
import { AdornmentPlacement, ControlAdornment, ControlDefinition, DataControlDefinition, DisplayData, FieldOption, GroupRenderOptions, RenderOptions, SchemaField, SchemaInterface, SchemaValidator } from "./types";
|
|
3
|
+
import { AdornmentPlacement, ArrayRenderOptions, ControlAdornment, ControlDefinition, DataControlDefinition, DisplayData, FieldOption, GroupRenderOptions, RenderOptions, SchemaField, SchemaInterface, SchemaValidator } from "./types";
|
|
4
4
|
import { ControlDataContext, JsonPath } from "./util";
|
|
5
5
|
import { EvalExpressionHook, UseEvalExpressionHook } from "./hooks";
|
|
6
6
|
import { ValidationContext } from "./validators";
|
|
@@ -214,6 +214,11 @@ export declare function appendMarkupAt(pos: AdornmentPlacement, markup: ReactNod
|
|
|
214
214
|
export declare function wrapMarkupAt(pos: AdornmentPlacement, wrap: (ex: ReactNode) => ReactNode): (layout: RenderedLayout) => void;
|
|
215
215
|
export declare function renderLayoutParts(props: ControlLayoutProps, renderer: FormRenderer): RenderedLayout;
|
|
216
216
|
export declare function controlTitle(title: string | undefined | null, field: SchemaField): string;
|
|
217
|
+
export declare function getLengthRestrictions(definition: DataControlDefinition): {
|
|
218
|
+
min: number | null | undefined;
|
|
219
|
+
max: number | null | undefined;
|
|
220
|
+
};
|
|
221
|
+
export declare function createArrayActions(control: Control<any[]>, field: SchemaField, options?: Pick<ArrayRenderOptions, "addText" | "removeText" | "noAdd" | "noRemove" | "addActionId" | "removeActionId">): Pick<ArrayRendererProps, "addAction" | "removeAction" | "arrayControl">;
|
|
217
222
|
export declare function applyArrayLengthRestrictions({ arrayControl, min, max, addAction: aa, removeAction: ra, required, }: Pick<ArrayRendererProps, "addAction" | "removeAction" | "arrayControl" | "min" | "max" | "required">, disable?: boolean): Pick<ArrayRendererProps, "addAction" | "removeAction"> & {
|
|
218
223
|
addDisabled: boolean;
|
|
219
224
|
removeDisabled: boolean;
|
package/lib/index.js
CHANGED
|
@@ -683,6 +683,24 @@ function findFieldPath(fields, fieldPath) {
|
|
|
683
683
|
}
|
|
684
684
|
return foundFields.length === fieldNames.length ? foundFields : undefined;
|
|
685
685
|
}
|
|
686
|
+
function mergeObjects(o1, o2, doMerge) {
|
|
687
|
+
if (doMerge === void 0) {
|
|
688
|
+
doMerge = function doMerge(_, v1, v2) {
|
|
689
|
+
return v1 != null ? v1 : v2;
|
|
690
|
+
};
|
|
691
|
+
}
|
|
692
|
+
if (!o1) return o2;
|
|
693
|
+
if (!o2) return o1;
|
|
694
|
+
var result = _extends({}, o1);
|
|
695
|
+
for (var key in o2) {
|
|
696
|
+
if (o2.hasOwnProperty(key)) {
|
|
697
|
+
var value1 = o1[key];
|
|
698
|
+
var value2 = o2[key];
|
|
699
|
+
result[key] = doMerge(key, value1, value2);
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
return result;
|
|
703
|
+
}
|
|
686
704
|
|
|
687
705
|
function buildSchema(def) {
|
|
688
706
|
return Object.entries(def).map(function (x) {
|
|
@@ -1911,14 +1929,54 @@ function renderLayoutParts(props, renderer) {
|
|
|
1911
1929
|
function controlTitle(title, field) {
|
|
1912
1930
|
return title ? title : fieldDisplayName(field);
|
|
1913
1931
|
}
|
|
1914
|
-
function
|
|
1932
|
+
function getLengthRestrictions(definition) {
|
|
1933
|
+
var _definition$validator;
|
|
1934
|
+
var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
|
|
1935
|
+
return x.type === exports.ValidatorType.Length;
|
|
1936
|
+
});
|
|
1937
|
+
return {
|
|
1938
|
+
min: lengthVal == null ? void 0 : lengthVal.min,
|
|
1939
|
+
max: lengthVal == null ? void 0 : lengthVal.max
|
|
1940
|
+
};
|
|
1941
|
+
}
|
|
1942
|
+
function createArrayActions(control, field, options) {
|
|
1943
|
+
var _field$displayName;
|
|
1944
|
+
var noun = (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
|
|
1945
|
+
var _ref7 = options != null ? options : {},
|
|
1946
|
+
addText = _ref7.addText,
|
|
1947
|
+
noAdd = _ref7.noAdd,
|
|
1948
|
+
removeText = _ref7.removeText,
|
|
1949
|
+
noRemove = _ref7.noRemove,
|
|
1950
|
+
removeActionId = _ref7.removeActionId,
|
|
1951
|
+
addActionId = _ref7.addActionId;
|
|
1952
|
+
return {
|
|
1953
|
+
arrayControl: control,
|
|
1954
|
+
addAction: !noAdd ? {
|
|
1955
|
+
actionId: addActionId ? addActionId : "add",
|
|
1956
|
+
actionText: addText ? addText : "Add " + noun,
|
|
1957
|
+
onClick: function onClick() {
|
|
1958
|
+
return core.addElement(control, elementValueForField(field));
|
|
1959
|
+
}
|
|
1960
|
+
} : undefined,
|
|
1961
|
+
removeAction: !noRemove ? function (i) {
|
|
1962
|
+
return {
|
|
1963
|
+
actionId: removeActionId ? removeActionId : "remove",
|
|
1964
|
+
actionText: removeText ? removeText : "Remove",
|
|
1965
|
+
onClick: function onClick() {
|
|
1966
|
+
return core.removeElement(control, i);
|
|
1967
|
+
}
|
|
1968
|
+
};
|
|
1969
|
+
} : undefined
|
|
1970
|
+
};
|
|
1971
|
+
}
|
|
1972
|
+
function applyArrayLengthRestrictions(_ref8, disable) {
|
|
1915
1973
|
var _arrayControl$element, _arrayControl$element2;
|
|
1916
|
-
var arrayControl =
|
|
1917
|
-
min =
|
|
1918
|
-
max =
|
|
1919
|
-
aa =
|
|
1920
|
-
ra =
|
|
1921
|
-
required =
|
|
1974
|
+
var arrayControl = _ref8.arrayControl,
|
|
1975
|
+
min = _ref8.min,
|
|
1976
|
+
max = _ref8.max,
|
|
1977
|
+
aa = _ref8.addAction,
|
|
1978
|
+
ra = _ref8.removeAction,
|
|
1979
|
+
required = _ref8.required;
|
|
1922
1980
|
var _applyLengthRestricti = applyLengthRestrictions((_arrayControl$element = (_arrayControl$element2 = arrayControl.elements) == null ? void 0 : _arrayControl$element2.length) != null ? _arrayControl$element : 0, min == null && required ? 1 : min, max, true, true),
|
|
1923
1981
|
removeAllowed = _applyLengthRestricti[0],
|
|
1924
1982
|
addAllowed = _applyLengthRestricti[1];
|
|
@@ -2341,7 +2399,6 @@ function createInputConversion(ft) {
|
|
|
2341
2399
|
|
|
2342
2400
|
function createDefaultArrayDataRenderer() {
|
|
2343
2401
|
return createDataRenderer(function (_ref, renderers) {
|
|
2344
|
-
var _definition$validator, _field$displayName;
|
|
2345
2402
|
var definition = _ref.definition,
|
|
2346
2403
|
control = _ref.control,
|
|
2347
2404
|
required = _ref.required,
|
|
@@ -2351,35 +2408,19 @@ function createDefaultArrayDataRenderer() {
|
|
|
2351
2408
|
className = _ref.className,
|
|
2352
2409
|
style = _ref.style,
|
|
2353
2410
|
renderOptions = _ref.renderOptions;
|
|
2354
|
-
var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
|
|
2355
|
-
return x.type === exports.ValidatorType.Length;
|
|
2356
|
-
});
|
|
2357
2411
|
var _ref2 = isArrayRenderer(renderOptions) ? renderOptions : {},
|
|
2358
2412
|
addText = _ref2.addText,
|
|
2359
2413
|
noAdd = _ref2.noAdd,
|
|
2360
2414
|
noRemove = _ref2.noRemove,
|
|
2361
2415
|
removeText = _ref2.removeText;
|
|
2362
2416
|
var childOptions = isArrayRenderer(renderOptions) ? renderOptions.childOptions : undefined;
|
|
2363
|
-
var
|
|
2364
|
-
|
|
2365
|
-
|
|
2417
|
+
var arrayProps = _extends({}, createArrayActions(control, field, {
|
|
2418
|
+
addText: addText,
|
|
2419
|
+
removeText: removeText,
|
|
2420
|
+
noAdd: noAdd,
|
|
2421
|
+
noRemove: noRemove
|
|
2422
|
+
}), {
|
|
2366
2423
|
required: required,
|
|
2367
|
-
addAction: !noAdd ? {
|
|
2368
|
-
actionId: "add",
|
|
2369
|
-
actionText: addText ? addText : "Add " + noun,
|
|
2370
|
-
onClick: function onClick() {
|
|
2371
|
-
return core.addElement(control, elementValueForField(field));
|
|
2372
|
-
}
|
|
2373
|
-
} : undefined,
|
|
2374
|
-
removeAction: !noRemove ? function (i) {
|
|
2375
|
-
return {
|
|
2376
|
-
actionId: "",
|
|
2377
|
-
actionText: removeText ? removeText : "Remove",
|
|
2378
|
-
onClick: function onClick() {
|
|
2379
|
-
return core.removeElement(control, i);
|
|
2380
|
-
}
|
|
2381
|
-
};
|
|
2382
|
-
} : undefined,
|
|
2383
2424
|
renderElement: function renderElement(i) {
|
|
2384
2425
|
var _control$elements$i$u, _control$elements;
|
|
2385
2426
|
return renderChild((_control$elements$i$u = (_control$elements = control.elements) == null ? void 0 : _control$elements[i].uniqueId) != null ? _control$elements$i$u : i, {
|
|
@@ -2396,10 +2437,8 @@ function createDefaultArrayDataRenderer() {
|
|
|
2396
2437
|
});
|
|
2397
2438
|
},
|
|
2398
2439
|
className: cc(className),
|
|
2399
|
-
style: style
|
|
2400
|
-
|
|
2401
|
-
max: lengthVal == null ? void 0 : lengthVal.max
|
|
2402
|
-
};
|
|
2440
|
+
style: style
|
|
2441
|
+
}, getLengthRestrictions(definition));
|
|
2403
2442
|
return renderers.renderArray(arrayProps);
|
|
2404
2443
|
});
|
|
2405
2444
|
}
|
|
@@ -3254,6 +3293,7 @@ exports.controlTitle = controlTitle;
|
|
|
3254
3293
|
exports.createAction = createAction;
|
|
3255
3294
|
exports.createActionRenderer = createActionRenderer;
|
|
3256
3295
|
exports.createAdornmentRenderer = createAdornmentRenderer;
|
|
3296
|
+
exports.createArrayActions = createArrayActions;
|
|
3257
3297
|
exports.createArrayRenderer = createArrayRenderer;
|
|
3258
3298
|
exports.createButtonActionRenderer = createButtonActionRenderer;
|
|
3259
3299
|
exports.createCheckListRenderer = createCheckListRenderer;
|
|
@@ -3313,6 +3353,7 @@ exports.findScalarField = findScalarField;
|
|
|
3313
3353
|
exports.getAllReferencedClasses = getAllReferencedClasses;
|
|
3314
3354
|
exports.getControlData = getControlData;
|
|
3315
3355
|
exports.getDisplayOnlyOptions = getDisplayOnlyOptions;
|
|
3356
|
+
exports.getLengthRestrictions = getLengthRestrictions;
|
|
3316
3357
|
exports.getOverrideClass = getOverrideClass;
|
|
3317
3358
|
exports.getTypeField = getTypeField;
|
|
3318
3359
|
exports.groupedControl = groupedControl;
|
|
@@ -3353,6 +3394,7 @@ exports.makeScalarField = makeScalarField;
|
|
|
3353
3394
|
exports.matchesType = matchesType;
|
|
3354
3395
|
exports.mergeField = mergeField;
|
|
3355
3396
|
exports.mergeFields = mergeFields;
|
|
3397
|
+
exports.mergeObjects = mergeObjects;
|
|
3356
3398
|
exports.renderControlLayout = renderControlLayout;
|
|
3357
3399
|
exports.renderLayoutParts = renderLayoutParts;
|
|
3358
3400
|
exports.rendererClass = rendererClass;
|