@maketribe/ms-app 3.2.25 → 3.2.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 (189) hide show
  1. package/dist/cjs/assets/iconfonts/iconfont.js +1 -1
  2. package/dist/cjs/assets/iconfonts/iconfont.js.map +1 -1
  3. package/dist/cjs/components/basic/doc-editor/core/{element-module.js → element-block.js} +31 -12
  4. package/dist/cjs/components/basic/doc-editor/core/element-block.js.map +1 -0
  5. package/dist/cjs/components/basic/doc-editor/core/index.js +5 -6
  6. package/dist/cjs/components/basic/doc-editor/core/index.js.map +1 -1
  7. package/dist/cjs/components/basic/doc-editor/core/utils.js.map +1 -1
  8. package/dist/cjs/components/basic/doc-editor/editor.vue.js +4 -4
  9. package/dist/cjs/components/basic/doc-editor/editor.vue.js.map +1 -1
  10. package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
  11. package/dist/cjs/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
  12. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
  13. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
  14. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
  15. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
  16. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +89 -0
  17. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
  18. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +115 -0
  19. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
  20. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +83 -0
  21. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
  22. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +143 -0
  23. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
  24. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js +33 -0
  25. package/dist/cjs/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
  26. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +18 -21
  27. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  28. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +16 -11
  29. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  30. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js +6 -6
  31. package/dist/cjs/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  32. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
  33. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  34. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +46 -108
  35. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  36. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
  37. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  38. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
  39. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  40. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
  41. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  42. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +41 -5
  43. package/dist/cjs/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  44. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js +10 -4
  45. package/dist/cjs/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  46. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  47. package/dist/cjs/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  48. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
  49. package/dist/cjs/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  50. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
  51. package/dist/cjs/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  52. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
  53. package/dist/cjs/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  54. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  55. package/dist/cjs/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  56. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js +8 -5
  57. package/dist/cjs/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  58. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +35 -6
  59. package/dist/cjs/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  60. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js +7 -1
  61. package/dist/cjs/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  62. package/dist/esm/assets/iconfonts/iconfont.js +1 -1
  63. package/dist/esm/assets/iconfonts/iconfont.js.map +1 -1
  64. package/dist/esm/components/basic/doc-editor/core/{element-module.js → element-block.js} +32 -13
  65. package/dist/esm/components/basic/doc-editor/core/element-block.js.map +1 -0
  66. package/dist/esm/components/basic/doc-editor/core/index.js +6 -7
  67. package/dist/esm/components/basic/doc-editor/core/index.js.map +1 -1
  68. package/dist/esm/components/basic/doc-editor/core/utils.js.map +1 -1
  69. package/dist/esm/components/basic/doc-editor/editor.vue.js +4 -4
  70. package/dist/esm/components/basic/doc-editor/editor.vue.js.map +1 -1
  71. package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.js +8 -8
  72. package/dist/esm/components/basic/doc-editor/plugins/ElementBlockSelectionPlugin/index.vue.js.map +1 -0
  73. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js +164 -0
  74. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/GridNode.js.map +1 -0
  75. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js +89 -0
  76. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.js.map +1 -0
  77. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js +89 -0
  78. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.js.map +1 -0
  79. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js +115 -0
  80. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.js.map +1 -0
  81. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js +83 -0
  82. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.js.map +1 -0
  83. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js +144 -0
  84. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/index.vue.js.map +1 -0
  85. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js +33 -0
  86. package/dist/esm/components/basic/doc-editor/plugins/GridPlugin/utils.js.map +1 -0
  87. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js +18 -21
  88. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.js.map +1 -1
  89. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js +17 -12
  90. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/index.vue.js.map +1 -1
  91. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js +6 -6
  92. package/dist/esm/components/basic/doc-editor/plugins/ImagePlugin/utils.js.map +1 -1
  93. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js +25 -13
  94. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.js.map +1 -1
  95. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js +50 -112
  96. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/index.vue.js.map +1 -1
  97. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js +0 -12
  98. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/utils.js.map +1 -1
  99. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js +26 -0
  100. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/FontStyleTool.vue.js.map +1 -1
  101. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js +0 -1
  102. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/PreviewToolbar.vue.js.map +1 -1
  103. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js +43 -7
  104. package/dist/esm/components/basic/doc-editor/plugins/ToolbarPlugin/index.vue.js.map +1 -1
  105. package/dist/esm/components/basic/doc-editor/plugins/nodes.js +10 -4
  106. package/dist/esm/components/basic/doc-editor/plugins/nodes.js.map +1 -1
  107. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js +1 -1
  108. package/dist/esm/components/basic/doc-editor/themes/doc-editor-edit.css.js.map +1 -1
  109. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js +3 -5
  110. package/dist/esm/components/basic/doc-editor/themes/doc-theme.css.js.map +1 -1
  111. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js +0 -2
  112. package/dist/esm/components/basic/upload-file/ui/upload-image/upload-image.js.map +1 -1
  113. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js +4 -0
  114. package/dist/esm/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.js.map +1 -1
  115. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js +2 -0
  116. package/dist/esm/modules/cms/dataviews/cms-ad-defines/CmsAdDefinesForm.js.map +1 -1
  117. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js +9 -6
  118. package/dist/esm/modules/cms/pages/cms-ad/index.vue2.js.map +1 -1
  119. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js +35 -6
  120. package/dist/esm/modules/cms/pages/cms-contents/components/part-banner-edit.vue.js.map +1 -1
  121. package/dist/esm/modules/ms/components/image-select/image-select-panel.js +9 -3
  122. package/dist/esm/modules/ms/components/image-select/image-select-panel.js.map +1 -1
  123. package/dist/style/components/basic/doc-editor/index.css +1 -1
  124. package/dist/style/components/index.css +1 -1
  125. package/dist/style/index.css +2 -2
  126. package/dist/style/src/components/basic/doc-editor/index.scss +2 -0
  127. package/dist/types/components/basic/doc-editor/core/element-block.d.ts +44 -0
  128. package/dist/types/components/basic/doc-editor/core/index.d.ts +8 -4
  129. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/GridNode.d.ts +88 -0
  130. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ImageTextGridNode.d.ts +50 -0
  131. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/LayoutGridNode.d.ts +58 -0
  132. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/ModuleGridNode.d.ts +58 -0
  133. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/TextGridNode.d.ts +51 -0
  134. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/index.d.ts +5 -0
  135. package/dist/types/components/basic/doc-editor/plugins/GridPlugin/utils.d.ts +3 -0
  136. package/dist/types/components/basic/doc-editor/plugins/ImagePlugin/ImageNode.d.ts +4 -13
  137. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleBlockNode.d.ts +18 -10
  138. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/index.d.ts +0 -1
  139. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/utils.d.ts +0 -6
  140. package/dist/types/components/basic/doc-editor/plugins/index.d.ts +3 -3
  141. package/dist/types/components/basic/dynamic-form-panel/type.d.ts +2 -2
  142. package/dist/types/modules/cms/dataviews/cms-ad-contents/CmsAdContentsForm.d.ts +1 -0
  143. package/package.json +5 -5
  144. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js +0 -13
  145. package/dist/cjs/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  146. package/dist/cjs/components/basic/doc-editor/core/element-module.js.map +0 -1
  147. package/dist/cjs/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  148. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  149. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  150. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -45
  151. package/dist/cjs/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  152. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
  153. package/dist/cjs/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  154. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  155. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  156. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  157. package/dist/cjs/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  158. package/dist/esm/components/basic/doc-editor/core/decorator-module.js +0 -13
  159. package/dist/esm/components/basic/doc-editor/core/decorator-module.js.map +0 -1
  160. package/dist/esm/components/basic/doc-editor/core/element-module.js.map +0 -1
  161. package/dist/esm/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue.js.map +0 -1
  162. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js +0 -106
  163. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.js.map +0 -1
  164. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js +0 -46
  165. package/dist/esm/components/basic/doc-editor/plugins/ImageTextPlugin/index.vue.js.map +0 -1
  166. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js +0 -143
  167. package/dist/esm/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.js.map +0 -1
  168. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js +0 -123
  169. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.js.map +0 -1
  170. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js +0 -84
  171. package/dist/esm/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.js.map +0 -1
  172. package/dist/types/components/basic/doc-editor/core/decorator-module.d.ts +0 -60
  173. package/dist/types/components/basic/doc-editor/core/element-module.d.ts +0 -15
  174. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/ImageTextNode.d.ts +0 -63
  175. package/dist/types/components/basic/doc-editor/plugins/ImageTextPlugin/index.d.ts +0 -1
  176. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleContainerNode.d.ts +0 -86
  177. package/dist/types/components/basic/doc-editor/plugins/ModulePlugin/ModuleRenderComponent.d.ts +0 -23
  178. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockCantainerNode.d.ts +0 -63
  179. package/dist/types/components/basic/doc-editor/plugins/RichTextPlugin/nodes/BaseBlockNode.d.ts +0 -58
  180. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  181. /package/dist/cjs/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  182. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  183. /package/dist/cjs/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  184. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js +0 -0
  185. /package/dist/esm/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue2.js.map +0 -0
  186. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js +0 -0
  187. /package/dist/esm/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue2.js.map +0 -0
  188. /package/dist/types/components/basic/doc-editor/plugins/{DecoratorModuleToolbarPlugin → ElementBlockSelectionPlugin}/index.vue.d.ts +0 -0
  189. /package/dist/types/components/basic/doc-editor/plugins/{ImageTextPlugin → GridPlugin}/index.vue.d.ts +0 -0
