@tachybase/components 0.23.8

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.
Files changed (174) hide show
  1. package/.turbo/turbo-build.log +9 -0
  2. package/LICENSE +201 -0
  3. package/lib/__builtins__/dayjs.d.ts +4 -0
  4. package/lib/__builtins__/dayjs.js +95 -0
  5. package/lib/__builtins__/hooks/index.d.ts +4 -0
  6. package/lib/__builtins__/hooks/index.js +27 -0
  7. package/lib/__builtins__/hooks/useClickAway.d.ts +5 -0
  8. package/lib/__builtins__/hooks/useClickAway.js +64 -0
  9. package/lib/__builtins__/hooks/useConfig.d.ts +1 -0
  10. package/lib/__builtins__/hooks/useConfig.js +31 -0
  11. package/lib/__builtins__/hooks/usePrefixCls.d.ts +3 -0
  12. package/lib/__builtins__/hooks/usePrefixCls.js +38 -0
  13. package/lib/__builtins__/hooks/useToken.d.ts +6 -0
  14. package/lib/__builtins__/hooks/useToken.js +28 -0
  15. package/lib/__builtins__/index.d.ts +7 -0
  16. package/lib/__builtins__/index.js +33 -0
  17. package/lib/__builtins__/loading.d.ts +1 -0
  18. package/lib/__builtins__/loading.js +40 -0
  19. package/lib/__builtins__/pickDataProps.d.ts +1 -0
  20. package/lib/__builtins__/pickDataProps.js +36 -0
  21. package/lib/__builtins__/portal.d.ts +10 -0
  22. package/lib/__builtins__/portal.js +89 -0
  23. package/lib/__builtins__/render.d.ts +9 -0
  24. package/lib/__builtins__/render.js +99 -0
  25. package/lib/__builtins__/sort.d.ts +73 -0
  26. package/lib/__builtins__/sort.js +126 -0
  27. package/lib/__builtins__/style.d.ts +23 -0
  28. package/lib/__builtins__/style.js +88 -0
  29. package/lib/array-base/index.d.ts +64 -0
  30. package/lib/array-base/index.js +345 -0
  31. package/lib/array-base/style.d.ts +2 -0
  32. package/lib/array-base/style.js +68 -0
  33. package/lib/array-cards/index.d.ts +5 -0
  34. package/lib/array-cards/index.js +166 -0
  35. package/lib/array-cards/style.d.ts +2 -0
  36. package/lib/array-cards/style.js +37 -0
  37. package/lib/array-collapse/index.d.ts +10 -0
  38. package/lib/array-collapse/index.js +199 -0
  39. package/lib/array-collapse/style.d.ts +2 -0
  40. package/lib/array-collapse/style.js +33 -0
  41. package/lib/array-items/index.d.ts +8 -0
  42. package/lib/array-items/index.js +122 -0
  43. package/lib/array-items/style.d.ts +2 -0
  44. package/lib/array-items/style.js +82 -0
  45. package/lib/array-table/index.d.ts +9 -0
  46. package/lib/array-table/index.js +376 -0
  47. package/lib/array-table/style.d.ts +2 -0
  48. package/lib/array-table/style.js +71 -0
  49. package/lib/array-tabs/index.d.ts +4 -0
  50. package/lib/array-tabs/index.js +102 -0
  51. package/lib/cascader/index.d.ts +12 -0
  52. package/lib/cascader/index.js +58 -0
  53. package/lib/checkbox/index.d.ts +5 -0
  54. package/lib/checkbox/index.js +51 -0
  55. package/lib/code-mirror/index.d.ts +3 -0
  56. package/lib/code-mirror/index.js +91 -0
  57. package/lib/date-picker/index.d.ts +2 -0
  58. package/lib/date-picker/index.js +70 -0
  59. package/lib/date-picker/style.d.ts +1 -0
  60. package/lib/date-picker/style.js +1 -0
  61. package/lib/editable/index.d.ts +8 -0
  62. package/lib/editable/index.js +181 -0
  63. package/lib/editable/style.d.ts +2 -0
  64. package/lib/editable/style.js +69 -0
  65. package/lib/form/index.d.ts +12 -0
  66. package/lib/form/index.js +71 -0
  67. package/lib/form-button-group/index.d.ts +27 -0
  68. package/lib/form-button-group/index.js +148 -0
  69. package/lib/form-button-group/style.d.ts +2 -0
  70. package/lib/form-button-group/style.js +41 -0
  71. package/lib/form-collapse/index.d.ts +28 -0
  72. package/lib/form-collapse/index.js +150 -0
  73. package/lib/form-dialog/index.d.ts +26 -0
  74. package/lib/form-dialog/index.js +194 -0
  75. package/lib/form-drawer/index.d.ts +25 -0
  76. package/lib/form-drawer/index.js +187 -0
  77. package/lib/form-grid/index.d.ts +34 -0
  78. package/lib/form-grid/index.js +108 -0
  79. package/lib/form-grid/style.d.ts +2 -0
  80. package/lib/form-grid/style.js +31 -0
  81. package/lib/form-item/hooks/index.d.ts +2 -0
  82. package/lib/form-item/hooks/index.js +23 -0
  83. package/lib/form-item/hooks/useFormItemLayout.d.ts +37 -0
  84. package/lib/form-item/hooks/useFormItemLayout.js +66 -0
  85. package/lib/form-item/hooks/useOverflow.d.ts +5 -0
  86. package/lib/form-item/hooks/useOverflow.js +55 -0
  87. package/lib/form-item/index.d.ts +11 -0
  88. package/lib/form-item/index.js +303 -0
  89. package/lib/form-item/style/animation.d.ts +2 -0
  90. package/lib/form-item/style/animation.js +57 -0
  91. package/lib/form-item/style/grid.d.ts +2 -0
  92. package/lib/form-item/style/grid.js +50 -0
  93. package/lib/form-item/style/index.d.ts +2 -0
  94. package/lib/form-item/style/index.js +387 -0
  95. package/lib/form-item/style/other.d.ts +2 -0
  96. package/lib/form-item/style/other.js +490 -0
  97. package/lib/form-item/types.d.ts +35 -0
  98. package/lib/form-item/types.js +15 -0
  99. package/lib/form-layout/index.d.ts +74 -0
  100. package/lib/form-layout/index.js +96 -0
  101. package/lib/form-layout/useResponsiveFormLayout.d.ts +17 -0
  102. package/lib/form-layout/useResponsiveFormLayout.js +89 -0
  103. package/lib/form-step/index.d.ts +27 -0
  104. package/lib/form-step/index.js +154 -0
  105. package/lib/form-tab/index.d.ts +19 -0
  106. package/lib/form-tab/index.js +150 -0
  107. package/lib/index.d.ts +38 -0
  108. package/lib/index.js +95 -0
  109. package/lib/input/index.d.ts +7 -0
  110. package/lib/input/index.js +57 -0
  111. package/lib/lightbox/constant.d.ts +21 -0
  112. package/lib/lightbox/constant.js +79 -0
  113. package/lib/lightbox/index.d.ts +2 -0
  114. package/lib/lightbox/index.js +37 -0
  115. package/lib/lightbox/interface.d.ts +43 -0
  116. package/lib/lightbox/interface.js +15 -0
  117. package/lib/lightbox/react-image-lightbox.d.ts +197 -0
  118. package/lib/lightbox/react-image-lightbox.js +1431 -0
  119. package/lib/lightbox/style.css +305 -0
  120. package/lib/lightbox/util.d.ts +7 -0
  121. package/lib/lightbox/util.js +71 -0
  122. package/lib/number-picker/index.d.ts +4 -0
  123. package/lib/number-picker/index.js +32 -0
  124. package/lib/password/PasswordStrength.d.ts +9 -0
  125. package/lib/password/PasswordStrength.js +188 -0
  126. package/lib/password/index.d.ts +7 -0
  127. package/lib/password/index.js +85 -0
  128. package/lib/preview-text/index.d.ts +12 -0
  129. package/lib/preview-text/index.js +263 -0
  130. package/lib/preview-text/style.d.ts +2 -0
  131. package/lib/preview-text/style.js +37 -0
  132. package/lib/radio/index.d.ts +8 -0
  133. package/lib/radio/index.js +51 -0
  134. package/lib/reset/index.d.ts +10 -0
  135. package/lib/reset/index.js +67 -0
  136. package/lib/select/index.d.ts +4 -0
  137. package/lib/select/index.js +59 -0
  138. package/lib/select-table/hooks/index.d.ts +5 -0
  139. package/lib/select-table/hooks/index.js +29 -0
  140. package/lib/select-table/hooks/useCheckSlackly.d.ts +16 -0
  141. package/lib/select-table/hooks/useCheckSlackly.js +57 -0
  142. package/lib/select-table/hooks/useFilterOptions.d.ts +3 -0
  143. package/lib/select-table/hooks/useFilterOptions.js +97 -0
  144. package/lib/select-table/hooks/useFlatOptions.d.ts +3 -0
  145. package/lib/select-table/hooks/useFlatOptions.js +46 -0
  146. package/lib/select-table/hooks/useSize.d.ts +9 -0
  147. package/lib/select-table/hooks/useSize.js +48 -0
  148. package/lib/select-table/hooks/useTitleAddon.d.ts +7 -0
  149. package/lib/select-table/hooks/useTitleAddon.js +90 -0
  150. package/lib/select-table/index.d.ts +27 -0
  151. package/lib/select-table/index.js +339 -0
  152. package/lib/select-table/style.d.ts +2 -0
  153. package/lib/select-table/style.js +33 -0
  154. package/lib/select-table/utils.d.ts +78 -0
  155. package/lib/select-table/utils.js +166 -0
  156. package/lib/space/index.d.ts +4 -0
  157. package/lib/space/index.js +49 -0
  158. package/lib/submit/index.d.ts +11 -0
  159. package/lib/submit/index.js +67 -0
  160. package/lib/switch/index.d.ts +2 -0
  161. package/lib/switch/index.js +44 -0
  162. package/lib/time-picker/index.d.ts +2 -0
  163. package/lib/time-picker/index.js +60 -0
  164. package/lib/time-picker/style.d.ts +1 -0
  165. package/lib/time-picker/style.js +1 -0
  166. package/lib/transfer/index.d.ts +2 -0
  167. package/lib/transfer/index.js +56 -0
  168. package/lib/tree-select/index.d.ts +2 -0
  169. package/lib/tree-select/index.js +58 -0
  170. package/lib/upload/index.d.ts +18 -0
  171. package/lib/upload/index.js +159 -0
  172. package/lib/upload/placeholder.d.ts +4 -0
  173. package/lib/upload/placeholder.js +88 -0
  174. package/package.json +31 -0
