@react-typed-forms/schemas 11.17.0 → 11.18.1
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 +3 -2
- package/lib/controlRender.d.ts +2 -2
- package/lib/createDefaultRenderers.d.ts +2 -1
- package/lib/index.js +54 -21
- 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
|
-
|
|
5
|
-
export
|
|
4
|
+
import { ArrayActionOptions } from "../types";
|
|
5
|
+
export declare function createDefaultArrayDataRenderer(defaultActions?: ArrayActionOptions): DataRendererRegistration;
|
|
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";
|
|
@@ -218,7 +218,7 @@ export declare function getLengthRestrictions(definition: DataControlDefinition)
|
|
|
218
218
|
min: number | null | undefined;
|
|
219
219
|
max: number | null | undefined;
|
|
220
220
|
};
|
|
221
|
-
export declare function createArrayActions(control: Control<any[]>, field: SchemaField,
|
|
221
|
+
export declare function createArrayActions(control: Control<any[]>, field: SchemaField, options?: Pick<ArrayRenderOptions, "addText" | "removeText" | "noAdd" | "noRemove" | "addActionId" | "removeActionId">): Pick<ArrayRendererProps, "addAction" | "removeAction" | "arrayControl">;
|
|
222
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"> & {
|
|
223
223
|
addDisabled: boolean;
|
|
224
224
|
removeDisabled: boolean;
|
|
@@ -2,7 +2,7 @@ import { DefaultDisplayRendererOptions } from "./components/DefaultDisplay";
|
|
|
2
2
|
import { DefaultLayoutRendererOptions } from "./components/DefaultLayout";
|
|
3
3
|
import { ActionRendererRegistration, AdornmentRendererRegistration, DataRendererRegistration, DefaultRenderers, GroupRendererRegistration, LabelRendererRegistration } from "./renderers";
|
|
4
4
|
import { CSSProperties, ReactElement, ReactNode } from "react";
|
|
5
|
-
import { FieldOption, GridRenderer } from "./types";
|
|
5
|
+
import { ArrayActionOptions, FieldOption, GridRenderer } from "./types";
|
|
6
6
|
import { SelectRendererOptions } from "./components/SelectDataRenderer";
|
|
7
7
|
import { Control } from "@react-typed-forms/core";
|
|
8
8
|
import { DefaultArrayRendererOptions } from "./components/DefaultArrayRenderer";
|
|
@@ -49,6 +49,7 @@ interface DefaultDataRendererOptions {
|
|
|
49
49
|
optionRenderer?: DataRendererRegistration;
|
|
50
50
|
multilineClass?: string;
|
|
51
51
|
jsonataClass?: string;
|
|
52
|
+
arrayOptions?: ArrayActionOptions;
|
|
52
53
|
}
|
|
53
54
|
export declare function createDefaultDataRenderer(options?: DefaultDataRendererOptions): DataRendererRegistration;
|
|
54
55
|
export interface DefaultAccordionRendererOptions {
|
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) {
|
|
@@ -1921,13 +1939,20 @@ function getLengthRestrictions(definition) {
|
|
|
1921
1939
|
max: lengthVal == null ? void 0 : lengthVal.max
|
|
1922
1940
|
};
|
|
1923
1941
|
}
|
|
1924
|
-
function createArrayActions(control, field,
|
|
1942
|
+
function createArrayActions(control, field, options) {
|
|
1925
1943
|
var _field$displayName;
|
|
1926
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;
|
|
1927
1952
|
return {
|
|
1928
1953
|
arrayControl: control,
|
|
1929
1954
|
addAction: !noAdd ? {
|
|
1930
|
-
actionId: "add",
|
|
1955
|
+
actionId: addActionId ? addActionId : "add",
|
|
1931
1956
|
actionText: addText ? addText : "Add " + noun,
|
|
1932
1957
|
onClick: function onClick() {
|
|
1933
1958
|
return core.addElement(control, elementValueForField(field));
|
|
@@ -1935,7 +1960,7 @@ function createArrayActions(control, field, addText, removeText, noAdd, noRemove
|
|
|
1935
1960
|
} : undefined,
|
|
1936
1961
|
removeAction: !noRemove ? function (i) {
|
|
1937
1962
|
return {
|
|
1938
|
-
actionId: "remove",
|
|
1963
|
+
actionId: removeActionId ? removeActionId : "remove",
|
|
1939
1964
|
actionText: removeText ? removeText : "Remove",
|
|
1940
1965
|
onClick: function onClick() {
|
|
1941
1966
|
return core.removeElement(control, i);
|
|
@@ -1944,14 +1969,14 @@ function createArrayActions(control, field, addText, removeText, noAdd, noRemove
|
|
|
1944
1969
|
} : undefined
|
|
1945
1970
|
};
|
|
1946
1971
|
}
|
|
1947
|
-
function applyArrayLengthRestrictions(
|
|
1972
|
+
function applyArrayLengthRestrictions(_ref8, disable) {
|
|
1948
1973
|
var _arrayControl$element, _arrayControl$element2;
|
|
1949
|
-
var arrayControl =
|
|
1950
|
-
min =
|
|
1951
|
-
max =
|
|
1952
|
-
aa =
|
|
1953
|
-
ra =
|
|
1954
|
-
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;
|
|
1955
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),
|
|
1956
1981
|
removeAllowed = _applyLengthRestricti[0],
|
|
1957
1982
|
addAllowed = _applyLengthRestricti[1];
|
|
@@ -2372,7 +2397,7 @@ function createInputConversion(ft) {
|
|
|
2372
2397
|
}
|
|
2373
2398
|
}
|
|
2374
2399
|
|
|
2375
|
-
function createDefaultArrayDataRenderer() {
|
|
2400
|
+
function createDefaultArrayDataRenderer(defaultActions) {
|
|
2376
2401
|
return createDataRenderer(function (_ref, renderers) {
|
|
2377
2402
|
var definition = _ref.definition,
|
|
2378
2403
|
control = _ref.control,
|
|
@@ -2383,13 +2408,18 @@ function createDefaultArrayDataRenderer() {
|
|
|
2383
2408
|
className = _ref.className,
|
|
2384
2409
|
style = _ref.style,
|
|
2385
2410
|
renderOptions = _ref.renderOptions;
|
|
2386
|
-
var
|
|
2387
|
-
addText =
|
|
2388
|
-
noAdd =
|
|
2389
|
-
noRemove =
|
|
2390
|
-
removeText =
|
|
2411
|
+
var _mergeObjects = mergeObjects(isArrayRenderer(renderOptions) ? renderOptions : {}, defaultActions),
|
|
2412
|
+
addText = _mergeObjects.addText,
|
|
2413
|
+
noAdd = _mergeObjects.noAdd,
|
|
2414
|
+
noRemove = _mergeObjects.noRemove,
|
|
2415
|
+
removeText = _mergeObjects.removeText;
|
|
2391
2416
|
var childOptions = isArrayRenderer(renderOptions) ? renderOptions.childOptions : undefined;
|
|
2392
|
-
var arrayProps = _extends({}, createArrayActions(control, field,
|
|
2417
|
+
var arrayProps = _extends({}, createArrayActions(control, field, {
|
|
2418
|
+
addText: addText,
|
|
2419
|
+
removeText: removeText,
|
|
2420
|
+
noAdd: noAdd,
|
|
2421
|
+
noRemove: noRemove
|
|
2422
|
+
}), {
|
|
2393
2423
|
required: required,
|
|
2394
2424
|
renderElement: function renderElement(i) {
|
|
2395
2425
|
var _control$elements$i$u, _control$elements;
|
|
@@ -2414,8 +2444,8 @@ function createDefaultArrayDataRenderer() {
|
|
|
2414
2444
|
}
|
|
2415
2445
|
function createDefaultArrayRenderer(options) {
|
|
2416
2446
|
return {
|
|
2417
|
-
render: function render(props,
|
|
2418
|
-
var renderAction =
|
|
2447
|
+
render: function render(props, _ref2) {
|
|
2448
|
+
var renderAction = _ref2.renderAction;
|
|
2419
2449
|
return /*#__PURE__*/React__default["default"].createElement(DefaultArrayRenderer, _extends({}, props, options, {
|
|
2420
2450
|
renderAction: renderAction
|
|
2421
2451
|
}));
|
|
@@ -2868,13 +2898,15 @@ function createDefaultDataRenderer(options) {
|
|
|
2868
2898
|
booleanOptions = _optionRenderer$boole.booleanOptions,
|
|
2869
2899
|
optionRenderer = _optionRenderer$boole.optionRenderer,
|
|
2870
2900
|
displayOnlyClass = _optionRenderer$boole.displayOnlyClass;
|
|
2871
|
-
var arrayRenderer = createDefaultArrayDataRenderer();
|
|
2901
|
+
var arrayRenderer = createDefaultArrayDataRenderer(options.arrayOptions);
|
|
2872
2902
|
return createDataRenderer(function (props, renderers) {
|
|
2873
2903
|
var field = props.field;
|
|
2874
2904
|
var fieldType = field.type;
|
|
2875
2905
|
var renderOptions = props.renderOptions;
|
|
2876
|
-
if (field.collection && props.elementIndex == null) return arrayRenderer.render(props, renderers);
|
|
2877
2906
|
var renderType = renderOptions.type;
|
|
2907
|
+
if (field.collection && props.elementIndex == null && renderType == exports.DataRenderType.Standard) {
|
|
2908
|
+
return arrayRenderer.render(props, renderers);
|
|
2909
|
+
}
|
|
2878
2910
|
if (fieldType === exports.FieldType.Compound) {
|
|
2879
2911
|
var _ref5;
|
|
2880
2912
|
var groupOptions = (_ref5 = isDataGroupRenderer(renderOptions) ? renderOptions.groupOptions : undefined) != null ? _ref5 : {
|
|
@@ -3364,6 +3396,7 @@ exports.makeScalarField = makeScalarField;
|
|
|
3364
3396
|
exports.matchesType = matchesType;
|
|
3365
3397
|
exports.mergeField = mergeField;
|
|
3366
3398
|
exports.mergeFields = mergeFields;
|
|
3399
|
+
exports.mergeObjects = mergeObjects;
|
|
3367
3400
|
exports.renderControlLayout = renderControlLayout;
|
|
3368
3401
|
exports.renderLayoutParts = renderLayoutParts;
|
|
3369
3402
|
exports.rendererClass = rendererClass;
|