@visactor/vrender 0.22.0-vstory.7 → 0.22.0-vstory.9

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.
package/cjs/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import '@visactor/vrender-core';
2
- export declare const version = "0.22.0-vstory.7";
2
+ export declare const version = "0.22.0-vstory.9";
3
3
  export * from '@visactor/vrender-core';
4
4
  export * from '@visactor/vrender-kits';
package/cjs/index.js CHANGED
@@ -21,7 +21,7 @@ Object.defineProperty(exports, "__esModule", {
21
21
 
22
22
  const vrender_core_1 = require("@visactor/vrender-core"), vrender_kits_1 = require("@visactor/vrender-kits"), vrender_kits_2 = require("@visactor/vrender-kits");
23
23
 
24
- exports.version = "0.22.0-vstory.7", (0, vrender_core_1.preLoadAllModule)(), (0,
24
+ exports.version = "0.22.0-vstory.9", (0, vrender_core_1.preLoadAllModule)(), (0,
25
25
  vrender_core_1.isBrowserEnv)() ? (0, vrender_kits_1.loadBrowserEnv)(vrender_core_1.container) : (0,
26
26
  vrender_core_1.isNodeEnv)() && (0, vrender_kits_1.loadNodeEnv)(vrender_core_1.container),
27
27
  (0, vrender_kits_2.registerArc)(), (0, vrender_kits_2.registerArc3d)(), (0, vrender_kits_2.registerArea)(),
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAWgC;AAChC,yDAAqE;AACrE,yDAmBgC;AAEnB,QAAA,OAAO,GAAG,iBAAiB,CAAC;AAEzC,IAAA,+BAAgB,GAAE,CAAC;AAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;IAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;CAC3B;KAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;IACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;CACxB;AACD,IAAA,0BAAW,GAAE,CAAC;AACd,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,8BAAe,GAAE,CAAC;AAClB,IAAA,gCAAiB,GAAE,CAAC;AACpB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,+BAAgB,GAAE,CAAC;AACnB,IAAA,iCAAkB,GAAE,CAAC;AACrB,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,+BAAgB,GAAE,CAAC;AAEnB,IAAA,uCAAwB,GAAE,CAAC;AAC3B,IAAA,4CAA6B,GAAE,CAAC;AAChC,IAAA,0CAA2B,GAAE,CAAC;AAC9B,IAAA,2CAA4B,GAAE,CAAC;AAC/B,IAAA,uCAAwB,GAAE,CAAC;AAC3B,IAAA,kCAAmB,GAAE,CAAC;AACtB,yDAAuC;AACvC,yDAAuC","file":"index.js","sourcesContent":["import '@visactor/vrender-core';\nimport {\n container,\n isBrowserEnv,\n isNodeEnv,\n preLoadAllModule,\n registerFlexLayoutPlugin,\n registerViewTransform3dPlugin,\n registerHtmlAttributePlugin,\n registerReactAttributePlugin,\n registerDirectionalLight,\n registerOrthoCamera\n} from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\nexport const version = \"0.22.0-vstory.7\";\n\npreLoadAllModule();\n\nif (isBrowserEnv()) {\n loadBrowserEnv(container);\n} else if (isNodeEnv()) {\n loadNodeEnv(container);\n}\nregisterArc();\nregisterArc3d();\nregisterArea();\nregisterCircle();\nregisterGlyph();\nregisterGroup();\nregisterImage();\nregisterLine();\nregisterPath();\nregisterPolygon();\nregisterPyramid3d();\nregisterRect();\nregisterRect3d();\nregisterRichtext();\nregisterShadowRoot();\nregisterSymbol();\nregisterText();\nregisterWrapText();\n\nregisterFlexLayoutPlugin();\nregisterViewTransform3dPlugin();\nregisterHtmlAttributePlugin();\nregisterReactAttributePlugin();\nregisterDirectionalLight();\nregisterOrthoCamera();\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kCAAgC;AAChC,yDAWgC;AAChC,yDAAqE;AACrE,yDAmBgC;AAEnB,QAAA,OAAO,GAAG,iBAAiB,CAAC;AAEzC,IAAA,+BAAgB,GAAE,CAAC;AAEnB,IAAI,IAAA,2BAAY,GAAE,EAAE;IAClB,IAAA,6BAAc,EAAC,wBAAS,CAAC,CAAC;CAC3B;KAAM,IAAI,IAAA,wBAAS,GAAE,EAAE;IACtB,IAAA,0BAAW,EAAC,wBAAS,CAAC,CAAC;CACxB;AACD,IAAA,0BAAW,GAAE,CAAC;AACd,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,4BAAa,GAAE,CAAC;AAChB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,8BAAe,GAAE,CAAC;AAClB,IAAA,gCAAiB,GAAE,CAAC;AACpB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,+BAAgB,GAAE,CAAC;AACnB,IAAA,iCAAkB,GAAE,CAAC;AACrB,IAAA,6BAAc,GAAE,CAAC;AACjB,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,+BAAgB,GAAE,CAAC;AAEnB,IAAA,uCAAwB,GAAE,CAAC;AAC3B,IAAA,4CAA6B,GAAE,CAAC;AAChC,IAAA,0CAA2B,GAAE,CAAC;AAC9B,IAAA,2CAA4B,GAAE,CAAC;AAC/B,IAAA,uCAAwB,GAAE,CAAC;AAC3B,IAAA,kCAAmB,GAAE,CAAC;AACtB,yDAAuC;AACvC,yDAAuC","file":"index.js","sourcesContent":["import '@visactor/vrender-core';\nimport {\n container,\n isBrowserEnv,\n isNodeEnv,\n preLoadAllModule,\n registerFlexLayoutPlugin,\n registerViewTransform3dPlugin,\n registerHtmlAttributePlugin,\n registerReactAttributePlugin,\n registerDirectionalLight,\n registerOrthoCamera\n} from '@visactor/vrender-core';\nimport { loadBrowserEnv, loadNodeEnv } from '@visactor/vrender-kits';\nimport {\n registerArc,\n registerArc3d,\n registerArea,\n registerCircle,\n registerGlyph,\n registerGroup,\n registerImage,\n registerLine,\n registerPath,\n registerPolygon,\n registerPyramid3d,\n registerRect,\n registerRect3d,\n registerRichtext,\n registerShadowRoot,\n registerSymbol,\n registerText,\n registerWrapText\n} from '@visactor/vrender-kits';\n// 导出版本号\nexport const version = \"0.22.0-vstory.9\";\n\npreLoadAllModule();\n\nif (isBrowserEnv()) {\n loadBrowserEnv(container);\n} else if (isNodeEnv()) {\n loadNodeEnv(container);\n}\nregisterArc();\nregisterArc3d();\nregisterArea();\nregisterCircle();\nregisterGlyph();\nregisterGroup();\nregisterImage();\nregisterLine();\nregisterPath();\nregisterPolygon();\nregisterPyramid3d();\nregisterRect();\nregisterRect3d();\nregisterRichtext();\nregisterShadowRoot();\nregisterSymbol();\nregisterText();\nregisterWrapText();\n\nregisterFlexLayoutPlugin();\nregisterViewTransform3dPlugin();\nregisterHtmlAttributePlugin();\nregisterReactAttributePlugin();\nregisterDirectionalLight();\nregisterOrthoCamera();\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\n"]}
package/dist/index.es.js CHANGED
@@ -13930,19 +13930,11 @@ class Paragraph {
13930
13930
  }
13931
13931
  }
13932
13932
  }
