@mce/bigesj 0.13.13 → 0.13.15

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.
@@ -0,0 +1,3 @@
1
+ import type { NormalizedBackground } from 'modern-idoc';
2
+ import type { BigeElement } from './types';
3
+ export declare function convertBackground(el: BigeElement): NormalizedBackground | undefined;
@@ -1,4 +1,5 @@
1
1
  import type { NormalizedElement } from 'modern-idoc';
2
- export declare function convertElement(el: Record<string, any>, parent: Record<string, any> | undefined, context?: {
2
+ import type { BigeElement } from './types';
3
+ export declare function convertElement(el: BigeElement, parent: Record<string, any> | undefined, context?: {
3
4
  endTime: number;
4
5
  }): Promise<NormalizedElement>;
@@ -1,7 +1,10 @@
1
1
  export * from './animation';
2
+ export * from './background';
2
3
  export * from './doc';
3
4
  export * from './element';
4
5
  export * from './image';
5
6
  export * from './layout';
7
+ export * from './style';
6
8
  export * from './svg';
7
9
  export * from './text';
10
+ export * from './types';
@@ -1,4 +1,5 @@
1
1
  import type { NormalizedElement } from 'modern-idoc';
2
- export declare function convertLayout(layout: Record<string, any>, isFrame?: boolean, context?: {
2
+ import type { BigeLayout } from './types';
3
+ export declare function convertLayout(layout: BigeLayout, isFrame?: boolean, context?: {
3
4
  endTime: number;
4
5
  }): Promise<NormalizedElement>;
@@ -0,0 +1 @@
1
+ export declare function getStyle(el: Record<string, any>): any;
@@ -1,7 +1,6 @@
1
1
  import type { NormalizedTextContent, StyleObject } from 'modern-idoc';
2
- type BigeElementText = Record<string, any>;
3
- export declare function convertTextStyle(el: BigeElementText, isByWord?: boolean): Promise<Partial<StyleObject>>;
4
- export declare function convertTextEffects(el: BigeElementText): Promise<Partial<StyleObject>[] | undefined>;
5
- export declare function getTextContents(el: BigeElementText): BigeElementText['contents'];
6
- export declare function convertTextContent(el: BigeElementText, isByWord?: boolean): Promise<NormalizedTextContent>;
7
- export {};
2
+ import type { BigeElement } from './types';
3
+ export declare function convertTextStyle(el: BigeElement, isByWord?: boolean): Promise<Partial<StyleObject>>;
4
+ export declare function convertTextEffects(el: BigeElement): Promise<Partial<StyleObject>[] | undefined>;
5
+ export declare function getTextContents(el: BigeElement): BigeElement['contents'];
6
+ export declare function convertTextContent(el: BigeElement, isByWord?: boolean): Promise<NormalizedTextContent>;
@@ -0,0 +1,2 @@
1
+ export type BigeLayout = Record<string, any>;
2
+ export type BigeElement = Record<string, any>;
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { useEditor, definePlugin } from "mce";
2
2
  import { ref, onBeforeUnmount } from "vue";
3
3
  import { createSharedComposable } from "@vueuse/core";
4
- import { idGenerator, normalizeCRLF, isGradient } from "modern-idoc";
4
+ import { idGenerator, isGradient, normalizeCRLF } from "modern-idoc";
5
5
  import { assets } from "modern-canvas";
6
6
  import { gunzipSync } from "fflate";
7
7
  const bigeFonts = ref([]);
@@ -581,6 +581,28 @@ function parseAnimations(el) {
581
581
  animations: animations2.filter((v) => !!v?.keyframes)
582
582
  };
583
583
  }
584
+ function convertBackground(el) {
585
+ let background;
586
+ const backgroundColor = el.backgroundColor ?? el.background?.color;
587
+ const backgroundImage = el.backgroundImage ?? el.background?.image;
588
+ if (backgroundColor) {
589
+ if (isGradient(backgroundColor ?? "")) {
590
+ background = {
591
+ image: backgroundColor
592
+ };
593
+ } else {
594
+ background = {
595
+ color: backgroundColor
596
+ };
597
+ }
598
+ }
599
+ if (backgroundImage) {
600
+ background = {
601
+ image: backgroundImage
602
+ };
603
+ }
604
+ return background;
605
+ }
584
606
  async function convertImageElementToUrl(el) {
585
607
  const {
586
608
  transform = {},
@@ -813,6 +835,9 @@ function getContours(ctx) {
813
835
  trace();
814
836
  return paths;
815
837
  }
838
+ function getStyle(el) {
839
+ return el.style ?? el;
840
+ }
816
841
  async function convertSvgElementToUrl(el) {
817
842
  const {
818
843
  id,
@@ -870,14 +895,15 @@ async function convertSvgElementToUrl(el) {
870
895
  const highlightReferImage = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNzIgNzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDcyIDcyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPHBhdGggZD0iTTE5LjMsMzguMWMwLjIsMC41LDAuNCwwLjksMC43LDEuNGMwLjIsMC4zLDAuNCwwLjQsMC44LDAuNGMwLjMsMCwwLjUtMC4xLDAuNi0wLjRjMC4xLTAuMywwLjEtMC42LDAuMi0wLjkgICBjMC0wLjIsMC4xLTAuNCwwLjMtMC41YzAuMi0wLjEsMC40LTAuMiwwLjYtMC4xYzAuMiwwLDAuNCwwLjEsMC41LDAuM2MwLjEsMC4yLDAuMiwwLjQsMC4xLDAuNmMtMC4xLDAuNi0wLjIsMS4yLTAuNCwxLjcgICBjLTAuMywwLjgtMC45LDEuMi0xLjcsMS4yYy0wLjksMC0xLjYtMC40LTIuMS0xLjJjLTAuMy0wLjQtMC41LTAuOC0wLjctMS4zYy0wLjQsMC4zLTEsMC42LTEuNywxYy0wLjUsMC4yLTAuOCwwLjEtMS4xLTAuMyAgIGMtMC4yLTAuNS0wLjEtMC45LDAuMy0xLjFjMC43LTAuNCwxLjQtMC44LDEuOS0xLjFjLTAuMi0wLjktMC40LTIuMS0wLjUtMy43TDE1LjksMzRjLTAuMiwwLTAuNCwwLTAuNi0wLjEgICBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4yLDAtMC40LDAuMi0wLjZzMC4zLTAuMywwLjUtMC4zbDEuMi0wLjFjLTAuMS0wLjktMC4xLTEuOS0wLjEtMi45YzAtMC4yLDAuMS0wLjQsMC4yLTAuNiAgIGMwLjItMC4xLDAuMy0wLjIsMC42LTAuMmMwLjIsMCwwLjQsMC4xLDAuNiwwLjJjMC4yLDAuMSwwLjIsMC4zLDAuMywwLjZjMCwwLjEsMCwxLDAuMSwyLjdsMy4yLTAuNGMwLjIsMCwwLjQsMCwwLjUsMC4xICAgYzAuMiwwLjEsMC4zLDAuMywwLjMsMC41czAsMC40LTAuMSwwLjVjLTAuMSwwLjItMC4zLDAuMy0wLjUsMC4zbC0zLjMsMC40YzAuMSwxLjIsMC4yLDIuMSwwLjMsMi44YzAuNy0wLjYsMS40LTEuNCwyLTIuMiAgIGMwLjMtMC40LDAuNy0wLjQsMS4xLTAuMmMwLjQsMC4zLDAuNCwwLjcsMC4yLDFDMjEuMywzNi4zLDIwLjQsMzcuMywxOS4zLDM4LjF6IE0yMC42LDMxLjFjLTAuMy0wLjItMC43LTAuNS0xLjEtMC44ICAgYy0wLjMtMC4zLTAuMy0wLjYtMC4xLTAuOWMwLjMtMC4zLDAuNi0wLjQsMS0wLjJjMC40LDAuMiwwLjcsMC41LDEuMSwwLjdjMC40LDAuMywwLjQsMC42LDAuMiwxQzIxLjMsMzEuMywyMSwzMS4zLDIwLjYsMzEuMXogICAgTTIzLjMsMzAuOWMwLTAuMiwwLjEtMC40LDAuMi0wLjVjMC4xLTAuMSwwLjMtMC4yLDAuNi0wLjJzMC40LDAuMSwwLjYsMC4yYzAuMSwwLjEsMC4yLDAuMywwLjIsMC41djYuNWMwLDAuMi0wLjEsMC40LTAuMiwwLjUgICBjLTAuMSwwLjEtMC4zLDAuMi0wLjYsMC4ycy0wLjQtMC4xLTAuNi0wLjJjLTAuMS0wLjEtMC4yLTAuMy0wLjItMC41VjMwLjl6IE0yNC4zLDQxLjZjLTAuMiwwLTAuNC0wLjEtMC42LTAuMiAgIGMtMC4yLTAuMS0wLjItMC4zLTAuMi0wLjZjMC0wLjIsMC4xLTAuNCwwLjItMC42YzAuMi0wLjEsMC4zLTAuMiwwLjYtMC4yaDAuOWMwLjYsMCwxLTAuNCwxLTEuMXYtOS40YzAtMC4yLDAuMS0wLjQsMC4yLTAuNiAgIGMwLjItMC4xLDAuMy0wLjIsMC42LTAuMmMwLjIsMCwwLjQsMC4xLDAuNiwwLjJjMC4yLDAuMSwwLjIsMC4zLDAuMiwwLjZWMzljMCwwLjgtMC4yLDEuNS0wLjcsMS45cy0xLjEsMC43LTEuOCwwLjdIMjQuM3oiLz4KCTxwYXRoIGQ9Ik00MC42LDM3LjdoLTMuOHYwLjdoNC40YzAuMSwwLDAuMywwLjEsMC40LDAuMmMwLjEsMC4xLDAuMiwwLjIsMC4yLDAuNGMwLDAuMS0wLjEsMC4zLTAuMiwwLjRjLTAuMSwwLjEtMC4yLDAuMi0wLjQsMC4yICAgaC00LjR2MC43SDQyYzAuMiwwLDAuMywwLjEsMC40LDAuMmMwLjEsMC4xLDAuMiwwLjIsMC4yLDAuNHMtMC4xLDAuMy0wLjIsMC40Yy0wLjEsMC4xLTAuMiwwLjItMC40LDAuMkgzMGMtMC4yLDAtMC4zLTAuMS0wLjQtMC4yICAgYy0wLjEtMC4xLTAuMi0wLjItMC4yLTAuNHMwLjEtMC4zLDAuMi0wLjRjMC4xLTAuMSwwLjItMC4yLDAuNC0wLjJoNS4ydi0wLjdoLTQuNGMtMC4xLDAtMC4zLTAuMS0wLjQtMC4ycy0wLjItMC4yLTAuMi0wLjQgICBjMC0wLjEsMC4xLTAuMywwLjItMC40czAuMi0wLjIsMC40LTAuMmg0LjR2LTAuN2gtMy43aDBjLTAuMiwwLTAuNC0wLjEtMC42LTAuMnMtMC4yLTAuMy0wLjItMC42di0zLjFjMC0wLjIsMC4xLTAuNCwwLjItMC42ICAgYzAuMS0wLjEsMC4zLTAuMiwwLjYtMC4yaDMuOHYtMC44SDMwYy0wLjIsMC0wLjMtMC4xLTAuNC0wLjJjLTAuMS0wLjEtMC4yLTAuMi0wLjItMC40czAuMS0wLjMsMC4yLTAuNGMwLjEtMC4xLDAuMi0wLjIsMC40LTAuMiAgIGg1LjJ2LTAuOGMtMS40LDAtMi45LDAuMS00LjMsMC4xYy0wLjIsMC0wLjMsMC0wLjQtMC4xYy0wLjEtMC4xLTAuMi0wLjItMC4yLTAuNGMwLTAuMiwwLTAuMywwLjItMC40YzAuMS0wLjEsMC4zLTAuMiwwLjQtMC4yICAgYzMuMywwLDYuOC0wLjEsMTAuMi0wLjNjMC4yLDAsMC4zLDAsMC40LDAuMmMwLjEsMC4xLDAuMiwwLjMsMC4yLDAuNGMwLDAuMiwwLDAuMy0wLjEsMC40Yy0wLjEsMC4xLTAuMiwwLjItMC40LDAuMiAgIGMtMS4xLDAtMi41LDAuMS00LjMsMC4xdjAuOGg1LjFjMC4yLDAsMC4zLDAuMSwwLjQsMC4yYzAuMSwwLjEsMC4yLDAuMiwwLjIsMC40cy0wLjEsMC4zLTAuMiwwLjRjLTAuMSwwLjEtMC4yLDAuMi0wLjQsMC4yaC01LjEgICB2MC44aDMuOGMwLjIsMCwwLjQsMC4xLDAuNiwwLjJjMC4xLDAuMSwwLjIsMC4zLDAuMiwwLjZ2My4xYzAsMC4yLTAuMSwwLjQtMC4yLDAuNkM0MSwzNy43LDQwLjgsMzcuNyw0MC42LDM3Ljd6IE0zNS4xLDM0LjlWMzQgICBoLTIuOXYwLjlIMzUuMXogTTM1LjEsMzYuN3YtMC45aC0yLjl2MC45SDM1LjF6IE0zOS44LDM0LjlWMzRoLTIuOXYwLjlIMzkuOHogTTM5LjgsMzYuN3YtMC45aC0yLjl2MC45SDM5Ljh6Ii8+Cgk8cGF0aCBkPSJNNDUuNSw0MS4xYy0wLjMsMC40LTAuNywwLjUtMS4xLDAuM2MtMC40LTAuMy0wLjUtMC43LTAuMy0xLjFsMS0xLjdjMC4zLTAuNCwwLjctMC41LDEuMS0wLjNjMC40LDAuMywwLjUsMC43LDAuMywxLjEgICBMNDUuNSw0MS4xeiBNNTUsMzcuN2MtMC4xLDAtMC4xLDAtMC4yLDBoLTguOWMtMC4zLDAtMC41LTAuMS0wLjYtMC4yYy0wLjItMC4yLTAuMi0wLjQtMC4yLTAuNnYtMy40YzAtMC4yLDAuMS0wLjQsMC4yLTAuNiAgIGMwLjEtMC4xLDAuMy0wLjIsMC42LTAuMmgzLjN2LTMuMWMwLTAuMiwwLjEtMC40LDAuMi0wLjZjMC4yLTAuMiwwLjQtMC4yLDAuNi0wLjJzMC40LDAuMSwwLjYsMC4yYzAuMiwwLjIsMC4yLDAuNCwwLjIsMC42djAuM0g1NiAgIGMwLjIsMCwwLjQsMC4xLDAuNiwwLjJjMC4xLDAuMSwwLjIsMC4zLDAuMiwwLjZzLTAuMSwwLjQtMC4yLDAuNWMtMC4xLDAuMS0wLjMsMC4yLTAuNiwwLjJoLTUuMnYxLjNoNGMwLjIsMCwwLjQsMC4xLDAuNiwwLjIgICBjMC4xLDAuMSwwLjIsMC4zLDAuMiwwLjZ2My40QzU1LjYsMzcuMyw1NS40LDM3LjYsNTUsMzcuN3ogTTUzLjksMzYuMnYtMmgtNy4xdjJINTMuOXogTTQ5LjYsNDAuN2MwLDAuMy0wLjEsMC41LTAuMiwwLjYgICBjLTAuMiwwLjEtMC40LDAuMi0wLjYsMC4yYy0wLjIsMC0wLjQtMC4xLTAuNi0wLjJjLTAuMS0wLjItMC4yLTAuNC0wLjItMC42bDAtMS42YzAtMC4yLDAuMS0wLjQsMC4yLTAuNmMwLjItMC4yLDAuMy0wLjIsMC42LTAuMiAgIHMwLjQsMC4xLDAuNiwwLjJjMC4yLDAuMiwwLjIsMC40LDAuMiwwLjZWNDAuN3ogTTUyLjgsNDAuN2MwLDAuMi0wLjEsMC40LTAuMiwwLjZjLTAuMiwwLjEtMC40LDAuMi0wLjYsMC4yICAgYy0wLjIsMC0wLjQtMC4xLTAuNi0wLjJjLTAuMi0wLjEtMC4yLTAuMy0wLjItMC42bDAtMS42YzAtMC4yLDAuMS0wLjQsMC4yLTAuNmMwLjItMC4yLDAuMy0wLjIsMC42LTAuMmMwLjIsMCwwLjQsMC4xLDAuNiwwLjIgICBjMC4yLDAuMiwwLjIsMC40LDAuMiwwLjZWNDAuN3ogTTU2LjYsNDAuM2MwLjIsMC40LDAuMSwwLjgtMC4zLDEuMWMtMC41LDAuMy0wLjgsMC4yLTEuMS0wLjNsLTEtMS43Yy0wLjItMC41LTAuMS0wLjgsMC4zLTEuMSAgIGMwLjUtMC4yLDAuOS0wLjEsMS4xLDAuM0w1Ni42LDQwLjN6Ii8+CjwvZz4KPC9zdmc+";
871
896
  async function convertTextStyle(el, isByWord = false) {
872
897
  const { fetchToText } = useSharedTextAssets();
898
+ const elStyle = getStyle(el);
873
899
  const style = {
874
- ...el.style,
900
+ ...elStyle,
875
901
  highlightReferImage,
876
902
  listStyleType: "none",
877
903
  listStyleImage: "none"
878
904
  };
879
- if (el.style.fontSize) {
880
- style.fontSize = Math.floor(el.style.fontSize);
905
+ if (elStyle.fontSize) {
906
+ style.fontSize = Math.floor(elStyle.fontSize);
881
907
  }
882
908
  if (el.listStyle?.colormap) {
883
909
  style.listStyleColormap = el.listStyle?.colormap;
@@ -1030,7 +1056,7 @@ async function convertTextContent(el, isByWord = false) {
1030
1056
  }
1031
1057
  const percentageToPx = (per) => (Number.parseFloat(per) || 0) / 100;
1032
1058
  async function convertElement(el, parent, context) {
1033
- const style = { ...el.style ?? el };
1059
+ const style = { ...getStyle(el) };
1034
1060
  delete style.bottom;
1035
1061
  delete style.right;
1036
1062
  const { children: _children, ...raw } = el;
@@ -1190,9 +1216,7 @@ async function convertElement(el, parent, context) {
1190
1216
  }
1191
1217
  async function convertLayout(layout, isFrame = true, context) {
1192
1218
  const id = idGenerator();
1193
- const style = {
1194
- ...layout.style ?? layout
1195
- };
1219
+ const style = { ...getStyle(layout) };
1196
1220
  delete style.right;
1197
1221
  delete style.bottom;
1198
1222
  if (isFrame) {
@@ -1208,31 +1232,12 @@ async function convertLayout(layout, isFrame = true, context) {
1208
1232
  if (layout.name) {
1209
1233
  meta.rawName = layout.name;
1210
1234
  }
1211
- let background;
1212
- if (layout.background) {
1213
- if (layout.background.color) {
1214
- if (isGradient(layout.background.color ?? "")) {
1215
- background = {
1216
- image: layout.background.color
1217
- };
1218
- } else {
1219
- background = {
1220
- color: layout.background.color
1221
- };
1222
- }
1223
- }
1224
- if (layout.background.image) {
1225
- background = {
1226
- image: layout.background.image
1227
- };
1228
- }
1229
- }
1230
1235
  return {
1231
1236
  id,
1232
1237
  name: isFrame ? `Frame ${id}` : layout.name,
1233
1238
  style,
1234
1239
  // TODO 过滤掉部分属性
1235
- background,
1240
+ background: convertBackground(layout),
1236
1241
  children: (await Promise.all(
1237
1242
  layout.elements.map(async (element) => {
1238
1243
  try {
@@ -1269,7 +1274,7 @@ async function convertDoc(doc, gap = 0) {
1269
1274
  element.style.top = top;
1270
1275
  top += Number(element.style.height) + gap;
1271
1276
  }
1272
- element.name = `页面 ${index + 1}`;
1277
+ element.name = `画板 ${index + 1}`;
1273
1278
  return element;
1274
1279
  });
1275
1280
  const minmax = children.reduce((child) => {
@@ -1456,6 +1461,7 @@ export {
1456
1461
  bidTidLoader,
1457
1462
  bigeLoader,
1458
1463
  convertAnimation,
1464
+ convertBackground,
1459
1465
  convertDoc,
1460
1466
  convertElement,
1461
1467
  convertImageElementToUrl,
@@ -1465,6 +1471,7 @@ export {
1465
1471
  convertTextEffects,
1466
1472
  convertTextStyle,
1467
1473
  plugin as default,
1474
+ getStyle,
1468
1475
  getTextContents,
1469
1476
  parseAnimations,
1470
1477
  plugin,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mce/bigesj",
3
3
  "type": "module",
4
- "version": "0.13.13",
4
+ "version": "0.13.15",
5
5
  "description": "Plugin for mce",
6
6
  "author": "wxm",
7
7
  "license": "MIT",
@@ -48,7 +48,7 @@
48
48
  "fflate": "^0.8.2"
49
49
  },
50
50
  "devDependencies": {
51
- "mce": "0.13.13"
51
+ "mce": "0.13.15"
52
52
  },
53
53
  "peerDependencies": {
54
54
  "mce": "^0"