@duxweb/dvha-pro 1.0.24 → 1.0.26

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 (244) hide show
  1. package/dist/cjs/component.cjs +1 -1
  2. package/dist/cjs/components/chart/echart.cjs +1 -1
  3. package/dist/cjs/components/crop/imageCrop.cjs +1 -1
  4. package/dist/cjs/components/data/dynamicSelect.cjs +1 -1
  5. package/dist/cjs/components/data/selectModal.cjs +1 -1
  6. package/dist/cjs/components/designEditor/components/grid.cjs +1 -0
  7. package/dist/cjs/components/designEditor/editor/hook.cjs +1 -0
  8. package/dist/cjs/components/designEditor/editor/preview.cjs +1 -0
  9. package/dist/cjs/components/designEditor/editor/setting.cjs +1 -0
  10. package/dist/cjs/components/designEditor/editor.cjs +1 -0
  11. package/dist/cjs/components/form/drawerForm.cjs +1 -1
  12. package/dist/cjs/components/form/formItem.cjs +1 -1
  13. package/dist/cjs/components/form/formLayout.cjs +1 -1
  14. package/dist/cjs/components/form/modalForm.cjs +1 -1
  15. package/dist/cjs/components/form/pageForm.cjs +1 -1
  16. package/dist/cjs/components/form/settingForm.cjs +1 -1
  17. package/dist/cjs/components/formEditor/base/base.cjs +1 -0
  18. package/dist/cjs/components/formEditor/base/json.cjs +1 -0
  19. package/dist/cjs/components/formEditor/base/options.cjs +1 -0
  20. package/dist/cjs/components/formEditor/base/setting.cjs +1 -0
  21. package/dist/cjs/components/formEditor/components/cascader.cjs +1 -0
  22. package/dist/cjs/components/formEditor/components/cascaderAsync.cjs +1 -0
  23. package/dist/cjs/components/formEditor/components/checkbox.cjs +1 -0
  24. package/dist/cjs/components/formEditor/components/color.cjs +1 -0
  25. package/dist/cjs/components/formEditor/components/date.cjs +1 -0
  26. package/dist/cjs/components/formEditor/components/dynamicInput.cjs +1 -0
  27. package/dist/cjs/components/formEditor/components/dynamicTags.cjs +1 -0
  28. package/dist/cjs/components/formEditor/components/editor.cjs +1 -0
  29. package/dist/cjs/components/formEditor/components/input.cjs +1 -0
  30. package/dist/cjs/components/formEditor/components/inputNumber.cjs +1 -0
  31. package/dist/cjs/components/formEditor/components/mentionAsync.cjs +1 -0
  32. package/dist/cjs/components/formEditor/components/radio.cjs +1 -0
  33. package/dist/cjs/components/formEditor/components/region.cjs +1 -0
  34. package/dist/cjs/components/formEditor/components/select.cjs +1 -0
  35. package/dist/cjs/components/formEditor/components/selectAsync.cjs +1 -0
  36. package/dist/cjs/components/formEditor/components/sider.cjs +1 -0
  37. package/dist/cjs/components/formEditor/components/switch.cjs +1 -0
  38. package/dist/cjs/components/formEditor/components/time.cjs +1 -0
  39. package/dist/cjs/components/formEditor/components/transferAsync.cjs +1 -0
  40. package/dist/cjs/components/formEditor/components/treeSelect.cjs +1 -0
  41. package/dist/cjs/components/formEditor/components/treeSelectAsync.cjs +1 -0
  42. package/dist/cjs/components/formEditor/editor.cjs +1 -0
  43. package/dist/cjs/components/formEditor/json.cjs +1 -0
  44. package/dist/cjs/components/formEditor/preview.cjs +1 -0
  45. package/dist/cjs/components/formEditor/renderer.cjs +1 -0
  46. package/dist/cjs/components/icon/icon.cjs +1 -1
  47. package/dist/cjs/components/layout/grid.cjs +1 -0
  48. package/dist/cjs/components/layout/list.cjs +1 -1
  49. package/dist/cjs/components/layout/table.cjs +1 -1
  50. package/dist/cjs/components/level/level.cjs +1 -1
  51. package/dist/cjs/components/posterEditor/components/CanvasRuler.cjs +1 -0
  52. package/dist/cjs/components/posterEditor/elements/circle.cjs +1 -0
  53. package/dist/cjs/components/posterEditor/elements/image.cjs +1 -0
  54. package/dist/cjs/components/posterEditor/elements/index.cjs +1 -0
  55. package/dist/cjs/components/posterEditor/elements/rect.cjs +1 -0
  56. package/dist/cjs/components/posterEditor/elements/text.cjs +1 -0
  57. package/dist/cjs/components/posterEditor/hooks/usePosterEditor.cjs +1 -0
  58. package/dist/cjs/components/posterEditor/pages/LeftToolbar.cjs +1 -0
  59. package/dist/cjs/components/posterEditor/pages/Panel.cjs +1 -0
  60. package/dist/cjs/components/posterEditor/pages/PanelItem.cjs +1 -0
  61. package/dist/cjs/components/posterEditor/pages/RightPanel.cjs +1 -0
  62. package/dist/cjs/components/posterEditor/posterEditor.cjs +1 -0
  63. package/dist/cjs/components/table/table.cjs +1 -1
  64. package/dist/cjs/components/upload/file.cjs +1 -1
  65. package/dist/cjs/components/upload/image.cjs +1 -1
  66. package/dist/cjs/components/upload/manage/item.cjs +1 -1
  67. package/dist/cjs/components/upload/manager.cjs +1 -1
  68. package/dist/cjs/hooks/dialog.cjs +1 -1
  69. package/dist/cjs/hooks/drawer.cjs +1 -1
  70. package/dist/cjs/hooks/modal.cjs +1 -1
  71. package/dist/cjs/hooks/table/image.cjs +1 -1
  72. package/dist/cjs/hooks/table/media.cjs +1 -1
  73. package/dist/cjs/index.cjs +1 -1
  74. package/dist/cjs/langs/en-US.json.cjs +1 -1
  75. package/dist/cjs/langs/zh-CN.json.cjs +1 -1
  76. package/dist/cjs/pages/authLayout.cjs +1 -1
  77. package/dist/cjs/pages/layout/page.cjs +1 -1
  78. package/dist/cjs/pages/layout.cjs +1 -1
  79. package/dist/cjs/pages/login.cjs +1 -1
  80. package/dist/cjs/pages/menu/avatar.cjs +1 -1
  81. package/dist/cjs/pages/menu/button.cjs +1 -1
  82. package/dist/cjs/pages/menu/cmd.cjs +1 -1
  83. package/dist/cjs/pages/menu/main.cjs +1 -1
  84. package/dist/cjs/pages/menu/mobile.cjs +1 -1
  85. package/dist/cjs/pages/page404.cjs +1 -1
  86. package/dist/cjs/pages/pageStatus.cjs +1 -1
  87. package/dist/cjs/theme/uno.css.cjs +58 -2
  88. package/dist/esm/component.js +52 -48
  89. package/dist/esm/components/chart/echart.js +18 -15
  90. package/dist/esm/components/crop/imageCrop.js +19 -16
  91. package/dist/esm/components/data/dynamicSelect.js +20 -17
  92. package/dist/esm/components/data/selectModal.js +23 -20
  93. package/dist/esm/components/designEditor/components/grid.js +175 -0
  94. package/dist/esm/components/designEditor/editor/hook.js +87 -0
  95. package/dist/esm/components/designEditor/editor/preview.js +65 -0
  96. package/dist/esm/components/designEditor/editor/setting.js +98 -0
  97. package/dist/esm/components/designEditor/editor.js +161 -0
  98. package/dist/esm/components/form/drawerForm.js +25 -22
  99. package/dist/esm/components/form/formItem.js +33 -33
  100. package/dist/esm/components/form/formLayout.js +11 -11
  101. package/dist/esm/components/form/modalForm.js +30 -27
  102. package/dist/esm/components/form/pageForm.js +21 -18
  103. package/dist/esm/components/form/settingForm.js +14 -11
  104. package/dist/esm/components/formEditor/base/base.js +117 -0
  105. package/dist/esm/components/formEditor/base/json.js +39 -0
  106. package/dist/esm/components/formEditor/base/options.js +48 -0
  107. package/dist/esm/components/formEditor/base/setting.js +108 -0
  108. package/dist/esm/components/formEditor/components/cascader.js +219 -0
  109. package/dist/esm/components/formEditor/components/cascaderAsync.js +213 -0
  110. package/dist/esm/components/formEditor/components/checkbox.js +212 -0
  111. package/dist/esm/components/formEditor/components/color.js +156 -0
  112. package/dist/esm/components/formEditor/components/date.js +197 -0
  113. package/dist/esm/components/formEditor/components/dynamicInput.js +227 -0
  114. package/dist/esm/components/formEditor/components/dynamicTags.js +150 -0
  115. package/dist/esm/components/formEditor/components/editor.js +139 -0
  116. package/dist/esm/components/formEditor/components/input.js +211 -0
  117. package/dist/esm/components/formEditor/components/inputNumber.js +188 -0
  118. package/dist/esm/components/formEditor/components/mentionAsync.js +180 -0
  119. package/dist/esm/components/formEditor/components/radio.js +212 -0
  120. package/dist/esm/components/formEditor/components/region.js +167 -0
  121. package/dist/esm/components/formEditor/components/select.js +203 -0
  122. package/dist/esm/components/formEditor/components/selectAsync.js +214 -0
  123. package/dist/esm/components/formEditor/components/sider.js +168 -0
  124. package/dist/esm/components/formEditor/components/switch.js +153 -0
  125. package/dist/esm/components/formEditor/components/time.js +171 -0
  126. package/dist/esm/components/formEditor/components/transferAsync.js +193 -0
  127. package/dist/esm/components/formEditor/components/treeSelect.js +207 -0
  128. package/dist/esm/components/formEditor/components/treeSelectAsync.js +179 -0
  129. package/dist/esm/components/formEditor/editor.js +162 -0
  130. package/dist/esm/components/formEditor/json.js +24 -0
  131. package/dist/esm/components/formEditor/preview.js +38 -0
  132. package/dist/esm/components/formEditor/renderer.js +151 -0
  133. package/dist/esm/components/icon/icon.js +19 -16
  134. package/dist/esm/components/layout/grid.js +24 -0
  135. package/dist/esm/components/layout/list.js +29 -26
  136. package/dist/esm/components/layout/table.js +27 -24
  137. package/dist/esm/components/level/level.js +18 -15
  138. package/dist/esm/components/posterEditor/components/CanvasRuler.js +113 -0
  139. package/dist/esm/components/posterEditor/elements/circle.js +127 -0
  140. package/dist/esm/components/posterEditor/elements/image.js +131 -0
  141. package/dist/esm/components/posterEditor/elements/index.js +46 -0
  142. package/dist/esm/components/posterEditor/elements/rect.js +171 -0
  143. package/dist/esm/components/posterEditor/elements/text.js +206 -0
  144. package/dist/esm/components/posterEditor/hooks/usePosterEditor.js +434 -0
  145. package/dist/esm/components/posterEditor/pages/LeftToolbar.js +40 -0
  146. package/dist/esm/components/posterEditor/pages/Panel.js +31 -0
  147. package/dist/esm/components/posterEditor/pages/PanelItem.js +22 -0
  148. package/dist/esm/components/posterEditor/pages/RightPanel.js +422 -0
  149. package/dist/esm/components/posterEditor/posterEditor.js +228 -0
  150. package/dist/esm/components/table/table.js +18 -15
  151. package/dist/esm/components/upload/file.js +101 -90
  152. package/dist/esm/components/upload/image.js +109 -96
  153. package/dist/esm/components/upload/manage/item.js +18 -15
  154. package/dist/esm/components/upload/manager.js +68 -65
  155. package/dist/esm/hooks/dialog.js +19 -16
  156. package/dist/esm/hooks/drawer.js +19 -16
  157. package/dist/esm/hooks/modal.js +18 -15
  158. package/dist/esm/hooks/table/image.js +18 -15
  159. package/dist/esm/hooks/table/media.js +18 -15
  160. package/dist/esm/index.js +230 -202
  161. package/dist/esm/langs/en-US.json.js +10 -10
  162. package/dist/esm/langs/zh-CN.json.js +8 -8
  163. package/dist/esm/pages/authLayout.js +19 -16
  164. package/dist/esm/pages/layout/page.js +18 -15
  165. package/dist/esm/pages/layout.js +7 -6
  166. package/dist/esm/pages/login.js +19 -17
  167. package/dist/esm/pages/menu/avatar.js +23 -20
  168. package/dist/esm/pages/menu/button.js +18 -15
  169. package/dist/esm/pages/menu/cmd.js +29 -26
  170. package/dist/esm/pages/menu/main.js +28 -25
  171. package/dist/esm/pages/menu/mobile.js +18 -15
  172. package/dist/esm/pages/page404.js +16 -13
  173. package/dist/esm/pages/pageStatus.js +21 -18
  174. package/dist/esm/theme/uno.css.js +58 -2
  175. package/dist/types/components/designEditor/components/grid.d.ts +2 -0
  176. package/dist/types/components/designEditor/components/index.d.ts +1 -0
  177. package/dist/types/components/designEditor/editor/hook.d.ts +57 -0
  178. package/dist/types/components/designEditor/editor/index.d.ts +3 -0
  179. package/dist/types/components/designEditor/editor/preview.d.ts +15 -0
  180. package/dist/types/components/designEditor/editor/setting.d.ts +14 -0
  181. package/dist/types/components/designEditor/editor.d.ts +19 -0
  182. package/dist/types/components/designEditor/index.d.ts +3 -0
  183. package/dist/types/components/form/drawerForm.d.ts +2 -2
  184. package/dist/types/components/form/formLayout.d.ts +2 -2
  185. package/dist/types/components/form/modalForm.d.ts +2 -2
  186. package/dist/types/components/formEditor/base/base.d.ts +26 -0
  187. package/dist/types/components/formEditor/base/index.d.ts +4 -0
  188. package/dist/types/components/formEditor/base/json.d.ts +18 -0
  189. package/dist/types/components/formEditor/base/options.d.ts +23 -0
  190. package/dist/types/components/formEditor/base/setting.d.ts +13 -0
  191. package/dist/types/components/formEditor/components/cascader.d.ts +2 -0
  192. package/dist/types/components/formEditor/components/cascaderAsync.d.ts +2 -0
  193. package/dist/types/components/formEditor/components/checkbox.d.ts +2 -0
  194. package/dist/types/components/formEditor/components/color.d.ts +2 -0
  195. package/dist/types/components/formEditor/components/date.d.ts +2 -0
  196. package/dist/types/components/formEditor/components/dynamicInput.d.ts +2 -0
  197. package/dist/types/components/formEditor/components/dynamicTags.d.ts +2 -0
  198. package/dist/types/components/formEditor/components/editor.d.ts +2 -0
  199. package/dist/types/components/formEditor/components/index.d.ts +21 -0
  200. package/dist/types/components/formEditor/components/input.d.ts +2 -0
  201. package/dist/types/components/formEditor/components/inputNumber.d.ts +2 -0
  202. package/dist/types/components/formEditor/components/mentionAsync.d.ts +2 -0
  203. package/dist/types/components/formEditor/components/radio.d.ts +2 -0
  204. package/dist/types/components/formEditor/components/region.d.ts +2 -0
  205. package/dist/types/components/formEditor/components/select.d.ts +2 -0
  206. package/dist/types/components/formEditor/components/selectAsync.d.ts +2 -0
  207. package/dist/types/components/formEditor/components/sider.d.ts +2 -0
  208. package/dist/types/components/formEditor/components/switch.d.ts +2 -0
  209. package/dist/types/components/formEditor/components/time.d.ts +2 -0
  210. package/dist/types/components/formEditor/components/transferAsync.d.ts +2 -0
  211. package/dist/types/components/formEditor/components/treeSelect.d.ts +2 -0
  212. package/dist/types/components/formEditor/components/treeSelectAsync.d.ts +2 -0
  213. package/dist/types/components/formEditor/editor.d.ts +22 -0
  214. package/dist/types/components/formEditor/index.d.ts +2 -0
  215. package/dist/types/components/formEditor/json.d.ts +14 -0
  216. package/dist/types/components/formEditor/preview.d.ts +25 -0
  217. package/dist/types/components/formEditor/renderer.d.ts +58 -0
  218. package/dist/types/components/index.d.ts +4 -2
  219. package/dist/types/components/layout/filterLayout.d.ts +1 -1
  220. package/dist/types/components/layout/grid.d.ts +22 -0
  221. package/dist/types/components/layout/index.d.ts +1 -0
  222. package/dist/types/components/posterEditor/components/CanvasRuler.d.ts +43 -0
  223. package/dist/types/components/posterEditor/components/index.d.ts +1 -0
  224. package/dist/types/components/posterEditor/elements/circle.d.ts +3 -0
  225. package/dist/types/components/posterEditor/elements/image.d.ts +3 -0
  226. package/dist/types/components/posterEditor/elements/index.d.ts +15 -0
  227. package/dist/types/components/posterEditor/elements/rect.d.ts +3 -0
  228. package/dist/types/components/posterEditor/elements/text.d.ts +3 -0
  229. package/dist/types/components/posterEditor/elements/types.d.ts +51 -0
  230. package/dist/types/components/posterEditor/hooks/index.d.ts +1 -0
  231. package/dist/types/components/posterEditor/hooks/usePosterEditor.d.ts +48 -0
  232. package/dist/types/components/posterEditor/index.d.ts +4 -0
  233. package/dist/types/components/posterEditor/pages/LeftToolbar.d.ts +33 -0
  234. package/dist/types/components/posterEditor/pages/Panel.d.ts +11 -0
  235. package/dist/types/components/posterEditor/pages/PanelItem.d.ts +11 -0
  236. package/dist/types/components/posterEditor/pages/RightPanel.d.ts +208 -0
  237. package/dist/types/components/posterEditor/pages/index.d.ts +4 -0
  238. package/dist/types/components/posterEditor/posterEditor.d.ts +61 -0
  239. package/dist/types/components/posterEditor/types/editor.d.ts +47 -0
  240. package/dist/types/components/stats/number.d.ts +1 -1
  241. package/dist/types/components/upload/file.d.ts +5 -3
  242. package/dist/types/index.d.ts +1 -0
  243. package/dist/types/pages/layout/global.d.ts +0 -1
  244. package/package.json +7 -3