13933
- switch (this.character.script) {
13934
- case "super":
13935
- baseline -= this.ascent * (1 / 3);
13936
- break;
13937
- case "sub":
13938
- baseline += this.descent / 2;
13939
- }
13940
- "vertical" === direction && (ctx.save(), ctx.rotateAbout(Math.PI / 2, left, baseline), ctx.translate(-this.heightOrigin || -this.lineHeight / 2, -this.descent / 2), ctx.translate(left, baseline), left = 0, baseline = 0);
13941
- const fillStyle = ctx.fillStyle,
13942
- globalAlpha = ctx.globalAlpha;
13943
- ctx.fillStyle = this.character.background, void 0 !== this.character.backgroundOpacity && (ctx.globalAlpha = this.character.backgroundOpacity);
13944
13933
  const lrtb = getFixedLRTB(left, left + (this.widthOrigin || this.width), top, top + lineHeight);
13945
- ctx.fillRect(lrtb.left, lrtb.top, lrtb.right - lrtb.left, lrtb.bottom - lrtb.top), ctx.fillStyle = fillStyle, ctx.globalAlpha = globalAlpha;
13934
+ return Object.assign(Object.assign({}, lrtb), {
13935
+ fillStyle: this.character.background,
13936
+ globalAlpha: this.character.backgroundOpacity
13937
+ });
13946
13938
  }
