@thienvu18/designable-react-settings-form 2.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 (191) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +1 -0
  3. package/esm/SchemaField.d.ts +1580 -0
  4. package/esm/SchemaField.js +42 -0
  5. package/esm/SettingsForm.d.ts +4 -0
  6. package/esm/SettingsForm.js +54 -0
  7. package/esm/components/BackgroundStyleSetter/index.d.ts +6 -0
  8. package/esm/components/BackgroundStyleSetter/index.js +43 -0
  9. package/esm/components/BorderRadiusStyleSetter/index.d.ts +6 -0
  10. package/esm/components/BorderRadiusStyleSetter/index.js +11 -0
  11. package/esm/components/BorderStyleSetter/index.d.ts +7 -0
  12. package/esm/components/BorderStyleSetter/index.js +74 -0
  13. package/esm/components/BorderStyleSetter/styles.less +70 -0
  14. package/esm/components/BoxShadowStyleSetter/index.d.ts +8 -0
  15. package/esm/components/BoxShadowStyleSetter/index.js +25 -0
  16. package/esm/components/BoxStyleSetter/index.d.ts +9 -0
  17. package/esm/components/BoxStyleSetter/index.js +49 -0
  18. package/esm/components/CollapseItem/index.d.ts +8 -0
  19. package/esm/components/CollapseItem/index.js +16 -0
  20. package/esm/components/CollapseItem/styles.less +45 -0
  21. package/esm/components/ColorInput/index.d.ts +7 -0
  22. package/esm/components/ColorInput/index.js +18 -0
  23. package/esm/components/ColorInput/styles.less +17 -0
  24. package/esm/components/CornerInput/index.d.ts +9 -0
  25. package/esm/components/CornerInput/index.js +22 -0
  26. package/esm/components/CornerInput/styles.less +25 -0
  27. package/esm/components/DisplayStyleSetter/index.d.ts +9 -0
  28. package/esm/components/DisplayStyleSetter/index.js +34 -0
  29. package/esm/components/DisplayStyleSetter/styles.less +15 -0
  30. package/esm/components/DrawerSetter/index.d.ts +8 -0
  31. package/esm/components/DrawerSetter/index.js +43 -0
  32. package/esm/components/DrawerSetter/styles.less +54 -0
  33. package/esm/components/FlexStyleSetter/index.d.ts +7 -0
  34. package/esm/components/FlexStyleSetter/index.js +111 -0
  35. package/esm/components/FlexStyleSetter/styles.less +23 -0
  36. package/esm/components/FoldItem/index.d.ts +7 -0
  37. package/esm/components/FoldItem/index.js +49 -0
  38. package/esm/components/FoldItem/styles.less +42 -0
  39. package/esm/components/FontStyleSetter/index.d.ts +6 -0
  40. package/esm/components/FontStyleSetter/index.js +88 -0
  41. package/esm/components/ImageInput/index.d.ts +9 -0
  42. package/esm/components/ImageInput/index.js +41 -0
  43. package/esm/components/ImageInput/styles.less +3 -0
  44. package/esm/components/InputItems/index.d.ts +23 -0
  45. package/esm/components/InputItems/index.js +18 -0
  46. package/esm/components/InputItems/styles.less +45 -0
  47. package/esm/components/MonacoInput/config.d.ts +1 -0
  48. package/esm/components/MonacoInput/config.js +39 -0
  49. package/esm/components/MonacoInput/format.d.ts +1 -0
  50. package/esm/components/MonacoInput/format.js +31 -0
  51. package/esm/components/MonacoInput/index.d.ts +16 -0
  52. package/esm/components/MonacoInput/index.js +216 -0
  53. package/esm/components/MonacoInput/styles.less +33 -0
  54. package/esm/components/MonacoInput/themes/chrome.d.ts +39 -0
  55. package/esm/components/MonacoInput/themes/chrome.js +106 -0
  56. package/esm/components/MonacoInput/themes/monokai.d.ts +31 -0
  57. package/esm/components/MonacoInput/themes/monokai.js +140 -0
  58. package/esm/components/PolyInput/index.d.ts +21 -0
  59. package/esm/components/PolyInput/index.js +70 -0
  60. package/esm/components/PolyInput/styles.less +31 -0
  61. package/esm/components/PositionInput/index.d.ts +9 -0
  62. package/esm/components/PositionInput/index.js +22 -0
  63. package/esm/components/PositionInput/styles.less +28 -0
  64. package/esm/components/SizeInput/index.d.ts +3 -0
  65. package/esm/components/SizeInput/index.js +53 -0
  66. package/esm/components/SizeInput/styles.less +23 -0
  67. package/esm/components/ValueInput/index.d.ts +2 -0
  68. package/esm/components/ValueInput/index.js +81 -0
  69. package/esm/components/ValueInput/styles.less +0 -0
  70. package/esm/components/index.d.ts +20 -0
  71. package/esm/components/index.js +20 -0
  72. package/esm/effects/index.d.ts +2 -0
  73. package/esm/effects/index.js +2 -0
  74. package/esm/effects/useLocales.d.ts +2 -0
  75. package/esm/effects/useLocales.js +63 -0
  76. package/esm/effects/useSnapshot.d.ts +2 -0
  77. package/esm/effects/useSnapshot.js +10 -0
  78. package/esm/index.d.ts +5 -0
  79. package/esm/index.js +5 -0
  80. package/esm/locales/en-US.d.ts +13 -0
  81. package/esm/locales/en-US.js +12 -0
  82. package/esm/locales/index.d.ts +1 -0
  83. package/esm/locales/index.js +5 -0
  84. package/esm/locales/ko-KR.d.ts +13 -0
  85. package/esm/locales/ko-KR.js +12 -0
  86. package/esm/locales/zh-CN.d.ts +13 -0
  87. package/esm/locales/zh-CN.js +12 -0
  88. package/esm/registry.d.ts +2 -0
  89. package/esm/registry.js +13 -0
  90. package/esm/shared/context.d.ts +3 -0
  91. package/esm/shared/context.js +2 -0
  92. package/esm/shared/loadScript.d.ts +7 -0
  93. package/esm/shared/loadScript.js +29 -0
  94. package/esm/styles.less +121 -0
  95. package/esm/types.d.ts +10 -0
  96. package/esm/types.js +1 -0
  97. package/lib/SchemaField.d.ts +1580 -0
  98. package/lib/SchemaField.js +45 -0
  99. package/lib/SettingsForm.d.ts +4 -0
  100. package/lib/SettingsForm.js +60 -0
  101. package/lib/components/BackgroundStyleSetter/index.d.ts +6 -0
  102. package/lib/components/BackgroundStyleSetter/index.js +49 -0
  103. package/lib/components/BorderRadiusStyleSetter/index.d.ts +6 -0
  104. package/lib/components/BorderRadiusStyleSetter/index.js +15 -0
  105. package/lib/components/BorderStyleSetter/index.d.ts +7 -0
  106. package/lib/components/BorderStyleSetter/index.js +80 -0
  107. package/lib/components/BorderStyleSetter/styles.less +70 -0
  108. package/lib/components/BoxShadowStyleSetter/index.d.ts +8 -0
  109. package/lib/components/BoxShadowStyleSetter/index.js +31 -0
  110. package/lib/components/BoxStyleSetter/index.d.ts +9 -0
  111. package/lib/components/BoxStyleSetter/index.js +55 -0
  112. package/lib/components/CollapseItem/index.d.ts +8 -0
  113. package/lib/components/CollapseItem/index.js +22 -0
  114. package/lib/components/CollapseItem/styles.less +45 -0
  115. package/lib/components/ColorInput/index.d.ts +7 -0
  116. package/lib/components/ColorInput/index.js +22 -0
  117. package/lib/components/ColorInput/styles.less +17 -0
  118. package/lib/components/CornerInput/index.d.ts +9 -0
  119. package/lib/components/CornerInput/index.js +29 -0
  120. package/lib/components/CornerInput/styles.less +25 -0
  121. package/lib/components/DisplayStyleSetter/index.d.ts +9 -0
  122. package/lib/components/DisplayStyleSetter/index.js +40 -0
  123. package/lib/components/DisplayStyleSetter/styles.less +15 -0
  124. package/lib/components/DrawerSetter/index.d.ts +8 -0
  125. package/lib/components/DrawerSetter/index.js +49 -0
  126. package/lib/components/DrawerSetter/styles.less +54 -0
  127. package/lib/components/FlexStyleSetter/index.d.ts +7 -0
  128. package/lib/components/FlexStyleSetter/index.js +117 -0
  129. package/lib/components/FlexStyleSetter/styles.less +23 -0
  130. package/lib/components/FoldItem/index.d.ts +7 -0
  131. package/lib/components/FoldItem/index.js +78 -0
  132. package/lib/components/FoldItem/styles.less +42 -0
  133. package/lib/components/FontStyleSetter/index.d.ts +6 -0
  134. package/lib/components/FontStyleSetter/index.js +94 -0
  135. package/lib/components/ImageInput/index.d.ts +9 -0
  136. package/lib/components/ImageInput/index.js +49 -0
  137. package/lib/components/ImageInput/styles.less +3 -0
  138. package/lib/components/InputItems/index.d.ts +23 -0
  139. package/lib/components/InputItems/index.js +48 -0
  140. package/lib/components/InputItems/styles.less +45 -0
  141. package/lib/components/MonacoInput/config.d.ts +1 -0
  142. package/lib/components/MonacoInput/config.js +46 -0
  143. package/lib/components/MonacoInput/format.d.ts +1 -0
  144. package/lib/components/MonacoInput/format.js +35 -0
  145. package/lib/components/MonacoInput/index.d.ts +16 -0
  146. package/lib/components/MonacoInput/index.js +246 -0
  147. package/lib/components/MonacoInput/styles.less +33 -0
  148. package/lib/components/MonacoInput/themes/chrome.d.ts +39 -0
  149. package/lib/components/MonacoInput/themes/chrome.js +108 -0
  150. package/lib/components/MonacoInput/themes/monokai.d.ts +31 -0
  151. package/lib/components/MonacoInput/themes/monokai.js +142 -0
  152. package/lib/components/PolyInput/index.d.ts +21 -0
  153. package/lib/components/PolyInput/index.js +100 -0
  154. package/lib/components/PolyInput/styles.less +31 -0
  155. package/lib/components/PositionInput/index.d.ts +9 -0
  156. package/lib/components/PositionInput/index.js +29 -0
  157. package/lib/components/PositionInput/styles.less +28 -0
  158. package/lib/components/SizeInput/index.d.ts +3 -0
  159. package/lib/components/SizeInput/index.js +56 -0
  160. package/lib/components/SizeInput/styles.less +23 -0
  161. package/lib/components/ValueInput/index.d.ts +2 -0
  162. package/lib/components/ValueInput/index.js +84 -0
  163. package/lib/components/ValueInput/styles.less +0 -0
  164. package/lib/components/index.d.ts +20 -0
  165. package/lib/components/index.js +36 -0
  166. package/lib/effects/index.d.ts +2 -0
  167. package/lib/effects/index.js +18 -0
  168. package/lib/effects/useLocales.d.ts +2 -0
  169. package/lib/effects/useLocales.js +67 -0
  170. package/lib/effects/useSnapshot.d.ts +2 -0
  171. package/lib/effects/useSnapshot.js +14 -0
  172. package/lib/index.d.ts +5 -0
  173. package/lib/index.js +21 -0
  174. package/lib/locales/en-US.d.ts +13 -0
  175. package/lib/locales/en-US.js +14 -0
  176. package/lib/locales/index.d.ts +1 -0
  177. package/lib/locales/index.js +10 -0
  178. package/lib/locales/ko-KR.d.ts +13 -0
  179. package/lib/locales/ko-KR.js +14 -0
  180. package/lib/locales/zh-CN.d.ts +13 -0
  181. package/lib/locales/zh-CN.js +14 -0
  182. package/lib/registry.d.ts +2 -0
  183. package/lib/registry.js +21 -0
  184. package/lib/shared/context.d.ts +3 -0
  185. package/lib/shared/context.js +5 -0
  186. package/lib/shared/loadScript.d.ts +7 -0
  187. package/lib/shared/loadScript.js +33 -0
  188. package/lib/styles.less +121 -0
  189. package/lib/types.d.ts +10 -0
  190. package/lib/types.js +2 -0
  191. package/package.json +71 -0