@@ -1,8 +1,9 @@
1
- export * from "./decorator-module";
2
- export * from "./element-module";
1
+ export * from "./element-block";
3
2
  export * from "./utils";
4
- export type DeviceVieeMode = 'pc' | 'mobile';
5
- export declare const DEVICE_VIEW_MODE: import("vue").Ref<DeviceVieeMode>;
3
+ /**
4
+ * 设备显示模式
5
+ */
6
+ export declare const DEVICE_VIEW_MODE: import("vue").Ref<"pc" | "mobile">;
6
7
  /**
7
8
  * 工具条扩展
8
9
  */
@@ -12,6 +13,9 @@ export type ToolbarExtendPlugin = {
12
13
  action: Function;
13
14
  sort: number;
14
15
  };
16
+ /**
17
+ * 插入的插件列表
18
+ */
15
19
  export declare const ToolbarExtendPlugins: import("vue").Reactive<ToolbarExtendPlugin[]>;
16
20
  /**
17
21
  * 注册工具条的扩展
@@ -0,0 +1,88 @@
1
+ import type { DOMConversionMap, SerializedElementNode, LexicalNode, NodeKey, Spread, EditorConfig, DOMExportOutput } from 'lexical';
2
+ import { ElementNode } from 'lexical';
3
+ /**
4
+ * 容器属性
5
+ */
6
+ export type GridNodeAttrType = {
7
+ class: string;
8
+ width: string;
9
+ height: string;
10
+ maxWidth: string;
11
+ maxHeight: string;
12
+ flex: string;
13
+ };
14
+ /**
15
+ * 节点序列化
16
+ */
17
+ export type SerializedGridNode = Spread<{
18
+ attrs: GridNodeAttrType;
19
+ }, SerializedElementNode>;
20
+ /**
21
+ * 格子
22
+ */
23
+ export declare class GridNode extends ElementNode {
24
+ __attrs: GridNodeAttrType;
25
+ static getType(): string;
26
+ static hasGridNodeByElement(el: HTMLElement): HTMLElement | null;
27
+ static getMarkClassName(): string;
28
+ static getExtraClassName(el: HTMLElement): string;
29
+ static clone(node: GridNode): GridNode;
30
+ static importJSON(serializedNode: SerializedGridNode): GridNode;
31
+ static importDOM(): DOMConversionMap | null;
32
+ constructor(attrs: GridNodeAttrType, key?: NodeKey);
33
+ /**
34
+ * 设置属性
35
+ * @param pos
36
+ */
37
+ setAttrs(data?: GridNodeAttrType): void;
38
+ /**
39
+ * 获取属性
40
+ * @param pos
41
+ */
42
+ getAttrs(): GridNodeAttrType;
43
+ /**
44
+ * 导出JSON
45
+ * @returns
46
+ */
47
+ exportJSON(): SerializedGridNode;
48
+ /**
49
+ * 更新元素属性
50
+ * @param el
51
+ */
52
+ updateElementAttr(el: HTMLElement): void;
53
+ /**
54
+ * 获取标识类
55
+ * @returns
56
+ */
57
+ getMarkClassName(): string;
58
+ /**
59
+ * 导出DOM
60
+ * @returns
61
+ */
62
+ exportDOM(): DOMExportOutput;
63
+ /**
64
+ * 创建渲染DOM
65
+ * @param config
66
+ * @returns
67
+ */
68
+ createDOM(config: EditorConfig): HTMLElement;
69
+ /**
70
+ * 更新DOM
71
+ * @param prevNode
72
+ * @param dom
73
+ * @param config
74
+ * @returns
75
+ */
76
+ updateDOM(prevNode: GridNode, el: HTMLElement, config: EditorConfig): boolean;
77
+ /**
78
+ * 非内联
79
+ * @returns
80
+ */
81
+ isInline(): boolean;
82
+ }
83
+ /**
84
+ * 是否是格子
85
+ * @param node
86
+ * @returns
87
+ */
88
+ export declare function $isGridNode(node: GridNode | LexicalNode | null | undefined): node is GridNode;
@@ -0,0 +1,50 @@
1
+ import type { DOMConversionMap, LexicalCommand, LexicalNode, NodeKey, Spread } from 'lexical';
2
+ import { type GridNodeAttrType, GridNode, SerializedGridNode } from "./GridNode";
3
+ /**
4
+ * 属性
5
+ */
6
+ export type ImageTextGridNodeAttrType = GridNodeAttrType & {};
7
+ /**
8
+ * 插入图文
9
+ */
10
+ export declare const INSERT_IMAGETEXTGRID_COMMAND: LexicalCommand<undefined | null>;
11
+ /**
12
+ * 图文节点序列化
13
+ */
14
+ export type SerializedImageTextGridNode = Spread<{}, SerializedGridNode>;
15
+ /**
16
+ * 图文格子
17
+ */
18
+ export declare class ImageTextGridNode extends GridNode {
19
+ __attrs: ImageTextGridNodeAttrType;
20
+ static getType(): string;
21
+ static hasGridNodeByElement(el: HTMLElement): HTMLElement | null;
22
+ static getMarkClassName(): string;
23
+ static getExtraClassName(el: HTMLElement): string;
24
+ static clone(node: ImageTextGridNode): ImageTextGridNode;
25
+ static importJSON(serializedNode: SerializedImageTextGridNode): ImageTextGridNode;
26
+ static importDOM(): DOMConversionMap | null;
27
+ constructor(attrs: ImageTextGridNodeAttrType, key?: NodeKey);
28
+ /**
29
+ * 设置属性
30
+ * @param pos
31
+ */
32
+ setAttrs(data?: ImageTextGridNodeAttrType): void;
33
+ /**
34
+ * 获取属性
35
+ * @param pos
36
+ */
37
+ getAttrs(): ImageTextGridNodeAttrType;
38
+ /**
39
+ * 导出JSON
40
+ * @returns
41
+ */
42
+ exportJSON(): SerializedGridNode;
43
+ canBeEmpty(): boolean;
44
+ }
45
+ /**
46
+ * 判断是否是图文节点
47
+ * @param node
48
+ * @returns
49
+ */
50
+ export declare function $isImageTextGridNode(node: ImageTextGridNode | LexicalNode | null | undefined): node is ImageTextGridNode;
@@ -0,0 +1,58 @@
1
+ import { type DOMConversionMap, type NodeKey, type Spread, type LexicalCommand, LexicalNode } from 'lexical';
2
+ import { type GridNodeAttrType, GridNode, SerializedGridNode } from "./GridNode";
3
+ /**
4
+ * 属性
5
+ */
6
+ export type LayoutGridNodeAttrType = GridNodeAttrType & {
7
+ display: 'flex' | 'inline-flex';
8
+ flexDirection: 'column' | 'row' | 'row-reverse' | 'column-reverse';
9
+ flexWrap: 'nowrap' | 'warp';
10
+ alignContent: 'center' | 'flex-start';
11
+ justifyContent: 'center' | 'flex-start';
12
+ alignItems: 'center' | 'flex-start';
13
+ };
14
+ /**
15
+ * 插入布局格子
16
+ */
17
+ export declare const INSERT_LAYOUTGRID_COMMAND: LexicalCommand<LayoutGridNodeAttrType>;
18
+ /**
19
+ * 节点序列化
20
+ */
21
+ export type SerializedLayoutGridNode = Spread<{
22
+ attrs: LayoutGridNodeAttrType;
23
+ }, SerializedGridNode>;
24
+ /**
25
+ * 布局格子
26
+ */
27
+ export declare class LayoutGridNode extends GridNode {
28
+ __attrs: LayoutGridNodeAttrType;
29
+ static getType(): string;
30
+ static hasGridNodeByElement(el: HTMLElement): HTMLElement | null;
31
+ static getMarkClassName(): string;
32
+ static getExtraClassName(el: HTMLElement): string;
33
+ static clone(node: LayoutGridNode): LayoutGridNode;
34
+ static importJSON(serializedNode: SerializedLayoutGridNode): LayoutGridNode;
35
+ static importDOM(): DOMConversionMap | null;
36
+ constructor(attrs: LayoutGridNodeAttrType, key?: NodeKey);
37
+ /**
38
+ * 设置属性
39
+ * @param pos
40
+ */
41
+ setAttrs(data?: LayoutGridNodeAttrType): void;
42
+ /**
43
+ * 获取属性
44
+ * @param pos
45
+ */
46
+ getAttrs(): LayoutGridNodeAttrType;
47
+ /**
48
+ * 导出JSON
49
+ * @returns
50
+ */
51
+ exportJSON(): SerializedGridNode;
52
+ }
53
+ /**
54
+ * 是否是模块格子
55
+ * @param node
56
+ * @returns
57
+ */
58
+ export declare function $isLayoutGridNode(node: LayoutGridNode | LexicalNode | null | undefined): node is LayoutGridNode;
@@ -0,0 +1,58 @@
1
+ import { type DOMConversionMap, type NodeKey, type Spread, type LexicalCommand, LexicalNode } from 'lexical';
2
+ import { type GridNodeAttrType, GridNode, SerializedGridNode } from "./GridNode";
3
+ /**
4
+ * 属性
5
+ */
6
+ export type ModuleGridNodeAttrType = GridNodeAttrType & {
7
+ overflowX: boolean;
8
+ };
9
+ /**
10
+ * 插入模块格子
11
+ */
12
+ export declare const INSERT_MODULEGRID_COMMAND: LexicalCommand<ModuleGridNodeAttrType>;
13
+ /**
14
+ * 节点序列化
15
+ */
16
+ export type SerializedModuleGridNode = Spread<{
17
+ attrs: ModuleGridNodeAttrType;
18
+ }, SerializedGridNode>;
19
+ /**
20
+ * 模块格子
21
+ */
22
+ export declare class ModuleGridNode extends GridNode {
23
+ __attrs: ModuleGridNodeAttrType;
24
+ static getType(): string;
25
+ static hasGridNodeByElement(el: HTMLElement): HTMLElement | null;
26
+ static getMarkClassName(): string;
27
+ static getExtraClassName(el: HTMLElement): string;
28
+ static clone(node: ModuleGridNode): ModuleGridNode;
29
+ static importJSON(serializedNode: SerializedModuleGridNode): ModuleGridNode;
30
+ static importDOM(): DOMConversionMap | null;
31
+ constructor(attrs: ModuleGridNodeAttrType, key?: NodeKey);
32
+ /**
33
+ * 设置属性
34
+ * @param pos
35
+ */
36
+ setAttrs(data?: ModuleGridNodeAttrType): void;
37
+ /**
38
+ * 获取属性
39
+ * @param pos
40
+ */
41
+ getAttrs(): ModuleGridNodeAttrType;
42
+ /**
43
+ * 导出JSON
44
+ * @returns
45
+ */
46
+ exportJSON(): SerializedGridNode;
47
+ /**
48
+ * 更新元素属性
49
+ * @param el
50
+ */
51
+ updateElementAttr(el: HTMLElement): void;
52
+ }
53
+ /**
54
+ * 是否是模块格子
55
+ * @param node
56
+ * @returns
57
+ */
58
+ export declare function $isModuleGridNode(node: ModuleGridNode | LexicalNode | null | undefined): node is ModuleGridNode;
@@ -0,0 +1,51 @@
1
+ import { type DOMConversionMap, type NodeKey, type Spread, type LexicalCommand, LexicalNode } from 'lexical';
2
+ import { type GridNodeAttrType, GridNode, SerializedGridNode } from "./GridNode";
3
+ /**
4
+ * 插入文本格子
5
+ */
6
+ export declare const INSERT_TEXTGRID_COMMAND: LexicalCommand<GridNodeAttrType>;
7
+ /**
8
+ * 属性
9
+ */
10
+ export type TextGridNodeAttrType = GridNodeAttrType & {};
11
+ /**
12
+ * 节点序列化
13
+ */
14
+ export type SerializedTextGridNode = Spread<{
15
+ attrs: TextGridNodeAttrType;
16
+ }, SerializedGridNode>;
17
+ /**
18
+ * 布局格子
19
+ */
20
+ export declare class TextGridNode extends GridNode {
21
+ __attrs: TextGridNodeAttrType;
22
+ static getType(): string;
23
+ static hasGridNodeByElement(el: HTMLElement): HTMLElement | null;
24
+ static getMarkClassName(): string;
25
+ static getExtraClassName(el: HTMLElement): string;
26
+ static clone(node: TextGridNode): TextGridNode;
27
+ static importJSON(serializedNode: SerializedTextGridNode): TextGridNode;
28
+ static importDOM(): DOMConversionMap | null;
29
+ constructor(attrs: TextGridNodeAttrType, key?: NodeKey);
30
+ /**
31
+ * 设置属性
32
+ * @param pos
33
+ */
34
+ setAttrs(data?: TextGridNodeAttrType): void;
35
+ /**
36
+ * 获取属性
37
+ * @param pos
38
+ */
39
+ getAttrs(): TextGridNodeAttrType;
40
+ /**
41
+ * 导出JSON
42
+ * @returns
43
+ */
44
+ exportJSON(): SerializedGridNode;
45
+ }
46
+ /**
47
+ * 是否是文本格子
48
+ * @param node
49
+ * @returns
50
+ */
51
+ export declare function $isTextGridNode(node: TextGridNode | LexicalNode | null | undefined): node is TextGridNode;
@@ -0,0 +1,5 @@
1
+ export * from "./GridNode";
2
+ export * from "./TextGridNode";
3
+ export * from "./LayoutGridNode";
4
+ export * from "./ImageTextGridNode";
5
+ export * from "./ModuleGridNode";
@@ -0,0 +1,3 @@
1
+ import { LexicalNode } from "lexical";
2
+ import { GridNode } from "./GridNode";
3
+ export declare const showGridEditDialoger: (node: GridNode, parent: LexicalNode, data: any) => Promise<unknown>;
@@ -32,24 +32,15 @@ export declare class ImageNode extends TextNode {
32
32
  exportJSON(): SerializedImageNode;
33
33
  getStyles(): string[];
34
34
  exportDOM(): DOMExportOutput;
35
+ createDOM(config: EditorConfig): HTMLElement;
36
+ updateDOM(prevNode: ImageNode, dom: HTMLElement, config: EditorConfig): boolean;
37
+ canHaveFormat(): boolean;
38
+ isToken(): boolean;
35
39
  /**
36
40
  * 设置属性
37
41
  * @param pos
38
42
  */
39
43
  setAttrs(data?: any): void;
40
- /**
41
- * 创建DOM
42
- * @param config
43
- * @returns
44
- */
45
- createDOM(config: EditorConfig): HTMLElement;
46
- updateDOM(prevNode: ImageNode, dom: HTMLElement, config: EditorConfig): boolean;
47
- getTextContent(_includeInert?: boolean | undefined, _includeDirectionless?: false | undefined): string;
48
- /**
49
- * 内联
50
- * @returns
51
- */
52
- isInline(): boolean;
53
44
  }
