@react-typed-forms/schemas 11.7.3 → 11.9.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/DefaultAccordion.d.ts +6 -9
- package/lib/controlRender.d.ts +1 -0
- package/lib/createDefaultRenderers.d.ts +10 -7
- package/lib/index.js +29 -19
- package/lib/index.js.map +1 -1
- package/lib/tailwind.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import React, { CSSProperties, ReactElement
|
|
1
|
+
import React, { CSSProperties, ReactElement } from "react";
|
|
2
2
|
import { AccordionAdornment } from "../types";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { FormRenderer } from "../controlRender";
|
|
4
|
+
import { DefaultAccordionRendererOptions } from "../createDefaultRenderers";
|
|
5
|
+
export declare function DefaultAccordion({ children, accordion, contentStyle, contentClassName, designMode, iconOpenClass, iconClosedClass, className, renderTitle, renderToggler, renderers, titleClass, }: {
|
|
5
6
|
children: ReactElement;
|
|
6
7
|
accordion: Partial<AccordionAdornment>;
|
|
7
8
|
contentStyle?: CSSProperties;
|
|
8
9
|
contentClassName?: string;
|
|
9
10
|
designMode?: boolean;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
togglerClosedClass?: string;
|
|
13
|
-
renderTitle?: (title: string | undefined, current: Control<boolean>) => ReactNode;
|
|
14
|
-
renderToggler?: (current: Control<boolean>) => ReactNode;
|
|
15
|
-
}): React.JSX.Element;
|
|
11
|
+
renderers: FormRenderer;
|
|
12
|
+
} & DefaultAccordionRendererOptions): React.JSX.Element;
|
package/lib/controlRender.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface FormRenderer {
|
|
|
13
13
|
renderLabel: (props: LabelRendererProps, labelStart: ReactNode, labelEnd: ReactNode) => ReactNode;
|
|
14
14
|
renderLayout: (props: ControlLayoutProps) => RenderedControl;
|
|
15
15
|
renderVisibility: (props: VisibilityRendererProps) => ReactNode;
|
|
16
|
+
renderLabelText: (props: ReactNode) => ReactNode;
|
|
16
17
|
}
|
|
17
18
|
export interface AdornmentProps {
|
|
18
19
|
adornment: ControlAdornment;
|
|
@@ -49,14 +49,17 @@ interface DefaultDataRendererOptions {
|
|
|
49
49
|
optionRenderer?: DataRendererRegistration;
|
|
50
50
|
}
|
|
51
51
|
export declare function createDefaultDataRenderer(options?: DefaultDataRendererOptions): DataRendererRegistration;
|
|
52
|
+
export interface DefaultAccordionRendererOptions {
|
|
53
|
+
className?: string;
|
|
54
|
+
titleClass?: string;
|
|
55
|
+
togglerClass?: string;
|
|
56
|
+
iconOpenClass?: string;
|
|
57
|
+
iconClosedClass?: string;
|
|
58
|
+
renderTitle?: (title: string | undefined, current: Control<boolean>) => ReactNode;
|
|
59
|
+
renderToggler?: (current: Control<boolean>, title: ReactNode) => ReactNode;
|
|
60
|
+
}
|
|
52
61
|
export interface DefaultAdornmentRendererOptions {
|
|
53
|
-
accordion?:
|
|
54
|
-
className?: string;
|
|
55
|
-
togglerOpenClass?: string;
|
|
56
|
-
togglerClosedClass?: string;
|
|
57
|
-
renderTitle?: (title: string | undefined, current: Control<boolean>) => ReactNode;
|
|
58
|
-
renderToggler?: (current: Control<boolean>) => ReactNode;
|
|
59
|
-
};
|
|
62
|
+
accordion?: DefaultAccordionRendererOptions;
|
|
60
63
|
}
|
|
61
64
|
export declare function createDefaultAdornmentRenderer(options?: DefaultAdornmentRendererOptions): AdornmentRendererRegistration;
|
|
62
65
|
interface DefaultLabelRendererOptions {
|
package/lib/index.js
CHANGED
|
@@ -1941,8 +1941,9 @@ var defaultTailwindTheme = {
|
|
|
1941
1941
|
adornment: {
|
|
1942
1942
|
accordion: {
|
|
1943
1943
|
className: "flex items-center gap-2 my-2",
|
|
1944
|
-
|
|
1945
|
-
|
|
1944
|
+
titleClass: "cursor-pointer",
|
|
1945
|
+
iconOpenClass: "fa fa-chevron-up",
|
|
1946
|
+
iconClosedClass: "fa fa-chevron-down"
|
|
1946
1947
|
}
|
|
1947
1948
|
}
|
|
1948
1949
|
};
|
|
@@ -2429,31 +2430,35 @@ function DefaultAccordion(_ref) {
|
|
|
2429
2430
|
contentStyle = _ref.contentStyle,
|
|
2430
2431
|
contentClassName = _ref.contentClassName,
|
|
2431
2432
|
designMode = _ref.designMode,
|
|
2432
|
-
|
|
2433
|
-
|
|
2433
|
+
iconOpenClass = _ref.iconOpenClass,
|
|
2434
|
+
iconClosedClass = _ref.iconClosedClass,
|
|
2434
2435
|
className = _ref.className,
|
|
2435
2436
|
_ref$renderTitle = _ref.renderTitle,
|
|
2436
|
-
renderTitle = _ref$renderTitle === void 0 ? function (
|
|
2437
|
-
return
|
|
2437
|
+
renderTitle = _ref$renderTitle === void 0 ? function (t) {
|
|
2438
|
+
return t;
|
|
2438
2439
|
} : _ref$renderTitle,
|
|
2439
|
-
renderToggler = _ref.renderToggler
|
|
2440
|
+
renderToggler = _ref.renderToggler,
|
|
2441
|
+
renderers = _ref.renderers,
|
|
2442
|
+
titleClass = _ref.titleClass;
|
|
2440
2443
|
var open = core.useControl(!!accordion.defaultExpanded);
|
|
2441
2444
|
var isOpen = open.value;
|
|
2442
2445
|
var fullContentStyle = isOpen || designMode ? contentStyle : _extends({}, contentStyle, {
|
|
2443
2446
|
display: "none"
|
|
2444
2447
|
});
|
|
2445
|
-
var
|
|
2448
|
+
var title = renderers.renderLabelText(renderTitle(accordion.title, open));
|
|
2449
|
+
var toggler = renderToggler ? renderToggler(open, title) : /*#__PURE__*/React__default["default"].createElement("button", {
|
|
2450
|
+
className: className,
|
|
2446
2451
|
onClick: function onClick() {
|
|
2447
2452
|
return open.setValue(function (x) {
|
|
2448
2453
|
return !x;
|
|
2449
2454
|
});
|
|
2450
2455
|
}
|
|
2451
|
-
}, /*#__PURE__*/React__default["default"].createElement("
|
|
2452
|
-
className:
|
|
2456
|
+
}, /*#__PURE__*/React__default["default"].createElement("label", {
|
|
2457
|
+
className: titleClass
|
|
2458
|
+
}, title), /*#__PURE__*/React__default["default"].createElement("i", {
|
|
2459
|
+
className: clsx__default["default"](isOpen ? iconOpenClass : iconClosedClass)
|
|
2453
2460
|
}));
|
|
2454
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2455
|
-
className: className
|
|
2456
|
-
}, renderTitle(accordion.title, open), toggler), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2461
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, toggler, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
2457
2462
|
style: fullContentStyle,
|
|
2458
2463
|
className: contentClassName
|
|
2459
2464
|
}, children));
|
|
@@ -2634,7 +2639,7 @@ function createDefaultAdornmentRenderer(options) {
|
|
|
2634
2639
|
}
|
|
2635
2640
|
return {
|
|
2636
2641
|
type: "adornment",
|
|
2637
|
-
render: function render(_ref6) {
|
|
2642
|
+
render: function render(_ref6, renderers) {
|
|
2638
2643
|
var adornment = _ref6.adornment,
|
|
2639
2644
|
designMode = _ref6.designMode;
|
|
2640
2645
|
return {
|
|
@@ -2648,6 +2653,7 @@ function createDefaultAdornmentRenderer(options) {
|
|
|
2648
2653
|
if (isAccordionAdornment(adornment)) {
|
|
2649
2654
|
return wrapLayout(function (x) {
|
|
2650
2655
|
return /*#__PURE__*/React__default["default"].createElement(DefaultAccordion, _extends({
|
|
2656
|
+
renderers: renderers,
|
|
2651
2657
|
children: x,
|
|
2652
2658
|
accordion: adornment,
|
|
2653
2659
|
contentStyle: rl.style,
|
|
@@ -2701,10 +2707,7 @@ function createDefaultLabelRenderer(options) {
|
|
|
2701
2707
|
return labelContainer( /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("label", {
|
|
2702
2708
|
htmlFor: props.forId,
|
|
2703
2709
|
className: rendererClass(props.className, clsx__default["default"](className, props.type === exports.LabelType.Group && groupLabelClass, props.type === exports.LabelType.Control && controlLabelClass))
|
|
2704
|
-
}, labelStart, renderers.
|
|
2705
|
-
label: props.label,
|
|
2706
|
-
type: exports.LabelType.Text
|
|
2707
|
-
}, undefined, undefined), props.required && requiredElement), labelEnd));
|
|
2710
|
+
}, labelStart, renderers.renderLabelText(props.label), props.required && requiredElement), labelEnd));
|
|
2708
2711
|
},
|
|
2709
2712
|
type: "label"
|
|
2710
2713
|
};
|
|
@@ -2752,8 +2755,15 @@ function createFormRenderer(customRenderers, defaultRenderers) {
|
|
|
2752
2755
|
renderArray: renderArray,
|
|
2753
2756
|
renderAdornment: renderAdornment,
|
|
2754
2757
|
renderLayout: renderLayout,
|
|
2755
|
-
renderVisibility: visibilityRenderer.render
|
|
2758
|
+
renderVisibility: visibilityRenderer.render,
|
|
2759
|
+
renderLabelText: renderLabelText
|
|
2756
2760
|
};
|
|
2761
|
+
function renderLabelText(label) {
|
|
2762
|
+
return renderLabel({
|
|
2763
|
+
label: label,
|
|
2764
|
+
type: exports.LabelType.Text
|
|
2765
|
+
}, undefined, undefined);
|
|
2766
|
+
}
|
|
2757
2767
|
function renderLayout(props) {
|
|
2758
2768
|
var _layoutRenderers$find;
|
|
2759
2769
|
var renderer = (_layoutRenderers$find = layoutRenderers.find(function (x) {
|