@@ -0,0 +1,25 @@
1
+ .dn-corner-input {
2
+ display: flex;
3
+ &-column {
4
+ display: flex;
5
+ justify-content: center;
6
+ flex-direction: column;
7
+ align-items: center;
8
+ }
9
+
10
+ &-cell {
11
+ width: 26px;
12
+ height: 26px;
13
+ box-sizing: border-box;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ cursor: pointer;
18
+ border-radius: 3px;
19
+ color: rgba(0, 0, 0, 0.6);
20
+ margin: 5px;
21
+ &.active {
22
+ background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2));
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import './styles.less';
3
+ export interface IDisplayStyleSetterProps {
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ value?: string;
7
+ onChange?: (value: string) => void;
8
+ }
9
+ export declare const DisplayStyleSetter: React.FC<IDisplayStyleSetterProps>;
@@ -0,0 +1,40 @@
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.DisplayStyleSetter = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("@formily/react");
9
+ const formily_antd_v6_1 = require("@thienvu18/formily-antd-v6");
10
+ const antd_1 = require("antd");
11
+ const designable_react_1 = require("@thienvu18/designable-react");
12
+ const FlexStyleSetter_1 = require("../FlexStyleSetter");
13
+ const classnames_1 = __importDefault(require("classnames"));
14
+ require("./styles.less");
15
+ exports.DisplayStyleSetter = (0, react_1.observer)((props) => {
16
+ const field = (0, react_1.useField)();
17
+ const prefix = (0, designable_react_1.usePrefix)('display-style-setter');
18
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(formily_antd_v6_1.FormItem.BaseItem, { label: field.title, className: (0, classnames_1.default)(prefix, props.className), style: props.style, children: (0, jsx_runtime_1.jsx)(antd_1.Radio.Group, { className: prefix + '-radio', options: [
19
+ {
20
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "DisplayBlock", size: 16 }),
21
+ value: 'block',
22
+ },
23
+ {
24
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "DisplayInlineBlock", size: 16 }),
25
+ value: 'inline-block',
26
+ },
27
+ {
28
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "DisplayInline", size: 16 }),
29
+ value: 'inline',
30
+ },
31
+ {
32
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "DisplayFlex", size: 16 }),
33
+ value: 'flex',
34
+ },
35
+ ], value: props.value, onChange: (e) => {
36
+ props.onChange?.(e.target.value);
37
+ }, optionType: "button" }) }), (0, jsx_runtime_1.jsx)(react_1.Field, { name: "flex", basePath: field.address.parent(), visible: false, reactions: (flexField) => {
38
+ flexField.visible = field.value === 'flex';
39
+ }, component: [FlexStyleSetter_1.FlexStyleSetter] })] }));
40
+ });
@@ -0,0 +1,15 @@
1
+ @ant-prefix: ant;
2
+ .dn-display-style-setter {
3
+ &-radio {
4
+ display: flex !important;
5
+ width: 100%;
6
+
7
+ .@{ant-prefix}-radio-button-wrapper {
8
+ flex-grow: 1;
9
+ display: flex;
10
+ justify-content: center;
11
+ align-items: center;
12
+ padding: 0;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from 'antd';
3
+ import './styles.less';
4
+ export interface IDrawerSetterProps {
5
+ text: React.ReactNode;
6
+ triggerProps: ButtonProps;
7
+ }
8
+ export declare const DrawerSetter: React.FC<IDrawerSetterProps>;
@@ -0,0 +1,49 @@
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.DrawerSetter = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const react_dom_1 = require("react-dom");
10
+ const react_2 = require("@formily/react");
11
+ const formily_antd_v6_1 = require("@thienvu18/formily-antd-v6");
12
+ const designable_react_1 = require("@thienvu18/designable-react");
13
+ const antd_1 = require("antd");
14
+ const classnames_1 = __importDefault(require("classnames"));
15
+ require("./styles.less");
16
+ exports.DrawerSetter = (0, react_2.observer)((props) => {
17
+ const node = (0, designable_react_1.useTreeNode)();
18
+ const field = (0, react_2.useField)();
19
+ const [visible, setVisible] = (0, react_1.useState)(false);
20
+ const [remove, setRemove] = (0, react_1.useState)(false);
21
+ const [root, setRoot] = (0, react_1.useState)();
22
+ const prefix = (0, designable_react_1.usePrefix)('drawer-setter');
23
+ const formWrapperCls = (0, designable_react_1.usePrefix)('settings-form-wrapper');
24
+ (0, react_1.useLayoutEffect)(() => {
25
+ const wrapper = document.querySelector('.' + formWrapperCls);
26
+ if (wrapper) {
27
+ setRoot(wrapper);
28
+ }
29
+ }, [node]);
30
+ const renderDrawer = () => {
31
+ if (root && visible) {
32
+ return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(prefix, 'animate__animated animate__slideInRight', {
33
+ animate__slideOutRight: remove,
34
+ }), children: [(0, jsx_runtime_1.jsxs)("div", { className: prefix + '-header', onClick: handleClose, children: [(0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "Return", size: 18 }), (0, jsx_runtime_1.jsx)("span", { className: prefix + '-header-text', children: props.text || field.title })] }), (0, jsx_runtime_1.jsx)("div", { className: prefix + '-body', children: (0, jsx_runtime_1.jsx)(formily_antd_v6_1.FormLayout, { colon: false, labelWidth: 120, labelAlign: "left", wrapperAlign: "right", feedbackLayout: "none", tooltipLayout: "text", children: props.children }) })] }), root);
35
+ }
36
+ return null;
37
+ };
38
+ const handleOpen = () => {
39
+ setVisible(true);
40
+ };
41
+ const handleClose = () => {
42
+ setRemove(true);
43
+ setTimeout(() => {
44
+ setVisible(false);
45
+ setRemove(false);
46
+ }, 150);
47
+ };
48
+ return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(antd_1.Button, { block: true, onClick: handleOpen, ...props.triggerProps, children: props.text || field.title }), renderDrawer()] }));
49
+ });
@@ -0,0 +1,54 @@
1
+
2
+ .dn-drawer-setter {
3
+ position: absolute;
4
+ top: 0;
5
+ left: 0;
6
+ width: 100%;
7
+ bottom: 0;
8
+ background: var(--dn-composite-panel-tabs-content-bg-color);
9
+ z-index: 10;
10
+ display: flex;
11
+ flex-direction: column;
12
+
13
+ &-header {
14
+ display: flex;
15
+ align-items: center;
16
+ flex-shrink: 0;
17
+ flex-grow: 0;
18
+ padding: 5px 10px;
19
+ color: var(--dn-color-text, rgba(0, 0, 0, 0.88));
20
+ border-bottom: 1px solid var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
21
+ cursor: pointer;
22
+ }
23
+
24
+ &-header-text {
25
+ margin-left: 4px;
26
+ }
27
+
28
+ &-body {
29
+ padding: 10px 20px;
30
+ overflow: overlay;
31
+ overflow-x: hidden;
32
+ flex-grow: 2;
33
+ }
34
+ }
35
+
36
+ .dn-drawer-wrapper {
37
+ transition: all 0.16s ease-in-out;
38
+
39
+ &-enter {
40
+ transform: translateX(100%);
41
+ }
42
+
43
+ &-enter-active {
44
+ transform: translateX(0);
45
+ }
46
+
47
+ &-exit {
48
+ transform: translateX(0);
49
+ }
50
+
51
+ &-exit-active {
52
+ transform: translateX(100%);
53
+ }
54
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './styles.less';
3
+ export interface IFlexStyleSetterProps {
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ }
7
+ export declare const FlexStyleSetter: React.FC<IFlexStyleSetterProps>;
@@ -0,0 +1,117 @@
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.FlexStyleSetter = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("@formily/react");
9
+ const formily_antd_v6_1 = require("@thienvu18/formily-antd-v6");
10
+ const designable_react_1 = require("@thienvu18/designable-react");
11
+ const InputItems_1 = require("../InputItems");
12
+ const classnames_1 = __importDefault(require("classnames"));
13
+ require("./styles.less");
14
+ exports.FlexStyleSetter = (0, react_1.observer)((props) => {
15
+ const field = (0, react_1.useField)();
16
+ const prefix = (0, designable_react_1.usePrefix)('flex-style-setter');
17
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(prefix, props.className), style: props.style, children: (0, jsx_runtime_1.jsxs)(InputItems_1.InputItems, { vertical: true, children: [(0, jsx_runtime_1.jsx)(react_1.Field, { name: "flexDirection", basePath: field.address.parent(), dataSource: [
18
+ {
19
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexDirectionRow" }),
20
+ value: 'row',
21
+ },
22
+ {
23
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexDirectionColumn" }),
24
+ value: 'column',
25
+ },
26
+ ], reactions: (field) => {
27
+ field.decorator[1].title = `Flex Direction : ${field.value || ''}`;
28
+ }, decorator: [InputItems_1.InputItems.Item], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }), (0, jsx_runtime_1.jsx)(react_1.Field, { name: "flexWrap", basePath: field.address.parent(), dataSource: [
29
+ {
30
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexNoWrap" }),
31
+ value: 'nowrap',
32
+ },
33
+ {
34
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexWrap" }),
35
+ value: 'wrap',
36
+ },
37
+ ], reactions: (field) => {
38
+ field.decorator[1].title = `Flex Wrap : ${field.value || ''}`;
39
+ }, decorator: [InputItems_1.InputItems.Item], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }), (0, jsx_runtime_1.jsx)(react_1.Field, { name: "alignContent", basePath: field.address.parent(), dataSource: [
40
+ {
41
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentCenter" }),
42
+ value: 'center',
43
+ },
44
+ {
45
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentStart" }),
46
+ value: 'flex-start',
47
+ },
48
+ {
49
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentEnd" }),
50
+ value: 'flex-end',
51
+ },
52
+ {
53
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentSpaceAround" }),
54
+ value: 'space-around',
55
+ },
56
+ {
57
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentSpaceBetween" }),
58
+ value: 'space-between',
59
+ },
60
+ {
61
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignContentStretch" }),
62
+ value: 'stretch',
63
+ },
64
+ ], reactions: (field) => {
65
+ field.decorator[1].title = `Align Content : ${field.value || ''}`;
66
+ }, decorator: [InputItems_1.InputItems.Item], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }), (0, jsx_runtime_1.jsx)(react_1.Field, { name: "justifyContent", basePath: field.address.parent(), dataSource: [
67
+ {
68
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifyCenter" }),
69
+ value: 'center',
70
+ },
71
+ {
72
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifyStart" }),
73
+ value: 'flex-start',
74
+ },
75
+ {
76
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifyEnd" }),
77
+ value: 'flex-end',
78
+ },
79
+ {
80
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifySpaceAround" }),
81
+ value: 'space-around',
82
+ },
83
+ {
84
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifySpaceBetween" }),
85
+ value: 'space-between',
86
+ },
87
+ {
88
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexJustifySpaceEvenly" }),
89
+ value: 'space-evenly',
90
+ },
91
+ ], reactions: (field) => {
92
+ field.decorator[1].title = `Justify Content : ${field.value || ''}`;
93
+ }, decorator: [InputItems_1.InputItems.Item], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }), (0, jsx_runtime_1.jsx)(react_1.Field, { name: "alignItems", basePath: field.address.parent(), dataSource: [
94
+ {
95
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignItemsCenter" }),
96
+ value: 'center',
97
+ },
98
+ {
99
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignItemsStart" }),
100
+ value: 'flex-start',
101
+ },
102
+ {
103
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignItemsEnd" }),
104
+ value: 'flex-end',
105
+ },
106
+ {
107
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignItemsStretch" }),
108
+ value: 'stretch',
109
+ },
110
+ {
111
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "FlexAlignItemsBaseline" }),
112
+ value: 'baseline',
113
+ },
114
+ ], reactions: (field) => {
115
+ field.decorator[1].title = `Align Items : ${field.value || ''}`;
116
+ }, decorator: [InputItems_1.InputItems.Item], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] })] }) }));
117
+ });
@@ -0,0 +1,23 @@
1
+ @ant-prefix: ant;
2
+ .dn-flex-style-setter {
3
+ .dn-input-items {
4
+ margin-top: -10px;
5
+ margin-left: -10px;
6
+ margin-right: -10px;
7
+ margin-bottom: 10px;
8
+ padding: 10px 10px 0 10px;
9
+ background-color: var(--dn-color-border-secondary, rgba(5, 5, 5, 0.06));
10
+
11
+ .@{ant-prefix}-radio-group {
12
+ display: flex;
13
+ width: 100%;
14
+
15
+ .@{ant-prefix}-radio-button-wrapper {
16
+ flex-grow: 1;
17
+ display: flex;
18
+ justify-content: center;
19
+ padding: 0;
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,7 @@
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
+ };
@@ -0,0 +1,78 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.FoldItem = void 0;
30
+ const jsx_runtime_1 = require("react/jsx-runtime");
31
+ const react_1 = __importStar(require("react"));
32
+ const formily_antd_v6_1 = require("@thienvu18/formily-antd-v6");
33
+ const react_2 = require("@formily/react");
34
+ const reactive_1 = require("@formily/reactive");
35
+ const designable_react_1 = require("@thienvu18/designable-react");
36
+ const classnames_1 = __importDefault(require("classnames"));
37
+ require("./styles.less");
38
+ const ExpandedMap = new Map();
39
+ exports.FoldItem = (0, react_2.observer)(({ className, style, children, ...props }) => {
40
+ const prefix = (0, designable_react_1.usePrefix)('fold-item');
41
+ const field = (0, react_2.useField)();
42
+ const expand = (0, react_1.useMemo)(() => reactive_1.observable.ref(ExpandedMap.get(field?.address?.toString() || '')), [field?.address]);
43
+ const slots = (0, react_1.useRef)({
44
+ base: null,
45
+ extra: null,
46
+ });
47
+ slots.current = { base: null, extra: null };
48
+ react_1.default.Children.forEach(children, (node) => {
49
+ if (react_1.default.isValidElement(node)) {
50
+ if (node?.type?.displayName === 'FoldItem.Base') {
51
+ slots.current.base = node.props?.children;
52
+ }
53
+ if (node?.type?.displayName === 'FoldItem.Extra') {
54
+ slots.current.extra = node.props?.children;
55
+ }
56
+ }
57
+ });
58
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)(prefix, className), style: style, children: [(0, jsx_runtime_1.jsx)("div", { className: prefix + '-base', onClick: () => {
59
+ expand.value = !expand.value;
60
+ if (field?.address) {
61
+ ExpandedMap.set(field.address.toString(), expand.value);
62
+ }
63
+ }, children: (0, jsx_runtime_1.jsx)(formily_antd_v6_1.FormItem.BaseItem, { ...props, label: (0, jsx_runtime_1.jsxs)("span", { className: (0, classnames_1.default)(prefix + '-title', {
64
+ expand: expand.value,
65
+ }), children: [slots.current.extra && (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "Expand", size: 10 }), props.label] }), children: (0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, onClick: (e) => {
66
+ e.stopPropagation();
67
+ }, children: slots.current.base }) }) }), expand.value && slots.current.extra && ((0, jsx_runtime_1.jsx)("div", { className: prefix + '-extra', children: slots.current.extra }))] }));
68
+ });
69
+ const Base = () => {
70
+ return (0, jsx_runtime_1.jsx)(react_1.Fragment, {});
71
+ };
72
+ Base.displayName = 'FoldItem.Base';
73
+ const Extra = () => {
74
+ return (0, jsx_runtime_1.jsx)(react_1.Fragment, {});
75
+ };
76
+ Extra.displayName = 'FoldItem.Extra';
77
+ exports.FoldItem.Base = Base;
78
+ exports.FoldItem.Extra = Extra;
@@ -0,0 +1,42 @@
1
+ @ant-prefix: ant;
2
+ .dn-fold-item {
3
+ .@{ant-prefix}-formily-item-label-content {
4
+ overflow: visible;
5
+ }
6
+
7
+ &-base {
8
+ cursor: pointer;
9
+ }
10
+
11
+ &-title {
12
+ display: flex;
13
+ align-items: center;
14
+ margin-left: -10px;
15
+ cursor: pointer;
16
+ .dn-icon {
17
+ transform: translateX(-3px);
18
+
19
+ svg {
20
+ transition: all 0.15s ease-in-out;
21
+ transform: rotate(-90deg);
22
+ }
23
+ }
24
+
25
+ &.expand {
26
+ .dn-icon {
27
+ svg {
28
+ transform: rotate(0deg);
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ &-extra {
35
+ margin-top: -10px;
36
+ margin-left: -10px;
37
+ margin-right: -10px;
38
+ margin-bottom: 10px;
39
+ padding: 10px 10px 0 10px;
40
+ background-color: var(--dn-composite-panel-highlight-bg-color);
41
+ }
42
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface IFontStyleSetterProps {
3
+ className?: string;
4
+ style?: React.CSSProperties;
5
+ }
6
+ export declare const FontStyleSetter: React.FC<IFontStyleSetterProps>;
@@ -0,0 +1,94 @@
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.FontStyleSetter = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const designable_react_1 = require("@thienvu18/designable-react");
9
+ const react_1 = require("@formily/react");
10
+ const formily_antd_v6_1 = require("@thienvu18/formily-antd-v6");
11
+ const FoldItem_1 = require("../FoldItem");
12
+ const InputItems_1 = require("../InputItems");
13
+ const SizeInput_1 = require("../SizeInput");
14
+ const ColorInput_1 = require("../ColorInput");
15
+ const classnames_1 = __importDefault(require("classnames"));
16
+ const createFontFamilyOptions = (fonts) => {
17
+ return fonts.map((font) => {
18
+ const splited = font.split('=');
19
+ const label = splited?.[0];
20
+ const value = splited?.[1];
21
+ return {
22
+ label: (0, jsx_runtime_1.jsx)("span", { style: { fontFamily: value }, children: label }),
23
+ value,
24
+ };
25
+ });
26
+ };
27
+ const FontFamilyOptions = createFontFamilyOptions([
28
+ '宋体=SimSun',
29
+ '微软雅黑=Microsoft Yahei',
30
+ '苹方=PingFang SC',
31
+ 'Andale Mono=andale mono,monospace',
32
+ 'Arial=arial,helvetica,sans-serif',
33
+ 'Arial Black=arial black,sans-serif',
34
+ 'Book Antiqua=book antiqua,palatino,serif',
35
+ 'Comic Sans MS=comic sans ms,sans-serif',
36
+ 'Courier New=courier new,courier,monospace',
37
+ 'Georgia=georgia,palatino,serif',
38
+ 'Helvetica Neue=Helvetica Neue',
39
+ 'Helvetica=helvetica,arial,sans-serif',
40
+ 'Impact=impact,sans-serif',
41
+ 'Symbol=symbol',
42
+ 'Tahoma=tahoma,arial,helvetica,sans-serif',
43
+ 'Terminal=terminal,monaco,monospace',
44
+ 'Times New Roman=times new roman,times,serif',
45
+ 'Trebuchet MS=trebuchet ms,geneva,sans-serif',
46
+ 'Verdana=verdana,geneva,sans-serif',
47
+ ]);
48
+ exports.FontStyleSetter = (0, react_1.observer)((props) => {
49
+ const field = (0, react_1.useField)();
50
+ const prefix = (0, designable_react_1.usePrefix)('font-style-setter');
51
+ return ((0, jsx_runtime_1.jsxs)(FoldItem_1.FoldItem, { label: field.title, className: (0, classnames_1.default)(prefix, props.className), style: props.style, children: [(0, jsx_runtime_1.jsx)(FoldItem_1.FoldItem.Base, { children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "fontFamily", basePath: field.address.parent(), component: [
52
+ formily_antd_v6_1.Select,
53
+ { style: { width: '100%' }, placeholder: 'Helvetica Neue' },
54
+ ], dataSource: FontFamilyOptions }) }), (0, jsx_runtime_1.jsx)(FoldItem_1.FoldItem.Extra, { children: (0, jsx_runtime_1.jsxs)(InputItems_1.InputItems, { children: [(0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "FontWeight", width: "50%", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "fontWeight", basePath: field.address.parent(), component: [formily_antd_v6_1.NumberPicker, { placeholder: '400' }] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "FontStyle", width: "50%", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "fontStyle", basePath: field.address.parent(), dataSource: [
55
+ {
56
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "NormalFontStyle" }),
57
+ value: 'normal',
58
+ },
59
+ {
60
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "ItalicFontStyle" }),
61
+ value: 'italic',
62
+ },
63
+ ], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "FontColor", width: "100%", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "color", basePath: field.address.parent(), component: [ColorInput_1.ColorInput] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "FontSize", width: "50%", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "fontSize", basePath: field.address.parent(), component: [SizeInput_1.SizeInput, { exclude: ['auto'] }] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "LineHeight", width: "50%", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "lineHeight", basePath: field.address.parent(), component: [SizeInput_1.SizeInput, { exclude: ['auto'] }] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "TextAlign", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "textAlign", basePath: field.address.parent(), dataSource: [
64
+ {
65
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextAlignLeft" }),
66
+ value: 'left',
67
+ },
68
+ {
69
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextAlignCenter" }),
70
+ value: 'center',
71
+ },
72
+ {
73
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextAlignRight" }),
74
+ value: 'right',
75
+ },
76
+ {
77
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextAlignJustify" }),
78
+ value: 'justify',
79
+ },
80
+ ], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }) }), (0, jsx_runtime_1.jsx)(InputItems_1.InputItems.Item, { icon: "TextDecoration", children: (0, jsx_runtime_1.jsx)(react_1.Field, { name: "textDecoration", basePath: field.address.parent(), dataSource: [
81
+ {
82
+ label: '--',
83
+ value: 'none',
84
+ },
85
+ {
86
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextUnderline" }),
87
+ value: 'underline',
88
+ },
89
+ {
90
+ label: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "TextLineThrough" }),
91
+ value: 'line-through',
92
+ },
93
+ ], component: [formily_antd_v6_1.Radio.Group, { optionType: 'button' }] }) })] }) })] }));
94
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { InputProps } from 'antd';
3
+ import './styles.less';
4
+ export interface ImageInputProps extends Omit<InputProps, 'onChange'> {
5
+ value?: string;
6
+ onChange?: (value: string) => void;
7
+ }
8
+ export declare const ImageInput: React.FC<ImageInputProps>;
9
+ export declare const BackgroundImageInput: React.FC<ImageInputProps>;
@@ -0,0 +1,49 @@
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.BackgroundImageInput = exports.ImageInput = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const antd_1 = require("antd");
10
+ const designable_react_1 = require("@thienvu18/designable-react");
11
+ const context_1 = require("../../shared/context");
12
+ const classnames_1 = __importDefault(require("classnames"));
13
+ require("./styles.less");
14
+ const ImageInput = ({ className, style, ...props }) => {
15
+ const prefix = (0, designable_react_1.usePrefix)('image-input');
16
+ const context = (0, react_1.useContext)(context_1.SettingsFormContext);
17
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(prefix, className), style: style, children: (0, jsx_runtime_1.jsx)(antd_1.Input, { ...props, onChange: (e) => {
18
+ props.onChange?.(e?.target?.['value']);
19
+ }, prefix: (0, jsx_runtime_1.jsx)(antd_1.Upload, { action: context.uploadAction, itemRender: () => null, maxCount: 1, onChange: (params) => {
20
+ const response = params.file?.response;
21
+ const url = response?.url ||
22
+ response?.downloadURL ||
23
+ response?.imageURL ||
24
+ response?.thumbUrl;
25
+ if (!url)
26
+ return;
27
+ props.onChange?.(url);
28
+ }, children: (0, jsx_runtime_1.jsx)(designable_react_1.IconWidget, { infer: "CloudUpload", style: { cursor: 'pointer' } }) }) }) }));
29
+ };
30
+ exports.ImageInput = ImageInput;
31
+ const BackgroundImageInput = (props) => {
32
+ const addBgValue = (value) => {
33
+ if (/url\([^)]+\)/.test(value)) {
34
+ return value;
35
+ }
36
+ return `url(${value})`;
37
+ };
38
+ const removeBgValue = (value) => {
39
+ const matched = String(value).match(/url\(\s*([^)]+)\s*\)/);
40
+ if (matched?.[1]) {
41
+ return matched?.[1];
42
+ }
43
+ return value;
44
+ };
45
+ return ((0, jsx_runtime_1.jsx)(exports.ImageInput, { value: removeBgValue(props.value), onChange: (url) => {
46
+ props.onChange?.(addBgValue(url));
47
+ } }));
48
+ };
49
+ exports.BackgroundImageInput = BackgroundImageInput;
@@ -0,0 +1,3 @@
1
+ .dn-image-input {
2
+ width: 100%;
3
+ }