@thienvu18/designable-formily-setters 2.0.0 → 2.0.2

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 (89) hide show
  1. package/esm/components/DataSourceSetter/DataSettingPanel.d.ts +8 -8
  2. package/esm/components/DataSourceSetter/DataSettingPanel.js +124 -52
  3. package/esm/components/DataSourceSetter/Header.d.ts +5 -5
  4. package/esm/components/DataSourceSetter/Header.js +16 -7
  5. package/esm/components/DataSourceSetter/Title.d.ts +5 -5
  6. package/esm/components/DataSourceSetter/Title.js +57 -44
  7. package/esm/components/DataSourceSetter/TreePanel.d.ts +10 -10
  8. package/esm/components/DataSourceSetter/TreePanel.js +129 -89
  9. package/esm/components/DataSourceSetter/index.d.ts +16 -16
  10. package/esm/components/DataSourceSetter/index.js +81 -24
  11. package/esm/components/DataSourceSetter/shared.d.ts +14 -7
  12. package/esm/components/DataSourceSetter/shared.js +39 -41
  13. package/esm/components/DataSourceSetter/styles.less +4 -3
  14. package/esm/components/DataSourceSetter/types.d.ts +12 -12
  15. package/esm/components/DataSourceSetter/types.js +1 -1
  16. package/esm/components/ReactionsSetter/FieldPropertySetter.d.ts +6 -6
  17. package/esm/components/ReactionsSetter/FieldPropertySetter.js +140 -63
  18. package/esm/components/ReactionsSetter/PathSelector.d.ts +10 -9
  19. package/esm/components/ReactionsSetter/PathSelector.js +97 -100
  20. package/esm/components/ReactionsSetter/declarations.d.ts +3 -3
  21. package/esm/components/ReactionsSetter/declarations.js +31 -18
  22. package/esm/components/ReactionsSetter/helpers.d.ts +20 -10
  23. package/esm/components/ReactionsSetter/helpers.js +10 -10
  24. package/esm/components/ReactionsSetter/index.d.ts +6 -6
  25. package/esm/components/ReactionsSetter/index.js +412 -230
  26. package/esm/components/ReactionsSetter/properties.d.ts +14 -11
  27. package/esm/components/ReactionsSetter/properties.js +49 -40
  28. package/esm/components/ReactionsSetter/styles.less +2 -2
  29. package/esm/components/ReactionsSetter/types.d.ts +11 -11
  30. package/esm/components/ReactionsSetter/types.js +1 -1
  31. package/esm/components/ValidatorSetter/index.d.ts +4 -4
  32. package/esm/components/ValidatorSetter/index.js +148 -125
  33. package/esm/components/index.d.ts +3 -3
  34. package/esm/components/index.js +3 -3
  35. package/esm/index.d.ts +2 -2
  36. package/esm/index.js +2 -2
  37. package/esm/locales/en-US.d.ts +92 -92
  38. package/esm/locales/en-US.js +96 -93
  39. package/esm/locales/index.d.ts +1 -1
  40. package/esm/locales/index.js +5 -5
  41. package/esm/locales/ko-KR.d.ts +92 -92
  42. package/esm/locales/ko-KR.js +94 -93
  43. package/esm/locales/zh-CN.d.ts +92 -92
  44. package/esm/locales/zh-CN.js +94 -93
  45. package/lib/components/DataSourceSetter/DataSettingPanel.d.ts +8 -8
  46. package/lib/components/DataSourceSetter/DataSettingPanel.js +129 -55
  47. package/lib/components/DataSourceSetter/Header.d.ts +5 -5
  48. package/lib/components/DataSourceSetter/Header.js +19 -10
  49. package/lib/components/DataSourceSetter/Title.d.ts +5 -5
  50. package/lib/components/DataSourceSetter/Title.js +70 -47
  51. package/lib/components/DataSourceSetter/TreePanel.d.ts +10 -10
  52. package/lib/components/DataSourceSetter/TreePanel.js +134 -92
  53. package/lib/components/DataSourceSetter/index.d.ts +16 -16
  54. package/lib/components/DataSourceSetter/index.js +94 -30
  55. package/lib/components/DataSourceSetter/shared.d.ts +14 -7
  56. package/lib/components/DataSourceSetter/shared.js +48 -47
  57. package/lib/components/DataSourceSetter/styles.less +4 -3
  58. package/lib/components/DataSourceSetter/types.d.ts +12 -12
  59. package/lib/components/DataSourceSetter/types.js +2 -2
  60. package/lib/components/ReactionsSetter/FieldPropertySetter.d.ts +6 -6
  61. package/lib/components/ReactionsSetter/FieldPropertySetter.js +150 -67
  62. package/lib/components/ReactionsSetter/PathSelector.d.ts +10 -9
  63. package/lib/components/ReactionsSetter/PathSelector.js +101 -104
  64. package/lib/components/ReactionsSetter/declarations.d.ts +3 -3
  65. package/lib/components/ReactionsSetter/declarations.js +35 -22
  66. package/lib/components/ReactionsSetter/helpers.d.ts +20 -10
  67. package/lib/components/ReactionsSetter/helpers.js +23 -13
  68. package/lib/components/ReactionsSetter/index.d.ts +6 -6
  69. package/lib/components/ReactionsSetter/index.js +434 -234
  70. package/lib/components/ReactionsSetter/properties.d.ts +14 -11
  71. package/lib/components/ReactionsSetter/properties.js +43 -43
  72. package/lib/components/ReactionsSetter/styles.less +2 -2
  73. package/lib/components/ReactionsSetter/types.d.ts +11 -11
  74. package/lib/components/ReactionsSetter/types.js +2 -2
  75. package/lib/components/ValidatorSetter/index.d.ts +4 -4
  76. package/lib/components/ValidatorSetter/index.js +151 -128
  77. package/lib/components/index.d.ts +3 -3
  78. package/lib/components/index.js +35 -19
  79. package/lib/index.d.ts +2 -2
  80. package/lib/index.js +34 -18
  81. package/lib/locales/en-US.d.ts +92 -92
  82. package/lib/locales/en-US.js +98 -95
  83. package/lib/locales/index.d.ts +1 -1
  84. package/lib/locales/index.js +16 -10
  85. package/lib/locales/ko-KR.d.ts +92 -92
  86. package/lib/locales/ko-KR.js +96 -95
  87. package/lib/locales/zh-CN.d.ts +92 -92
  88. package/lib/locales/zh-CN.js +96 -95
  89. package/package.json +25 -25