54
45
  /**
55
46
  * 定义内联图片节点
@@ -1,16 +1,15 @@
1
- import type { DOMConversionMap, DOMExportOutput, LexicalNode, NodeKey, Spread, EditorConfig, DOMConversion } from 'lexical';
2
- import { BaseBlockNode, SerializedBlockNode } from '../RichTextPlugin/nodes/BaseBlockNode';
1
+ import { type DOMConversionMap, type DOMExportOutput, type LexicalNode, type NodeKey, type Spread, type EditorConfig, type DOMConversion, type SerializedTextNode, TextNode } from 'lexical';
3
2
  /**
4
3
  * 模块模版节点序列化
5
4
  */
6
5
  export type SerializedModuleBlockNode = Spread<{
7
6
  name: string;
8
7
  data: object;
9
- }, SerializedBlockNode>;
8
+ }, SerializedTextNode>;
10
9
  /**
11
10
  * 模块节点
12
11
  */
13
- export declare class ModuleBlockNode extends BaseBlockNode {
12
+ export declare class ModuleBlockNode extends TextNode {
14
13
  __name: string;
15
14
  __data: object;
16
15
  static getType(): string;
@@ -41,6 +40,10 @@ export declare class ModuleBlockNode extends BaseBlockNode {
41
40
  * @param html
42
41
  */
43
42
  setContent(data: any): void;
43
+ /**
44
+ * 导出JSON
45
+ * @returns
46
+ */
44
47
  exportJSON(): SerializedModuleBlockNode;
45
48
  static importDOM(): DOMConversionMap | null;
46
49
  /**
@@ -67,13 +70,18 @@ export declare class ModuleBlockNode extends BaseBlockNode {
67
70
  */
68
71
  createDOM(config: EditorConfig): HTMLElement;
69
72
  /**
70
- * 更新DOM
71
- * @param prevNode
72
- * @param dom
73
- * @param config
74
- * @returns
75
- */
73
+ * 更新DOM
74
+ * @param prevNode
75
+ * @param dom
76
+ * @param config
77
+ * @returns
78
+ */
76
79
  updateDOM(prevNode: ModuleBlockNode, dom: HTMLElement, config: EditorConfig): boolean;
80
+ /**
81
+ * 非内联
82
+ * @returns
83
+ */
84
+ isInline(): boolean;
77
85
  }
78
86
  /**
79
87
  * 创建节点
@@ -1,3 +1,2 @@
1
1
  export * from "./commands";
2
2
  export * from "./ModuleBlockNode";
3
- export * from "./ModuleContainerNode";
@@ -18,12 +18,6 @@ export declare const createHtml: (template: string, data: any) => string;
18
18
  export declare const createModuleMetaData: (html: string, options: DynamicFormItemType[]) => {
19
19
  data: any;
20
20
  };
21
- /**
22
- * 查找容器节点
23
- * @param element
24
- * @returns
25
- */
26
- export declare const findModuleContainerEl: (element: HTMLElement) => HTMLElement | null;
27
21
  /**
28
22
  * 查找模块节点
29
23
  * @param element
@@ -1,9 +1,9 @@
1
1
  import AutoLinkPlugin from "./AutoLinkPlugin/index.vue";
2
2
  import ImagePlugin from "./ImagePlugin/index.vue";
3
- import ImageTextPlugin from "./ImageTextPlugin/index.vue";
4
3
  import ToolbarPlugin from "./ToolbarPlugin/index.vue";
5
4
  import RichTextPlugin from "./RichTextPlugin/index.vue";
6
- import DecoratorModuleToolbarPlugin from "./DecoratorModuleToolbarPlugin/index.vue";
5
+ import ElementBlockSelectionPlugin from "./ElementBlockSelectionPlugin/index.vue";
7
6
  import ModulePlugin from "./ModulePlugin/index.vue";
7
+ import GridPlugin from "./GridPlugin/index.vue";
8
8
  import Nodes from "./nodes";
9
- export { ToolbarPlugin, RichTextPlugin, ModulePlugin, AutoLinkPlugin, ImagePlugin, ImageTextPlugin, DecoratorModuleToolbarPlugin, Nodes };
9
+ export { ToolbarPlugin, RichTextPlugin, ModulePlugin, AutoLinkPlugin, ImagePlugin, ElementBlockSelectionPlugin, GridPlugin, Nodes };
@@ -6,6 +6,6 @@ export type DynamicFormItemType = {
6
6
  name: string;
7
7
  title: string;
8
8
  component: string | Component;
9
- props: object;
10
- defaultValue: string;
9
+ props: object | any;
10
+ defaultValue: any;
11
11
  };
@@ -6,5 +6,6 @@ export declare class CmsAdContentsForm extends DataForm {
6
6
  constructor(options?: DataFormOptions & {
7
7
  cutSise?: string;
8
8
  });
9
+ changeCutSise(cutSise: string): void;
9
10
  protected initialize(): Promise<void>;
10
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maketribe/ms-app",
3
- "version": "3.2.25",
3
+ "version": "3.2.26",
4
4
  "description": "",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -49,12 +49,12 @@
49
49
  "vditor": "^3.9.6",
50
50
  "vue": "^3.4.31",
51
51
  "vue-codemirror": "^6.1.1",
52
- "vue-cropper": "^1.1.3",
52
+ "vue-cropper": "^1.1.4",
53
53
  "vue-router": "^4.2.4",
54
- "@maketribe/dm": "^3.2.11",
55
- "@maketribe/utils": "^3.2.1",
56
54
  "@maketribe/locale": "^3.2.0",
57
- "@maketribe/request": "^3.2.3"
55
+ "@maketribe/dm": "^3.2.11",
56
+ "@maketribe/request": "^3.2.3",
57
+ "@maketribe/utils": "^3.2.1"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/sortablejs": "^1.15.8"
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const lexical = require("lexical");
4
- require("@lexical/utils");
5
- require("vue");
6
- require("lexical-vue");
7
- const SELECTED_DECORATORMODULE_COMMAND = lexical.createCommand("SELECTED_DECORATORMODULE_COMMAND");
8
- const REMOVE_DECORATORMODULE_COMMAND = lexical.createCommand("REMOVE_DECORATORMODULE_COMMAND");
9
- const UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND = lexical.createCommand("UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND");
10
- exports.REMOVE_DECORATORMODULE_COMMAND = REMOVE_DECORATORMODULE_COMMAND;
11
- exports.SELECTED_DECORATORMODULE_COMMAND = SELECTED_DECORATORMODULE_COMMAND;
12
- exports.UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND = UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND;
13
- //# sourceMappingURL=decorator-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decorator-module.js","sources":["../../../../../../src/components/basic/doc-editor/core/decorator-module.ts"],"sourcesContent":["\r\nimport type { BaseSelection, LexicalCommand,NodeKey } from 'lexical'\r\nimport {\r\n createCommand,DecoratorNode,\r\n $getSelection, $isNodeSelection,\r\n CLICK_COMMAND, COMMAND_PRIORITY_LOW,\r\n TextNode,\r\n EditorConfig\r\n} from \"lexical\";\r\nimport { mergeRegister } from \"@lexical/utils\";\r\nimport { type Component,watch,ref } from \"vue\"\r\nimport {\r\n useLexicalComposer,\r\n useLexicalNodeSelection,\r\n useMounted,\r\n} from \"lexical-vue\";\r\n\r\n/**\r\n * toolsbar的函数\r\n */\r\nexport type ToolsbarFunction = (selection:BaseSelection|null)=>Array<any>|null;\r\n\r\n/**\r\n * 组件选中\r\n */\r\nexport type DecoratorModuleSelectEventType = {\r\n element:HTMLElement,\r\n toolsbars:Array<any>|ToolsbarFunction\r\n}\r\n\r\n/**\r\n * 选中装饰模块\r\n */\r\nexport const SELECTED_DECORATORMODULE_COMMAND: LexicalCommand<DecoratorModuleSelectEventType|null> = createCommand('SELECTED_DECORATORMODULE_COMMAND')\r\n\r\n/**\r\n * 移除装饰器模块\r\n */\r\nexport const REMOVE_DECORATORMODULE_COMMAND: LexicalCommand<undefined|null> = createCommand('REMOVE_DECORATORMODULE_COMMAND')\r\n\r\n/**\r\n * 更新模块工具条位置信息\r\n */\r\nexport const UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND: LexicalCommand<undefined|null> = createCommand('UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND')\r\n\r\n/**\r\n * 装饰模块\r\n */\r\nexport class DecoratorModuleBlockNode extends DecoratorNode<Component> {\r\n\r\n constructor( key?: NodeKey) {\r\n super(key)\r\n }\r\n\r\n createDOM() {\r\n return document.createElement('div')\r\n }\r\n\r\n updateDOM(\r\n prevNode: TextNode,\r\n dom: HTMLElement,\r\n config: EditorConfig,\r\n ): boolean {\r\n return false\r\n }\r\n \r\n /**\r\n * 标识非行内组件\r\n * @returns \r\n */\r\n isInline() { return false; }\r\n\r\n /**\r\n * 是否隔离\r\n * @returns \r\n */\r\n isIsolated(){ return true; }\r\n \r\n /**\r\n * 允许键盘选中\r\n * @returns \r\n */\r\n isKeyboardSelectable(){ return true; }\r\n \r\n}\r\n\r\n\r\n/**\r\n * 使用装饰模块\r\n */\r\nexport const useDecoratorModule = (nodeKey:any,toolsbars:Array<any>|ToolsbarFunction)=>{\r\n\r\n // 编辑器\r\n\r\n const curSelectEl = ref<any>(null)\r\n const editor = useLexicalComposer();\r\n const { isSelected, setSelected, clearSelection } = useLexicalNodeSelection(nodeKey);\r\n\r\n // 是否选中\r\n watch(isSelected,(v)=>{\r\n if(v && curSelectEl.value != null){\r\n // 选中后显示工具条\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,{ \r\n element:curSelectEl.value,\r\n toolsbars:toolsbars\r\n });\r\n }\r\n else{\r\n // 没选中\r\n curSelectEl.value = null;\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,null);\r\n }\r\n })\r\n\r\n // 编辑器挂载的时候\r\n useMounted(() => {\r\n\r\n return mergeRegister(\r\n // \r\n // 选中\r\n editor.registerCommand<MouseEvent>(CLICK_COMMAND,(event) => {\r\n \r\n // 选中当前对象\r\n if (event.target === curSelectEl.value) {\r\n\r\n event.preventDefault();\r\n\r\n if (!event.shiftKey) { clearSelection(); }\r\n\r\n setSelected(true);\r\n\r\n return true;\r\n }\r\n \r\n return false;\r\n }, COMMAND_PRIORITY_LOW)\r\n );\r\n });\r\n\r\n return { isSelected,curSelectEl }\r\n}\r\n\r\n/**\r\n * 使用装饰模块工具条\r\n */\r\nexport const useDecoratorModuleTools = (selectFunc:Function)=>{\r\n\r\n // 编辑器\r\n const editor = useLexicalComposer();\r\n\r\n // 编辑器挂载的时候\r\n useMounted(() => {\r\n\r\n return mergeRegister(\r\n editor.registerCommand(SELECTED_DECORATORMODULE_COMMAND, () => {\r\n \r\n const selection = $getSelection();\r\n \r\n if($isNodeSelection(selection)){\r\n selectFunc(selection);\r\n }\r\n\r\n return false;\r\n },1)\r\n );\r\n });\r\n\r\n}\r\n\r\n\r\n"],"names":["createCommand"],"mappings":";;;;;;AAiCa,MAAA,mCAAwFA,sBAAc,kCAAkC;AAKxI,MAAA,iCAAiEA,sBAAc,gCAAgC;AAK/G,MAAA,6CAA6EA,sBAAc,4CAA4C;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"element-module.js","sources":["../../../../../../src/components/basic/doc-editor/core/element-module.ts"],"sourcesContent":["\r\n\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport { COMMAND_PRIORITY_LOW,CLICK_COMMAND } from 'lexical'\r\nimport { useLexicalComposer,useMounted } from 'lexical-vue'\r\nimport { ref,computed,watch } from 'vue'\r\nimport { \r\n SELECTED_DECORATORMODULE_COMMAND,\r\n ToolsbarFunction\r\n} from './decorator-module'\r\nimport { \r\n isNodeSelected,setSelected,clearSelection,\r\n} from './utils'\r\n\r\n/**\r\n * 判断选中的方法\r\n */\r\nexport type SelectExistFunc = (el:HTMLElement)=>HTMLElement|null\r\n\r\n/**\r\n * 使用元素模块\r\n * @param toolsbars \r\n */\r\nexport const useElementModule = (func:SelectExistFunc,toolsbars:Array<any>|ToolsbarFunction)=>{\r\n\r\n const editor = useLexicalComposer()\r\n const isSelected = ref(false)\r\n const curSelectKey = ref<any>(null)\r\n const curSelectPos = ref<any>(null)\r\n const curSelectEl = ref<any>(null)\r\n \r\n // 更新选中\r\n const updateActiveViewState = (el:Element|null)=>{\r\n \r\n if(el){\r\n \r\n const selectRect = el.getBoundingClientRect();\r\n \r\n curSelectPos.value = {\r\n top:`${selectRect.y}px`,left:`${selectRect.x}px`,\r\n width:`${selectRect.width}px`,height:`${selectRect.height}px`\r\n };\r\n \r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,{ \r\n element:curSelectEl.value,\r\n toolsbars:toolsbars\r\n });\r\n }\r\n else{\r\n curSelectEl.value = null;\r\n curSelectKey.value = null;\r\n curSelectPos.value = null;\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND,null);\r\n }\r\n }\r\n \r\n // 是否选中\r\n watch(isSelected,(state)=>{\r\n return updateActiveViewState(state ? curSelectEl.value : null);\r\n })\r\n \r\n // 编辑器挂载\r\n useMounted(()=>{\r\n // 注册事件\r\n return mergeRegister(\r\n // 更新选中状态\r\n editor.registerUpdateListener(() => {\r\n isSelected.value = isNodeSelected(editor, curSelectKey.value);\r\n }),\r\n // 点击选中\r\n editor.registerCommand<MouseEvent>(CLICK_COMMAND,(event) => {\r\n \r\n const el = func(event.target as HTMLElement);\r\n const nodeKey = el?.getAttribute(\"node-key\");\r\n\r\n // 不为null的话则视为点击选中\r\n if(nodeKey != null){\r\n \r\n event.preventDefault();\r\n \r\n if (!event.shiftKey) { clearSelection(editor); }\r\n\r\n setSelected(editor,true,nodeKey);\r\n \r\n setTimeout(() => {\r\n curSelectEl.value = el;\r\n curSelectKey.value = nodeKey;\r\n isSelected.value = isNodeSelected(editor, nodeKey);\r\n }, 1);\r\n return true;\r\n }\r\n \r\n return false;\r\n }, COMMAND_PRIORITY_LOW)\r\n )\r\n })\r\n\r\n\r\n return { isSelected, curSelectKey,curSelectPos,updateActiveViewState };\r\n\r\n}\r\n"],"names":["useLexicalComposer","ref","SELECTED_DECORATORMODULE_COMMAND","watch","useMounted","mergeRegister","isNodeSelected","CLICK_COMMAND","clearSelection","setSelected","COMMAND_PRIORITY_LOW"],"mappings":";;;;;;;;AAuBa,MAAA,mBAAmB,CAAC,MAAqB,cAAwC;AAE5F,QAAM,SAASA,WAAAA;AACT,QAAA,aAAaC,QAAI,KAAK;AACtB,QAAA,eAAeA,QAAS,IAAI;AAC5B,QAAA,eAAeA,QAAS,IAAI;AAC5B,QAAA,cAAcA,QAAS,IAAI;AAG3B,QAAA,wBAAwB,CAAC,OAAkB;AAE/C,QAAG,IAAG;AAEE,YAAA,aAAa,GAAG;AAEtB,mBAAa,QAAQ;AAAA,QACnB,KAAI,GAAG,WAAW,CAAC;AAAA,QAAK,MAAK,GAAG,WAAW,CAAC;AAAA,QAC5C,OAAM,GAAG,WAAW,KAAK;AAAA,QAAK,QAAO,GAAG,WAAW,MAAM;AAAA,MAAA;AAG3D,aAAO,gBAAgBC,kDAAiC;AAAA,QACtD,SAAQ,YAAY;AAAA,QACpB;AAAA,MAAA,CACD;AAAA,IAAA,OAEC;AACF,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AACrB,mBAAa,QAAQ;AACd,aAAA,gBAAgBA,kDAAiC,IAAI;AAAA,IAC9D;AAAA,EAAA;AAIIC,YAAA,YAAW,CAAC,UAAQ;AACxB,WAAO,sBAAsB,QAAQ,YAAY,QAAQ,IAAI;AAAA,EAAA,CAC9D;AAGDC,aAAAA,WAAW,MAAI;AAEN,WAAAC,MAAA;AAAA;AAAA,MAEL,OAAO,uBAAuB,MAAM;AAClC,mBAAW,QAAQC,QAAA,eAAe,QAAQ,aAAa,KAAK;AAAA,MAAA,CAC7D;AAAA;AAAA,MAED,OAAO,gBAA4BC,uBAAc,CAAC,UAAU;AAEpD,cAAA,KAAK,KAAK,MAAM,MAAqB;AACrC,cAAA,UAAU,yBAAI,aAAa;AAGjC,YAAG,WAAW,MAAK;AAEjB,gBAAM,eAAe;AAEjB,cAAA,CAAC,MAAM,UAAU;AAAEC,oBAAA,eAAe,MAAM;AAAA,UAAI;AAEpCC,kBAAAA,YAAA,QAAO,MAAK,OAAO;AAE/B,qBAAW,MAAM;AACf,wBAAY,QAAQ;AACpB,yBAAa,QAAQ;AACV,uBAAA,QAAQH,QAAAA,eAAe,QAAQ,OAAO;AAAA,aAChD,CAAC;AACG,iBAAA;AAAA,QACT;AAEO,eAAA;AAAA,SACNI,4BAAoB;AAAA,IAAA;AAAA,EACzB,CACD;AAGD,SAAO,EAAE,YAAY,cAAa,cAAa,sBAAsB;AAEvE;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.vue.js","sources":["../../../../../../../src/components/basic/doc-editor/plugins/DecoratorModuleToolbarPlugin/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { type CommandListenerPriority, $isNodeSelection, $getSelection } from 'lexical'\r\nimport { mergeRegister } from '@lexical/utils'\r\nimport { useLexicalComposer, useMounted } from 'lexical-vue'\r\nimport { ref, reactive, shallowRef, nextTick, watch } from 'vue'\r\nimport {\r\n UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, SELECTED_DECORATORMODULE_COMMAND, REMOVE_DECORATORMODULE_COMMAND,\r\n type DecoratorModuleSelectEventType, DEVICE_VIEW_MODE,\r\n ToolsbarFunction\r\n} from \"../../core\"\r\n\r\n// 点击工具条按钮\r\nconst lowPriority: CommandListenerPriority = 1\r\nconst editor = useLexicalComposer()\r\nconst toolbarRef = ref<HTMLDivElement | null>(null)\r\nconst selectPayload = shallowRef<DecoratorModuleSelectEventType | null>(null);\r\nconst toolsPos = reactive({ left: \"px\", top: \"0px\" });\r\n\r\nwatch(DEVICE_VIEW_MODE, () => {\r\n editor.dispatchCommand(UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, null);\r\n})\r\n\r\n\r\n// 更新工具条坐标\r\nconst updateToolsPos = () => {\r\n\r\n nextTick(() => {\r\n if (selectPayload.value != null && toolbarRef.value != null) {\r\n const editIframeRect = (toolbarRef.value.getRootNode() as any).body.querySelector(\".mk-doc-editor__stage_iframe\").getBoundingClientRect();\r\n const editBodyRect = (toolbarRef.value.getRootNode() as any).body.querySelector(\".mk-doc-editor__stage_body\").getBoundingClientRect();\r\n const baseY = editIframeRect.y - editBodyRect.y;\r\n const selectRect = selectPayload.value.element.getBoundingClientRect();\r\n const toolsRect = toolbarRef.value.getBoundingClientRect();\r\n if (toolsRect) {\r\n // 中心点\r\n toolsPos.top = Math.max(selectRect.y - toolsRect.height - 5 + baseY, 5 + baseY) + \"px\"\r\n toolsPos.left = toolsRect.width / -2 + selectRect.x + selectRect.width / 2 + \"px\";\r\n }\r\n }\r\n })\r\n return false;\r\n}\r\n\r\nuseMounted(() => {\r\n return mergeRegister(\r\n editor.registerCommand(UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND, () => updateToolsPos(), lowPriority),\r\n editor.registerUpdateListener(({ editorState }) => editorState.read(() => updateToolsPos())),\r\n // 选中模块\r\n editor.registerCommand(SELECTED_DECORATORMODULE_COMMAND, (payload: DecoratorModuleSelectEventType) => {\r\n\r\n\r\n if (payload != null) {\r\n let toolsbarList = [];\r\n\r\n // 如果是函数的话\r\n if (typeof payload.toolsbars == \"function\") {\r\n\r\n const selection = $getSelection();\r\n\r\n if ($isNodeSelection(selection)) {\r\n toolsbarList = payload.toolsbars(selection) ?? [];\r\n }\r\n else {\r\n toolsbarList = payload.toolsbars(null) ?? [];\r\n }\r\n }\r\n else {\r\n toolsbarList = payload.toolsbars;\r\n }\r\n\r\n selectPayload.value = {\r\n element: payload.element,\r\n toolsbars: toolsbarList\r\n };\r\n }\r\n else {\r\n selectPayload.value = null;\r\n }\r\n\r\n return updateToolsPos();\r\n }, lowPriority),\r\n // 删除模块\r\n editor.registerCommand(REMOVE_DECORATORMODULE_COMMAND, () => {\r\n\r\n const selection = $getSelection();\r\n\r\n if ($isNodeSelection(selection)) {\r\n\r\n selection.getNodes().forEach(node => node.remove());\r\n\r\n // 没选中\r\n editor.dispatchCommand(SELECTED_DECORATORMODULE_COMMAND, null);\r\n }\r\n return false;\r\n }, lowPriority)\r\n // editor.registerCommand(SELECTION_CHANGE_COMMAND, (payload, newEditor) => {\r\n\r\n // const selection = $getSelection();\r\n\r\n // if($isNodeSelection(selection)){\r\n\r\n // const node = selection.getNodes()[0]\r\n\r\n // console.log(node,node.getTopLevelElement());\r\n // }\r\n\r\n // return updateToolsPos();\r\n // },lowPriority)\r\n )\r\n})\r\n\r\n</script>\r\n\r\n<template>\r\n <div v-if=\"selectPayload != null\" ref=\"toolbarRef\" class=\"mk-doc-editor-decorator-module-toolbar\" :style=\"toolsPos\">\r\n <el-button-group>\r\n\r\n <template v-for=\"item in selectPayload.toolsbars as any[]\">\r\n <el-tooltip effect=\"dark\" :content=\"item.title\" placement=\"top\">\r\n <el-button text @click=\"item.action()\">\r\n <MKSvgIcon :iconClass=\"item.icon\" />\r\n </el-button>\r\n </el-tooltip>\r\n </template>\r\n <el-tooltip effect=\"dark\" content=\"删除\" placement=\"top\">\r\n <el-button text type=\"danger\" @click=\"editor.dispatchCommand(REMOVE_DECORATORMODULE_COMMAND, null)\">\r\n <MKSvgIcon :iconClass=\"`Delete`\" />\r\n </el-button>\r\n </el-tooltip>\r\n\r\n </el-button-group>\r\n </div>\r\n</template>\r\n"],"names":["useLexicalComposer","ref","shallowRef","reactive","watch","DEVICE_VIEW_MODE","UPDATE_DECORATORMODULE_TOOLBAR_POS_COMMAND","nextTick","useMounted","mergeRegister","SELECTED_DECORATORMODULE_COMMAND","$getSelection","$isNodeSelection","REMOVE_DECORATORMODULE_COMMAND"],"mappings":";;;;;;;AAYA,MAAM,cAAuC;;;;AAC7C,UAAM,SAASA,WAAAA;AACT,UAAA,aAAaC,QAA2B,IAAI;AAC5C,UAAA,gBAAgBC,eAAkD,IAAI;AAC5E,UAAM,WAAWC,IAAAA,SAAS,EAAE,MAAM,MAAM,KAAK,OAAO;AAEpDC,QAAA,MAAMC,wBAAkB,MAAM;AACrB,aAAA,gBAAgBC,4DAA4C,IAAI;AAAA,IAAA,CACxE;AAID,UAAM,iBAAiB,MAAM;AAE3BC,UAAAA,SAAS,MAAM;AACb,YAAI,cAAc,SAAS,QAAQ,WAAW,SAAS,MAAM;AACrD,gBAAA,iBAAkB,WAAW,MAAM,YAAA,EAAsB,KAAK,cAAc,8BAA8B,EAAE;AAC5G,gBAAA,eAAgB,WAAW,MAAM,YAAA,EAAsB,KAAK,cAAc,4BAA4B,EAAE;AACxG,gBAAA,QAAQ,eAAe,IAAI,aAAa;AAC9C,gBAAM,aAAa,cAAc,MAAM,QAAQ,sBAAsB;AAC/D,gBAAA,YAAY,WAAW,MAAM,sBAAsB;AACzD,cAAI,WAAW;AAEJ,qBAAA,MAAM,KAAK,IAAI,WAAW,IAAI,UAAU,SAAS,IAAI,OAAO,IAAI,KAAK,IAAI;AACzE,qBAAA,OAAO,UAAU,QAAQ,KAAK,WAAW,IAAI,WAAW,QAAQ,IAAI;AAAA,UAC/E;AAAA,QACF;AAAA,MAAA,CACD;AACM,aAAA;AAAA,IAAA;AAGTC,eAAAA,WAAW,MAAM;AACR,aAAAC,MAAA;AAAA,QACL,OAAO,gBAAgBH,gBAAAA,4CAA4C,MAAM,eAAA,GAAkB,WAAW;AAAA,QACtG,OAAO,uBAAuB,CAAC,EAAE,YAAA,MAAkB,YAAY,KAAK,MAAM,eAAe,CAAC,CAAC;AAAA;AAAA,QAE3F,OAAO,gBAAgBI,kDAAkC,CAAC,YAA4C;AAGpG,cAAI,WAAW,MAAM;AACnB,gBAAI,eAAe,CAAA;AAGf,gBAAA,OAAO,QAAQ,aAAa,YAAY;AAE1C,oBAAM,YAAYC,QAAAA;AAEd,kBAAAC,QAAAA,iBAAiB,SAAS,GAAG;AAC/B,+BAAe,QAAQ,UAAU,SAAS,KAAK,CAAA;AAAA,cAAC,OAE7C;AACH,+BAAe,QAAQ,UAAU,IAAI,KAAK,CAAA;AAAA,cAC5C;AAAA,YAAA,OAEG;AACH,6BAAe,QAAQ;AAAA,YACzB;AAEA,0BAAc,QAAQ;AAAA,cACpB,SAAS,QAAQ;AAAA,cACjB,WAAW;AAAA,YAAA;AAAA,UACb,OAEG;AACH,0BAAc,QAAQ;AAAA,UACxB;AAEA,iBAAO,eAAe;AAAA,WACrB,WAAW;AAAA;AAAA,QAEd,OAAO,gBAAgBC,gBAAAA,gCAAgC,MAAM;AAE3D,gBAAM,YAAYF,QAAAA;AAEd,cAAAC,QAAAA,iBAAiB,SAAS,GAAG;AAE/B,sBAAU,WAAW,QAAQ,CAAQ,SAAA,KAAK,QAAQ;AAG3C,mBAAA,gBAAgBF,kDAAkC,IAAI;AAAA,UAC/D;AACO,iBAAA;AAAA,WACN,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA;AAAA,IAchB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}