@react-typed-forms/schemas 11.8.0 → 11.10.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.
@@ -1,15 +1,12 @@
1
- import React, { CSSProperties, ReactElement, ReactNode } from "react";
1
+ import React, { CSSProperties, ReactElement } from "react";
2
2
  import { AccordionAdornment } from "../types";
3
- import { Control } from "@react-typed-forms/core";
4
- export declare function DefaultAccordion({ children, accordion, contentStyle, contentClassName, designMode, togglerOpenClass, togglerClosedClass, className, renderTitle, renderToggler, }: {
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
- className?: string;
11
- togglerOpenClass?: string;
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;
@@ -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
@@ -1598,8 +1598,14 @@ function defaultDataProps(_ref4) {
1598
1598
  control: control,
1599
1599
  field: field,
1600
1600
  id: "c" + control.uniqueId,
1601
- options: fieldOptions && allowed.length > 0 ? fieldOptions.filter(function (x) {
1602
- return allowed.includes(x.value);
1601
+ options: allowed.length > 0 ? allowed.map(function (x) {
1602
+ var _fieldOptions$find;
1603
+ return typeof x === "object" ? x : (_fieldOptions$find = fieldOptions == null ? void 0 : fieldOptions.find(function (y) {
1604
+ return y.value == x;
1605
+ })) != null ? _fieldOptions$find : {
1606
+ name: x.toString(),
1607
+ value: x
1608
+ };
1603
1609
  }) : fieldOptions,
1604
1610
  readonly: !!formOptions.readonly,
1605
1611
  renderOptions: (_definition$renderOpt = definition.renderOptions) != null ? _definition$renderOpt : {
@@ -1941,8 +1947,9 @@ var defaultTailwindTheme = {
1941
1947
  adornment: {
1942
1948
  accordion: {
1943
1949
  className: "flex items-center gap-2 my-2",
1944
- togglerOpenClass: "fa fa-chevron-up",
1945
- togglerClosedClass: "fa fa-chevron-down"
1950
+ titleClass: "cursor-pointer",
1951
+ iconOpenClass: "fa fa-chevron-up",
1952
+ iconClosedClass: "fa fa-chevron-down"
1946
1953
  }
1947
1954
  }
1948
1955
  };
@@ -2429,31 +2436,35 @@ function DefaultAccordion(_ref) {
2429
2436
  contentStyle = _ref.contentStyle,
2430
2437
  contentClassName = _ref.contentClassName,
2431
2438
  designMode = _ref.designMode,
2432
- togglerOpenClass = _ref.togglerOpenClass,
2433
- togglerClosedClass = _ref.togglerClosedClass,
2439
+ iconOpenClass = _ref.iconOpenClass,
2440
+ iconClosedClass = _ref.iconClosedClass,
2434
2441
  className = _ref.className,
2435
2442
  _ref$renderTitle = _ref.renderTitle,
2436
- renderTitle = _ref$renderTitle === void 0 ? function (x) {
2437
- return /*#__PURE__*/React__default["default"].createElement("span", null, x);
2443
+ renderTitle = _ref$renderTitle === void 0 ? function (t) {
2444
+ return t;
2438
2445
  } : _ref$renderTitle,
2439
- renderToggler = _ref.renderToggler;
2446
+ renderToggler = _ref.renderToggler,
2447
+ renderers = _ref.renderers,
2448
+ titleClass = _ref.titleClass;
2440
2449
  var open = core.useControl(!!accordion.defaultExpanded);
2441
2450
  var isOpen = open.value;
2442
2451
  var fullContentStyle = isOpen || designMode ? contentStyle : _extends({}, contentStyle, {
2443
2452
  display: "none"
2444
2453
  });
2445
- var toggler = renderToggler ? renderToggler(open) : /*#__PURE__*/React__default["default"].createElement("button", {
2454
+ var title = renderers.renderLabelText(renderTitle(accordion.title, open));
2455
+ var toggler = renderToggler ? renderToggler(open, title) : /*#__PURE__*/React__default["default"].createElement("button", {
2456
+ className: className,
2446
2457
  onClick: function onClick() {
2447
2458
  return open.setValue(function (x) {
2448
2459
  return !x;
2449
2460
  });
2450
2461
  }
2451
- }, /*#__PURE__*/React__default["default"].createElement("i", {
2452
- className: clsx__default["default"](isOpen ? togglerOpenClass : togglerClosedClass)
2462
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
2463
+ className: titleClass
2464
+ }, title), /*#__PURE__*/React__default["default"].createElement("i", {
2465
+ className: clsx__default["default"](isOpen ? iconOpenClass : iconClosedClass)
2453
2466
  }));
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", {
2467
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, toggler, /*#__PURE__*/React__default["default"].createElement("div", {
2457
2468
  style: fullContentStyle,
2458
2469
  className: contentClassName
2459
2470
  }, children));
@@ -2634,7 +2645,7 @@ function createDefaultAdornmentRenderer(options) {
2634
2645
  }
2635
2646
  return {
2636
2647
  type: "adornment",
2637
- render: function render(_ref6) {
2648
+ render: function render(_ref6, renderers) {
2638
2649
  var adornment = _ref6.adornment,
2639
2650
  designMode = _ref6.designMode;
2640
2651
  return {
@@ -2648,6 +2659,7 @@ function createDefaultAdornmentRenderer(options) {
2648
2659
  if (isAccordionAdornment(adornment)) {
2649
2660
  return wrapLayout(function (x) {
2650
2661
  return /*#__PURE__*/React__default["default"].createElement(DefaultAccordion, _extends({
2662
+ renderers: renderers,
2651
2663
  children: x,
2652
2664
  accordion: adornment,
2653
2665
  contentStyle: rl.style,