@@ -0,0 +1,148 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var form_button_group_exports = {};
30
+ __export(form_button_group_exports, {
31
+ FormButtonGroup: () => FormButtonGroup,
32
+ default: () => form_button_group_default
33
+ });
34
+ module.exports = __toCommonJS(form_button_group_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_classnames = __toESM(require("classnames"));
38
+ var import_react_sticky_box = __toESM(require("react-sticky-box"));
39
+ var import_builtins = require("../__builtins__");
40
+ var import_form_item = require("../form-item");
41
+ var import_style = __toESM(require("./style"));
42
+ function getInheritedBackgroundColor(el) {
43
+ const defaultStyle = getDefaultBackground();
44
+ const backgroundColor = window.getComputedStyle(el).backgroundColor;
45
+ if (backgroundColor !== defaultStyle) return backgroundColor;
46
+ if (!el.parentElement) return defaultStyle;
47
+ return getInheritedBackgroundColor(el.parentElement);
48
+ }
49
+ __name(getInheritedBackgroundColor, "getInheritedBackgroundColor");
50
+ function getDefaultBackground() {
51
+ const div = document.createElement("div");
52
+ document.head.appendChild(div);
53
+ const bg = window.getComputedStyle(div).backgroundColor;
54
+ document.head.removeChild(div);
55
+ return bg;
56
+ }
57
+ __name(getDefaultBackground, "getDefaultBackground");
58
+ const FormButtonGroup = /* @__PURE__ */ __name(({
59
+ align,
60
+ gutter,
61
+ ...props
62
+ }) => {
63
+ const prefixCls = (0, import_builtins.usePrefixCls)("formily-button-group");
64
+ return /* @__PURE__ */ import_react.default.createElement(
65
+ import_antd.Space,
66
+ {
67
+ ...props,
68
+ size: gutter,
69
+ className: (0, import_classnames.default)(prefixCls, props.className),
70
+ style: {
71
+ ...props.style,
72
+ justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center",
73
+ display: "flex"
74
+ }
75
+ },
76
+ props.children
77
+ );
78
+ }, "FormButtonGroup");
79
+ FormButtonGroup.defaultProps = {
80
+ align: "left"
81
+ };
82
+ FormButtonGroup.FormItem = ({ gutter, ...props }) => {
83
+ var _a;
84
+ return /* @__PURE__ */ import_react.default.createElement(
85
+ import_form_item.BaseItem,
86
+ {
87
+ ...props,
88
+ label: " ",
89
+ style: {
90
+ margin: 0,
91
+ padding: 0,
92
+ ...props.style,
93
+ width: "100%"
94
+ },
95
+ colon: false
96
+ },
97
+ ((_a = props.children) == null ? void 0 : _a["length"]) ? /* @__PURE__ */ import_react.default.createElement(import_antd.Space, { size: gutter }, props.children) : props.children
98
+ );
99
+ };
100
+ const _Sticky = /* @__PURE__ */ __name(({
101
+ align = "left",
102
+ ...props
103
+ }) => {
104
+ const ref = (0, import_react.useRef)(null);
105
+ const [color, setColor] = (0, import_react.useState)("transparent");
106
+ const prefixCls = (0, import_builtins.usePrefixCls)("formily-button-group");
107
+ const [wrapSSR, hashId] = (0, import_style.default)(prefixCls);
108
+ (0, import_react.useLayoutEffect)(() => {
109
+ if (ref.current) {
110
+ const computed = getInheritedBackgroundColor(ref.current);
111
+ if (computed !== color) {
112
+ setColor(computed);
113
+ }
114
+ }
115
+ });
116
+ return wrapSSR(
117
+ /* @__PURE__ */ import_react.default.createElement(
118
+ import_react_sticky_box.default,
119
+ {
120
+ ...props,
121
+ className: (0, import_classnames.default)(`${prefixCls}-sticky`, hashId, props.className),
122
+ style: {
123
+ backgroundColor: color,
124
+ ...props.style
125
+ },
126
+ bottom: true
127
+ },
128
+ /* @__PURE__ */ import_react.default.createElement(
129
+ "div",
130
+ {
131
+ ref,
132
+ className: `${prefixCls}-sticky-inner`,
133
+ style: {
134
+ ...props.style,
135
+ justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
136
+ }
137
+ },
138
+ props.children
139
+ )
140
+ )
141
+ );
142
+ }, "_Sticky");
143
+ FormButtonGroup.Sticky = _Sticky;
144
+ var form_button_group_default = FormButtonGroup;
145
+ // Annotate the CommonJS export names for ESM import in node:
146
+ 0 && (module.exports = {
147
+ FormButtonGroup
148
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: (prefixCls: string) => import("..").UseComponentStyleResult;
2
+ export default _default;
@@ -0,0 +1,41 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var style_exports = {};
19
+ __export(style_exports, {
20
+ default: () => style_default
21
+ });
22
+ module.exports = __toCommonJS(style_exports);
23
+ var import_builtins = require("./../__builtins__");
24
+ var style_default = (0, import_builtins.genStyleHook)("form-button-group", (token) => {
25
+ const { componentCls, antCls, colorBorder } = token;
26
+ return {
27
+ [componentCls]: {
28
+ "&-sticky": {
29
+ padding: "10px 0",
30
+ borderTop: `1px solid ${colorBorder}`,
31
+ zIndex: 999,
32
+ [`${componentCls}-sticky-inner`]: {
33
+ display: "flex",
34
+ [`${antCls}-formily-item`]: {
35
+ flex: 2
36
+ }
37
+ }
38
+ }
39
+ }
40
+ };
41
+ });
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { ReactFC } from '@tachybase/schema';
3
+ import { CollapsePanelProps, CollapseProps } from 'antd';
4
+ type ActiveKeys = string | number | Array<string | number>;
5
+ type ActiveKey = string | number;
6
+ export interface IFormCollapse {
7
+ activeKeys: ActiveKeys;
8
+ hasActiveKey(key: ActiveKey): boolean;
9
+ setActiveKeys(key: ActiveKeys): void;
10
+ addActiveKey(key: ActiveKey): void;
11
+ removeActiveKey(key: ActiveKey): void;
12
+ toggleActiveKey(key: ActiveKey): void;
13
+ }
14
+ export interface IFormCollapseProps extends CollapseProps {
15
+ formCollapse?: IFormCollapse;
16
+ }
17
+ export declare const FormCollapse: ReactFC<IFormCollapseProps> & {
18
+ CollapsePanel: React.FC<React.PropsWithChildren<CollapsePanelProps>>;
19
+ createFormCollapse: (defaultActiveKeys?: ActiveKeys) => {
20
+ activeKeys: ActiveKeys;
21
+ setActiveKeys(keys: ActiveKeys): void;
22
+ hasActiveKey(key: ActiveKey): boolean;
23
+ addActiveKey(key: ActiveKey): void;
24
+ removeActiveKey(key: ActiveKey): void;
25
+ toggleActiveKey(key: ActiveKey): void;
26
+ };
27
+ };
28
+ export default FormCollapse;
@@ -0,0 +1,150 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var form_collapse_exports = {};
30
+ __export(form_collapse_exports, {
31
+ FormCollapse: () => FormCollapse,
32
+ default: () => form_collapse_default
33
+ });
34
+ module.exports = __toCommonJS(form_collapse_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_schema = require("@tachybase/schema");
37
+ var import_antd = require("antd");
38
+ var import_classnames = __toESM(require("classnames"));
39
+ var import_builtins = require("../__builtins__");
40
+ const usePanels = /* @__PURE__ */ __name(() => {
41
+ const collapseField = (0, import_schema.useField)();
42
+ const schema = (0, import_schema.useFieldSchema)();
43
+ const panels = [];
44
+ schema.mapProperties((schema2, name) => {
45
+ var _a, _b, _c;
46
+ const field = collapseField.query(collapseField.address.concat(name)).take();
47
+ if ((field == null ? void 0 : field.display) === "none" || (field == null ? void 0 : field.display) === "hidden") return;
48
+ if (((_a = schema2["x-component"]) == null ? void 0 : _a.indexOf("CollapsePanel")) > -1) {
49
+ const key = ((_b = field == null ? void 0 : field.componentProps) == null ? void 0 : _b.key) || ((_c = schema2 == null ? void 0 : schema2["x-component-props"]) == null ? void 0 : _c.key) || name;
50
+ panels.push({
51
+ name,
52
+ props: {
53
+ ...schema2 == null ? void 0 : schema2["x-component-props"],
54
+ ...field == null ? void 0 : field.componentProps,
55
+ key
56
+ },
57
+ schema: schema2
58
+ });
59
+ }
60
+ });
61
+ return panels;
62
+ }, "usePanels");
63
+ const createFormCollapse = /* @__PURE__ */ __name((defaultActiveKeys) => {
64
+ const formCollapse = (0, import_schema.model)({
65
+ activeKeys: defaultActiveKeys,
66
+ setActiveKeys(keys) {
67
+ formCollapse.activeKeys = keys;
68
+ },
69
+ hasActiveKey(key) {
70
+ if (Array.isArray(formCollapse.activeKeys)) {
71
+ if (formCollapse.activeKeys.includes(key)) {
72
+ return true;
73
+ }
74
+ } else if (formCollapse.activeKeys === key) {
75
+ return true;
76
+ }
77
+ return false;
78
+ },
79
+ addActiveKey(key) {
80
+ if (formCollapse.hasActiveKey(key)) return;
81
+ formCollapse.activeKeys = (0, import_schema.toArr)(formCollapse.activeKeys).concat(key);
82
+ },
83
+ removeActiveKey(key) {
84
+ if (Array.isArray(formCollapse.activeKeys)) {
85
+ formCollapse.activeKeys = formCollapse.activeKeys.filter((item) => item !== key);
86
+ } else {
87
+ formCollapse.activeKeys = "";
88
+ }
89
+ },
90
+ toggleActiveKey(key) {
91
+ if (formCollapse.hasActiveKey(key)) {
92
+ formCollapse.removeActiveKey(key);
93
+ } else {
94
+ formCollapse.addActiveKey(key);
95
+ }
96
+ }
97
+ });
98
+ return (0, import_schema.markRaw)(formCollapse);
99
+ }, "createFormCollapse");
100
+ const InternalFormCollapse = (0, import_schema.observer)(({ formCollapse, ...props }) => {
101
+ const field = (0, import_schema.useField)();
102
+ const panels = usePanels();
103
+ const prefixCls = (0, import_builtins.usePrefixCls)("formily-collapse", props);
104
+ const _formCollapse = (0, import_react.useMemo)(() => {
105
+ return formCollapse ? formCollapse : createFormCollapse(props.defaultActiveKey);
106
+ }, []);
107
+ const takeActiveKeys = /* @__PURE__ */ __name(() => {
108
+ var _a;
109
+ if (props.activeKey) return props.activeKey;
110
+ if (_formCollapse == null ? void 0 : _formCollapse.activeKeys) return _formCollapse == null ? void 0 : _formCollapse.activeKeys;
111
+ if (props.accordion) return (_a = panels[0]) == null ? void 0 : _a.name;
112
+ return panels.map((item) => item.name);
113
+ }, "takeActiveKeys");
114
+ const badgedHeader = /* @__PURE__ */ __name((key, props2) => {
115
+ const errors = field.form.queryFeedbacks({
116
+ type: "error",
117
+ address: `${field.address.concat(key)}.*`
118
+ });
119
+ if (errors.length) {
120
+ return /* @__PURE__ */ import_react.default.createElement(import_antd.Badge, { size: "small", className: "errors-badge", count: errors.length }, props2.header);
121
+ }
122
+ return props2.header;
123
+ }, "badgedHeader");
124
+ return /* @__PURE__ */ import_react.default.createElement(
125
+ import_antd.Collapse,
126
+ {
127
+ ...props,
128
+ className: (0, import_classnames.default)(prefixCls, props.className),
129
+ activeKey: takeActiveKeys(),
130
+ onChange: (key) => {
131
+ var _a, _b;
132
+ (_a = props == null ? void 0 : props.onChange) == null ? void 0 : _a.call(props, key);
133
+ (_b = _formCollapse == null ? void 0 : _formCollapse.setActiveKeys) == null ? void 0 : _b.call(_formCollapse, key);
134
+ }
135
+ },
136
+ panels.map(({ props: props2, schema, name }, index) => /* @__PURE__ */ import_react.default.createElement(import_antd.Collapse.Panel, { key: index, ...props2, header: badgedHeader(name, props2), forceRender: true }, /* @__PURE__ */ import_react.default.createElement(import_schema.RecursionField, { schema, name })))
137
+ );
138
+ });
139
+ const CollapsePanel = /* @__PURE__ */ __name(({ children }) => {
140
+ return /* @__PURE__ */ import_react.default.createElement(import_react.Fragment, null, children);
141
+ }, "CollapsePanel");
142
+ const FormCollapse = Object.assign(InternalFormCollapse, {
143
+ CollapsePanel,
144
+ createFormCollapse
145
+ });
146
+ var form_collapse_default = FormCollapse;
147
+ // Annotate the CommonJS export names for ESM import in node:
148
+ 0 && (module.exports = {
149
+ FormCollapse
150
+ });
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { Form, IFormProps, IMiddleware, ReactFC } from '@tachybase/schema';
3
+ import { ModalProps } from 'antd';
4
+ type FormDialogRenderer = React.ReactElement | ((form: Form) => React.ReactElement);
5
+ type ModalTitle = string | number | React.ReactElement;
6
+ export interface IFormDialog {
7
+ forOpen(middleware: IMiddleware<IFormProps>): IFormDialog;
8
+ forConfirm(middleware: IMiddleware<Form>): IFormDialog;
9
+ forCancel(middleware: IMiddleware<Form>): IFormDialog;
10
+ open(props?: IFormProps): Promise<any>;
11
+ close(): void;
12
+ }
13
+ export interface IModalProps extends ModalProps {
14
+ onOk?: (event: React.MouseEvent<HTMLElement>) => void | boolean;
15
+ onCancel?: (event: React.MouseEvent<HTMLElement>) => void | boolean;
16
+ loadingText?: React.ReactNode;
17
+ }
18
+ export declare function FormDialog(title: IModalProps, id: string, renderer: FormDialogRenderer): IFormDialog;
19
+ export declare function FormDialog(title: IModalProps, renderer: FormDialogRenderer): IFormDialog;
20
+ export declare function FormDialog(title: ModalTitle, id: string, renderer: FormDialogRenderer): IFormDialog;
21
+ export declare function FormDialog(title: ModalTitle, renderer: FormDialogRenderer): IFormDialog;
22
+ export declare namespace FormDialog {
23
+ var Footer: ReactFC;
24
+ var Portal: ReactFC<import("..").IPortalProps>;
25
+ }
26
+ export default FormDialog;
@@ -0,0 +1,194 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var form_dialog_exports = {};
30
+ __export(form_dialog_exports, {
31
+ FormDialog: () => FormDialog,
32
+ default: () => form_dialog_default
33
+ });
34
+ module.exports = __toCommonJS(form_dialog_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_schema = require("@tachybase/schema");
37
+ var import_antd = require("antd");
38
+ var import_react_dom = require("react-dom");
39
+ var import_builtins = require("../__builtins__");
40
+ const isModalTitle = /* @__PURE__ */ __name((props) => {
41
+ return (0, import_schema.isNum)(props) || (0, import_schema.isStr)(props) || (0, import_schema.isBool)(props) || import_react.default.isValidElement(props);
42
+ }, "isModalTitle");
43
+ const getModelProps = /* @__PURE__ */ __name((props) => {
44
+ if (isModalTitle(props)) {
45
+ return {
46
+ title: props
47
+ };
48
+ } else {
49
+ return props;
50
+ }
51
+ }, "getModelProps");
52
+ function FormDialog(title, id, renderer) {
53
+ if ((0, import_schema.isFn)(id) || import_react.default.isValidElement(id)) {
54
+ renderer = id;
55
+ id = "form-dialog";
56
+ }
57
+ const env = {
58
+ host: document.createElement("div"),
59
+ form: null,
60
+ promise: null,
61
+ openMiddlewares: [],
62
+ confirmMiddlewares: [],
63
+ cancelMiddlewares: []
64
+ };
65
+ const root = (0, import_builtins.createPortalRoot)(env.host, id);
66
+ const props = getModelProps(title);
67
+ const modal = {
68
+ ...props,
69
+ afterClose: /* @__PURE__ */ __name(() => {
70
+ var _a;
71
+ (_a = props == null ? void 0 : props.afterClose) == null ? void 0 : _a.call(props);
72
+ root.unmount();
73
+ }, "afterClose")
74
+ };
75
+ const DialogContent = (0, import_schema.observer)(() => {
76
+ return /* @__PURE__ */ import_react.default.createElement(import_react.Fragment, null, (0, import_schema.isFn)(renderer) ? renderer(env.form) : renderer);
77
+ });
78
+ const renderDialog = /* @__PURE__ */ __name((open = true, resolve, reject) => {
79
+ const { form } = env;
80
+ if (!form) return null;
81
+ return /* @__PURE__ */ import_react.default.createElement(import_schema.Observer, null, () => /* @__PURE__ */ import_react.default.createElement(
82
+ import_antd.Modal,
83
+ {
84
+ ...modal,
85
+ open,
86
+ confirmLoading: form.submitting,
87
+ onCancel: (e) => {
88
+ var _a;
89
+ if (((_a = modal == null ? void 0 : modal.onCancel) == null ? void 0 : _a.call(modal, e)) !== false) {
90
+ reject == null ? void 0 : reject();
91
+ }
92
+ },
93
+ onOk: async (e) => {
94
+ var _a;
95
+ if (((_a = modal == null ? void 0 : modal.onOk) == null ? void 0 : _a.call(modal, e)) !== false) {
96
+ resolve == null ? void 0 : resolve();
97
+ }
98
+ }
99
+ },
100
+ /* @__PURE__ */ import_react.default.createElement(import_schema.FormProvider, { form }, /* @__PURE__ */ import_react.default.createElement(DialogContent, null))
101
+ ));
102
+ }, "renderDialog");
103
+ document.body.appendChild(env.host);
104
+ const formDialog = {
105
+ forOpen: /* @__PURE__ */ __name((middleware) => {
106
+ if ((0, import_schema.isFn)(middleware)) {
107
+ env.openMiddlewares.push(middleware);
108
+ }
109
+ return formDialog;
110
+ }, "forOpen"),
111
+ forConfirm: /* @__PURE__ */ __name((middleware) => {
112
+ if ((0, import_schema.isFn)(middleware)) {
113
+ env.confirmMiddlewares.push(middleware);
114
+ }
115
+ return formDialog;
116
+ }, "forConfirm"),
117
+ forCancel: /* @__PURE__ */ __name((middleware) => {
118
+ if ((0, import_schema.isFn)(middleware)) {
119
+ env.cancelMiddlewares.push(middleware);
120
+ }
121
+ return formDialog;
122
+ }, "forCancel"),
123
+ open: /* @__PURE__ */ __name(async (props2) => {
124
+ if (env.promise) return env.promise;
125
+ env.promise = new Promise((resolve, reject) => {
126
+ const run = /* @__PURE__ */ __name(async () => {
127
+ try {
128
+ props2 = await (0, import_builtins.loading)(modal.loadingText, () => (0, import_schema.applyMiddleware)(props2, env.openMiddlewares));
129
+ env.form = env.form || (0, import_schema.createForm)(props2);
130
+ } catch (e) {
131
+ reject(e);
132
+ }
133
+ }, "run");
134
+ run();
135
+ root.render(
136
+ () => renderDialog(
137
+ true,
138
+ () => {
139
+ var _a;
140
+ (_a = env.form) == null ? void 0 : _a.submit(async () => {
141
+ var _a2;
142
+ await (0, import_schema.applyMiddleware)(env.form, env.confirmMiddlewares);
143
+ resolve((0, import_schema.toJS)((_a2 = env.form) == null ? void 0 : _a2.values));
144
+ formDialog.close();
145
+ }).catch(() => {
146
+ });
147
+ },
148
+ async () => {
149
+ await (0, import_builtins.loading)(modal.loadingText, () => (0, import_schema.applyMiddleware)(env.form, env.cancelMiddlewares));
150
+ formDialog.close();
151
+ }
152
+ )
153
+ );
154
+ });
155
+ return env.promise;
156
+ }, "open"),
157
+ close: /* @__PURE__ */ __name(() => {
158
+ if (!env.host) return;
159
+ root.render(() => renderDialog(false));
160
+ }, "close")
161
+ };
162
+ return formDialog;
163
+ }
164
+ __name(FormDialog, "FormDialog");
165
+ const DialogFooter = /* @__PURE__ */ __name((props) => {
166
+ const ref = (0, import_react.useRef)(null);
167
+ const [footer, setFooter] = (0, import_react.useState)();
168
+ const footerRef = (0, import_react.useRef)();
169
+ const prefixCls = (0, import_builtins.usePrefixCls)("modal");
170
+ (0, import_react.useLayoutEffect)(() => {
171
+ var _a;
172
+ const content = (_a = ref.current) == null ? void 0 : _a.closest(`.${prefixCls}-content`);
173
+ if (content) {
174
+ if (!footerRef.current) {
175
+ footerRef.current = content.querySelector(`.${prefixCls}-footer`);
176
+ if (!footerRef.current) {
177
+ footerRef.current = document.createElement("div");
178
+ footerRef.current.classList.add(`${prefixCls}-footer`);
179
+ content.appendChild(footerRef.current);
180
+ }
181
+ }
182
+ setFooter(footerRef.current);
183
+ }
184
+ });
185
+ footerRef.current = footer;
186
+ return /* @__PURE__ */ import_react.default.createElement("div", { ref, style: { display: "none" } }, footer && (0, import_react_dom.createPortal)(props.children, footer));
187
+ }, "DialogFooter");
188
+ FormDialog.Footer = DialogFooter;
189
+ FormDialog.Portal = (0, import_builtins.createPortalProvider)("form-dialog");
190
+ var form_dialog_default = FormDialog;
191
+ // Annotate the CommonJS export names for ESM import in node:
192
+ 0 && (module.exports = {
193
+ FormDialog
194
+ });
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Form, IFormProps, IMiddleware, ReactFC } from '@tachybase/schema';
3
+ import { DrawerProps } from 'antd';
4
+ type FormDrawerRenderer = React.ReactElement | ((form: Form) => React.ReactElement);
5
+ type DrawerTitle = string | number | React.ReactElement;
6
+ type EventType = React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>;
7
+ export interface IFormDrawer {
8
+ forOpen(middleware: IMiddleware<IFormProps>): IFormDrawer;
9
+ open(props?: IFormProps): Promise<any>;
10
+ close(): void;
11
+ }
12
+ export interface IDrawerProps extends DrawerProps {
13
+ onClose?: (e: EventType) => void | boolean;
14
+ loadingText?: React.ReactNode;
15
+ }
16
+ export declare function FormDrawer(title: IDrawerProps, id: string, renderer: FormDrawerRenderer): IFormDrawer;
17
+ export declare function FormDrawer(title: IDrawerProps, id: FormDrawerRenderer): IFormDrawer;
18
+ export declare function FormDrawer(title: DrawerTitle, id: string, renderer: FormDrawerRenderer): IFormDrawer;
19
+ export declare function FormDrawer(title: DrawerTitle, id: FormDrawerRenderer): IFormDrawer;
20
+ export declare namespace FormDrawer {
21
+ var Extra: ReactFC;
22
+ var Footer: ReactFC;
23
+ var Portal: ReactFC<import("..").IPortalProps>;
24
+ }
25
+ export default FormDrawer;