@@ -1,18 +1,18 @@
1
- import React from 'react';
2
- import { Form } from '@formily/core';
3
- import { IDataSourceItem } from './types';
4
- import './styles.less';
1
+ import { Form } from '@formily/core'
2
+ import React from 'react'
3
+ import './styles.less'
4
+ import { IDataSourceItem } from './types'
5
5
  export interface IDataSourceSetterProps {
6
- className?: string;
7
- style?: React.CSSProperties;
8
- onChange: (dataSource: IDataSourceItem[]) => void;
9
- value: IDataSourceItem[];
10
- allowTree?: boolean;
11
- allowExtendOption?: boolean;
12
- defaultOptionValue?: {
13
- label: string;
14
- value: any;
15
- }[];
16
- effects?: (form: Form<any>) => void;
6
+ className?: string
7
+ style?: React.CSSProperties
8
+ onChange: (dataSource: IDataSourceItem[]) => void
9
+ value: IDataSourceItem[]
10
+ allowTree?: boolean
11
+ allowExtendOption?: boolean
12
+ defaultOptionValue?: {
13
+ label: string
14
+ value: any
15
+ }[]
16
+ effects?: (form: Form<any>) => void
17
17
  }
18
- export declare const DataSourceSetter: React.FC<IDataSourceSetterProps>;
18
+ export declare const DataSourceSetter: React.FC<IDataSourceSetterProps>
@@ -1,33 +1,97 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DataSourceSetter = void 0;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_1 = require("react");
9
- const classnames_1 = __importDefault(require("classnames"));
10
- const antd_1 = require("antd");
11
- const reactive_1 = require("@formily/reactive");
12
- const reactive_react_1 = require("@formily/reactive-react");
13
- const designable_react_1 = require("@thienvu18/designable-react");
14
- const DataSettingPanel_1 = require("./DataSettingPanel");
15
- const TreePanel_1 = require("./TreePanel");
16
- const shared_1 = require("./shared");
17
- require("./styles.less");
1
+ 'use strict'
2
+ var __importDefault =
3
+ (this && this.__importDefault) ||
4
+ function (mod) {
5
+ return mod && mod.__esModule ? mod : { default: mod }
6
+ }
7
+ Object.defineProperty(exports, '__esModule', { value: true })
8
+ exports.DataSourceSetter = void 0
9
+ const jsx_runtime_1 = require('react/jsx-runtime')
10
+ const react_1 = require('react')
11
+ const classnames_1 = __importDefault(require('classnames'))
12
+ const antd_1 = require('antd')
13
+ const reactive_1 = require('@formily/reactive')
14
+ const reactive_react_1 = require('@formily/reactive-react')
15
+ const designable_react_1 = require('@thienvu18/designable-react')
16
+ const DataSettingPanel_1 = require('./DataSettingPanel')
17
+ const TreePanel_1 = require('./TreePanel')
18
+ const shared_1 = require('./shared')
19
+ require('./styles.less')
18
20
  exports.DataSourceSetter = (0, reactive_react_1.observer)((props) => {
19
- const { className, value = [], onChange, allowTree = true, allowExtendOption = true, defaultOptionValue, effects = () => { }, } = props;
20
- const theme = (0, designable_react_1.useTheme)();
21
- const prefix = (0, designable_react_1.usePrefix)('data-source-setter');
22
- const [modalVisible, setModalVisible] = (0, react_1.useState)(false);
23
- const treeDataSource = (0, react_1.useMemo)(() => (0, reactive_1.observable)({
21
+ const {
22
+ className,
23
+ value = [],
24
+ onChange,
25
+ allowTree = true,
26
+ allowExtendOption = true,
27
+ defaultOptionValue,
28
+ effects = () => {},
29
+ } = props
30
+ const theme = (0, designable_react_1.useTheme)()
31
+ const prefix = (0, designable_react_1.usePrefix)('data-source-setter')
32
+ const [modalVisible, setModalVisible] = (0, react_1.useState)(false)
33
+ const treeDataSource = (0, react_1.useMemo)(
34
+ () =>
35
+ (0, reactive_1.observable)({
24
36
  dataSource: (0, shared_1.transformValueToData)(value),
25
37
  selectedKey: '',
26
- }), [value, modalVisible]);
27
- const openModal = () => setModalVisible(true);
28
- const closeModal = () => setModalVisible(false);
29
- return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(antd_1.Button, { block: true, onClick: openModal, children: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: "SettingComponents.DataSourceSetter.configureDataSource" }) }), (0, jsx_runtime_1.jsx)(antd_1.Modal, { title: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: "SettingComponents.DataSourceSetter.configureDataSource" }), width: "65%", styles: { body: { padding: 10 } }, transitionName: "", maskTransitionName: "", open: modalVisible, onCancel: closeModal, onOk: () => {
30
- onChange((0, shared_1.transformDataToValue)(treeDataSource.dataSource));
31
- closeModal();
32
- }, children: (0, jsx_runtime_1.jsxs)("div", { className: `${(0, classnames_1.default)(prefix, className)} ${prefix + '-' + theme} ${prefix + '-layout'}`, children: [(0, jsx_runtime_1.jsx)("div", { className: `${prefix + '-layout-item left'}`, children: (0, jsx_runtime_1.jsx)(TreePanel_1.TreePanel, { defaultOptionValue: defaultOptionValue, allowTree: allowTree, treeDataSource: treeDataSource }) }), (0, jsx_runtime_1.jsx)("div", { className: `${prefix + '-layout-item right'}`, children: (0, jsx_runtime_1.jsx)(DataSettingPanel_1.DataSettingPanel, { allowExtendOption: allowExtendOption, treeDataSource: treeDataSource, effects: effects }) })] }) })] }));
33
- });
38
+ }),
39
+ [value, modalVisible]
40
+ )
41
+ const openModal = () => setModalVisible(true)
42
+ const closeModal = () => setModalVisible(false)
43
+ return (0, jsx_runtime_1.jsxs)(react_1.Fragment, {
44
+ children: [
45
+ (0, jsx_runtime_1.jsx)(antd_1.Button, {
46
+ block: true,
47
+ onClick: openModal,
48
+ children: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, {
49
+ token: 'SettingComponents.DataSourceSetter.configureDataSource',
50
+ }),
51
+ }),
52
+ (0, jsx_runtime_1.jsx)(antd_1.Modal, {
53
+ title: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, {
54
+ token: 'SettingComponents.DataSourceSetter.configureDataSource',
55
+ }),
56
+ width: '65%',
57
+ styles: { body: { padding: 10 } },
58
+ transitionName: '',
59
+ maskTransitionName: '',
60
+ open: modalVisible,
61
+ onCancel: closeModal,
62
+ onOk: () => {
63
+ onChange(
64
+ (0, shared_1.transformDataToValue)(treeDataSource.dataSource)
65
+ )
66
+ closeModal()
67
+ },
68
+ children: (0, jsx_runtime_1.jsxs)('div', {
69
+ className: `${(0, classnames_1.default)(prefix, className)} ${
70
+ prefix + '-' + theme
71
+ } ${prefix + '-layout'}`,
72
+ children: [
73
+ (0, jsx_runtime_1.jsx)('div', {
74
+ className: `${prefix + '-layout-item left'}`,
75
+ children: (0, jsx_runtime_1.jsx)(TreePanel_1.TreePanel, {
76
+ defaultOptionValue: defaultOptionValue,
77
+ allowTree: allowTree,
78
+ treeDataSource: treeDataSource,
79
+ }),
80
+ }),
81
+ (0, jsx_runtime_1.jsx)('div', {
82
+ className: `${prefix + '-layout-item right'}`,
83
+ children: (0, jsx_runtime_1.jsx)(
84
+ DataSettingPanel_1.DataSettingPanel,
85
+ {
86
+ allowExtendOption: allowExtendOption,
87
+ treeDataSource: treeDataSource,
88
+ effects: effects,
89
+ }
90
+ ),
91
+ }),
92
+ ],
93
+ }),
94
+ }),
95
+ ],
96
+ })
97
+ })
@@ -1,9 +1,16 @@
1
- import { IDataSourceItem, INodeItem } from './types';
1
+ import { IDataSourceItem, INodeItem } from './types'
2
2
  export interface INode {
3
- key?: string;
4
- map?: any;
5
- children?: INode[];
3
+ key?: string
4
+ map?: any
5
+ children?: INode[]
6
6
  }
