@visactor/vrender-kits 1.1.8-alpha.0 → 1.1.8-alpha.1

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.
@@ -35,14 +35,18 @@ class LynxContext2d extends browser_1.BrowserContext2d {
35
35
  }
36
36
  }
37
37
  measureText(text, method = application_1.application.global.measureTextMethod) {
38
- this.setTransform(1, 0, 0, 1, 0, 0, !0, application_1.application.global.devicePixelRatio);
39
- return {
40
- width: super.measureText(text, method).width,
41
- fontBoundingBoxDescent: void 0,
42
- fontBoundingBoxAscent: void 0,
43
- actualBoundingBoxAscent: void 0,
44
- actualBoundingBoxDescent: void 0
45
- };
38
+ const dpr = this.dpr || 1;
39
+ this.setTransform(1, 0, 0, 1, 0, 0, !0, dpr);
40
+ const metrics = super.measureText(text, method);
41
+ return 1 === dpr || null == metrics.fontBoundingBoxAscent || null == metrics.fontBoundingBoxDescent ? metrics : Object.assign(Object.assign({}, metrics), {
42
+ width: metrics.width,
43
+ actualBoundingBoxLeft: metrics.actualBoundingBoxLeft,
44
+ actualBoundingBoxRight: metrics.actualBoundingBoxRight,
45
+ actualBoundingBoxAscent: metrics.actualBoundingBoxAscent,
46
+ actualBoundingBoxDescent: metrics.actualBoundingBoxDescent,
47
+ fontBoundingBoxAscent: metrics.fontBoundingBoxAscent / dpr,
48
+ fontBoundingBoxDescent: metrics.fontBoundingBoxDescent / dpr
49
+ });
46
50
  }
