@react-typed-forms/schemas 11.15.0 → 11.17.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 -3
- package/lib/index.js +90 -64
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +16 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ArrayRendererRegistration } from "../renderers";
|
|
1
|
+
import { ArrayRendererRegistration, DataRendererRegistration } from "../renderers";
|
|
2
2
|
import { ActionRendererProps, ArrayRendererProps } from "../controlRender";
|
|
3
3
|
import React, { ReactNode } from "react";
|
|
4
|
+
export declare function createDefaultArrayDataRenderer(): DataRendererRegistration;
|
|
4
5
|
export interface DefaultArrayRendererOptions {
|
|
5
6
|
className?: string;
|
|
6
7
|
removableClass?: string;
|
package/lib/controlRender.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { FC, Key, ReactElement, ReactNode } from "react";
|
|
2
2
|
import { Control } from "@react-typed-forms/core";
|
|
3
3
|
import { AdornmentPlacement, ControlAdornment, ControlDefinition, DataControlDefinition, DisplayData, FieldOption, GroupRenderOptions, RenderOptions, SchemaField, SchemaInterface, SchemaValidator } from "./types";
|
|
4
4
|
import { ControlDataContext, JsonPath } from "./util";
|
|
@@ -121,7 +121,6 @@ export interface DataRendererProps extends ParentRendererProps {
|
|
|
121
121
|
required: boolean;
|
|
122
122
|
options: FieldOption[] | undefined | null;
|
|
123
123
|
hidden: boolean;
|
|
124
|
-
toArrayProps?: () => ArrayRendererProps;
|
|
125
124
|
}
|
|
126
125
|
export interface ActionRendererProps {
|
|
127
126
|
actionId: string;
|
|
@@ -178,7 +177,6 @@ export declare function ControlRenderer({ definition, fields, renderer, options,
|
|
|
178
177
|
parentPath?: JsonPath[];
|
|
179
178
|
}): React.JSX.Element;
|
|
180
179
|
export declare function defaultDataProps({ definition, field, control, formOptions, style, allowedOptions, schemaInterface, ...props }: DataControlProps): DataRendererProps;
|
|
181
|
-
export declare function defaultArrayProps(arrayControl: Control<any[] | undefined | null>, field: SchemaField, required: boolean, style: CSSProperties | undefined, className: string | undefined, renderElement: (elemIndex: number) => ReactNode, min: number | undefined | null, max: number | undefined | null): ArrayRendererProps;
|
|
182
180
|
export interface ChildRendererOptions {
|
|
183
181
|
elementIndex?: number;
|
|
184
182
|
dataContext?: ControlDataContext;
|
|
@@ -216,6 +214,11 @@ export declare function appendMarkupAt(pos: AdornmentPlacement, markup: ReactNod
|
|
|
216
214
|
export declare function wrapMarkupAt(pos: AdornmentPlacement, wrap: (ex: ReactNode) => ReactNode): (layout: RenderedLayout) => void;
|
|
217
215
|
export declare function renderLayoutParts(props: ControlLayoutProps, renderer: FormRenderer): RenderedLayout;
|
|
218
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, addText?: string | null, removeText?: string | null, noAdd?: boolean | null, noRemove?: boolean | null): Pick<ArrayRendererProps, "addAction" | "removeAction" | "arrayControl">;
|
|
219
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"> & {
|
|
220
223
|
addDisabled: boolean;
|
|
221
224
|
removeDisabled: boolean;
|
package/lib/index.js
CHANGED
|
@@ -95,6 +95,7 @@ exports.DataRenderType = void 0;
|
|
|
95
95
|
DataRenderType["Group"] = "Group";
|
|
96
96
|
DataRenderType["NullToggle"] = "NullToggle";
|
|
97
97
|
DataRenderType["Jsonata"] = "Jsonata";
|
|
98
|
+
DataRenderType["Array"] = "Array";
|
|
98
99
|
})(exports.DataRenderType || (exports.DataRenderType = {}));
|
|
99
100
|
exports.SyncTextType = void 0;
|
|
100
101
|
(function (SyncTextType) {
|
|
@@ -168,6 +169,9 @@ function isTextfieldRenderer(options) {
|
|
|
168
169
|
function isDataGroupRenderer(options) {
|
|
169
170
|
return options.type === exports.DataRenderType.Group;
|
|
170
171
|
}
|
|
172
|
+
function isArrayRenderer(options) {
|
|
173
|
+
return options.type === exports.DataRenderType.Array;
|
|
174
|
+
}
|
|
171
175
|
|
|
172
176
|
function _arrayLikeToArray(r, a) {
|
|
173
177
|
(null == a || a > r.length) && (a = r.length);
|
|
@@ -1694,7 +1698,7 @@ function ControlRenderer(_ref3) {
|
|
|
1694
1698
|
}
|
|
1695
1699
|
}
|
|
1696
1700
|
function defaultDataProps(_ref4) {
|
|
1697
|
-
var
|
|
1701
|
+
var _allowedOptions$value, _definition$children, _definition$renderOpt2;
|
|
1698
1702
|
var definition = _ref4.definition,
|
|
1699
1703
|
field = _ref4.field,
|
|
1700
1704
|
control = _ref4.control,
|
|
@@ -1704,9 +1708,6 @@ function defaultDataProps(_ref4) {
|
|
|
1704
1708
|
_ref4$schemaInterface = _ref4.schemaInterface,
|
|
1705
1709
|
schemaInterface = _ref4$schemaInterface === void 0 ? defaultSchemaInterface : _ref4$schemaInterface,
|
|
1706
1710
|
props = _objectWithoutPropertiesLoose(_ref4, _excluded$4);
|
|
1707
|
-
var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
|
|
1708
|
-
return x.type === exports.ValidatorType.Length;
|
|
1709
|
-
});
|
|
1710
1711
|
var className = cc(definition.styleClass);
|
|
1711
1712
|
var required = !!definition.required;
|
|
1712
1713
|
var fieldOptions = schemaInterface.getOptions(field);
|
|
@@ -1735,53 +1736,7 @@ function defaultDataProps(_ref4) {
|
|
|
1735
1736
|
hidden: !!formOptions.hidden,
|
|
1736
1737
|
className: className,
|
|
1737
1738
|
style: style
|
|
1738
|
-
}, props
|
|
1739
|
-
toArrayProps: field.collection && props.elementIndex == null ? function () {
|
|
1740
|
-
return defaultArrayProps(control, field, required, style, className, function (elementIndex) {
|
|
1741
|
-
var _control$elements$ele, _control$elements;
|
|
1742
|
-
return props.renderChild((_control$elements$ele = (_control$elements = control.elements) == null ? void 0 : _control$elements[elementIndex].uniqueId) != null ? _control$elements$ele : elementIndex, {
|
|
1743
|
-
type: exports.ControlDefinitionType.Data,
|
|
1744
|
-
field: definition.field,
|
|
1745
|
-
children: definition.children,
|
|
1746
|
-
hideTitle: true
|
|
1747
|
-
}, {
|
|
1748
|
-
elementIndex: elementIndex,
|
|
1749
|
-
dataContext: props.parentContext
|
|
1750
|
-
});
|
|
1751
|
-
}, lengthVal == null ? void 0 : lengthVal.min, lengthVal == null ? void 0 : lengthVal.max);
|
|
1752
|
-
} : undefined
|
|
1753
|
-
});
|
|
1754
|
-
}
|
|
1755
|
-
function defaultArrayProps(arrayControl, field, required, style, className, _renderElement, min, max) {
|
|
1756
|
-
var _field$displayName;
|
|
1757
|
-
var noun = (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
|
|
1758
|
-
return {
|
|
1759
|
-
arrayControl: arrayControl,
|
|
1760
|
-
required: required,
|
|
1761
|
-
addAction: {
|
|
1762
|
-
actionId: "add",
|
|
1763
|
-
actionText: "Add " + noun,
|
|
1764
|
-
onClick: function onClick() {
|
|
1765
|
-
return core.addElement(arrayControl, elementValueForField(field));
|
|
1766
|
-
}
|
|
1767
|
-
},
|
|
1768
|
-
removeAction: function removeAction(i) {
|
|
1769
|
-
return {
|
|
1770
|
-
actionId: "",
|
|
1771
|
-
actionText: "Remove",
|
|
1772
|
-
onClick: function onClick() {
|
|
1773
|
-
return core.removeElement(arrayControl, i);
|
|
1774
|
-
}
|
|
1775
|
-
};
|
|
1776
|
-
},
|
|
1777
|
-
renderElement: function renderElement(i) {
|
|
1778
|
-
return _renderElement(i);
|
|
1779
|
-
},
|
|
1780
|
-
className: cc(className),
|
|
1781
|
-
style: style,
|
|
1782
|
-
min: min,
|
|
1783
|
-
max: max
|
|
1784
|
-
};
|
|
1739
|
+
}, props);
|
|
1785
1740
|
}
|
|
1786
1741
|
function renderControlLayout(props) {
|
|
1787
1742
|
var c = props.definition,
|
|
@@ -1956,6 +1911,39 @@ function renderLayoutParts(props, renderer) {
|
|
|
1956
1911
|
function controlTitle(title, field) {
|
|
1957
1912
|
return title ? title : fieldDisplayName(field);
|
|
1958
1913
|
}
|
|
1914
|
+
function getLengthRestrictions(definition) {
|
|
1915
|
+
var _definition$validator;
|
|
1916
|
+
var lengthVal = (_definition$validator = definition.validators) == null ? void 0 : _definition$validator.find(function (x) {
|
|
1917
|
+
return x.type === exports.ValidatorType.Length;
|
|
1918
|
+
});
|
|
1919
|
+
return {
|
|
1920
|
+
min: lengthVal == null ? void 0 : lengthVal.min,
|
|
1921
|
+
max: lengthVal == null ? void 0 : lengthVal.max
|
|
1922
|
+
};
|
|
1923
|
+
}
|
|
1924
|
+
function createArrayActions(control, field, addText, removeText, noAdd, noRemove) {
|
|
1925
|
+
var _field$displayName;
|
|
1926
|
+
var noun = (_field$displayName = field.displayName) != null ? _field$displayName : field.field;
|
|
1927
|
+
return {
|
|
1928
|
+
arrayControl: control,
|
|
1929
|
+
addAction: !noAdd ? {
|
|
1930
|
+
actionId: "add",
|
|
1931
|
+
actionText: addText ? addText : "Add " + noun,
|
|
1932
|
+
onClick: function onClick() {
|
|
1933
|
+
return core.addElement(control, elementValueForField(field));
|
|
1934
|
+
}
|
|
1935
|
+
} : undefined,
|
|
1936
|
+
removeAction: !noRemove ? function (i) {
|
|
1937
|
+
return {
|
|
1938
|
+
actionId: "remove",
|
|
1939
|
+
actionText: removeText ? removeText : "Remove",
|
|
1940
|
+
onClick: function onClick() {
|
|
1941
|
+
return core.removeElement(control, i);
|
|
1942
|
+
}
|
|
1943
|
+
};
|
|
1944
|
+
} : undefined
|
|
1945
|
+
};
|
|
1946
|
+
}
|
|
1959
1947
|
function applyArrayLengthRestrictions(_ref7, disable) {
|
|
1960
1948
|
var _arrayControl$element, _arrayControl$element2;
|
|
1961
1949
|
var arrayControl = _ref7.arrayControl,
|
|
@@ -2384,10 +2372,50 @@ function createInputConversion(ft) {
|
|
|
2384
2372
|
}
|
|
2385
2373
|
}
|
|
2386
2374
|
|
|
2375
|
+
function createDefaultArrayDataRenderer() {
|
|
2376
|
+
return createDataRenderer(function (_ref, renderers) {
|
|
2377
|
+
var definition = _ref.definition,
|
|
2378
|
+
control = _ref.control,
|
|
2379
|
+
required = _ref.required,
|
|
2380
|
+
field = _ref.field,
|
|
2381
|
+
renderChild = _ref.renderChild,
|
|
2382
|
+
parentContext = _ref.parentContext,
|
|
2383
|
+
className = _ref.className,
|
|
2384
|
+
style = _ref.style,
|
|
2385
|
+
renderOptions = _ref.renderOptions;
|
|
2386
|
+
var _ref2 = isArrayRenderer(renderOptions) ? renderOptions : {},
|
|
2387
|
+
addText = _ref2.addText,
|
|
2388
|
+
noAdd = _ref2.noAdd,
|
|
2389
|
+
noRemove = _ref2.noRemove,
|
|
2390
|
+
removeText = _ref2.removeText;
|
|
2391
|
+
var childOptions = isArrayRenderer(renderOptions) ? renderOptions.childOptions : undefined;
|
|
2392
|
+
var arrayProps = _extends({}, createArrayActions(control, field, addText, removeText, noAdd, noRemove), {
|
|
2393
|
+
required: required,
|
|
2394
|
+
renderElement: function renderElement(i) {
|
|
2395
|
+
var _control$elements$i$u, _control$elements;
|
|
2396
|
+
return renderChild((_control$elements$i$u = (_control$elements = control.elements) == null ? void 0 : _control$elements[i].uniqueId) != null ? _control$elements$i$u : i, {
|
|
2397
|
+
type: exports.ControlDefinitionType.Data,
|
|
2398
|
+
field: definition.field,
|
|
2399
|
+
children: definition.children,
|
|
2400
|
+
renderOptions: childOptions != null ? childOptions : {
|
|
2401
|
+
type: exports.DataRenderType.Standard
|
|
2402
|
+
},
|
|
2403
|
+
hideTitle: true
|
|
2404
|
+
}, {
|
|
2405
|
+
elementIndex: i,
|
|
2406
|
+
dataContext: parentContext
|
|
2407
|
+
});
|
|
2408
|
+
},
|
|
2409
|
+
className: cc(className),
|
|
2410
|
+
style: style
|
|
2411
|
+
}, getLengthRestrictions(definition));
|
|
2412
|
+
return renderers.renderArray(arrayProps);
|
|
2413
|
+
});
|
|
2414
|
+
}
|
|
2387
2415
|
function createDefaultArrayRenderer(options) {
|
|
2388
2416
|
return {
|
|
2389
|
-
render: function render(props,
|
|
2390
|
-
var renderAction =
|
|
2417
|
+
render: function render(props, _ref3) {
|
|
2418
|
+
var renderAction = _ref3.renderAction;
|
|
2391
2419
|
return /*#__PURE__*/React__default["default"].createElement(DefaultArrayRenderer, _extends({}, props, options, {
|
|
2392
2420
|
renderAction: renderAction
|
|
2393
2421
|
}));
|
|
@@ -2840,17 +2868,13 @@ function createDefaultDataRenderer(options) {
|
|
|
2840
2868
|
booleanOptions = _optionRenderer$boole.booleanOptions,
|
|
2841
2869
|
optionRenderer = _optionRenderer$boole.optionRenderer,
|
|
2842
2870
|
displayOnlyClass = _optionRenderer$boole.displayOnlyClass;
|
|
2871
|
+
var arrayRenderer = createDefaultArrayDataRenderer();
|
|
2843
2872
|
return createDataRenderer(function (props, renderers) {
|
|
2844
|
-
var
|
|
2873
|
+
var field = props.field;
|
|
2874
|
+
var fieldType = field.type;
|
|
2845
2875
|
var renderOptions = props.renderOptions;
|
|
2876
|
+
if (field.collection && props.elementIndex == null) return arrayRenderer.render(props, renderers);
|
|
2846
2877
|
var renderType = renderOptions.type;
|
|
2847
|
-
if (props.toArrayProps && renderType !== exports.DataRenderType.CheckList) {
|
|
2848
|
-
return function (p) {
|
|
2849
|
-
return _extends({}, p, {
|
|
2850
|
-
children: renderers.renderArray(props.toArrayProps())
|
|
2851
|
-
});
|
|
2852
|
-
};
|
|
2853
|
-
}
|
|
2854
2878
|
if (fieldType === exports.FieldType.Compound) {
|
|
2855
2879
|
var _ref5;
|
|
2856
2880
|
var groupOptions = (_ref5 = isDataGroupRenderer(renderOptions) ? renderOptions.groupOptions : undefined) != null ? _ref5 : {
|
|
@@ -2950,9 +2974,9 @@ function createDefaultAdornmentRenderer(options) {
|
|
|
2950
2974
|
var dynamicHooks = useDynamicHooks({
|
|
2951
2975
|
value: hook
|
|
2952
2976
|
});
|
|
2953
|
-
var
|
|
2977
|
+
var SetFieldWrapper = React.useCallback(setFieldWrapper, [dynamicHooks]);
|
|
2954
2978
|
return wrapLayout(function (x) {
|
|
2955
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
2979
|
+
return /*#__PURE__*/React__default["default"].createElement(SetFieldWrapper, {
|
|
2956
2980
|
children: x,
|
|
2957
2981
|
parentContext: parentContext,
|
|
2958
2982
|
adornment: adornment
|
|
@@ -3239,6 +3263,7 @@ exports.controlTitle = controlTitle;
|
|
|
3239
3263
|
exports.createAction = createAction;
|
|
3240
3264
|
exports.createActionRenderer = createActionRenderer;
|
|
3241
3265
|
exports.createAdornmentRenderer = createAdornmentRenderer;
|
|
3266
|
+
exports.createArrayActions = createArrayActions;
|
|
3242
3267
|
exports.createArrayRenderer = createArrayRenderer;
|
|
3243
3268
|
exports.createButtonActionRenderer = createButtonActionRenderer;
|
|
3244
3269
|
exports.createCheckListRenderer = createCheckListRenderer;
|
|
@@ -3266,7 +3291,6 @@ exports.createVisibilityRenderer = createVisibilityRenderer;
|
|
|
3266
3291
|
exports.dataControl = dataControl;
|
|
3267
3292
|
exports.dateField = dateField;
|
|
3268
3293
|
exports.dateTimeField = dateTimeField;
|
|
3269
|
-
exports.defaultArrayProps = defaultArrayProps;
|
|
3270
3294
|
exports.defaultCompoundField = defaultCompoundField;
|
|
3271
3295
|
exports.defaultControlForField = defaultControlForField;
|
|
3272
3296
|
exports.defaultDataProps = defaultDataProps;
|
|
@@ -3299,6 +3323,7 @@ exports.findScalarField = findScalarField;
|
|
|
3299
3323
|
exports.getAllReferencedClasses = getAllReferencedClasses;
|
|
3300
3324
|
exports.getControlData = getControlData;
|
|
3301
3325
|
exports.getDisplayOnlyOptions = getDisplayOnlyOptions;
|
|
3326
|
+
exports.getLengthRestrictions = getLengthRestrictions;
|
|
3302
3327
|
exports.getOverrideClass = getOverrideClass;
|
|
3303
3328
|
exports.getTypeField = getTypeField;
|
|
3304
3329
|
exports.groupedControl = groupedControl;
|
|
@@ -3308,6 +3333,7 @@ exports.htmlDisplayControl = htmlDisplayControl;
|
|
|
3308
3333
|
exports.intField = intField;
|
|
3309
3334
|
exports.isAccordionAdornment = isAccordionAdornment;
|
|
3310
3335
|
exports.isActionControlsDefinition = isActionControlsDefinition;
|
|
3336
|
+
exports.isArrayRenderer = isArrayRenderer;
|
|
3311
3337
|
exports.isCompoundField = isCompoundField;
|
|
3312
3338
|
exports.isControlDisabled = isControlDisabled;
|
|
3313
3339
|
exports.isControlReadonly = isControlReadonly;
|