7
- export declare const traverseTree: <T extends INode>(data: T[], callback: (dataItem: T, i: number, data: T[]) => any) => void;
8
- export declare const transformValueToData: (value: IDataSourceItem[]) => INodeItem[];
9
- export declare const transformDataToValue: (data: INodeItem[]) => IDataSourceItem[];
7
+ export declare const traverseTree: <T extends INode>(
8
+ data: T[],
9
+ callback: (dataItem: T, i: number, data: T[]) => any
10
+ ) => void
11
+ export declare const transformValueToData: (
12
+ value: IDataSourceItem[]
13
+ ) => INodeItem[]
14
+ export declare const transformDataToValue: (
15
+ data: INodeItem[]
16
+ ) => IDataSourceItem[]
@@ -1,51 +1,52 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformDataToValue = exports.transformValueToData = exports.traverseTree = void 0;
4
- const shared_1 = require("@formily/shared");
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.transformDataToValue =
4
+ exports.transformValueToData =
5
+ exports.traverseTree =
6
+ void 0
7
+ const shared_1 = require('@formily/shared')
5
8
  const traverseTree = (data, callback) => {
6
- for (let i = 0; i < data.length; i++) {
7
- callback(data[i], i, data);
8
- if (data[i]?.children) {
9
- (0, exports.traverseTree)(data[i]?.children, callback);
10
- }
9
+ for (let i = 0; i < data.length; i++) {
10
+ callback(data[i], i, data)
11
+ if (data[i]?.children) {
12
+ ;(0, exports.traverseTree)(data[i]?.children, callback)
11
13
  }
12
- };
13
- exports.traverseTree = traverseTree;
14
+ }
15
+ }
16
+ exports.traverseTree = traverseTree
14
17
  const transformValueToData = (value) => {
15
- const data = (0, shared_1.clone)(value);
16
- (0, exports.traverseTree)(data, (item, i, dataSource) => {
17
- const dataItem = {
18
- key: '',
19
- duplicateKey: '',
20
- map: [],
21
- children: [],
22
- };
23
- for (const [key, value] of Object.entries(dataSource[i] || {})) {
24
- if (key !== 'children')
25
- dataItem.map.push({ label: key, value: value });
26
- }
27
- const uuid = (0, shared_1.uid)();
28
- dataItem.key = uuid;
29
- dataItem.duplicateKey = uuid;
30
- dataItem.children = dataSource[i].children || [];
31
- dataSource[i] = dataItem;
32
- });
33
- return data;
34
- };
35
- exports.transformValueToData = transformValueToData;
18
+ const data = (0, shared_1.clone)(value)
19
+ ;(0, exports.traverseTree)(data, (item, i, dataSource) => {
20
+ const dataItem = {
21
+ key: '',
22
+ duplicateKey: '',
23
+ map: [],
24
+ children: [],
25
+ }
26
+ for (const [key, value] of Object.entries(dataSource[i] || {})) {
27
+ if (key !== 'children') dataItem.map.push({ label: key, value: value })
28
+ }
29
+ const uuid = (0, shared_1.uid)()
30
+ dataItem.key = uuid
31
+ dataItem.duplicateKey = uuid
32
+ dataItem.children = dataSource[i].children || []
33
+ dataSource[i] = dataItem
34
+ })
35
+ return data
36
+ }
37
+ exports.transformValueToData = transformValueToData
36
38
  const transformDataToValue = (data) => {
37
- const value = (0, shared_1.clone)(data);
38
- (0, exports.traverseTree)(value, (item, i, dataSource) => {
39
- const valueItem = {
40
- children: [],
41
- };
42
- (0, shared_1.toArr)(dataSource[i].map).forEach((item) => {
43
- if (item.label)
44
- valueItem[item.label] = item.value;
45
- });
46
- valueItem.children = dataSource[i]?.children || [];
47
- dataSource[i] = valueItem;
48
- });
49
- return value;
50
- };
51
- exports.transformDataToValue = transformDataToValue;
39
+ const value = (0, shared_1.clone)(data)
40
+ ;(0, exports.traverseTree)(value, (item, i, dataSource) => {
41
+ const valueItem = {
42
+ children: [],
43
+ }
44
+ ;(0, shared_1.toArr)(dataSource[i].map).forEach((item) => {
45
+ if (item.label) valueItem[item.label] = item.value
46
+ })
47
+ valueItem.children = dataSource[i]?.children || []
48
+ dataSource[i] = valueItem
49
+ })
50
+ return value
51
+ }
52
+ exports.transformDataToValue = transformDataToValue
@@ -1,4 +1,3 @@
1
-
2
1
  .dn-data-source-setter {
3
2
  ::-webkit-scrollbar {
4
3
  width: 5px;
@@ -51,7 +50,8 @@
51
50
 
52
51
  &.left {
53
52
  width: 40%;
54
- border-right: 1px solid var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
53
+ border-right: 1px solid
54
+ var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
55
55
  }
56
56
 
57
57
  &.right {
@@ -65,7 +65,8 @@
65
65
  justify-content: space-between;
66
66
  height: 40px;
67
67
  padding: 8px 12px 9px;
68
- border-bottom: 1px solid var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
68
+ border-bottom: 1px solid
69
+ var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
69
70
  border-radius: 2px 2px 0 0;
70
71
  }
71
72
 
@@ -1,18 +1,18 @@
1
1
  export interface IDataSourceItem {
2
- label?: '';
3
- value?: any;
4
- children?: any[];
2
+ label?: ''
3
+ value?: any
4
+ children?: any[]
5
5
  }
6
6
  export interface INodeItem {
7
- key: string;
8
- duplicateKey?: string;
9
- map?: {
10
- label: string;
11
- value: any;
12
- }[];
13
- children?: INodeItem[];
7
+ key: string
8
+ duplicateKey?: string
9
+ map?: {
10
+ label: string
11
+ value: any
12
+ }[]
13
+ children?: INodeItem[]
14
14
  }
15
15
  export interface ITreeDataSource {
16
- dataSource: INodeItem[];
17
- selectedKey: string;
16
+ dataSource: INodeItem[]
17
+ selectedKey: string
18
18
  }
@@ -1,2 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
@@ -1,10 +1,10 @@
1
- import React from 'react';
1
+ import React from 'react'
2
2
  export interface IFieldProperty {
3
- [key: string]: string;
3
+ [key: string]: string
4
4
  }
5
5
  export interface IFieldPropertySetterProps {
6
- extraLib?: string;
7
- value?: IFieldProperty;
8
- onChange?: (value: IFieldProperty) => void;
6
+ extraLib?: string
7
+ value?: IFieldProperty
8
+ onChange?: (value: IFieldProperty) => void
9
9
  }
10
- export declare const FieldPropertySetter: React.FC<IFieldPropertySetterProps>;
10
+ export declare const FieldPropertySetter: React.FC<IFieldPropertySetterProps>
@@ -1,69 +1,152 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FieldPropertySetter = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const designable_react_1 = require("@thienvu18/designable-react");
7
- const antd_1 = require("antd");
8
- const designable_react_settings_form_1 = require("@thienvu18/designable-react-settings-form");
9
- const shared_1 = require("@formily/shared");
10
- const properties_1 = require("./properties");
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.FieldPropertySetter = void 0
4
+ const jsx_runtime_1 = require('react/jsx-runtime')
5
+ const react_1 = require('react')
6
+ const designable_react_1 = require('@thienvu18/designable-react')
7
+ const antd_1 = require('antd')
8
+ const designable_react_settings_form_1 = require('@thienvu18/designable-react-settings-form')
9
+ const shared_1 = require('@formily/shared')
10
+ const properties_1 = require('./properties')
11
11
  const template = (code) => {
12
- if (!code)
13
- return;
14
- return code.trim();
15
- };
12
+ if (!code) return
13
+ return code.trim()
14
+ }
16
15
  const FieldPropertySetter = (props) => {
17
- const [selectKeys, setSelectKeys] = (0, react_1.useState)(['visible']);
18
- const prefix = (0, designable_react_1.usePrefix)('field-property-setter');
19
- const value = { ...props.value };
20
- const parseExpression = (expression) => {
21
- if (!expression)
22
- return '';
23
- return String(expression).match(/^\{\{([\s\S]*)\}\}$/)?.[1] || '';
24
- };
25
- const filterEmpty = (value) => {
26
- return (0, shared_1.reduce)(value, (buf, value, key) => {
27
- if (!value || value === '{{}}')
28
- return buf;
29
- buf[key] = value;
30
- return buf;
31
- }, {});
32
- };
33
- const currentProperty = properties_1.FieldProperties.find((item) => item.key === selectKeys[0]);
34
- return ((0, jsx_runtime_1.jsxs)("div", { className: prefix, children: [(0, jsx_runtime_1.jsx)(antd_1.Menu, { mode: "vertical", style: {
35
- width: 200,
36
- height: 300,
37
- paddingRight: 4,
38
- overflowY: 'auto',
39
- overflowX: 'hidden',
40
- }, defaultSelectedKeys: selectKeys, selectedKeys: selectKeys, onSelect: ({ selectedKeys }) => {
41
- setSelectKeys(selectedKeys);
42
- }, children: properties_1.FieldProperties.map((key) => {
43
- if ((0, shared_1.isPlainObj)(key)) {
44
- return ((0, jsx_runtime_1.jsx)(antd_1.Menu.Item, { children: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: `SettingComponents.ReactionsSetter.${key.token || key.key}` }) }, key.key));
45
- }
46
- return ((0, jsx_runtime_1.jsx)(antd_1.Menu.Item, { children: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: `SettingComponents.ReactionsSetter.${key}` }) }, key));
47
- }) }), (0, jsx_runtime_1.jsxs)("div", { className: prefix + '-coder-wrapper', children: [(0, jsx_runtime_1.jsxs)("div", { className: prefix + '-coder-start', children: [`$self.${selectKeys[0]} = (`, (0, jsx_runtime_1.jsxs)("span", { style: {
48
- fontSize: 14,
49
- marginLeft: 10,
50
- color: '#888',
51
- fontWeight: 'normal',
52
- }, children: ['//', ' ', (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, { token: "SettingComponents.ReactionsSetter.expressionValueTypeIs" }), ' ', '`', currentProperty?.type, '`'] })] }), (0, jsx_runtime_1.jsx)("div", { className: prefix + '-coder', children: (0, jsx_runtime_1.jsx)(designable_react_settings_form_1.MonacoInput, { language: "javascript.expression", extraLib: props.extraLib, helpCode: template(currentProperty?.helpCode), value: parseExpression(value[selectKeys[0]]), options: {
53
- lineNumbers: 'off',
54
- wordWrap: 'on',
55
- glyphMargin: false,
56
- folding: false,
57
- lineDecorationsWidth: 0,
58
- lineNumbersMinChars: 0,
59
- minimap: {
60
- enabled: false,
61
- },
62
- }, onChange: (expression) => {
63
- props.onChange?.(filterEmpty({
64
- ...value,
65
- [selectKeys[0]]: `{{${expression}}}`,
66
- }));
67
- } }, selectKeys[0]) }), (0, jsx_runtime_1.jsx)("div", { className: prefix + '-coder-end', children: `)` })] })] }));
68
- };
69
- exports.FieldPropertySetter = FieldPropertySetter;
16
+ const [selectKeys, setSelectKeys] = (0, react_1.useState)(['visible'])
17
+ const prefix = (0, designable_react_1.usePrefix)('field-property-setter')
18
+ const value = { ...props.value }
19
+ const parseExpression = (expression) => {
20
+ if (!expression) return ''
21
+ return String(expression).match(/^\{\{([\s\S]*)\}\}$/)?.[1] || ''
22
+ }
23
+ const filterEmpty = (value) => {
24
+ return (0, shared_1.reduce)(
25
+ value,
26
+ (buf, value, key) => {
27
+ if (!value || value === '{{}}') return buf
28
+ buf[key] = value
29
+ return buf
30
+ },
31
+ {}
32
+ )
33
+ }
34
+ const currentProperty = properties_1.FieldProperties.find(
35
+ (item) => item.key === selectKeys[0]
36
+ )
37
+ return (0, jsx_runtime_1.jsxs)('div', {
38
+ className: prefix,
39
+ children: [
40
+ (0, jsx_runtime_1.jsx)(antd_1.Menu, {
41
+ mode: 'vertical',
42
+ style: {
43
+ width: 200,
44
+ height: 300,
45
+ paddingRight: 4,
46
+ overflowY: 'auto',
47
+ overflowX: 'hidden',
48
+ },
49
+ defaultSelectedKeys: selectKeys,
50
+ selectedKeys: selectKeys,
51
+ onSelect: ({ selectedKeys }) => {
52
+ setSelectKeys(selectedKeys)
53
+ },
54
+ children: properties_1.FieldProperties.map((key) => {
55
+ if ((0, shared_1.isPlainObj)(key)) {
56
+ return (0, jsx_runtime_1.jsx)(
57
+ antd_1.Menu.Item,
58
+ {
59
+ children: (0, jsx_runtime_1.jsx)(
60
+ designable_react_1.TextWidget,
61
+ {
62
+ token: `SettingComponents.ReactionsSetter.${
63
+ key.token || key.key
64
+ }`,
65
+ }
66
+ ),
67
+ },
68
+ key.key
69
+ )
70
+ }
71
+ return (0, jsx_runtime_1.jsx)(
72
+ antd_1.Menu.Item,
73
+ {
74
+ children: (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, {
75
+ token: `SettingComponents.ReactionsSetter.${key}`,
76
+ }),
77
+ },
78
+ key
79
+ )
80
+ }),
81
+ }),
82
+ (0, jsx_runtime_1.jsxs)('div', {
83
+ className: prefix + '-coder-wrapper',
84
+ children: [
85
+ (0, jsx_runtime_1.jsxs)('div', {
86
+ className: prefix + '-coder-start',
87
+ children: [
88
+ `$self.${selectKeys[0]} = (`,
89
+ (0, jsx_runtime_1.jsxs)('span', {
90
+ style: {
91
+ fontSize: 14,
92
+ marginLeft: 10,
93
+ color: '#888',
94
+ fontWeight: 'normal',
95
+ },
96
+ children: [
97
+ '//',
98
+ ' ',
99
+ (0, jsx_runtime_1.jsx)(designable_react_1.TextWidget, {
100
+ token:
101
+ 'SettingComponents.ReactionsSetter.expressionValueTypeIs',
102
+ }),
103
+ ' ',
104
+ '`',
105
+ currentProperty?.type,
106
+ '`',
107
+ ],
108
+ }),
109
+ ],
110
+ }),
111
+ (0, jsx_runtime_1.jsx)('div', {
112
+ className: prefix + '-coder',
113
+ children: (0, jsx_runtime_1.jsx)(
114
+ designable_react_settings_form_1.MonacoInput,
115
+ {
116
+ language: 'javascript.expression',
117
+ extraLib: props.extraLib,
118
+ helpCode: template(currentProperty?.helpCode),
119
+ value: parseExpression(value[selectKeys[0]]),
120
+ options: {
121
+ lineNumbers: 'off',
122
+ wordWrap: 'on',
123
+ glyphMargin: false,
124
+ folding: false,
125
+ lineDecorationsWidth: 0,
126
+ lineNumbersMinChars: 0,
127
+ minimap: {
128
+ enabled: false,
129
+ },
130
+ },
131
+ onChange: (expression) => {
132
+ props.onChange?.(
133
+ filterEmpty({
134
+ ...value,
135
+ [selectKeys[0]]: `{{${expression}}}`,
136
+ })
137
+ )
138
+ },
139
+ },
140
+ selectKeys[0]
141
+ ),
142
+ }),
143
+ (0, jsx_runtime_1.jsx)('div', {
144
+ className: prefix + '-coder-end',
145
+ children: `)`,
146
+ }),
147
+ ],
148
+ }),
149
+ ],
150
+ })
151
+ }
152
+ exports.FieldPropertySetter = FieldPropertySetter
@@ -1,10 +1,11 @@
1
- import React from 'react';
2
- import { TreeNode } from '@thienvu18/designable-core';
3
- import { TreeSelectProps } from 'antd';
4
- export interface IPathSelectorProps extends Omit<TreeSelectProps<any>, 'onChange'> {
5
- value?: string;
6
- onChange?: (value: string, node: TreeNode) => void;
7
- style?: React.CSSProperties;
8
- className?: string;
1
+ import { TreeNode } from '@thienvu18/designable-core'
2
+ import { TreeSelectProps } from 'antd'
3
+ import React from 'react'
4
+ export interface IPathSelectorProps
5
+ extends Omit<TreeSelectProps<any>, 'onChange'> {
6
+ value?: string
7
+ onChange?: (value: string, node: TreeNode) => void
8
+ style?: React.CSSProperties
9
+ className?: string
9
10
  }
10
- export declare const PathSelector: React.FC<IPathSelectorProps>;
11
+ export declare const PathSelector: React.FC<IPathSelectorProps>