@formily-design/formily-setters 1.0.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.
Files changed (108) hide show
  1. package/.umirc.js +44 -0
  2. package/LICENSE.md +20 -0
  3. package/README.md +7 -0
  4. package/copy.ts +6 -0
  5. package/esm/components/DataSourceSetter/DataSettingPanel.d.ts +10 -0
  6. package/esm/components/DataSourceSetter/DataSettingPanel.js +66 -0
  7. package/esm/components/DataSourceSetter/Header.d.ts +7 -0
  8. package/esm/components/DataSourceSetter/Header.js +10 -0
  9. package/esm/components/DataSourceSetter/Title.d.ts +7 -0
  10. package/esm/components/DataSourceSetter/Title.js +50 -0
  11. package/esm/components/DataSourceSetter/TreePanel.d.ts +12 -0
  12. package/esm/components/DataSourceSetter/TreePanel.js +98 -0
  13. package/esm/components/DataSourceSetter/index.d.ts +18 -0
  14. package/esm/components/DataSourceSetter/index.js +34 -0
  15. package/esm/components/DataSourceSetter/shared.d.ts +9 -0
  16. package/esm/components/DataSourceSetter/shared.js +47 -0
  17. package/esm/components/DataSourceSetter/styles.less +80 -0
  18. package/esm/components/DataSourceSetter/types.d.ts +18 -0
  19. package/esm/components/DataSourceSetter/types.js +1 -0
  20. package/esm/components/ReactionsSetter/FieldPropertySetter.d.ts +10 -0
  21. package/esm/components/ReactionsSetter/FieldPropertySetter.js +83 -0
  22. package/esm/components/ReactionsSetter/PathSelector.d.ts +10 -0
  23. package/esm/components/ReactionsSetter/PathSelector.js +107 -0
  24. package/esm/components/ReactionsSetter/declarations.d.ts +5 -0
  25. package/esm/components/ReactionsSetter/declarations.js +51 -0
  26. package/esm/components/ReactionsSetter/helpers.d.ts +10 -0
  27. package/esm/components/ReactionsSetter/helpers.js +384 -0
  28. package/esm/components/ReactionsSetter/index.d.ts +8 -0
  29. package/esm/components/ReactionsSetter/index.js +282 -0
  30. package/esm/components/ReactionsSetter/properties.d.ts +11 -0
  31. package/esm/components/ReactionsSetter/properties.js +41 -0
  32. package/esm/components/ReactionsSetter/styles.less +103 -0
  33. package/esm/components/ReactionsSetter/types.d.ts +13 -0
  34. package/esm/components/ReactionsSetter/types.js +1 -0
  35. package/esm/components/RemoteDataSourceSetter/RemoteDataSourcePanel.d.ts +8 -0
  36. package/esm/components/RemoteDataSourceSetter/RemoteDataSourcePanel.js +103 -0
  37. package/esm/components/RemoteDataSourceSetter/index.d.ts +17 -0
  38. package/esm/components/RemoteDataSourceSetter/index.js +25 -0
  39. package/esm/components/RemoteDataSourceSetter/styles.less +33 -0
  40. package/esm/components/RemoteDataSourceSetter/types.d.ts +8 -0
  41. package/esm/components/RemoteDataSourceSetter/types.js +1 -0
  42. package/esm/components/ValidatorSetter/index.d.ts +6 -0
  43. package/esm/components/ValidatorSetter/index.js +140 -0
  44. package/esm/components/index.d.ts +4 -0
  45. package/esm/components/index.js +4 -0
  46. package/esm/index.d.ts +2 -0
  47. package/esm/index.js +2 -0
  48. package/esm/locales/en-US.d.ts +110 -0
  49. package/esm/locales/en-US.js +115 -0
  50. package/esm/locales/index.d.ts +1 -0
  51. package/esm/locales/index.js +5 -0
  52. package/esm/locales/ko-KR.d.ts +110 -0
  53. package/esm/locales/ko-KR.js +115 -0
  54. package/esm/locales/zh-CN.d.ts +110 -0
  55. package/esm/locales/zh-CN.js +115 -0
  56. package/lib/components/DataSourceSetter/DataSettingPanel.d.ts +10 -0
  57. package/lib/components/DataSourceSetter/DataSettingPanel.js +102 -0
  58. package/lib/components/DataSourceSetter/Header.d.ts +7 -0
  59. package/lib/components/DataSourceSetter/Header.js +16 -0
  60. package/lib/components/DataSourceSetter/Title.d.ts +7 -0
  61. package/lib/components/DataSourceSetter/Title.js +56 -0
  62. package/lib/components/DataSourceSetter/TreePanel.d.ts +12 -0
  63. package/lib/components/DataSourceSetter/TreePanel.js +134 -0
  64. package/lib/components/DataSourceSetter/index.d.ts +18 -0
  65. package/lib/components/DataSourceSetter/index.js +73 -0
  66. package/lib/components/DataSourceSetter/shared.d.ts +9 -0
  67. package/lib/components/DataSourceSetter/shared.js +53 -0
  68. package/lib/components/DataSourceSetter/styles.less +80 -0
  69. package/lib/components/DataSourceSetter/types.d.ts +18 -0
  70. package/lib/components/DataSourceSetter/types.js +2 -0
  71. package/lib/components/ReactionsSetter/FieldPropertySetter.d.ts +10 -0
  72. package/lib/components/ReactionsSetter/FieldPropertySetter.js +120 -0
  73. package/lib/components/ReactionsSetter/PathSelector.d.ts +10 -0
  74. package/lib/components/ReactionsSetter/PathSelector.js +114 -0
  75. package/lib/components/ReactionsSetter/declarations.d.ts +5 -0
  76. package/lib/components/ReactionsSetter/declarations.js +55 -0
  77. package/lib/components/ReactionsSetter/helpers.d.ts +10 -0
  78. package/lib/components/ReactionsSetter/helpers.js +387 -0
  79. package/lib/components/ReactionsSetter/index.d.ts +8 -0
  80. package/lib/components/ReactionsSetter/index.js +319 -0
  81. package/lib/components/ReactionsSetter/properties.d.ts +11 -0
  82. package/lib/components/ReactionsSetter/properties.js +44 -0
  83. package/lib/components/ReactionsSetter/styles.less +103 -0
  84. package/lib/components/ReactionsSetter/types.d.ts +13 -0
  85. package/lib/components/ReactionsSetter/types.js +2 -0
  86. package/lib/components/RemoteDataSourceSetter/RemoteDataSourcePanel.d.ts +8 -0
  87. package/lib/components/RemoteDataSourceSetter/RemoteDataSourcePanel.js +140 -0
  88. package/lib/components/RemoteDataSourceSetter/index.d.ts +17 -0
  89. package/lib/components/RemoteDataSourceSetter/index.js +64 -0
  90. package/lib/components/RemoteDataSourceSetter/styles.less +33 -0
  91. package/lib/components/RemoteDataSourceSetter/types.d.ts +8 -0
  92. package/lib/components/RemoteDataSourceSetter/types.js +2 -0
  93. package/lib/components/ValidatorSetter/index.d.ts +6 -0
  94. package/lib/components/ValidatorSetter/index.js +146 -0
  95. package/lib/components/index.d.ts +4 -0
  96. package/lib/components/index.js +20 -0
  97. package/lib/index.d.ts +2 -0
  98. package/lib/index.js +18 -0
  99. package/lib/locales/en-US.d.ts +110 -0
  100. package/lib/locales/en-US.js +117 -0
  101. package/lib/locales/index.d.ts +1 -0
  102. package/lib/locales/index.js +10 -0
  103. package/lib/locales/ko-KR.d.ts +110 -0
  104. package/lib/locales/ko-KR.js +117 -0
  105. package/lib/locales/zh-CN.d.ts +110 -0
  106. package/lib/locales/zh-CN.js +117 -0
  107. package/package.json +53 -0
  108. package/tsconfig.build.json +10 -0
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ReactionsSetter = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const shared_1 = require("@formily/shared");
39
+ const core_1 = require("@formily/core");
40
+ const react_2 = require("@formily/react");
41
+ const core_2 = require("@formily-design/core");
42
+ const shared_2 = require("@formily-design/shared");
43
+ const react_3 = require("@formily-design/react");
44
+ const react_settings_form_1 = require("@formily-design/react-settings-form");
45
+ const antd_v5_1 = require("@formily/antd-v5");
46
+ const antd_1 = require("antd");
47
+ const PathSelector_1 = require("./PathSelector");
48
+ const FieldPropertySetter_1 = require("./FieldPropertySetter");
49
+ const helpers_1 = require("./helpers");
50
+ const declarations_1 = require("./declarations");
51
+ require("./styles.less");
52
+ const TypeView = ({ value }) => {
53
+ const text = String(value);
54
+ if (text.length <= 26)
55
+ return react_1.default.createElement(antd_1.Tag, null, text);
56
+ return (react_1.default.createElement(antd_1.Tag, null,
57
+ react_1.default.createElement(antd_1.Tooltip, { title: react_1.default.createElement("div", { style: { fontSize: 12 } },
58
+ react_1.default.createElement("code", null,
59
+ react_1.default.createElement("pre", { style: { whiteSpace: 'pre-wrap', padding: 0, margin: 0 } }, text))) },
60
+ text.substring(0, 24),
61
+ "...")));
62
+ };
63
+ const SchemaField = (0, react_2.createSchemaField)({
64
+ components: {
65
+ Card: antd_1.Card,
66
+ FormCollapse: antd_v5_1.FormCollapse,
67
+ Input: antd_v5_1.Input,
68
+ TypeView,
69
+ Select: antd_v5_1.Select,
70
+ FormItem: antd_v5_1.FormItem,
71
+ PathSelector: PathSelector_1.PathSelector,
72
+ FieldPropertySetter: FieldPropertySetter_1.FieldPropertySetter,
73
+ ArrayTable: antd_v5_1.ArrayTable,
74
+ MonacoInput: react_settings_form_1.MonacoInput,
75
+ },
76
+ });
77
+ const FieldStateProperties = [
78
+ 'value',
79
+ 'initialValue',
80
+ 'inputValue',
81
+ 'inputValues',
82
+ 'modified',
83
+ 'initialized',
84
+ 'title',
85
+ 'description',
86
+ 'mounted',
87
+ 'unmounted',
88
+ 'active',
89
+ 'visited',
90
+ 'loading',
91
+ 'errors',
92
+ 'warnings',
93
+ 'successes',
94
+ 'feedbacks',
95
+ 'valid',
96
+ 'invalid',
97
+ 'pattern',
98
+ 'display',
99
+ 'disabled',
100
+ 'readOnly',
101
+ 'readPretty',
102
+ 'visible',
103
+ 'hidden',
104
+ 'editable',
105
+ 'validateStatus',
106
+ 'validating',
107
+ ];
108
+ const FieldStateValueTypes = {
109
+ modified: 'boolean',
110
+ initialized: 'boolean',
111
+ title: 'string',
112
+ description: 'string',
113
+ mounted: 'boolean',
114
+ unmounted: 'boolean',
115
+ active: 'boolean',
116
+ visited: 'boolean',
117
+ loading: 'boolean',
118
+ errors: 'string[]',
119
+ warnings: 'string[]',
120
+ successes: 'string[]',
121
+ feedbacks: `Array<
122
+ triggerType?: 'onInput' | 'onFocus' | 'onBlur'
123
+ type?: 'error' | 'success' | 'warning'
124
+ code?:
125
+ | 'ValidateError'
126
+ | 'ValidateSuccess'
127
+ | 'ValidateWarning'
128
+ | 'EffectError'
129
+ | 'EffectSuccess'
130
+ | 'EffectWarning'
131
+ messages?: string[]
132
+ >
133
+ `,
134
+ valid: 'boolean',
135
+ invalid: 'boolean',
136
+ pattern: "'editable' | 'disabled' | 'readOnly' | 'readPretty'",
137
+ display: "'visible' | 'hidden' | 'none'",
138
+ disabled: 'boolean',
139
+ readOnly: 'boolean',
140
+ readPretty: 'boolean',
141
+ visible: 'boolean',
142
+ hidden: 'boolean',
143
+ editable: 'boolean',
144
+ validateStatus: "'error' | 'warning' | 'success' | 'validating'",
145
+ validating: 'boolean',
146
+ };
147
+ const ReactionsSetter = (props) => {
148
+ const [modalVisible, setModalVisible] = (0, react_1.useState)(false);
149
+ const [innerVisible, setInnerVisible] = (0, react_1.useState)(false);
150
+ const prefix = (0, react_3.usePrefix)('reactions-setter');
151
+ const form = (0, react_1.useMemo)(() => {
152
+ return (0, core_1.createForm)({
153
+ values: (0, shared_1.clone)(props.value),
154
+ });
155
+ }, [modalVisible, props.value]);
156
+ const formCollapse = (0, react_1.useMemo)(() => antd_v5_1.FormCollapse.createFormCollapse(['deps', 'state']), [modalVisible]);
157
+ const openModal = () => setModalVisible(true);
158
+ const closeModal = () => setModalVisible(false);
159
+ (0, react_1.useEffect)(() => {
160
+ if (modalVisible) {
161
+ (0, shared_2.requestIdle)(() => {
162
+ (0, declarations_1.initDeclaration)().then(() => {
163
+ setInnerVisible(true);
164
+ });
165
+ }, {
166
+ timeout: 400,
167
+ });
168
+ }
169
+ else {
170
+ setInnerVisible(false);
171
+ }
172
+ }, [modalVisible]);
173
+ return (react_1.default.createElement(react_1.default.Fragment, null,
174
+ react_1.default.createElement(antd_1.Button, { block: true, onClick: openModal },
175
+ react_1.default.createElement(react_3.TextWidget, { token: "SettingComponents.ReactionsSetter.configureReactions" })),
176
+ react_1.default.createElement(antd_1.Modal, { title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.configureReactions'), width: "70%", centered: true, bodyStyle: { padding: 10 }, transitionName: "", maskTransitionName: "", visible: modalVisible, onCancel: closeModal, destroyOnClose: true, onOk: () => {
177
+ form.submit((values) => {
178
+ var _a;
179
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, values);
180
+ });
181
+ closeModal();
182
+ } },
183
+ react_1.default.createElement("div", { className: prefix }, innerVisible && (react_1.default.createElement(antd_v5_1.Form, { form: form },
184
+ react_1.default.createElement(SchemaField, null,
185
+ react_1.default.createElement(SchemaField.Void, { "x-component": "FormCollapse", "x-component-props": {
186
+ formCollapse,
187
+ defaultActiveKey: ['deps', 'state'],
188
+ style: { marginBottom: 10 },
189
+ } },
190
+ react_1.default.createElement(SchemaField.Void, { "x-component": "FormCollapse.CollapsePanel", "x-component-props": {
191
+ key: 'deps',
192
+ header: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.relationsFields'),
193
+ } },
194
+ react_1.default.createElement(SchemaField.Array, { name: "dependencies", default: [{}], "x-component": "ArrayTable" },
195
+ react_1.default.createElement(SchemaField.Object, null,
196
+ react_1.default.createElement(SchemaField.Void, { "x-component": "ArrayTable.Column", "x-component-props": {
197
+ title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.sourceField'),
198
+ width: 240,
199
+ } },
200
+ react_1.default.createElement(SchemaField.String, { name: "source", "x-decorator": "FormItem", "x-component": "PathSelector", "x-component-props": {
201
+ placeholder: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.pleaseSelect'),
202
+ } })),
203
+ react_1.default.createElement(SchemaField.Void, { "x-component": "ArrayTable.Column", "x-component-props": {
204
+ title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.sourceProperty'),
205
+ width: 200,
206
+ } },
207
+ react_1.default.createElement(SchemaField.String, { name: "property", default: "value", "x-decorator": "FormItem", "x-component": "Select", "x-component-props": { showSearch: true }, enum: FieldStateProperties })),
208
+ react_1.default.createElement(SchemaField.Void, { "x-component": "ArrayTable.Column", "x-component-props": {
209
+ title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.variableName'),
210
+ width: 200,
211
+ } },
212
+ react_1.default.createElement(SchemaField.String, { name: "name", "x-decorator": "FormItem", "x-validator": {
213
+ pattern: /^[$_a-zA-Z]+[$_a-zA-Z0-9]*$/,
214
+ message: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.variableNameValidateMessage'),
215
+ }, "x-component": "Input", "x-component-props": {
216
+ addonBefore: '$deps.',
217
+ placeholder: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.pleaseInput'),
218
+ }, "x-reactions": (field) => {
219
+ if ((0, core_1.isVoidField)(field))
220
+ return;
221
+ field.query('.source').take((source) => {
222
+ var _a, _b;
223
+ if ((0, core_1.isVoidField)(source))
224
+ return;
225
+ if (source.value &&
226
+ !field.value &&
227
+ !field.modified) {
228
+ field.value =
229
+ ((_b = (_a = source.inputValues[1]) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.name) ||
230
+ `v_${(0, shared_1.uid)()}`;
231
+ }
232
+ });
233
+ } })),
234
+ react_1.default.createElement(SchemaField.Void, { "x-component": "ArrayTable.Column", "x-component-props": {
235
+ title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.variableType'),
236
+ ellipsis: {
237
+ showTitle: false,
238
+ },
239
+ width: 200,
240
+ align: 'center',
241
+ } },
242
+ react_1.default.createElement(SchemaField.String, { name: "type", default: "any", "x-decorator": "FormItem", "x-component": "TypeView", "x-reactions": (field) => {
243
+ if ((0, core_1.isVoidField)(field))
244
+ return;
245
+ const property = field
246
+ .query('.property')
247
+ .get('inputValues');
248
+ if (!property)
249
+ return;
250
+ property[0] = property[0] || 'value';
251
+ field.query('.source').take((source) => {
252
+ var _a, _b;
253
+ if ((0, core_1.isVoidField)(source))
254
+ return;
255
+ if (source.value) {
256
+ if (property[0] === 'value' ||
257
+ property[0] === 'initialValue' ||
258
+ property[0] === 'inputValue') {
259
+ field.value =
260
+ ((_b = (_a = source.inputValues[1]) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.type) ||
261
+ 'any';
262
+ }
263
+ else if (property[0] === 'inputValues') {
264
+ field.value = `any[]`;
265
+ }
266
+ else if (property[0]) {
267
+ field.value =
268
+ FieldStateValueTypes[property[0]];
269
+ }
270
+ else {
271
+ field.value = 'any';
272
+ }
273
+ }
274
+ });
275
+ } })),
276
+ react_1.default.createElement(SchemaField.Void, { "x-component": "ArrayTable.Column", "x-component-props": {
277
+ title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.operations'),
278
+ align: 'center',
279
+ width: 80,
280
+ } },
281
+ react_1.default.createElement(SchemaField.Markup, { type: "void", "x-component": "ArrayTable.Remove" }))),
282
+ react_1.default.createElement(SchemaField.Void, { title: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.addRelationField'), "x-component": "ArrayTable.Addition", "x-component-props": { style: { marginTop: 8 } } }))),
283
+ react_1.default.createElement(SchemaField.Void, { "x-component": "FormCollapse.CollapsePanel", "x-component-props": {
284
+ header: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.propertyReactions'),
285
+ key: 'state',
286
+ className: 'reaction-state',
287
+ } },
288
+ react_1.default.createElement(SchemaField.Markup, { name: "fulfill.state", "x-component": "FieldPropertySetter" })),
289
+ react_1.default.createElement(SchemaField.Void, { "x-component": "FormCollapse.CollapsePanel", "x-component-props": {
290
+ key: 'run',
291
+ header: core_2.GlobalRegistry.getDesignerMessage('SettingComponents.ReactionsSetter.actionReactions'),
292
+ className: 'reaction-runner',
293
+ } },
294
+ react_1.default.createElement(SchemaField.String, { name: "fulfill.run", "x-component": "MonacoInput", "x-component-props": {
295
+ width: '100%',
296
+ height: 400,
297
+ language: 'typescript',
298
+ helpCode: helpers_1.FulfillRunHelper,
299
+ options: {
300
+ minimap: {
301
+ enabled: false,
302
+ },
303
+ },
304
+ }, "x-reactions": (field) => {
305
+ const deps = field.query('dependencies').value();
306
+ if (Array.isArray(deps)) {
307
+ field.componentProps.extraLib = `
308
+ declare var $deps : {
309
+ ${deps.map(({ name, type }) => {
310
+ if (!name)
311
+ return '';
312
+ return `${name}?:${type || 'any'},`;
313
+ })}
314
+ }
315
+ `;
316
+ }
317
+ } }))))))))));
318
+ };
319
+ exports.ReactionsSetter = ReactionsSetter;
@@ -0,0 +1,11 @@
1
+ export declare const FieldProperties: ({
2
+ key: string;
3
+ type: string;
4
+ helpCode: string;
5
+ token?: undefined;
6
+ } | {
7
+ key: string;
8
+ token: string;
9
+ type: string;
10
+ helpCode: string;
11
+ })[];
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldProperties = void 0;
4
+ const helpers_1 = require("./helpers");
5
+ exports.FieldProperties = [
6
+ {
7
+ key: 'visible',
8
+ type: 'boolean',
9
+ helpCode: helpers_1.BooleanHelper,
10
+ },
11
+ { key: 'hidden', type: 'boolean', helpCode: helpers_1.BooleanHelper },
12
+ {
13
+ key: 'display',
14
+ type: '"visible" | "hidden" | "none"',
15
+ helpCode: helpers_1.DisplayHelper,
16
+ },
17
+ {
18
+ key: 'pattern',
19
+ type: '"editable" | "disabled" | "readOnly" | "readPretty"',
20
+ helpCode: helpers_1.PatternHelper,
21
+ },
22
+ { key: 'title', type: 'string', helpCode: helpers_1.StringHelper },
23
+ { key: 'description', type: 'string', helpCode: helpers_1.StringHelper },
24
+ { key: 'value', type: 'any', helpCode: helpers_1.AnyHelper },
25
+ { key: 'initialValue', type: 'any', helpCode: helpers_1.AnyHelper },
26
+ { key: 'required', type: 'boolean', helpCode: helpers_1.BooleanHelper },
27
+ {
28
+ key: 'dataSource',
29
+ type: 'Array<{label?:string,value?:any}>',
30
+ helpCode: helpers_1.DataSourceHelper,
31
+ },
32
+ {
33
+ key: 'componentProps',
34
+ token: 'componentProps',
35
+ type: 'object',
36
+ helpCode: helpers_1.ComponentPropsHelper,
37
+ },
38
+ {
39
+ key: 'decoratorProps',
40
+ token: 'decoratorProps',
41
+ type: 'object',
42
+ helpCode: helpers_1.DecoratorPropsHelper,
43
+ },
44
+ ];
@@ -0,0 +1,103 @@
1
+ .dn-reactions-setter {
2
+ width: 100%;
3
+ min-height: 623px;
4
+ overflow: hidden;
5
+
6
+ ::-webkit-scrollbar {
7
+ width: 5px;
8
+ height: 5px;
9
+ }
10
+
11
+ ::-webkit-scrollbar-thumb {
12
+ background-color: rgba(0, 0, 0, 0.2);
13
+ border-radius: 0;
14
+ transition: all 0.25s ease-in-out;
15
+ }
16
+
17
+ ::-webkit-scrollbar-thumb:hover {
18
+ background-color: rgba(0, 0, 0, 0.3);
19
+ }
20
+
21
+ .ant-collapse {
22
+ border: 1px solid #d9d9d9;
23
+
24
+ &-header {
25
+ padding: 8px 10px !important;
26
+
27
+ border-bottom: 1px solid #d9d9d9 !important;
28
+ font-weight: 500 !important;
29
+
30
+ .ant-collapse-arrow {
31
+ margin-right: 4px !important;
32
+ }
33
+ }
34
+
35
+ &-item {
36
+ border: none !important;
37
+ }
38
+
39
+ &-content {
40
+ border: none !important;
41
+ transition: none !important;
42
+ }
43
+
44
+ &-content-box {
45
+ padding: 12px !important;
46
+ }
47
+ }
48
+
49
+ .reaction-runner {
50
+ .ant-collapse-content-box {
51
+ padding: 12px 0 !important;
52
+ }
53
+ }
54
+
55
+ .reaction-state {
56
+ .ant-collapse-content-box {
57
+ padding: 12px 0 !important;
58
+ }
59
+ }
60
+
61
+ .dn-field-property-setter {
62
+ display: flex;
63
+ height: 300px;
64
+
65
+ &-coder-wrapper {
66
+ display: flex;
67
+ flex-grow: 2;
68
+ height: 100%;
69
+ padding-left: 10px;
70
+ position: relative;
71
+ flex-direction: column;
72
+ }
73
+
74
+ &-coder-start {
75
+ font-size: 18px;
76
+ line-height: 30px;
77
+ margin-bottom: 4px;
78
+
79
+ font-weight: 300;
80
+ flex-grow: 0;
81
+ opacity: 0.96;
82
+ height: 31px;
83
+ }
84
+
85
+ &-coder-end {
86
+ font-size: 18px;
87
+ height: 31px;
88
+
89
+ margin-top: 4px;
90
+ margin-bottom: 4px;
91
+ line-height: 30px;
92
+ font-weight: 300;
93
+ flex-grow: 0;
94
+ opacity: 0.96;
95
+ }
96
+
97
+ &-coder {
98
+ min-width: 0;
99
+ flex-grow: 2;
100
+ padding-left: 10px;
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,13 @@
1
+ export interface IReaction {
2
+ dependencies?: {
3
+ [key: string]: string;
4
+ };
5
+ fulfill?: {
6
+ state?: {
7
+ [key: string]: string;
8
+ };
9
+ schema?: {
10
+ [key: string]: string;
11
+ };
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './styles.less';
3
+ import { IRemoteDataSource } from './types';
4
+ export interface IRemoteDataSourcePanelProps {
5
+ value?: IRemoteDataSource;
6
+ onChange: (value: IRemoteDataSource) => void;
7
+ }
8
+ export declare const RemoteDataSourcePanel: React.FC<IRemoteDataSourcePanelProps>;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RemoteDataSourcePanel = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const antd_1 = require("antd");
39
+ const react_settings_form_1 = require("@formily-design/react-settings-form");
40
+ const react_2 = require("@formily-design/react");
41
+ require("./styles.less");
42
+ /** 转换配置数据为表单数据 */
43
+ function toFormValues(dataSourceConfig) {
44
+ return {
45
+ ...dataSourceConfig,
46
+ headers: Object.entries(dataSourceConfig.headers || {}).map(([key, value]) => ({ key, value })),
47
+ params: Object.entries(dataSourceConfig.params || {}).map(([key, value]) => ({ key, value })),
48
+ };
49
+ }
50
+ /** 转换表单数据为配置数据 */
51
+ function toDataSourceConfigData(values) {
52
+ var _a, _b;
53
+ return {
54
+ ...values,
55
+ headers: (_a = values.headers) === null || _a === void 0 ? void 0 : _a.reduce((pre, cur) => {
56
+ pre[cur.key] = cur.value;
57
+ return pre;
58
+ }, {}),
59
+ params: (_b = values.params) === null || _b === void 0 ? void 0 : _b.reduce((pre, cur) => {
60
+ pre[cur.key] = cur.value;
61
+ return pre;
62
+ }, {}),
63
+ };
64
+ }
65
+ const RemoteDataSourcePanel = (props) => {
66
+ const prefix = (0, react_2.usePrefix)('remote-data-source-panel');
67
+ const { value, onChange } = props;
68
+ const [form] = antd_1.Form.useForm();
69
+ (0, react_1.useEffect)(() => {
70
+ if (value) {
71
+ form.setFieldsValue(toFormValues(value));
72
+ }
73
+ }, [value]);
74
+ const handleValuesChange = () => {
75
+ onChange(toDataSourceConfigData(form.getFieldsValue()));
76
+ };
77
+ const tabsItems = [
78
+ {
79
+ key: 'basic',
80
+ label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.basic" }),
81
+ children: (react_1.default.createElement("div", { className: `${prefix}-section` },
82
+ react_1.default.createElement(antd_1.Form, { form: form, layout: "vertical", onValuesChange: handleValuesChange },
83
+ react_1.default.createElement(antd_1.Form.Item, { label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.url" }), name: "url" },
84
+ react_1.default.createElement(antd_1.Input, { placeholder: "https://api.example.com/data" })),
85
+ react_1.default.createElement(antd_1.Form.Item, { label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.method" }), name: "method" },
86
+ react_1.default.createElement(antd_1.Select, { options: [
87
+ { label: 'GET', value: 'GET' },
88
+ { label: 'POST', value: 'POST' },
89
+ { label: 'PUT', value: 'PUT' },
90
+ { label: 'DELETE', value: 'DELETE' },
91
+ { label: 'PATCH', value: 'PATCH' },
92
+ ] }))))),
93
+ },
94
+ {
95
+ key: 'headers',
96
+ label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.headers" }),
97
+ children: (react_1.default.createElement("div", { className: `${prefix}-section` },
98
+ react_1.default.createElement(antd_1.Form, { form: form, layout: "vertical", onValuesChange: handleValuesChange },
99
+ react_1.default.createElement(antd_1.Form.List, { name: "headers" }, (fields, { add, remove }) => (react_1.default.createElement(react_1.default.Fragment, null,
100
+ fields.map((field) => (react_1.default.createElement("div", { key: field.key, className: `${prefix}-row` },
101
+ react_1.default.createElement(antd_1.Form.Item, { ...field, label: "", style: { marginBottom: 0 }, name: [field.name, 'key'] },
102
+ react_1.default.createElement(antd_1.Input, { placeholder: "Key", style: { width: '45%' } })),
103
+ react_1.default.createElement("span", { style: { margin: '0 8px' } }, "-"),
104
+ react_1.default.createElement(antd_1.Form.Item, { style: { marginBottom: 0 }, name: [field.name, 'value'] },
105
+ react_1.default.createElement(antd_1.Input, { placeholder: "Value", style: { width: '45%' } })),
106
+ react_1.default.createElement(antd_1.Button, { type: "text", danger: true, onClick: () => remove(field.name), style: { marginLeft: 8 } }, "X")))),
107
+ react_1.default.createElement(antd_1.Button, { type: "dashed", onClick: () => add({ key: '', value: '' }), block: true },
108
+ react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.addHeader" })))))))),
109
+ },
110
+ {
111
+ key: 'params',
112
+ label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.params" }),
113
+ children: (react_1.default.createElement("div", { className: `${prefix}-section` },
114
+ react_1.default.createElement(antd_1.Form, { form: form, layout: "vertical", onValuesChange: handleValuesChange },
115
+ react_1.default.createElement(antd_1.Form.List, { name: "params" }, (fields, { add, remove }) => (react_1.default.createElement(react_1.default.Fragment, null,
116
+ fields.map((field) => (react_1.default.createElement("div", { key: field.key, className: `${prefix}-row` },
117
+ react_1.default.createElement(antd_1.Form.Item, { ...field, label: "", style: { marginBottom: 0 }, name: [field.name, 'key'] },
118
+ react_1.default.createElement(antd_1.Input, { placeholder: "Key", style: { width: '45%' } })),
119
+ react_1.default.createElement("span", { style: { margin: '0 8px' } }, "-"),
120
+ react_1.default.createElement(antd_1.Form.Item, { style: { marginBottom: 0 }, name: [field.name, 'value'] },
121
+ react_1.default.createElement(antd_1.Input, { placeholder: "Value", style: { width: '45%' } })),
122
+ react_1.default.createElement(antd_1.Button, { type: "text", danger: true, onClick: () => remove(field.name), style: { marginLeft: 8 } }, "X")))),
123
+ react_1.default.createElement(antd_1.Button, { type: "dashed", onClick: () => add({ key: '', value: '' }), block: true },
124
+ react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.addParam" })))))))),
125
+ },
126
+ {
127
+ key: 'handlers',
128
+ label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.handlers" }),
129
+ children: (react_1.default.createElement("div", { className: `${prefix}-section` },
130
+ react_1.default.createElement(antd_1.Form, { form: form, layout: "vertical", onValuesChange: handleValuesChange },
131
+ react_1.default.createElement(antd_1.Form.Item, { label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.beforeRequest" }), name: "beforeRequest" },
132
+ react_1.default.createElement(react_settings_form_1.MonacoInput, { language: "javascript.expression", height: 150, helpLink: false })),
133
+ react_1.default.createElement(antd_1.Form.Item, { label: react_1.default.createElement(react_2.TextWidget, { token: "SettingComponents.RemoteDataSource.dataHandler" }), name: "dataHandler" },
134
+ react_1.default.createElement(react_settings_form_1.MonacoInput, { language: "javascript.expression", height: 150, helpLink: false }))))),
135
+ },
136
+ ];
137
+ return (react_1.default.createElement("div", { className: prefix },
138
+ react_1.default.createElement(antd_1.Tabs, { items: tabsItems, defaultActiveKey: "basic", size: "small" })));
139
+ };
140
+ exports.RemoteDataSourcePanel = RemoteDataSourcePanel;
@@ -0,0 +1,17 @@
1
+ import { Form } from '@formily/core';
2
+ import React from 'react';
3
+ import { IRemoteDataSource } from './types';
4
+ export interface IRemoteDataSourceSetterProps {
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ onChange: (dataSource: IRemoteDataSource) => void;
8
+ value: IRemoteDataSource;
9
+ allowTree?: boolean;
10
+ allowExtendOption?: boolean;
11
+ defaultOptionValue?: {
12
+ label: string;
13
+ value: any;
14
+ }[];
15
+ effects?: (form: Form<any>) => void;
16
+ }
17
+ export declare const RemoteDataSourceSetter: React.FC<IRemoteDataSourceSetterProps>;