13947
13939
  draw(ctx, top, ascent, deltaLeft, isLineFirst, textAlign, lineHeight) {
13948
13940
  let baseline = top + ascent,
@@ -14216,8 +14208,19 @@ class Line {
14216
14208
  paragraph.ellipsis = "hide", otherParagraphWidth += paragraph.width;
14217
14209
  }
14218
14210
  }
14211
+ let fillStyle = "",
14212
+ globalAlpha = -1,
14213
+ currBgList = [];
14214
+ const bgList = [currBgList];
14219
14215
  this.paragraphs.forEach((paragraph, index) => {
14220
- paragraph instanceof RichTextIcon || paragraph.drawBackground(ctx, y, this.ascent, x, 0 === index, this.textAlign, this.height);
14216
+ if (paragraph instanceof RichTextIcon) return;
14217
+ const data = paragraph.drawBackground(ctx, y, this.ascent, x, 0 === index, this.textAlign, this.height);
14218
+ data && (fillStyle === data.fillStyle && globalAlpha === data.globalAlpha || (currBgList = [], bgList.push(currBgList), fillStyle = data.fillStyle, globalAlpha = data.globalAlpha), currBgList.push(data));
14219
+ }), bgList.forEach(bg => {
14220
+ if (0 === bg.length) return;
14221
+ const data = bg[0],
14222
+ end = bg[bg.length - 1];
14223
+ ctx.fillStyle = data.fillStyle, ctx.globalAlpha = data.globalAlpha, ctx.fillRect(data.left, data.top, end.right - data.left, end.bottom - data.top);
14221
14224
  }), this.paragraphs.forEach((paragraph, index) => {
14222
14225
  if (paragraph instanceof RichTextIcon) return paragraph.setAttributes({
14223
14226
  x: x + paragraph._x,
@@ -20549,13 +20552,13 @@ class RichTextEditPlugin {
20549
20552
  }, this.handleFocusOut = () => {
20550
20553
  throw new Error("不会走到这里 handleFocusOut");
20551
20554
  }, this.handleMove = e => {
20552
- this.isRichtext(e) && (this.currRt = e.target, this.handleEnter(e), e.target.once("pointerleave", this.handleLeave), this.tryShowSelection(e, !1));
20553
- }, this.handleEnter = e => {
20555
+ this.currRt && !this.currRt.attribute.editable && this.deFocus(!0), this.isEditableRichtext(e) ? (this.handleEnter(), e.target.once("pointerleave", this.handleLeave), this.tryShowSelection(e, !1)) : this.handleLeave();
20556
+ }, this.handleEnter = () => {
20554
20557
  this.editing = !0, this.pluginService.stage.setCursor("text");
20555
- }, this.handleLeave = e => {
20558
+ }, this.handleLeave = () => {
20556
20559
  this.editing = !1, this.pluginService.stage.setCursor("default");
20557
20560
  }, this.handlePointerDown = e => {
20558
- this.editing ? this.onFocus(e) : this.deFocus(!0), this.triggerRender(), this.pointerDown = !0, this.updateCbs.forEach(cb => cb(this.editing ? "onfocus" : "defocus", this));
20561
+ this.editing && this.isEditableRichtext(e) ? this.onFocus(e) : this.deFocus(!0), this.triggerRender(), this.pointerDown = !0, this.updateCbs.forEach(cb => cb(this.editing ? "onfocus" : "defocus", this));
20559
20562
  }, this.handlePointerUp = e => {
20560
20563
  this.pointerDown = !1;
20561
20564
  }, this.handleDBLClick = e => {
@@ -20859,7 +20862,7 @@ class RichTextEditPlugin {
20859
20862
  for (; lastConfig && "\n" === lastConfig.text;) textConfig.pop(), lastConfig = textConfig[textConfig.length - 1], cleared = !0;
20860
20863
  cleared && currRt.setAttributes({
20861
20864
  textConfig: textConfig
20862
- });
20865
+ }), currRt.removeEventListener("pointerleave", this.handleLeave);
20863
20866
  }
20864
20867
  addAnimateToLine(line) {
20865
20868
  line.animates && line.animates.forEach(animate => {
@@ -21007,7 +21010,10 @@ class RichTextEditPlugin {
21007
21010
  return -1;
21008
21011
  }
21009
21012
  isRichtext(e) {
21010
- return !(!e.target || "richtext" !== e.target.type || !e.target.attribute.editable);
21013
+ return !(!e.target || "richtext" !== e.target.type);
21014
+ }
21015
+ isEditableRichtext(e) {
21016
+ return this.isRichtext(e) && !!e.target.attribute.editable;
21011
21017
  }
21012
21018
  triggerRender() {
21013
21019
  this.pluginService.stage.renderNextFrame();
@@ -21153,7 +21159,7 @@ class RichTextEditPlugin {
21153
21159
  target && (this.currRt = target, e ? this._forceFocusByEvent(e) : this._forceFocusByCursorIndex(null != cursorIndex ? cursorIndex : -.1));
21154
21160
  }
21155
21161
  _forceFocusByEvent(e) {
21156
- this.handleEnter(e), this.handlePointerDown(e), this.handlePointerUp(e);
21162
+ this.handleEnter(), this.handlePointerDown(e), this.handlePointerUp(e);
21157
21163
  }
21158
21164
  _forceFocusByCursorIndex(cursorIndex) {
21159
21165
  const richtext = this.currRt;
@@ -30471,7 +30477,7 @@ const registerWrapText = _registerWrapText;
30471
30477
 
30472
30478
  const roughModule = _roughModule;
30473
30479
 
30474
- const version = "0.22.0-vstory.7";
30480
+ const version = "0.22.0-vstory.9";
30475
30481
  preLoadAllModule();
30476
30482
  if (isBrowserEnv()) {
30477
30483
  loadBrowserEnv(container);
package/dist/index.js CHANGED
@@ -13936,19 +13936,11 @@
13936
13936
  }
13937
13937
  }
13938
13938
  }
13939
- switch (this.character.script) {
13940
- case "super":
13941
- baseline -= this.ascent * (1 / 3);
13942
- break;
13943
- case "sub":
13944
- baseline += this.descent / 2;
13945
- }
13946
- "vertical" === direction && (ctx.save(), ctx.rotateAbout(Math.PI / 2, left, baseline), ctx.translate(-this.heightOrigin || -this.lineHeight / 2, -this.descent / 2), ctx.translate(left, baseline), left = 0, baseline = 0);
13947
- const fillStyle = ctx.fillStyle,
13948
- globalAlpha = ctx.globalAlpha;
13949
- ctx.fillStyle = this.character.background, void 0 !== this.character.backgroundOpacity && (ctx.globalAlpha = this.character.backgroundOpacity);
13950
13939
  const lrtb = getFixedLRTB(left, left + (this.widthOrigin || this.width), top, top + lineHeight);
13951
- ctx.fillRect(lrtb.left, lrtb.top, lrtb.right - lrtb.left, lrtb.bottom - lrtb.top), ctx.fillStyle = fillStyle, ctx.globalAlpha = globalAlpha;
13940
+ return Object.assign(Object.assign({}, lrtb), {
13941
+ fillStyle: this.character.background,
13942
+ globalAlpha: this.character.backgroundOpacity
13943
+ });
13952
13944
  }
13953
13945
  draw(ctx, top, ascent, deltaLeft, isLineFirst, textAlign, lineHeight) {
13954
13946
  let baseline = top + ascent,
@@ -14222,8 +14214,19 @@
14222
14214
  paragraph.ellipsis = "hide", otherParagraphWidth += paragraph.width;
14223
14215
  }
14224
14216
  }
14217
+ let fillStyle = "",
14218
+ globalAlpha = -1,
14219
+ currBgList = [];
14220
+ const bgList = [currBgList];
14225
14221
  this.paragraphs.forEach((paragraph, index) => {
14226
- paragraph instanceof RichTextIcon || paragraph.drawBackground(ctx, y, this.ascent, x, 0 === index, this.textAlign, this.height);
14222
+ if (paragraph instanceof RichTextIcon) return;
14223
+ const data = paragraph.drawBackground(ctx, y, this.ascent, x, 0 === index, this.textAlign, this.height);
14224
+ data && (fillStyle === data.fillStyle && globalAlpha === data.globalAlpha || (currBgList = [], bgList.push(currBgList), fillStyle = data.fillStyle, globalAlpha = data.globalAlpha), currBgList.push(data));
14225
+ }), bgList.forEach(bg => {
14226
+ if (0 === bg.length) return;
14227
+ const data = bg[0],
14228
+ end = bg[bg.length - 1];
14229
+ ctx.fillStyle = data.fillStyle, ctx.globalAlpha = data.globalAlpha, ctx.fillRect(data.left, data.top, end.right - data.left, end.bottom - data.top);
14227
14230
  }), this.paragraphs.forEach((paragraph, index) => {
14228
14231
  if (paragraph instanceof RichTextIcon) return paragraph.setAttributes({
14229
14232
  x: x + paragraph._x,
@@ -20555,13 +20558,13 @@
20555
20558
  }, this.handleFocusOut = () => {
20556
20559
  throw new Error("不会走到这里 handleFocusOut");
20557
20560
  }, this.handleMove = e => {
20558
- this.isRichtext(e) && (this.currRt = e.target, this.handleEnter(e), e.target.once("pointerleave", this.handleLeave), this.tryShowSelection(e, !1));
20559
- }, this.handleEnter = e => {
20561
+ this.currRt && !this.currRt.attribute.editable && this.deFocus(!0), this.isEditableRichtext(e) ? (this.handleEnter(), e.target.once("pointerleave", this.handleLeave), this.tryShowSelection(e, !1)) : this.handleLeave();
20562
+ }, this.handleEnter = () => {
20560
20563
  this.editing = !0, this.pluginService.stage.setCursor("text");
20561
- }, this.handleLeave = e => {
20564
+ }, this.handleLeave = () => {
20562
20565
  this.editing = !1, this.pluginService.stage.setCursor("default");
20563
20566
  }, this.handlePointerDown = e => {
20564
- this.editing ? this.onFocus(e) : this.deFocus(!0), this.triggerRender(), this.pointerDown = !0, this.updateCbs.forEach(cb => cb(this.editing ? "onfocus" : "defocus", this));
20567
+ this.editing && this.isEditableRichtext(e) ? this.onFocus(e) : this.deFocus(!0), this.triggerRender(), this.pointerDown = !0, this.updateCbs.forEach(cb => cb(this.editing ? "onfocus" : "defocus", this));
20565
20568
  }, this.handlePointerUp = e => {
20566
20569
  this.pointerDown = !1;
20567
20570
  }, this.handleDBLClick = e => {
@@ -20865,7 +20868,7 @@
20865
20868
  for (; lastConfig && "\n" === lastConfig.text;) textConfig.pop(), lastConfig = textConfig[textConfig.length - 1], cleared = !0;
20866
20869
  cleared && currRt.setAttributes({
20867
20870
  textConfig: textConfig
20868
- });
20871
+ }), currRt.removeEventListener("pointerleave", this.handleLeave);
20869
20872
  }
20870
20873
  addAnimateToLine(line) {
20871
20874
  line.animates && line.animates.forEach(animate => {
@@ -21013,7 +21016,10 @@
21013
21016
  return -1;
21014
21017
  }
21015
21018
  isRichtext(e) {
21016
- return !(!e.target || "richtext" !== e.target.type || !e.target.attribute.editable);
21019
+ return !(!e.target || "richtext" !== e.target.type);
21020
+ }
21021
+ isEditableRichtext(e) {
21022
+ return this.isRichtext(e) && !!e.target.attribute.editable;
21017
21023
  }
21018
21024
  triggerRender() {
21019
21025
  this.pluginService.stage.renderNextFrame();
@@ -21159,7 +21165,7 @@
21159
21165
  target && (this.currRt = target, e ? this._forceFocusByEvent(e) : this._forceFocusByCursorIndex(null != cursorIndex ? cursorIndex : -.1));
21160
21166
  }
21161
21167
  _forceFocusByEvent(e) {
21162
- this.handleEnter(e), this.handlePointerDown(e), this.handlePointerUp(e);
21168
+ this.handleEnter(), this.handlePointerDown(e), this.handlePointerUp(e);
21163
21169
  }
21164
21170
  _forceFocusByCursorIndex(cursorIndex) {
21165
21171
  const richtext = this.currRt;
@@ -30477,7 +30483,7 @@
30477
30483
 
30478
30484
  const roughModule = _roughModule;
30479
30485
 
30480
- const version = "0.22.0-vstory.7";
30486
+ const version = "0.22.0-vstory.9";
30481
30487
  preLoadAllModule();
30482
30488
  if (isBrowserEnv()) {
30483
30489
  loadBrowserEnv(container);