@thienvu18/designable-react-settings-form 2.0.1 → 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 (167) hide show
  1. package/esm/SchemaField.d.ts +5115 -1578
  2. package/esm/SchemaField.js +76 -41
  3. package/esm/SettingsForm.d.ts +4 -4
  4. package/esm/SettingsForm.js +99 -49
  5. package/esm/components/BackgroundStyleSetter/index.d.ts +4 -4
  6. package/esm/components/BackgroundStyleSetter/index.js +95 -42
  7. package/esm/components/BorderRadiusStyleSetter/index.d.ts +4 -4
  8. package/esm/components/BorderRadiusStyleSetter/index.js +13 -10
  9. package/esm/components/BorderStyleSetter/index.d.ts +5 -5
  10. package/esm/components/BorderStyleSetter/index.js +121 -68
  11. package/esm/components/BoxShadowStyleSetter/index.d.ts +6 -6
  12. package/esm/components/BoxShadowStyleSetter/index.js +72 -24
  13. package/esm/components/BoxStyleSetter/index.d.ts +7 -7
  14. package/esm/components/BoxStyleSetter/index.js +98 -46
  15. package/esm/components/CollapseItem/index.d.ts +6 -6
  16. package/esm/components/CollapseItem/index.js +35 -15
  17. package/esm/components/ColorInput/index.d.ts +5 -5
  18. package/esm/components/ColorInput/index.js +35 -17
  19. package/esm/components/ColorInput/styles.less +0 -5
  20. package/esm/components/CornerInput/index.d.ts +7 -7
  21. package/esm/components/CornerInput/index.js +50 -21
  22. package/esm/components/DisplayStyleSetter/index.d.ts +7 -7
  23. package/esm/components/DisplayStyleSetter/index.js +62 -33
  24. package/esm/components/DrawerSetter/index.d.ts +6 -6
  25. package/esm/components/DrawerSetter/index.js +82 -42
  26. package/esm/components/DrawerSetter/styles.less +2 -2
  27. package/esm/components/FlexStyleSetter/index.d.ts +5 -5
  28. package/esm/components/FlexStyleSetter/index.js +160 -110
  29. package/esm/components/FoldItem/index.d.ts +9 -7
  30. package/esm/components/FoldItem/index.js +80 -46
  31. package/esm/components/FontStyleSetter/index.d.ts +4 -4
  32. package/esm/components/FontStyleSetter/index.js +169 -85
  33. package/esm/components/ImageInput/index.d.ts +7 -7
  34. package/esm/components/ImageInput/index.js +59 -39
  35. package/esm/components/InputItems/index.d.ts +19 -17
  36. package/esm/components/InputItems/index.js +42 -16
  37. package/esm/components/MonacoInput/config.d.ts +1 -1
  38. package/esm/components/MonacoInput/config.js +40 -38
  39. package/esm/components/MonacoInput/format.d.ts +4 -1
  40. package/esm/components/MonacoInput/format.js +33 -29
  41. package/esm/components/MonacoInput/index.d.ts +13 -13
  42. package/esm/components/MonacoInput/index.js +298 -212
  43. package/esm/components/MonacoInput/themes/chrome.d.ts +44 -38
  44. package/esm/components/MonacoInput/themes/chrome.js +105 -105
  45. package/esm/components/MonacoInput/themes/monokai.d.ts +34 -30
  46. package/esm/components/MonacoInput/themes/monokai.js +139 -139
  47. package/esm/components/PolyInput/index.d.ts +17 -17
  48. package/esm/components/PolyInput/index.js +96 -66
  49. package/esm/components/PositionInput/index.d.ts +7 -7
  50. package/esm/components/PositionInput/index.js +48 -21
  51. package/esm/components/PositionInput/styles.less +0 -1
  52. package/esm/components/SizeInput/index.d.ts +6 -2
  53. package/esm/components/SizeInput/index.js +44 -46
  54. package/esm/components/SizeInput/styles.less +0 -1
  55. package/esm/components/ValueInput/index.d.ts +2 -2
  56. package/esm/components/ValueInput/index.js +89 -72
  57. package/esm/components/index.d.ts +20 -20
  58. package/esm/components/index.js +20 -20
  59. package/esm/effects/index.d.ts +2 -2
  60. package/esm/effects/index.js +2 -2
  61. package/esm/effects/useLocales.d.ts +2 -2
  62. package/esm/effects/useLocales.js +57 -59
  63. package/esm/effects/useSnapshot.d.ts +2 -2
  64. package/esm/effects/useSnapshot.js +9 -9
  65. package/esm/index.d.ts +5 -5
  66. package/esm/index.js +5 -5
  67. package/esm/locales/en-US.d.ts +12 -12
  68. package/esm/locales/en-US.js +10 -10
  69. package/esm/locales/index.d.ts +1 -1
  70. package/esm/locales/index.js +5 -5
  71. package/esm/locales/ko-KR.d.ts +12 -12
  72. package/esm/locales/ko-KR.js +10 -10
  73. package/esm/locales/zh-CN.d.ts +12 -12
  74. package/esm/locales/zh-CN.js +10 -10
  75. package/esm/registry.d.ts +2 -2
  76. package/esm/registry.js +11 -11
  77. package/esm/shared/context.d.ts +2 -2
  78. package/esm/shared/context.js +2 -2
  79. package/esm/shared/loadScript.d.ts +5 -5
  80. package/esm/shared/loadScript.js +27 -28
  81. package/esm/styles.less +5 -4
  82. package/esm/types.d.ts +8 -8
  83. package/esm/types.js +1 -1
  84. package/lib/SchemaField.d.ts +5115 -1578
  85. package/lib/SchemaField.js +44 -44
  86. package/lib/SettingsForm.d.ts +4 -4
  87. package/lib/SettingsForm.js +108 -55
  88. package/lib/components/BackgroundStyleSetter/index.d.ts +4 -4
  89. package/lib/components/BackgroundStyleSetter/index.js +106 -48
  90. package/lib/components/BorderRadiusStyleSetter/index.d.ts +4 -4
  91. package/lib/components/BorderRadiusStyleSetter/index.js +33 -14
  92. package/lib/components/BorderStyleSetter/index.d.ts +5 -5
  93. package/lib/components/BorderStyleSetter/index.js +138 -74
  94. package/lib/components/BoxShadowStyleSetter/index.d.ts +6 -6
  95. package/lib/components/BoxShadowStyleSetter/index.js +82 -30
  96. package/lib/components/BoxStyleSetter/index.d.ts +7 -7
  97. package/lib/components/BoxStyleSetter/index.js +122 -52
  98. package/lib/components/CollapseItem/index.d.ts +6 -6
  99. package/lib/components/CollapseItem/index.js +49 -21
  100. package/lib/components/ColorInput/index.d.ts +5 -5
  101. package/lib/components/ColorInput/index.js +39 -21
  102. package/lib/components/ColorInput/styles.less +0 -5
  103. package/lib/components/CornerInput/index.d.ts +7 -7
  104. package/lib/components/CornerInput/index.js +70 -28
  105. package/lib/components/DisplayStyleSetter/index.d.ts +7 -7
  106. package/lib/components/DisplayStyleSetter/index.js +75 -39
  107. package/lib/components/DrawerSetter/index.d.ts +6 -6
  108. package/lib/components/DrawerSetter/index.js +99 -48
  109. package/lib/components/DrawerSetter/styles.less +2 -2
  110. package/lib/components/FlexStyleSetter/index.d.ts +5 -5
  111. package/lib/components/FlexStyleSetter/index.js +208 -116
  112. package/lib/components/FoldItem/index.d.ts +9 -7
  113. package/lib/components/FoldItem/index.js +140 -72
  114. package/lib/components/FontStyleSetter/index.d.ts +4 -4
  115. package/lib/components/FontStyleSetter/index.js +216 -91
  116. package/lib/components/ImageInput/index.d.ts +7 -7
  117. package/lib/components/ImageInput/index.js +69 -47
  118. package/lib/components/InputItems/index.d.ts +19 -17
  119. package/lib/components/InputItems/index.js +101 -46
  120. package/lib/components/MonacoInput/config.d.ts +1 -1
  121. package/lib/components/MonacoInput/config.js +49 -45
  122. package/lib/components/MonacoInput/format.d.ts +4 -1
  123. package/lib/components/MonacoInput/format.js +38 -33
  124. package/lib/components/MonacoInput/index.d.ts +13 -13
  125. package/lib/components/MonacoInput/index.js +347 -241
  126. package/lib/components/MonacoInput/themes/chrome.d.ts +44 -38
  127. package/lib/components/MonacoInput/themes/chrome.js +107 -107
  128. package/lib/components/MonacoInput/themes/monokai.d.ts +34 -30
  129. package/lib/components/MonacoInput/themes/monokai.js +141 -141
  130. package/lib/components/PolyInput/index.d.ts +17 -17
  131. package/lib/components/PolyInput/index.js +151 -96
  132. package/lib/components/PositionInput/index.d.ts +7 -7
  133. package/lib/components/PositionInput/index.js +68 -28
  134. package/lib/components/PositionInput/styles.less +0 -1
  135. package/lib/components/SizeInput/index.d.ts +6 -2
  136. package/lib/components/SizeInput/index.js +47 -49
  137. package/lib/components/SizeInput/styles.less +0 -1
  138. package/lib/components/ValueInput/index.d.ts +2 -2
  139. package/lib/components/ValueInput/index.js +92 -75
  140. package/lib/components/index.d.ts +20 -20
  141. package/lib/components/index.js +52 -36
  142. package/lib/effects/index.d.ts +2 -2
  143. package/lib/effects/index.js +34 -18
  144. package/lib/effects/useLocales.d.ts +2 -2
  145. package/lib/effects/useLocales.js +67 -63
  146. package/lib/effects/useSnapshot.d.ts +2 -2
  147. package/lib/effects/useSnapshot.js +13 -13
  148. package/lib/index.d.ts +5 -5
  149. package/lib/index.js +37 -21
  150. package/lib/locales/en-US.d.ts +12 -12
  151. package/lib/locales/en-US.js +12 -12
  152. package/lib/locales/index.d.ts +1 -1
  153. package/lib/locales/index.js +16 -10
  154. package/lib/locales/ko-KR.d.ts +12 -12
  155. package/lib/locales/ko-KR.js +12 -12
  156. package/lib/locales/zh-CN.d.ts +12 -12
  157. package/lib/locales/zh-CN.js +12 -12
  158. package/lib/registry.d.ts +2 -2
  159. package/lib/registry.js +21 -19
  160. package/lib/shared/context.d.ts +2 -2
  161. package/lib/shared/context.js +5 -5
  162. package/lib/shared/loadScript.d.ts +5 -5
  163. package/lib/shared/loadScript.js +32 -32
  164. package/lib/styles.less +5 -4
  165. package/lib/types.d.ts +8 -8
  166. package/lib/types.js +2 -2
  167. package/package.json +4 -4