@@ -0,0 +1,422 @@
1
+ import { defineComponent as v, createVNode as e, Fragment as u, createTextVNode as c, isVNode as s } from "vue";
2
+ import { NButton as l, NTooltip as n, NInputNumber as o, NColorPicker as f } from "naive-ui";
3
+ import "@duxweb/dvha-core";
4
+ import "@vueuse/core";
5
+ import "mime";
6
+ import "vue-router";
7
+ import "@overlastic/vue";
8
+ import "clsx";
9
+ import "vue-echarts";
10
+ import "vue3-ace-editor";
11
+ import "ace-builds/src-noconflict/mode-vue";
12
+ import "ace-builds/src-noconflict/mode-javascript";
13
+ import "ace-builds/src-noconflict/mode-html";
14
+ import "ace-builds/src-noconflict/mode-json";
15
+ import "ace-builds/src-noconflict/mode-json5";
16
+ import "ace-builds/src-noconflict/theme-tomorrow_night";
17
+ import "ace-builds/src-noconflict/theme-tomorrow";
18
+ import "ace-builds/src-noconflict/ext-searchbox";
19
+ import "ace-builds/src-noconflict/ext-language_tools";
20
+ import "ace-builds/src-noconflict/mode-snippets";
21
+ import "vue-cropper";
22
+ import "jinrishici";
23
+ import "lodash-es";
24
+ import "vue-draggable-plus";
25
+ import "@vee-validate/i18n";
26
+ import "colorizr";
27
+ import "echarts";
28
+ import "@ant-design/colors";
29
+ import "@unocss/preset-icons/browser";
30
+ import "@unocss/preset-typography";
31
+ import "unocss/preset-wind4";
32
+ import "@vee-validate/i18n/dist/locale/en.json";
33
+ import "@vee-validate/i18n/dist/locale/zh_CN.json";
34
+ import "vee-validate";
35
+ import "vue-command-palette";
36
+ import "@duxweb/dvha-naiveui";
37
+ import "../../../pages/page404.js";
38
+ import "short-unique-id";
39
+ import "aieditor";
40
+ import "@iconify-json/tabler/icons.json";
41
+ import "../elements/index.js";
42
+ import "fabric";
43
+ import { Panel as m } from "./Panel.js";
44
+ import { PanelItem as a } from "./PanelItem.js";
45
+ import "dayjs";
46
+ import "@tanstack/vue-query";
47
+ import "pinia";
48
+ import { DuxImageUpload as b } from "../../upload/image.js";
49
+ function C(t) {
50
+ return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !s(t);
51
+ }
52
+ const ge = /* @__PURE__ */ v({
53
+ name: "RightPanel",
54
+ props: {
55
+ hasMultipleSelection: {
56
+ type: Boolean,
57
+ required: !0
58
+ },
59
+ selectedElementsCount: {
60
+ type: Number,
61
+ required: !0
62
+ },
63
+ currentElementData: {
64
+ type: Object
65
+ },
66
+ currentElementConfig: {
67
+ type: Object
68
+ },
69
+ canMoveUp: {
70
+ type: Boolean,
71
+ required: !0
72
+ },
73
+ canMoveDown: {
74
+ type: Boolean,
75
+ required: !0
76
+ },
77
+ canMoveToFront: {
78
+ type: Boolean,
79
+ required: !0
80
+ },
81
+ canMoveToBack: {
82
+ type: Boolean,
83
+ required: !0
84
+ },
85
+ canvasWidth: {
86
+ type: Number,
87
+ required: !0
88
+ },
89
+ canvasHeight: {
90
+ type: Number,
91
+ required: !0
92
+ },
93
+ canvasBackgroundColor: {
94
+ type: String,
95
+ required: !0
96
+ },
97
+ canvasBackgroundImage: {
98
+ type: String
99
+ },
100
+ onDeleteSelectedElements: {
101
+ type: Function,
102
+ required: !0
103
+ },
104
+ onAlignElements: {
105
+ type: Function,
106
+ required: !0
107
+ },
108
+ onUpdateElementProperty: {
109
+ type: Function,
110
+ required: !0
111
+ },
112
+ onUpdateCanvasSize: {
113
+ type: Function,
114
+ required: !0
115
+ },
116
+ onUpdateCanvasBackground: {
117
+ type: Function,
118
+ required: !0
119
+ },
120
+ onUpdateCanvasBackgroundImage: {
121
+ type: Function,
122
+ required: !0
123
+ },
124
+ onSaveData: {
125
+ type: Function,
126
+ required: !0
127
+ },
128
+ onExportJson: {
129
+ type: Function,
130
+ required: !0
131
+ },
132
+ onRenderToolbarControl: {
133
+ type: Function,
134
+ required: !0
135
+ },
136
+ onClearCanvas: {
137
+ type: Function,
138
+ required: !0
139
+ },
140
+ canvasScale: {
141
+ type: Number,
142
+ required: !0
143
+ }
144
+ },
145
+ setup(t) {
146
+ const g = () => {
147
+ if (t.hasMultipleSelection)
148
+ return e(m, {
149
+ title: "多选操作"
150
+ }, {
151
+ default: () => e(u, null, [e(a, {
152
+ title: "对齐"
153
+ }, {
154
+ default: () => [e("div", {
155
+ class: "grid grid-cols-4 gap-2"
156
+ }, [e(n, null, {
157
+ trigger: () => e(l, {
158
+ onClick: () => t.onAlignElements("left"),
159
+ renderIcon: () => e("div", {
160
+ class: "i-tabler:layout-align-left"
161
+ }, null)
162
+ }, null),
163
+ default: () => "左对齐"
164
+ }), e(n, null, {
165
+ trigger: () => e(l, {
166
+ onClick: () => t.onAlignElements("right"),
167
+ renderIcon: () => e("div", {
168
+ class: "i-tabler:layout-align-right"
169
+ }, null)
170
+ }, null),
171
+ default: () => "右对齐"
172
+ }), e(n, null, {
173
+ trigger: () => e(l, {
174
+ onClick: () => t.onAlignElements("top"),
175
+ renderIcon: () => e("div", {
176
+ class: "i-tabler:layout-align-top"
177
+ }, null)
178
+ }, null),
179
+ default: () => "顶部对齐"
180
+ }), e(n, null, {
181
+ trigger: () => e(l, {
182
+ onClick: () => t.onAlignElements("bottom"),
183
+ renderIcon: () => e("div", {
184
+ class: "i-tabler:layout-align-bottom"
185
+ }, null)
186
+ }, null),
187
+ default: () => "底部对齐"
188
+ })])]
189
+ }), e(a, {
190
+ title: "居中"
191
+ }, {
192
+ default: () => [e("div", {
193
+ class: "grid grid-cols-4 gap-2"
194
+ }, [e(n, null, {
195
+ trigger: () => e(l, {
196
+ onClick: () => t.onAlignElements("center-horizontal"),
197
+ renderIcon: () => e("div", {
198
+ class: "i-tabler:layout-align-center"
199
+ }, null)
200
+ }, null),
201
+ default: () => "水平居中"
202
+ }), e(n, null, {
203
+ trigger: () => e(l, {
204
+ onClick: () => t.onAlignElements("center-vertical"),
205
+ renderIcon: () => e("div", {
206
+ class: "i-tabler:layout-align-middle"
207
+ }, null)
208
+ }, null),
209
+ default: () => "垂直居中"
210
+ }), e(n, null, {
211
+ trigger: () => e(l, {
212
+ onClick: () => t.onAlignElements("distribute-horizontal"),
213
+ renderIcon: () => e("div", {
214
+ class: "i-tabler:layout-distribute-horizontal"
215
+ }, null)
216
+ }, null),
217
+ default: () => "水平分布"
218
+ }), e(n, null, {
219
+ trigger: () => e(l, {
220
+ onClick: () => t.onAlignElements("distribute-vertical"),
221
+ renderIcon: () => e("div", {
222
+ class: "i-tabler:layout-distribute-vertical"
223
+ }, null)
224
+ }, null),
225
+ default: () => "垂直分布"
226
+ })])]
227
+ })]),
228
+ footer: () => e(u, null, [e(l, {
229
+ block: !0,
230
+ onClick: t.onDeleteSelectedElements,
231
+ type: "error"
232
+ }, {
233
+ icon: () => e("div", {
234
+ class: "i-tabler:trash"
235
+ }, null),
236
+ default: () => "删除"
237
+ })])
238
+ });
239
+ if (t.currentElementData && t.currentElementConfig) {
240
+ const r = t.currentElementConfig.getToolbarControls(t.currentElementData);
241
+ return e(m, {
242
+ title: "元素设置"
243
+ }, {
244
+ default: () => e(u, null, [r.map((i) => {
245
+ let d;
246
+ return e(a, {
247
+ key: i.key,
248
+ title: i.label
249
+ }, C(d = t.onRenderToolbarControl(i)) ? d : {
250
+ default: () => [d]
251
+ });
252
+ }), e(a, {
253
+ title: "X"
254
+ }, {
255
+ default: () => [e(o, {
256
+ value: t.currentElementData?.left,
257
+ "onUpdate:value": (i) => t.onUpdateElementProperty(t.currentElementData.id, "left", i || 0)
258
+ }, null)]
259
+ }), e(a, {
260
+ title: "Y"
261
+ }, {
262
+ default: () => [e(o, {
263
+ value: t.currentElementData?.top,
264
+ "onUpdate:value": (i) => t.onUpdateElementProperty(t.currentElementData.id, "top", i || 0)
265
+ }, null)]
266
+ }), e(a, {
267
+ title: "角度"
268
+ }, {
269
+ default: () => [e(o, {
270
+ value: t.currentElementData?.angle,
271
+ min: -180,
272
+ max: 180,
273
+ "onUpdate:value": (i) => t.onUpdateElementProperty(t.currentElementData.id, "angle", i || 0)
274
+ }, null)]
275
+ }), e(a, {
276
+ title: "对齐"
277
+ }, {
278
+ default: () => [e("div", {
279
+ class: "grid grid-cols-3 gap-2"
280
+ }, [e(n, null, {
281
+ trigger: () => e(l, {
282
+ onClick: () => t.onAlignElements("center-horizontal"),
283
+ renderIcon: () => e("div", {
284
+ class: "i-tabler:layout-align-center"
285
+ }, null)
286
+ }, null),
287
+ default: () => "水平居中"
288
+ }), e(n, null, {
289
+ trigger: () => e(l, {
290
+ onClick: () => t.onAlignElements("center-vertical"),
291
+ renderIcon: () => e("div", {
292
+ class: "i-tabler:layout-align-middle"
293
+ }, null)
294
+ }, null),
295
+ default: () => "垂直居中"
296
+ }), e(n, null, {
297
+ trigger: () => e(l, {
298
+ onClick: () => t.onAlignElements("center-both"),
299
+ renderIcon: () => e("div", {
300
+ class: "i-tabler:layout-distribute-horizontal"
301
+ }, null)
302
+ }, null),
303
+ default: () => "居中"
304
+ })])]
305
+ }), e(a, {
306
+ title: "层级"
307
+ }, {
308
+ default: () => [e("div", {
309
+ class: "grid grid-cols-4 gap-2"
310
+ }, [e(n, null, {
311
+ trigger: () => e(l, {
312
+ disabled: !t.canMoveUp,
313
+ onClick: () => t.onAlignElements("move-up"),
314
+ renderIcon: () => e("div", {
315
+ class: "i-tabler:arrow-narrow-up"
316
+ }, null)
317
+ }, null),
318
+ default: () => "上移一层"
319
+ }), e(n, null, {
320
+ trigger: () => e(l, {
321
+ disabled: !t.canMoveDown,
322
+ onClick: () => t.onAlignElements("move-down"),
323
+ renderIcon: () => e("div", {
324
+ class: "i-tabler:arrow-narrow-down"
325
+ }, null)
326
+ }, null),
327
+ default: () => "下移一层"
328
+ }), e(n, null, {
329
+ trigger: () => e(l, {
330
+ disabled: !t.canMoveToFront,
331
+ onClick: () => t.onAlignElements("move-to-front"),
332
+ renderIcon: () => e("div", {
333
+ class: "i-tabler:arrow-bar-to-up"
334
+ }, null)
335
+ }, null),
336
+ default: () => "移到最前"
337
+ }), e(n, null, {
338
+ trigger: () => e(l, {
339
+ disabled: !t.canMoveToBack,
340
+ onClick: () => t.onAlignElements("move-to-back"),
341
+ renderIcon: () => e("div", {
342
+ class: "i-tabler:arrow-bar-to-down"
343
+ }, null)
344
+ }, null),
345
+ default: () => "移到最后"
346
+ })])]
347
+ })]),
348
+ footer: () => e(u, null, [e(l, {
349
+ block: !0,
350
+ onClick: t.onDeleteSelectedElements,
351
+ type: "error"
352
+ }, {
353
+ icon: () => e("div", {
354
+ class: "i-tabler:trash"
355
+ }, null),
356
+ default: () => "删除"
357
+ })])
358
+ });
359
+ } else
360
+ return e(m, {
361
+ title: "画布设置"
362
+ }, {
363
+ default: () => e(u, null, [e(a, {
364
+ title: "宽度"
365
+ }, {
366
+ default: () => [e(o, {
367
+ value: t.canvasWidth,
368
+ min: 100,
369
+ max: 2e3,
370
+ "onUpdate:value": (r) => t.onUpdateCanvasSize(r || 800, t.canvasHeight)
371
+ }, null)]
372
+ }), e(a, {
373
+ title: "高度"
374
+ }, {
375
+ default: () => [e(o, {
376
+ value: t.canvasHeight,
377
+ min: 100,
378
+ max: 2e3,
379
+ "onUpdate:value": (r) => t.onUpdateCanvasSize(t.canvasWidth, r || 600)
380
+ }, null)]
381
+ }), e(a, {
382
+ title: "背景颜色"
383
+ }, {
384
+ default: () => [e(f, {
385
+ value: t.canvasBackgroundColor,
386
+ "onUpdate:value": (r) => t.onUpdateCanvasBackground(r)
387
+ }, null)]
388
+ }), e(a, {
389
+ title: "背景图片"
390
+ }, {
391
+ default: () => [e(b, {
392
+ value: t.canvasBackgroundImage || "",
393
+ onUpdateValue: (r) => t.onUpdateCanvasBackgroundImage(typeof r == "string" ? r : Array.isArray(r) && r[0] || "")
394
+ }, null)]
395
+ })]),
396
+ footer: () => e(u, null, [e(l, {
397
+ type: "primary",
398
+ block: !0,
399
+ onClick: t.onSaveData
400
+ }, {
401
+ default: () => [c("保存")]
402
+ }), e(l, {
403
+ block: !0,
404
+ onClick: t.onExportJson
405
+ }, {
406
+ default: () => [c("导出 JSON")]
407
+ }), e(l, {
408
+ block: !0,
409
+ onClick: t.onClearCanvas
410
+ }, {
411
+ default: () => [c("清空画布")]
412
+ })])
413
+ });
414
+ };
415
+ return () => e("div", {
416
+ class: "w-60 bg-default border-l border-default"
417
+ }, [g()]);
418
+ }
419
+ });
420
+ export {
421
+ ge as RightPanel
422
+ };
@@ -0,0 +1,228 @@
1
+ import { defineComponent as T, ref as m, watch as F, onMounted as H, onUnmounted as R, createVNode as a } from "vue";
2
+ import { NSlider as V, NSwitch as W, NSelect as z, NColorPicker as A, NInputNumber as J, NInput as j } from "naive-ui";
3
+ import { DuxCard as L } from "../card/card.js";
4
+ import "clsx";
5
+ import "@duxweb/dvha-core";
6
+ import "@vueuse/core";
7
+ import "mime";
8
+ import "vue-router";
9
+ import "@overlastic/vue";
10
+ import "vue-echarts";
11
+ import "vue3-ace-editor";
12
+ import "ace-builds/src-noconflict/mode-vue";
13
+ import "ace-builds/src-noconflict/mode-javascript";
14
+ import "ace-builds/src-noconflict/mode-html";
15
+ import "ace-builds/src-noconflict/mode-json";
16
+ import "ace-builds/src-noconflict/mode-json5";
17
+ import "ace-builds/src-noconflict/theme-tomorrow_night";
18
+ import "ace-builds/src-noconflict/theme-tomorrow";
19
+ import "ace-builds/src-noconflict/ext-searchbox";
20
+ import "ace-builds/src-noconflict/ext-language_tools";
21
+ import "ace-builds/src-noconflict/mode-snippets";
22
+ import "vue-cropper";
23
+ import "jinrishici";
24
+ import "lodash-es";
25
+ import "vue-draggable-plus";
26
+ import "@vee-validate/i18n";
27
+ import "colorizr";
28
+ import "echarts";
29
+ import "@ant-design/colors";
30
+ import "@unocss/preset-icons/browser";
31
+ import "@unocss/preset-typography";
32
+ import "unocss/preset-wind4";
33
+ import "@vee-validate/i18n/dist/locale/en.json";
34
+ import "@vee-validate/i18n/dist/locale/zh_CN.json";
35
+ import "vee-validate";
36
+ import "vue-command-palette";
37
+ import "@duxweb/dvha-naiveui";
38
+ import "../../pages/page404.js";
39
+ import "short-unique-id";
40
+ import "aieditor";
41
+ import "@iconify-json/tabler/icons.json";
42
+ import "./elements/index.js";
43
+ import { usePosterEditor as q } from "./hooks/usePosterEditor.js";
44
+ import { CanvasRuler as G } from "./components/CanvasRuler.js";
45
+ import { LeftToolbar as K } from "./pages/LeftToolbar.js";
46
+ import { RightPanel as O } from "./pages/RightPanel.js";
47
+ import "dayjs";
48
+ import "@tanstack/vue-query";
49
+ import "pinia";
50
+ import { DuxImageUpload as Q } from "../upload/image.js";
51
+ const Ge = /* @__PURE__ */ T({
52
+ name: "DuxPosterEditor",
53
+ props: {
54
+ data: {
55
+ type: String,
56
+ default: ""
57
+ },
58
+ width: {
59
+ type: Number,
60
+ default: 750
61
+ },
62
+ height: {
63
+ type: Number,
64
+ default: 1e3
65
+ },
66
+ backgroundColor: {
67
+ type: String,
68
+ default: "#ffffff"
69
+ },
70
+ backgroundImage: {
71
+ type: String,
72
+ default: ""
73
+ },
74
+ onDataUpdate: Function,
75
+ onSave: Function
76
+ },
77
+ setup(n) {
78
+ const r = m(), l = m(), {
79
+ initCanvas: s,
80
+ destroy: v,
81
+ setCallbacks: c,
82
+ addElement: g,
83
+ deleteSelectedElements: f,
84
+ updateElementProperty: u,
85
+ alignElements: h,
86
+ canMoveUp: C,
87
+ canMoveDown: b,
88
+ canMoveToFront: k,
89
+ canMoveToBack: x,
90
+ clearCanvas: E,
91
+ loadData: p,
92
+ canvasData: o,
93
+ selectedElements: S,
94
+ canvasScale: d,
95
+ currentElementData: i,
96
+ currentElementConfig: U,
97
+ hasMultipleSelection: w,
98
+ updateCanvasSettings: y,
99
+ updateCanvasBackground: D,
100
+ updateCanvasBackgroundImage: M,
101
+ saveData: I,
102
+ exportJson: N
103
+ } = q({
104
+ width: n.width,
105
+ height: n.height,
106
+ backgroundColor: n.backgroundColor,
107
+ backgroundImage: n.backgroundImage
108
+ });
109
+ c({
110
+ onDataChange: n?.onDataUpdate
111
+ });
112
+ const B = (e) => {
113
+ const t = (P) => {
114
+ i.value && u(i.value.id, e.key, P);
115
+ };
116
+ switch (e.type) {
117
+ case "text":
118
+ return a(j, {
119
+ value: e.value,
120
+ placeholder: e.options?.placeholder,
121
+ "onUpdate:value": t
122
+ }, null);
123
+ case "number":
124
+ return a(J, {
125
+ value: e.value,
126
+ min: e.options?.min,
127
+ max: e.options?.max,
128
+ step: e.options?.step,
129
+ "onUpdate:value": t
130
+ }, null);
131
+ case "color":
132
+ return a(A, {
133
+ value: e.value,
134
+ "onUpdate:value": t
135
+ }, null);
136
+ case "select":
137
+ return a(z, {
138
+ value: e.value,
139
+ options: e.options?.choices || [],
140
+ "onUpdate:value": t
141
+ }, null);
142
+ case "switch":
143
+ return a(W, {
144
+ value: e.value,
145
+ "onUpdate:value": t
146
+ }, null);
147
+ case "slider":
148
+ return a(V, {
149
+ value: e.value,
150
+ min: e.options?.min,
151
+ max: e.options?.max,
152
+ step: e.options?.step,
153
+ "onUpdate:value": t
154
+ }, null);
155
+ case "image":
156
+ return a(Q, {
157
+ value: e.value,
158
+ onUpdateValue: t
159
+ }, null);
160
+ default:
161
+ return null;
162
+ }
163
+ };
164
+ return F(() => n.data, (e) => {
165
+ e && p(e);
166
+ }, {
167
+ immediate: !1
168
+ }), H(() => {
169
+ r.value && l.value && (s(r.value, l.value), p(n.data));
170
+ }), R(() => {
171
+ v();
172
+ }), () => a(L, {
173
+ class: "h-full",
174
+ shadow: !0
175
+ }, {
176
+ default: () => [a("div", {
177
+ class: "h-full flex"
178
+ }, [a(K, {
179
+ onAddElement: g,
180
+ canvasWidth: o.value.width,
181
+ canvasHeight: o.value.height
182
+ }, null), a("div", {
183
+ ref: l,
184
+ class: "flex-1 p-6 pl-12 pt-12 flex items-center justify-center overflow-hidden relative",
185
+ style: "background: linear-gradient(45deg, rgba(0,0,0, 0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(0,0,0, 0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0,0,0, 0.1) 75%), linear-gradient(-45deg, transparent 75%, rgba(0,0,0, 0.1) 75%); background-size: 20px 20px; background-position: 0 0, 0 10px, 10px -10px, -10px 0px;"
186
+ }, [a(G, {
187
+ canvasScale: d.value,
188
+ canvasWidth: o.value.width,
189
+ canvasHeight: o.value.height
190
+ }, null), a("div", {
191
+ class: "bg-default shadow-lg",
192
+ style: "position: relative;"
193
+ }, [a("canvas", {
194
+ ref: r,
195
+ style: "display: block;"
196
+ }, null)])]), a(O, {
197
+ onClearCanvas: E,
198
+ hasMultipleSelection: w.value,
199
+ selectedElementsCount: S.value.length,
200
+ currentElementData: i.value || void 0,
201
+ currentElementConfig: U.value || void 0,
202
+ canMoveUp: C.value,
203
+ canMoveDown: b.value,
204
+ canMoveToFront: k.value,
205
+ canMoveToBack: x.value,
206
+ canvasWidth: o.value.width,
207
+ canvasHeight: o.value.height,
208
+ canvasBackgroundColor: o.value.backgroundColor,
209
+ canvasBackgroundImage: o.value.backgroundImage,
210
+ onDeleteSelectedElements: f,
211
+ onAlignElements: (e) => h(e),
212
+ onUpdateElementProperty: u,
213
+ onUpdateCanvasSize: (e, t) => y(e, t),
214
+ onUpdateCanvasBackground: D,
215
+ onUpdateCanvasBackgroundImage: M,
216
+ onSaveData: async () => {
217
+ await I(), await n?.onSave?.();
218
+ },
219
+ onExportJson: N,
220
+ onRenderToolbarControl: B,
221
+ canvasScale: d.value
222
+ }, null)])]
223
+ });
224
+ }
225
+ });
226
+ export {
227
+ Ge as DuxPosterEditor
228
+ };