47
51
  createPattern(image, repetition) {
48
52
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { application } from '@visactor/vrender-core/application';\nimport { createColor, getScaledStroke } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n lineDash && _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit,\n keepStrokeScale = defaultParams.keepStrokeScale,\n lineDashOffset = defaultParams.lineDashOffset\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity * this.baseGlobalAlpha;\n _context.lineWidth = keepStrokeScale ? lineWidth : getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0) && lineDash) {\n _context.setLineDash(lineDash);\n _context.lineDashOffset = lineDashOffset;\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data: any = super.measureText(text, method);\n // lynx环境中的fontBoundingBoxDescent和fontBoundingBoxAscent有严重偏移,暂时规避\n return {\n width: data.width,\n fontBoundingBoxDescent: undefined,\n fontBoundingBoxAscent: undefined,\n actualBoundingBoxAscent: undefined,\n actualBoundingBoxDescent: undefined\n } as any;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n if (!_context.draw) {\n return;\n }\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { application } from '@visactor/vrender-core/application';\nimport { createColor, getScaledStroke } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n lineDash && _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit,\n keepStrokeScale = defaultParams.keepStrokeScale,\n lineDashOffset = defaultParams.lineDashOffset\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity * this.baseGlobalAlpha;\n _context.lineWidth = keepStrokeScale ? lineWidth : getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0) && lineDash) {\n _context.setLineDash(lineDash);\n _context.lineDashOffset = lineDashOffset;\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n const dpr = this.dpr || 1;\n this.setTransform(1, 0, 0, 1, 0, 0, true, dpr);\n const metrics = super.measureText(text, method) as TextMetrics;\n if (dpr === 1 || metrics.fontBoundingBoxAscent == null || metrics.fontBoundingBoxDescent == null) {\n return metrics;\n }\n return {\n ...metrics,\n width: metrics.width,\n actualBoundingBoxLeft: metrics.actualBoundingBoxLeft,\n actualBoundingBoxRight: metrics.actualBoundingBoxRight,\n actualBoundingBoxAscent: metrics.actualBoundingBoxAscent,\n actualBoundingBoxDescent: metrics.actualBoundingBoxDescent,\n fontBoundingBoxAscent: metrics.fontBoundingBoxAscent / dpr,\n fontBoundingBoxDescent: metrics.fontBoundingBoxDescent / dpr\n } as any;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n if (!_context.draw) {\n return;\n }\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
package/dist/index.es.js CHANGED
@@ -6290,7 +6290,7 @@ class Node extends EventEmitter {
6290
6290
  constructor() {
6291
6291
  super(), this._uid = Generator.GenAutoIncrementId(), this._firstChild = null, this._lastChild = null, this.parent = null, this._count = 1;
6292
6292
  }
6293
- onParentSharedStateTreeChanged(_stage, _layer) {}
6293
+ onParentSharedStateTreeChanged(_stage, _layer, _inheritedSharedStateScope) {}
6294
6294
  forEachChildren(cb, reverse = !1) {
6295
6295
  if (reverse) {
6296
6296
  let child = this._lastChild,
@@ -8647,14 +8647,17 @@ class GraphicImpl extends Node {
8647
8647
  }
8648
8648
  return null === (_a = this.stage) || void 0 === _a ? void 0 : _a.rootSharedStateScope;
8649
8649
  }
8650
- syncSharedStateScopeBindingFromTree(markDirty = !0) {
8650
+ syncSharedStateScopeBinding(nextScope, markDirty = !0) {
8651
8651
  var _a;
8652
- const nextScope = this.resolveBoundSharedStateScope();
8653
8652
  return this.boundSharedStateScope === nextScope ? (this.syncSharedStateActiveRegistrations(), !1) : (this.boundSharedStateScope = nextScope, this.boundSharedStateRevision = void 0, this.compiledStateDefinitions = void 0, this.compiledStateDefinitionsCacheKey = void 0, this.stateEngine = void 0, this.stateEngineCompiledDefinitions = void 0, this.syncSharedStateActiveRegistrations(), markDirty && (null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) && this.markSharedStateDirty(), !0);
8654
8653
  }
8655
- syncSharedStateScopeBindingOnTreeChange(markDirty = !0) {
8654
+ syncSharedStateScopeBindingFromTree(markDirty = !0, inheritedSharedStateScope) {
8655
+ const nextScope = void 0 === inheritedSharedStateScope ? this.resolveBoundSharedStateScope() : null != inheritedSharedStateScope ? inheritedSharedStateScope : void 0;
8656
+ return this.syncSharedStateScopeBinding(nextScope, markDirty);
8657
+ }
8658
+ syncSharedStateScopeBindingOnTreeChange(markDirty = !0, inheritedSharedStateScope) {
8656
8659
  var _a, _b;
8657
- return !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.boundSharedStateScope || (null === (_b = this.registeredActiveScopes) || void 0 === _b ? void 0 : _b.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingFromTree(markDirty);
8660
+ return !!((null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || this.boundSharedStateScope || (null === (_b = this.registeredActiveScopes) || void 0 === _b ? void 0 : _b.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingFromTree(markDirty, inheritedSharedStateScope);
8658
8661
  }
8659
8662
  syncSharedStateActiveRegistrations() {
8660
8663
  var _a;
@@ -8662,6 +8665,7 @@ class GraphicImpl extends Node {
8662
8665
  if (!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length) || !this.boundSharedStateScope) return (null == previousScopes ? void 0 : previousScopes.size) && (previousScopes.forEach(scope => {
8663
8666
  scope.subtreeActiveDescendants.delete(this);
8664
8667
  }), previousScopes.clear()), void (this.registeredActiveScopes = void 0);
8668
+ if ((null == previousScopes ? void 0 : previousScopes.size) && this.isSharedStateScopeChainRegistered(previousScopes)) return;
8665
8669
  const nextScopes = new Set(collectSharedStateScopeChain(this.boundSharedStateScope));
8666
8670
  null == previousScopes || previousScopes.forEach(scope => {
8667
8671
  nextScopes.has(scope) || scope.subtreeActiveDescendants.delete(this);
@@ -8669,6 +8673,15 @@ class GraphicImpl extends Node {
8669
8673
  scope.subtreeActiveDescendants.add(this);
8670
8674
  }), this.registeredActiveScopes = nextScopes;
8671
8675
  }
8676
+ isSharedStateScopeChainRegistered(previousScopes) {
8677
+ let scope = this.boundSharedStateScope,
8678
+ scopeCount = 0;
8679
+ for (; scope;) {
8680
+ if (!previousScopes.has(scope)) return !1;
8681
+ scopeCount += 1, scope = scope.parentScope;
8682
+ }
8683
+ return scopeCount === previousScopes.size;
8684
+ }
8672
8685
  clearSharedStateActiveRegistrations() {
8673
8686
  const previousScopes = this.registeredActiveScopes;
8674
8687
  previousScopes && (previousScopes.forEach(scope => {
@@ -8678,8 +8691,8 @@ class GraphicImpl extends Node {
8678
8691
  markSharedStateDirty() {
8679
8692
  this.sharedStateDirty = !0, enqueueGraphicSharedStateRefresh(this.stage, this), scheduleStageSharedStateRefresh(this.stage);
8680
8693
  }
8681
- onParentSharedStateTreeChanged(stage, layer) {
8682
- this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange() : this.setStage(stage, layer);
8694
+ onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
8695
+ this.stage === stage && this.layer === layer ? this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope) : this.setStage(stage, layer, inheritedSharedStateScope);
8683
8696
  }
8684
8697
  refreshSharedStateBeforeRender() {
8685
8698
  var _a;
@@ -9329,6 +9342,10 @@ class GraphicImpl extends Node {
9329
9342
  var _a;
9330
9343
  return null === (_a = this.states) || void 0 === _a ? void 0 : _a[stateName];
9331
9344
  }
9345
+ setStateDefinitionsWithCompiled(definitions, compiledDefinitions) {
9346
+ var _a;
9347
+ this.states = definitions, this.localStateDefinitionsSource !== definitions && (this.localStateDefinitionsSource = definitions, this.localStateDefinitionsVersion = (null !== (_a = this.localStateDefinitionsVersion) && void 0 !== _a ? _a : 0) + 1), this.compiledStateDefinitions = compiledDefinitions, this.compiledStateDefinitionsCacheKey = `local:${this.localStateDefinitionsVersion}`;
9348
+ }
9332
9349
  getStateResolveBaseAttrs() {
9333
9350
  var _a;
9334
9351
  return null !== (_a = this.baseAttributes) && void 0 !== _a ? _a : this.attribute;
@@ -9692,12 +9709,12 @@ class GraphicImpl extends Node {
9692
9709
  this._globalTransMatrix.translate(scrollX, scrollY);
9693
9710
  }
9694
9711
  }
9695
- setStage(stage, layer) {
9712
+ setStage(stage, layer, inheritedSharedStateScope) {
9696
9713
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
9697
9714
  const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
9698
9715
  previousStage = this.stage;
9699
9716
  if (this.stage !== stage || this.layer !== layer) {
9700
- if (this.stage = stage, this.layer = layer, ((null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0), this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
9717
+ if (this.stage = stage, this.layer = layer, ((null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope), this.setStageToShadowRoot(stage, layer), this.mayHaveTrackedAnimates() && this.hasAnyTrackedAnimate()) {
9701
9718
  const previousTimeline = null === (_f = null == previousStage ? void 0 : previousStage.getTimeline) || void 0 === _f ? void 0 : _f.call(previousStage),
9702
9719
  nextTimeline = null === (_g = null == stage ? void 0 : stage.getTimeline) || void 0 === _g ? void 0 : _g.call(stage),
9703
9720
  detachedStageAnimates = [];
@@ -9714,7 +9731,7 @@ class GraphicImpl extends Node {
9714
9731
  }
9715
9732
  return this._onSetStage && this._onSetStage(this, stage, layer), void (null === (_h = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _h || _h.call(graphicService, this, stage));
9716
9733
  }
9717
- ((null === (_j = this.currentStates) || void 0 === _j ? void 0 : _j.length) || this.boundSharedStateScope || (null === (_k = this.registeredActiveScopes) || void 0 === _k ? void 0 : _k.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0);
9734
+ ((null === (_j = this.currentStates) || void 0 === _j ? void 0 : _j.length) || this.boundSharedStateScope || (null === (_k = this.registeredActiveScopes) || void 0 === _k ? void 0 : _k.size) || this.sharedStateDirty) && this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope);
9718
9735
  }
9719
9736
  detachStageForRelease() {
9720
9737
  var _a, _b, _c;
@@ -10136,13 +10153,13 @@ class Group extends Graphic {
10136
10153
  child.setStage(null, null);
10137
10154
  }), this.addUpdateBoundTag();
10138
10155
  }
10139
- setStage(stage, layer) {
10156
+ setStage(stage, layer, inheritedSharedStateScope) {
10140
10157
  var _a, _b, _c, _d, _e, _f;
10141
10158
  const graphicService = null !== (_c = null !== (_a = null == stage ? void 0 : stage.graphicService) && void 0 !== _a ? _a : null === (_b = this.stage) || void 0 === _b ? void 0 : _b.graphicService) && void 0 !== _c ? _c : application.graphicService,
10142
10159
  needsSharedStateTreeSync = this.hasSharedStateDefinitions() || this.sharedStateScope || (null === (_d = this.currentStates) || void 0 === _d ? void 0 : _d.length) || this.boundSharedStateScope || (null === (_e = this.registeredActiveScopes) || void 0 === _e ? void 0 : _e.size) || this.sharedStateDirty;
10143
- if (this.stage !== stage) return this.stage = stage, this.layer = layer, needsSharedStateTreeSync && (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_f = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _f || _f.call(graphicService, this, stage), void this.notifyChildrenSharedStateTreeChanged();
10160
+ if (this.stage !== stage) return this.stage = stage, this.layer = layer, needsSharedStateTreeSync && (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope)), this.setStageToShadowRoot(stage, layer), this._onSetStage && this._onSetStage(this, stage, layer), null === (_f = null == graphicService ? void 0 : graphicService.onSetStage) || void 0 === _f || _f.call(graphicService, this, stage), void this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
10144
10161
  const layerChanged = this.layer !== layer;
10145
- layerChanged && (this.layer = layer), needsSharedStateTreeSync ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0), this.notifyChildrenSharedStateTreeChanged()) : layerChanged && this.notifyChildrenSharedStateTreeChanged();
10162
+ layerChanged && (this.layer = layer), needsSharedStateTreeSync ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!0, inheritedSharedStateScope), this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope)) : layerChanged && this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope);
10146
10163
  }
10147
10164
  addUpdatePositionTag() {
10148
10165
  super.addUpdatePositionTag(), this.forEachChildren(g => {
@@ -10201,17 +10218,26 @@ class Group extends Graphic {
10201
10218
  hasSharedStateDefinitions() {
10202
10219
  return !!this._sharedStateDefinitions && Object.keys(this._sharedStateDefinitions).length > 0;
10203
10220
  }
10204
- notifyChildrenSharedStateTreeChanged() {
10221
+ resolveChildSharedStateScope(inheritedSharedStateScope) {
10222
+ var _a;
10223
+ return this.sharedStateScope ? this.sharedStateScope : void 0 !== inheritedSharedStateScope ? inheritedSharedStateScope : null !== (_a = this.resolveBoundSharedStateScope()) && void 0 !== _a ? _a : null;
10224
+ }
10225
+ notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope) {
10226
+ const childSharedStateScope = this.resolveChildSharedStateScope(inheritedSharedStateScope);
10205
10227
  this.forEachChildren(item => {
10206
- this.syncChildSharedStateTreeBinding(item);
10228
+ this.setStageToChild(item, childSharedStateScope);
10207
10229
  });
10208
10230
  }
10209
- syncChildSharedStateTreeBinding(child) {
10210
- child.onParentSharedStateTreeChanged(this.stage, this.layer);
10231
+ setStageToChild(child, inheritedSharedStateScope) {
10232
+ const graphic = child;
10233
+ "function" != typeof graphic.setStage || child.onParentSharedStateTreeChanged !== Graphic.prototype.onParentSharedStateTreeChanged && child.onParentSharedStateTreeChanged !== Group.prototype.onParentSharedStateTreeChanged || graphic.stage === this.stage && graphic.layer === this.layer ? child.onParentSharedStateTreeChanged(this.stage, this.layer, inheritedSharedStateScope) : graphic.setStage(this.stage, this.layer, inheritedSharedStateScope);
10234
+ }
10235
+ syncChildSharedStateTreeBinding(child, inheritedSharedStateScope) {
10236
+ void 0 === inheritedSharedStateScope && (inheritedSharedStateScope = this.resolveChildSharedStateScope()), this.setStageToChild(child, inheritedSharedStateScope);
10211
10237
  }
10212
- onParentSharedStateTreeChanged(stage, layer) {
10238
+ onParentSharedStateTreeChanged(stage, layer, inheritedSharedStateScope) {
10213
10239
  var _a;
10214
- this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length)), this.notifyChildrenSharedStateTreeChanged()) : this.setStage(stage, layer);
10240
+ this.stage === stage && this.layer === layer ? (this.ensureSharedStateScopeBound(), this.syncSharedStateScopeBindingOnTreeChange(!!(null === (_a = this.currentStates) || void 0 === _a ? void 0 : _a.length), inheritedSharedStateScope), this.notifyChildrenSharedStateTreeChanged(inheritedSharedStateScope)) : this.setStage(stage, layer, inheritedSharedStateScope);
10215
10241
  }
10216
10242
  }
10217
10243
  Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
@@ -13592,8 +13618,8 @@ class RichText extends Graphic {
13592
13618
  clone() {
13593
13619
  return new RichText(Object.assign({}, this.attribute));
13594
13620
  }
13595
- setStage(stage, layer) {
13596
- super.setStage(stage, layer);
13621
+ setStage(stage, layer, inheritedSharedStateScope) {
13622
+ super.setStage(stage, layer, inheritedSharedStateScope);
13597
13623
  this.getFrameCache().icons.forEach(icon => {
13598
13624
  icon.setStage(stage, layer);
13599
13625
  });
@@ -19556,15 +19582,13 @@ class LynxContext2d extends BrowserContext2d {
19556
19582
  }
19557
19583
  }
19558
19584
  measureText(text, method = application.global.measureTextMethod) {
19559
- this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);
19560
- const data = super.measureText(text, method);
19561
- return {
19562
- width: data.width,
19563
- fontBoundingBoxDescent: undefined,
19564
- fontBoundingBoxAscent: undefined,
19565
- actualBoundingBoxAscent: undefined,
19566
- actualBoundingBoxDescent: undefined
19567
- };
19585
+ const dpr = this.dpr || 1;
19586
+ this.setTransform(1, 0, 0, 1, 0, 0, true, dpr);
19587
+ const metrics = super.measureText(text, method);
19588
+ if (dpr === 1 || metrics.fontBoundingBoxAscent == null || metrics.fontBoundingBoxDescent == null) {
19589
+ return metrics;
19590
+ }
19591
+ return Object.assign(Object.assign({}, metrics), { width: metrics.width, actualBoundingBoxLeft: metrics.actualBoundingBoxLeft, actualBoundingBoxRight: metrics.actualBoundingBoxRight, actualBoundingBoxAscent: metrics.actualBoundingBoxAscent, actualBoundingBoxDescent: metrics.actualBoundingBoxDescent, fontBoundingBoxAscent: metrics.fontBoundingBoxAscent / dpr, fontBoundingBoxDescent: metrics.fontBoundingBoxDescent / dpr });
19568
19592
  }
19569
19593
  createPattern(image, repetition) {
19570
19594
  return null;
@@ -32,14 +32,18 @@ export class LynxContext2d extends BrowserContext2d {
32
32
  }
33
33
  }
34
34
  measureText(text, method = application.global.measureTextMethod) {
35
- this.setTransform(1, 0, 0, 1, 0, 0, !0, application.global.devicePixelRatio);
36
- return {
37
- width: super.measureText(text, method).width,
38
- fontBoundingBoxDescent: void 0,
39
- fontBoundingBoxAscent: void 0,
40
- actualBoundingBoxAscent: void 0,
41
- actualBoundingBoxDescent: void 0
42
- };
35
+ const dpr = this.dpr || 1;
36
+ this.setTransform(1, 0, 0, 1, 0, 0, !0, dpr);
37
+ const metrics = super.measureText(text, method);
38
+ return 1 === dpr || null == metrics.fontBoundingBoxAscent || null == metrics.fontBoundingBoxDescent ? metrics : Object.assign(Object.assign({}, metrics), {
39
+ width: metrics.width,
40
+ actualBoundingBoxLeft: metrics.actualBoundingBoxLeft,
41
+ actualBoundingBoxRight: metrics.actualBoundingBoxRight,
42
+ actualBoundingBoxAscent: metrics.actualBoundingBoxAscent,
43
+ actualBoundingBoxDescent: metrics.actualBoundingBoxDescent,
44
+ fontBoundingBoxAscent: metrics.fontBoundingBoxAscent / dpr,
45
+ fontBoundingBoxDescent: metrics.fontBoundingBoxDescent / dpr
46
+ });
43
47
  }
44
48
  createPattern(image, repetition) {
45
49
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { application } from '@visactor/vrender-core/application';\nimport { createColor, getScaledStroke } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n lineDash && _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit,\n keepStrokeScale = defaultParams.keepStrokeScale,\n lineDashOffset = defaultParams.lineDashOffset\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity * this.baseGlobalAlpha;\n _context.lineWidth = keepStrokeScale ? lineWidth : getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0) && lineDash) {\n _context.setLineDash(lineDash);\n _context.lineDashOffset = lineDashOffset;\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n this.setTransform(1, 0, 0, 1, 0, 0, true, application.global.devicePixelRatio);\n const data: any = super.measureText(text, method);\n // lynx环境中的fontBoundingBoxDescent和fontBoundingBoxAscent有严重偏移,暂时规避\n return {\n width: data.width,\n fontBoundingBoxDescent: undefined,\n fontBoundingBoxAscent: undefined,\n actualBoundingBoxAscent: undefined,\n actualBoundingBoxDescent: undefined\n } as any;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n if (!_context.draw) {\n return;\n }\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/canvas/contributions/lynx/context.ts"],"names":[],"mappings":"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","file":"context.js","sourcesContent":["// 参考konva\nimport { application } from '@visactor/vrender-core/application';\nimport { createColor, getScaledStroke } from '@visactor/vrender-core';\nimport type { IContext2d, EnvType, ISetStrokeStyleParams, IStrokeStyleParams } from '@visactor/vrender-core';\nimport { BrowserContext2d } from '../browser';\n\nexport class LynxContext2d extends BrowserContext2d implements IContext2d {\n static env: EnvType = 'lynx';\n\n declare drawPromise?: Promise<any>;\n\n declare _globalAlpha: number;\n\n get globalAlpha(): number {\n return this._globalAlpha;\n }\n set globalAlpha(ga: number) {\n this.nativeContext.globalAlpha = ga * this.baseGlobalAlpha;\n this._globalAlpha = ga * this.baseGlobalAlpha;\n }\n\n setLineDash(segments: number[]) {\n const a = arguments;\n const _context = this.nativeContext;\n\n if (!!this.nativeContext.setLineDash) {\n const lineDash = a[0];\n // lynx环境中lineDash不能为[0, 0]\n if (lineDash[0] === 0 && lineDash[1] === 0) {\n return;\n }\n lineDash && _context.setLineDash(lineDash);\n }\n }\n\n protected _setStrokeStyle(\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defaultParams?: IStrokeStyleParams\n ) {\n const _context = this.nativeContext;\n if (!defaultParams) {\n defaultParams = this.strokeAttributes;\n }\n const { strokeOpacity = defaultParams.strokeOpacity, opacity = defaultParams.opacity } = attribute;\n if (strokeOpacity > 1e-12 && opacity > 1e-12) {\n const {\n lineWidth = defaultParams.lineWidth,\n stroke = defaultParams.stroke,\n lineJoin = defaultParams.lineJoin,\n lineDash = defaultParams.lineDash,\n lineCap = defaultParams.lineCap,\n miterLimit = defaultParams.miterLimit,\n keepStrokeScale = defaultParams.keepStrokeScale,\n lineDashOffset = defaultParams.lineDashOffset\n } = attribute;\n _context.globalAlpha = strokeOpacity * opacity * this.baseGlobalAlpha;\n _context.lineWidth = keepStrokeScale ? lineWidth : getScaledStroke(this, lineWidth, this.dpr);\n _context.strokeStyle = createColor(this, stroke as any, params, offsetX, offsetY);\n _context.lineJoin = lineJoin;\n // lynx环境中lineDash不能为[0, 0]\n if (!(lineDash[0] === 0 && lineDash[1] === 0) && lineDash) {\n _context.setLineDash(lineDash);\n _context.lineDashOffset = lineDashOffset;\n }\n _context.lineCap = lineCap;\n _context.miterLimit = miterLimit;\n }\n }\n\n measureText(\n text: string,\n method: 'native' | 'simple' | 'quick' = application.global.measureTextMethod\n ): { width: number } {\n const dpr = this.dpr || 1;\n this.setTransform(1, 0, 0, 1, 0, 0, true, dpr);\n const metrics = super.measureText(text, method) as TextMetrics;\n if (dpr === 1 || metrics.fontBoundingBoxAscent == null || metrics.fontBoundingBoxDescent == null) {\n return metrics;\n }\n return {\n ...metrics,\n width: metrics.width,\n actualBoundingBoxLeft: metrics.actualBoundingBoxLeft,\n actualBoundingBoxRight: metrics.actualBoundingBoxRight,\n actualBoundingBoxAscent: metrics.actualBoundingBoxAscent,\n actualBoundingBoxDescent: metrics.actualBoundingBoxDescent,\n fontBoundingBoxAscent: metrics.fontBoundingBoxAscent / dpr,\n fontBoundingBoxDescent: metrics.fontBoundingBoxDescent / dpr\n } as any;\n }\n\n createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern {\n return null;\n }\n\n draw() {\n const _context = this.nativeContext as any;\n if (!_context.draw) {\n return;\n }\n this.drawPromise = new Promise(resolve => {\n _context.draw(true, () => {\n this.drawPromise = null;\n resolve(null);\n });\n });\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender-kits",
3
- "version": "1.1.8-alpha.0",
3
+ "version": "1.1.8-alpha.1",
4
4
  "description": "",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index-node.js",
@@ -44,7 +44,7 @@
44
44
  ],
45
45
  "dependencies": {
46
46
  "@visactor/vutils": "~1.0.12",
47
- "@visactor/vrender-core": "1.1.8-alpha.0",
47
+ "@visactor/vrender-core": "1.1.8-alpha.1",
48
48
  "@resvg/resvg-js": "2.4.1",
49
49
  "roughjs": "4.6.6",
50
50
  "gifuct-js": "2.1.2",
@@ -70,8 +70,8 @@
70
70
  "typescript": "4.9.5",
71
71
  "cross-env": "^7.0.3",
72
72
  "@internal/bundler": "0.0.1",
73
- "@internal/ts-config": "0.0.1",
74
- "@internal/eslint-config": "0.0.1"
73
+ "@internal/eslint-config": "0.0.1",
74
+ "@internal/ts-config": "0.0.1"
75
75
  },
76
76
  "keywords": [
77
77
  "VisActor",