@@ -1,111 +1,161 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Field, useField, observer } from '@formily/react';
3
- import { Radio } from '@thienvu18/formily-antd-v6';
4
- import { usePrefix, IconWidget } from '@thienvu18/designable-react';
5
- import { InputItems } from '../InputItems';
6
- import cls from 'classnames';
7
- import './styles.less';
1
+ import { Field, observer, useField } from '@formily/react'
2
+ import { IconWidget, usePrefix } from '@thienvu18/designable-react'
3
+ import { Radio } from '@thienvu18/formily-antd-v6'
4
+ import cls from 'classnames'
5
+ import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'
6
+ import { InputItems } from '../InputItems'
7
+ import './styles.less'
8
8
  export const FlexStyleSetter = observer((props) => {
9
- const field = useField();
10
- const prefix = usePrefix('flex-style-setter');
11
- return (_jsx("div", { className: cls(prefix, props.className), style: props.style, children: _jsxs(InputItems, { vertical: true, children: [_jsx(Field, { name: "flexDirection", basePath: field.address.parent(), dataSource: [
12
- {
13
- label: _jsx(IconWidget, { infer: "FlexDirectionRow" }),
14
- value: 'row',
15
- },
16
- {
17
- label: _jsx(IconWidget, { infer: "FlexDirectionColumn" }),
18
- value: 'column',
19
- },
20
- ], reactions: (field) => {
21
- field.decorator[1].title = `Flex Direction : ${field.value || ''}`;
22
- }, decorator: [InputItems.Item], component: [Radio.Group, { optionType: 'button' }] }), _jsx(Field, { name: "flexWrap", basePath: field.address.parent(), dataSource: [
23
- {
24
- label: _jsx(IconWidget, { infer: "FlexNoWrap" }),
25
- value: 'nowrap',
26
- },
27
- {
28
- label: _jsx(IconWidget, { infer: "FlexWrap" }),
29
- value: 'wrap',
30
- },
31
- ], reactions: (field) => {
32
- field.decorator[1].title = `Flex Wrap : ${field.value || ''}`;
33
- }, decorator: [InputItems.Item], component: [Radio.Group, { optionType: 'button' }] }), _jsx(Field, { name: "alignContent", basePath: field.address.parent(), dataSource: [
34
- {
35
- label: _jsx(IconWidget, { infer: "FlexAlignContentCenter" }),
36
- value: 'center',
37
- },
38
- {
39
- label: _jsx(IconWidget, { infer: "FlexAlignContentStart" }),
40
- value: 'flex-start',
41
- },
42
- {
43
- label: _jsx(IconWidget, { infer: "FlexAlignContentEnd" }),
44
- value: 'flex-end',
45
- },
46
- {
47
- label: _jsx(IconWidget, { infer: "FlexAlignContentSpaceAround" }),
48
- value: 'space-around',
49
- },
50
- {
51
- label: _jsx(IconWidget, { infer: "FlexAlignContentSpaceBetween" }),
52
- value: 'space-between',
53
- },
54
- {
55
- label: _jsx(IconWidget, { infer: "FlexAlignContentStretch" }),
56
- value: 'stretch',
57
- },
58
- ], reactions: (field) => {
59
- field.decorator[1].title = `Align Content : ${field.value || ''}`;
60
- }, decorator: [InputItems.Item], component: [Radio.Group, { optionType: 'button' }] }), _jsx(Field, { name: "justifyContent", basePath: field.address.parent(), dataSource: [
61
- {
62
- label: _jsx(IconWidget, { infer: "FlexJustifyCenter" }),
63
- value: 'center',
64
- },
65
- {
66
- label: _jsx(IconWidget, { infer: "FlexJustifyStart" }),
67
- value: 'flex-start',
68
- },
69
- {
70
- label: _jsx(IconWidget, { infer: "FlexJustifyEnd" }),
71
- value: 'flex-end',
72
- },
73
- {
74
- label: _jsx(IconWidget, { infer: "FlexJustifySpaceAround" }),
75
- value: 'space-around',
76
- },
77
- {
78
- label: _jsx(IconWidget, { infer: "FlexJustifySpaceBetween" }),
79
- value: 'space-between',
80
- },
81
- {
82
- label: _jsx(IconWidget, { infer: "FlexJustifySpaceEvenly" }),
83
- value: 'space-evenly',
84
- },
85
- ], reactions: (field) => {
86
- field.decorator[1].title = `Justify Content : ${field.value || ''}`;
87
- }, decorator: [InputItems.Item], component: [Radio.Group, { optionType: 'button' }] }), _jsx(Field, { name: "alignItems", basePath: field.address.parent(), dataSource: [
88
- {
89
- label: _jsx(IconWidget, { infer: "FlexAlignItemsCenter" }),
90
- value: 'center',
91
- },
92
- {
93
- label: _jsx(IconWidget, { infer: "FlexAlignItemsStart" }),
94
- value: 'flex-start',
95
- },
96
- {
97
- label: _jsx(IconWidget, { infer: "FlexAlignItemsEnd" }),
98
- value: 'flex-end',
99
- },
100
- {
101
- label: _jsx(IconWidget, { infer: "FlexAlignItemsStretch" }),
102
- value: 'stretch',
103
- },
104
- {
105
- label: _jsx(IconWidget, { infer: "FlexAlignItemsBaseline" }),
106
- value: 'baseline',
107
- },
108
- ], reactions: (field) => {
109
- field.decorator[1].title = `Align Items : ${field.value || ''}`;
110
- }, decorator: [InputItems.Item], component: [Radio.Group, { optionType: 'button' }] })] }) }));
111
- });
9
+ const field = useField()
10
+ const prefix = usePrefix('flex-style-setter')
11
+ return _jsx('div', {
12
+ className: cls(prefix, props.className),
13
+ style: props.style,
14
+ children: _jsxs(InputItems, {
15
+ vertical: true,
16
+ children: [
17
+ _jsx(Field, {
18
+ name: 'flexDirection',
19
+ basePath: field.address.parent(),
20
+ dataSource: [
21
+ {
22
+ label: _jsx(IconWidget, { infer: 'FlexDirectionRow' }),
23
+ value: 'row',
24
+ },
25
+ {
26
+ label: _jsx(IconWidget, { infer: 'FlexDirectionColumn' }),
27
+ value: 'column',
28
+ },
29
+ ],
30
+ reactions: (field) => {
31
+ field.decorator[1].title = `Flex Direction : ${field.value || ''}`
32
+ },
33
+ decorator: [InputItems.Item],
34
+ component: [Radio.Group, { optionType: 'button' }],
35
+ }),
36
+ _jsx(Field, {
37
+ name: 'flexWrap',
38
+ basePath: field.address.parent(),
39
+ dataSource: [
40
+ {
41
+ label: _jsx(IconWidget, { infer: 'FlexNoWrap' }),
42
+ value: 'nowrap',
43
+ },
44
+ {
45
+ label: _jsx(IconWidget, { infer: 'FlexWrap' }),
46
+ value: 'wrap',
47
+ },
48
+ ],
49
+ reactions: (field) => {
50
+ field.decorator[1].title = `Flex Wrap : ${field.value || ''}`
51
+ },
52
+ decorator: [InputItems.Item],
53
+ component: [Radio.Group, { optionType: 'button' }],
54
+ }),
55
+ _jsx(Field, {
56
+ name: 'alignContent',
57
+ basePath: field.address.parent(),
58
+ dataSource: [
59
+ {
60
+ label: _jsx(IconWidget, { infer: 'FlexAlignContentCenter' }),
61
+ value: 'center',
62
+ },
63
+ {
64
+ label: _jsx(IconWidget, { infer: 'FlexAlignContentStart' }),
65
+ value: 'flex-start',
66
+ },
67
+ {
68
+ label: _jsx(IconWidget, { infer: 'FlexAlignContentEnd' }),
69
+ value: 'flex-end',
70
+ },
71
+ {
72
+ label: _jsx(IconWidget, { infer: 'FlexAlignContentSpaceAround' }),
73
+ value: 'space-around',
74
+ },
75
+ {
76
+ label: _jsx(IconWidget, {
77
+ infer: 'FlexAlignContentSpaceBetween',
78
+ }),
79
+ value: 'space-between',
80
+ },
81
+ {
82
+ label: _jsx(IconWidget, { infer: 'FlexAlignContentStretch' }),
83
+ value: 'stretch',
84
+ },
85
+ ],
86
+ reactions: (field) => {
87
+ field.decorator[1].title = `Align Content : ${field.value || ''}`
88
+ },
89
+ decorator: [InputItems.Item],
90
+ component: [Radio.Group, { optionType: 'button' }],
91
+ }),
92
+ _jsx(Field, {
93
+ name: 'justifyContent',
94
+ basePath: field.address.parent(),
95
+ dataSource: [
96
+ {
97
+ label: _jsx(IconWidget, { infer: 'FlexJustifyCenter' }),
98
+ value: 'center',
99
+ },
100
+ {
101
+ label: _jsx(IconWidget, { infer: 'FlexJustifyStart' }),
102
+ value: 'flex-start',
103
+ },
104
+ {
105
+ label: _jsx(IconWidget, { infer: 'FlexJustifyEnd' }),
106
+ value: 'flex-end',
107
+ },
108
+ {
109
+ label: _jsx(IconWidget, { infer: 'FlexJustifySpaceAround' }),
110
+ value: 'space-around',
111
+ },
112
+ {
113
+ label: _jsx(IconWidget, { infer: 'FlexJustifySpaceBetween' }),
114
+ value: 'space-between',
115
+ },
116
+ {
117
+ label: _jsx(IconWidget, { infer: 'FlexJustifySpaceEvenly' }),
118
+ value: 'space-evenly',
119
+ },
120
+ ],
121
+ reactions: (field) => {
122
+ field.decorator[1].title = `Justify Content : ${field.value || ''}`
123
+ },
124
+ decorator: [InputItems.Item],
125
+ component: [Radio.Group, { optionType: 'button' }],
126
+ }),
127
+ _jsx(Field, {
128
+ name: 'alignItems',
129
+ basePath: field.address.parent(),
130
+ dataSource: [
131
+ {
132
+ label: _jsx(IconWidget, { infer: 'FlexAlignItemsCenter' }),
133
+ value: 'center',
134
+ },
135
+ {
136
+ label: _jsx(IconWidget, { infer: 'FlexAlignItemsStart' }),
137
+ value: 'flex-start',
138
+ },
139
+ {
140
+ label: _jsx(IconWidget, { infer: 'FlexAlignItemsEnd' }),
141
+ value: 'flex-end',
142
+ },
143
+ {
144
+ label: _jsx(IconWidget, { infer: 'FlexAlignItemsStretch' }),
145
+ value: 'stretch',
146
+ },
147
+ {
148
+ label: _jsx(IconWidget, { infer: 'FlexAlignItemsBaseline' }),
149
+ value: 'baseline',
150
+ },
151
+ ],
152
+ reactions: (field) => {
153
+ field.decorator[1].title = `Align Items : ${field.value || ''}`
154
+ },
155
+ decorator: [InputItems.Item],
156
+ component: [Radio.Group, { optionType: 'button' }],
157
+ }),
158
+ ],
159
+ }),
160
+ })
161
+ })
@@ -1,7 +1,9 @@
1
- import React from 'react';
2
- import { IFormItemProps } from '@thienvu18/formily-antd-v6';
3
- import './styles.less';
4
- export declare const FoldItem: React.FC<React.PropsWithChildren<IFormItemProps>> & {
5
- Base?: React.FC<React.PropsWithChildren<{}>>;
6
- Extra?: React.FC<React.PropsWithChildren<{}>>;
7
- };
1
+ import { IFormItemProps } from '@thienvu18/formily-antd-v6'
2
+ import React from 'react'
3
+ import './styles.less'
4
+ export declare const FoldItem: React.FC<
5
+ React.PropsWithChildren<IFormItemProps>
6
+ > & {
7
+ Base?: React.FC<React.PropsWithChildren<{}>>
8
+ Extra?: React.FC<React.PropsWithChildren<{}>>
9
+ }
@@ -1,49 +1,83 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { Fragment, useRef, useMemo } from 'react';
3
- import { FormItem } from '@thienvu18/formily-antd-v6';
4
- import { useField, observer } from '@formily/react';
5
- import { observable } from '@formily/reactive';
6
- import { IconWidget, usePrefix } from '@thienvu18/designable-react';
7
- import cls from 'classnames';
8
- import './styles.less';
9
- const ExpandedMap = new Map();
1
+ import { observer, useField } from '@formily/react'
2
+ import { observable } from '@formily/reactive'
3
+ import { IconWidget, usePrefix } from '@thienvu18/designable-react'
4
+ import { FormItem } from '@thienvu18/formily-antd-v6'
5
+ import cls from 'classnames'
6
+ import React, { Fragment, useMemo, useRef } from 'react'
7
+ import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'
8
+ import './styles.less'
9
+ const ExpandedMap = new Map()
10
10
  export const FoldItem = observer(({ className, style, children, ...props }) => {
11
- const prefix = usePrefix('fold-item');
12
- const field = useField();
13
- const expand = useMemo(() => observable.ref(ExpandedMap.get(field?.address?.toString() || '')), [field?.address]);
14
- const slots = useRef({
15
- base: null,
16
- extra: null,
17
- });
18
- slots.current = { base: null, extra: null };
19
- React.Children.forEach(children, (node) => {
20
- if (React.isValidElement(node)) {
21
- if (node?.type?.displayName === 'FoldItem.Base') {
22
- slots.current.base = node.props?.children;
23
- }
24
- if (node?.type?.displayName === 'FoldItem.Extra') {
25
- slots.current.extra = node.props?.children;
26
- }
27
- }
28
- });
29
- return (_jsxs("div", { className: cls(prefix, className), style: style, children: [_jsx("div", { className: prefix + '-base', onClick: () => {
30
- expand.value = !expand.value;
31
- if (field?.address) {
32
- ExpandedMap.set(field.address.toString(), expand.value);
33
- }
34
- }, children: _jsx(FormItem.BaseItem, { ...props, label: _jsxs("span", { className: cls(prefix + '-title', {
35
- expand: expand.value,
36
- }), children: [slots.current.extra && _jsx(IconWidget, { infer: "Expand", size: 10 }), props.label] }), children: _jsx("div", { style: { width: '100%' }, onClick: (e) => {
37
- e.stopPropagation();
38
- }, children: slots.current.base }) }) }), expand.value && slots.current.extra && (_jsx("div", { className: prefix + '-extra', children: slots.current.extra }))] }));
39
- });
11
+ const prefix = usePrefix('fold-item')
12
+ const field = useField()
13
+ const expand = useMemo(
14
+ () => observable.ref(ExpandedMap.get(field?.address?.toString() || '')),
15
+ [field?.address]
16
+ )
17
+ const slots = useRef({
18
+ base: null,
19
+ extra: null,
20
+ })
21
+ slots.current = { base: null, extra: null }
22
+ React.Children.forEach(children, (node) => {
23
+ if (React.isValidElement(node)) {
24
+ if (node?.type?.displayName === 'FoldItem.Base') {
25
+ slots.current.base = node.props?.children
26
+ }
27
+ if (node?.type?.displayName === 'FoldItem.Extra') {
28
+ slots.current.extra = node.props?.children
29
+ }
30
+ }
31
+ })
32
+ return _jsxs('div', {
33
+ className: cls(prefix, className),
34
+ style: style,
35
+ children: [
36
+ _jsx('div', {
37
+ className: prefix + '-base',
38
+ onClick: () => {
39
+ expand.value = !expand.value
40
+ if (field?.address) {
41
+ ExpandedMap.set(field.address.toString(), expand.value)
42
+ }
43
+ },
44
+ children: _jsx(FormItem.BaseItem, {
45
+ ...props,
46
+ label: _jsxs('span', {
47
+ className: cls(prefix + '-title', {
48
+ expand: expand.value,
49
+ }),
50
+ children: [
51
+ slots.current.extra &&
52
+ _jsx(IconWidget, { infer: 'Expand', size: 10 }),
53
+ props.label,
54
+ ],
55
+ }),
56
+ children: _jsx('div', {
57
+ style: { width: '100%' },
58
+ onClick: (e) => {
59
+ e.stopPropagation()
60
+ },
61
+ children: slots.current.base,
62
+ }),
63
+ }),
64
+ }),
65
+ expand.value &&
66
+ slots.current.extra &&
67
+ _jsx('div', {
68
+ className: prefix + '-extra',
69
+ children: slots.current.extra,
70
+ }),
71
+ ],
72
+ })
73
+ })
40
74
  const Base = () => {
41
- return _jsx(Fragment, {});
42
- };
43
- Base.displayName = 'FoldItem.Base';
75
+ return _jsx(Fragment, {})
76
+ }
77
+ Base.displayName = 'FoldItem.Base'
44
78
  const Extra = () => {
45
- return _jsx(Fragment, {});
46
- };
47
- Extra.displayName = 'FoldItem.Extra';
48
- FoldItem.Base = Base;
49
- FoldItem.Extra = Extra;
79
+ return _jsx(Fragment, {})
80
+ }
81
+ Extra.displayName = 'FoldItem.Extra'
82
+ FoldItem.Base = Base
83
+ FoldItem.Extra = Extra
@@ -1,6 +1,6 @@
1
- import React from 'react';
1
+ import React from 'react'
2
2
  export interface IFontStyleSetterProps {
3
- className?: string;
4
- style?: React.CSSProperties;
3
+ className?: string
4
+ style?: React.CSSProperties
5
5
  }
6
- export declare const FontStyleSetter: React.FC<IFontStyleSetterProps>;
6
+ export declare const FontStyleSetter: React.FC<IFontStyleSetterProps>