@univerjs/engine-render 0.2.11 → 0.2.12
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/lib/cjs/index.js +3 -3
- package/lib/es/index.js +489 -322
- package/lib/types/basics/interfaces.d.ts +7 -0
- package/lib/types/basics/performance-monitor.d.ts +56 -27
- package/lib/types/basics/tools.d.ts +4 -3
- package/lib/types/components/docs/layout/line-breaker/break.d.ts +2 -1
- package/lib/types/components/docs/layout/line-breaker/enhancers/hyphen-enhancer.d.ts +1 -2
- package/lib/types/components/docs/layout/line-breaker/enhancers/link-enhancer.d.ts +15 -0
- package/lib/types/components/docs/layout/line-breaker/enhancers/utils.d.ts +18 -0
- package/lib/types/components/docs/view-model/document-view-model.d.ts +1 -1
- package/lib/types/components/sheets/extensions/background.d.ts +1 -1
- package/lib/types/components/sheets/extensions/border.d.ts +1 -1
- package/lib/types/components/sheets/extensions/custom.d.ts +1 -1
- package/lib/types/components/sheets/extensions/row-header-layout.d.ts +1 -1
- package/lib/types/components/sheets/extensions/sheet-extension.d.ts +4 -0
- package/lib/types/components/sheets/spreadsheet.d.ts +15 -7
- package/lib/types/controllers/config.schema.d.ts +20 -0
- package/lib/types/engine.d.ts +31 -10
- package/lib/types/render-engine.d.ts +5 -2
- package/lib/types/scene.d.ts +9 -3
- package/lib/types/scene.input-manager.d.ts +8 -2
- package/lib/types/scroll-timer.d.ts +4 -1
- package/lib/types/thin-scene.d.ts +8 -3
- package/lib/umd/index.js +3 -3
- package/package.json +4 -4
package/lib/es/index.js
CHANGED
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
|
|
3
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
|
|
5
|
-
import { Tools, DEFAULT_STYLES, FontStyleType, BaselineOffset, getCellInfoInMergeData, Rectangle, ColorKit, Disposable, EventSubject, checkParagraphHasIndentByStyle, DataStreamTreeTokenType, BorderStyleTypes, BooleanNumber, DisposableCollection, toDisposable, sortRules, Registry, numberToABC, CustomDecorationType, CustomRangeType, PositionedObjectLayoutType, WrapTextType, TableAlignmentType, GridType, BulletAlignment, ColumnSeparatorType, GlyphType as GlyphType$1, numberToListABC, HorizontalAlign, DataStreamTreeNodeType, PageOrientType, ObjectRelativeFromV, TableTextWrapType, SpacingRule, ObjectMatrix, SectionType, NumberUnitType, VerticalAlign, WrapStrategy, AlignTypeH, ObjectRelativeFromH, AlignTypeV, Inject, LocaleService, insertTextToContent, horizontalLineSegmentsSubtraction, deleteContent, DocumentDataModel, PRESET_LIST_TYPE, searchArray, extractPureTextFromCell, CellValueType, isCellCoverable, isNullCell, getColorStyle, isWhiteColor, IContextService, DEFAULT_EMPTY_DOCUMENT_VALUE, Range, TextDecoration, COLORS, requestImmediateMacroTask, MOVE_BUFFER_VALUE, sortRulesByDesc, Injector, isClassDependencyItem, createIdentifier, remove, UniverInstanceType, IUniverInstanceService, Plugin, RxDisposable, ILogService, DocumentFlavor } from "@univerjs/core";
|
|
5
|
+
import { Tools, DEFAULT_STYLES, FontStyleType, BaselineOffset, getCellInfoInMergeData, Rectangle, ColorKit, Disposable, EventSubject, checkParagraphHasIndentByStyle, DataStreamTreeTokenType, BorderStyleTypes, BooleanNumber, DisposableCollection, toDisposable, sortRules, Registry, numberToABC, CustomDecorationType, CustomRangeType, PositionedObjectLayoutType, WrapTextType, TableAlignmentType, GridType, BulletAlignment, ColumnSeparatorType, GlyphType as GlyphType$1, numberToListABC, HorizontalAlign, DataStreamTreeNodeType, PageOrientType, ObjectRelativeFromV, TableTextWrapType, SpacingRule, ObjectMatrix, SectionType, NumberUnitType, VerticalAlign, WrapStrategy, AlignTypeH, ObjectRelativeFromH, AlignTypeV, Inject, LocaleService, insertTextToContent, horizontalLineSegmentsSubtraction, deleteContent, DocumentDataModel, PRESET_LIST_TYPE, searchArray, extractPureTextFromCell, CellValueType, isCellCoverable, isNullCell, getColorStyle, isWhiteColor, IContextService, DEFAULT_EMPTY_DOCUMENT_VALUE, Range, TextDecoration, COLORS, requestImmediateMacroTask, MOVE_BUFFER_VALUE, sortRulesByDesc, Injector, isClassDependencyItem, createIdentifier, remove, UniverInstanceType, IUniverInstanceService, Plugin, IConfigService, RxDisposable, ILogService, DocumentFlavor } from "@univerjs/core";
|
|
6
6
|
import { BehaviorSubject, Subject, startWith, distinctUntilChanged, Subscription, Observable, shareReplay, fromEvent } from "rxjs";
|
|
7
7
|
var SHAPE_TYPE = /* @__PURE__ */ ((SHAPE_TYPE2) => (SHAPE_TYPE2.RECT = "rect", SHAPE_TYPE2.CIRCLE = "circle", SHAPE_TYPE2.PATH = "path", SHAPE_TYPE2))(SHAPE_TYPE || {}), LINK_VIEW_PORT_TYPE = /* @__PURE__ */ ((LINK_VIEW_PORT_TYPE2) => (LINK_VIEW_PORT_TYPE2[LINK_VIEW_PORT_TYPE2.XY = 0] = "XY", LINK_VIEW_PORT_TYPE2[LINK_VIEW_PORT_TYPE2.X = 1] = "X", LINK_VIEW_PORT_TYPE2[LINK_VIEW_PORT_TYPE2.Y = 2] = "Y", LINK_VIEW_PORT_TYPE2))(LINK_VIEW_PORT_TYPE || {});
|
|
8
8
|
const MIDDLE_CELL_POS_MAGIC_NUMBER = 1, DEFAULT_FONTFACE_PLANE = '"Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif', DEFAULT_SKELETON_HEADER_FOOTER = {
|
|
@@ -1684,13 +1684,14 @@ function inRowViewRanges(ranges, rowIndex) {
|
|
|
1684
1684
|
return flag;
|
|
1685
1685
|
}
|
|
1686
1686
|
__name(inRowViewRanges, "inRowViewRanges");
|
|
1687
|
-
function
|
|
1687
|
+
function expandRangeIfIntersects(mainRanges, ranges) {
|
|
1688
|
+
const intersects = [];
|
|
1688
1689
|
for (const mainRange of mainRanges)
|
|
1689
1690
|
for (const range of ranges)
|
|
1690
|
-
Rectangle.intersects(mainRange, range) &&
|
|
1691
|
-
return mainRanges;
|
|
1691
|
+
Rectangle.intersects(mainRange, range) && intersects.push(range);
|
|
1692
|
+
return [...mainRanges, ...intersects];
|
|
1692
1693
|
}
|
|
1693
|
-
__name(
|
|
1694
|
+
__name(expandRangeIfIntersects, "expandRangeIfIntersects");
|
|
1694
1695
|
function clampRanges(range) {
|
|
1695
1696
|
return {
|
|
1696
1697
|
startRow: Math.max(0, range.startRow),
|
|
@@ -3268,22 +3269,38 @@ const INITIAL_Path2 = [new Vector2(0, 0), new Vector2(1, 1)], _Path2 = class _Pa
|
|
|
3268
3269
|
};
|
|
3269
3270
|
__name(_Path2, "Path2");
|
|
3270
3271
|
let Path2 = _Path2;
|
|
3271
|
-
const _PerformanceMonitor = class _PerformanceMonitor {
|
|
3272
|
+
const DEFAULT_FRAME_SAMPLE_SIZE = 60, DEFAULT_FRAME_LIST_SIZE = 60 * 60, DEFAULT_ONE_SEC_MS = 1e3, DEFAULT_FRAME_TIME = 16.67, _PerformanceMonitor = class _PerformanceMonitor extends Disposable {
|
|
3273
|
+
// private _frameCount: number = 0; // number of all frames in whole life time.
|
|
3272
3274
|
/**
|
|
3273
|
-
*
|
|
3274
|
-
* @param frameSampleSize The number of samples required to saturate the sliding window
|
|
3275
|
+
* @param {number} frameSampleSize The number of samples required to saturate the sliding window
|
|
3275
3276
|
*/
|
|
3276
|
-
constructor(frameSampleSize =
|
|
3277
|
+
constructor(frameSampleSize = DEFAULT_FRAME_SAMPLE_SIZE) {
|
|
3278
|
+
super();
|
|
3277
3279
|
__publicField(this, "_enabled", !0);
|
|
3278
3280
|
__publicField(this, "_rollingFrameTime");
|
|
3279
3281
|
__publicField(this, "_lastFrameTimeMs");
|
|
3282
|
+
/**
|
|
3283
|
+
* Counting frame in a second.
|
|
3284
|
+
*/
|
|
3285
|
+
__publicField(this, "_frameCountInLastSecond", 0);
|
|
3286
|
+
/**
|
|
3287
|
+
* The millisecond value of the last second. For counting frame in a second.
|
|
3288
|
+
*/
|
|
3289
|
+
__publicField(this, "_lastSecondTimeMs");
|
|
3290
|
+
/**
|
|
3291
|
+
* The FPS values recorded in the past 1 second.
|
|
3292
|
+
*/
|
|
3293
|
+
__publicField(this, "_recFPSValueLastSecond", 60);
|
|
3280
3294
|
this._rollingFrameTime = new RollingAverage(frameSampleSize);
|
|
3281
3295
|
}
|
|
3296
|
+
dispose() {
|
|
3297
|
+
super.dispose();
|
|
3298
|
+
}
|
|
3282
3299
|
/**
|
|
3283
|
-
* Returns the average frame time in milliseconds
|
|
3300
|
+
* Returns the average frame time in milliseconds of the sliding window (or the subset of frames sampled so far)
|
|
3284
3301
|
*/
|
|
3285
3302
|
get averageFrameTime() {
|
|
3286
|
-
return this._rollingFrameTime.
|
|
3303
|
+
return this._rollingFrameTime.averageFrameTime;
|
|
3287
3304
|
}
|
|
3288
3305
|
/**
|
|
3289
3306
|
* Returns the variance frame time in milliseconds over the sliding window (or the subset of frames sampled so far)
|
|
@@ -3292,7 +3309,7 @@ const _PerformanceMonitor = class _PerformanceMonitor {
|
|
|
3292
3309
|
return this._rollingFrameTime.variance;
|
|
3293
3310
|
}
|
|
3294
3311
|
/**
|
|
3295
|
-
* Returns the frame time of the
|
|
3312
|
+
* Returns the frame time of the last recent frame.
|
|
3296
3313
|
*/
|
|
3297
3314
|
get instantaneousFrameTime() {
|
|
3298
3315
|
return this._rollingFrameTime.history(0);
|
|
@@ -3301,14 +3318,14 @@ const _PerformanceMonitor = class _PerformanceMonitor {
|
|
|
3301
3318
|
* Returns the average framerate in frames per second over the sliding window (or the subset of frames sampled so far)
|
|
3302
3319
|
*/
|
|
3303
3320
|
get averageFPS() {
|
|
3304
|
-
return
|
|
3321
|
+
return this._recFPSValueLastSecond;
|
|
3305
3322
|
}
|
|
3306
3323
|
/**
|
|
3307
3324
|
* Returns the average framerate in frames per second using the most recent frame time
|
|
3308
3325
|
*/
|
|
3309
3326
|
get instantaneousFPS() {
|
|
3310
3327
|
const history = this._rollingFrameTime.history(0);
|
|
3311
|
-
return history === 0 ? 0 :
|
|
3328
|
+
return history === 0 ? 0 : DEFAULT_ONE_SEC_MS / history;
|
|
3312
3329
|
}
|
|
3313
3330
|
/**
|
|
3314
3331
|
* Returns true if enough samples have been taken to completely fill the sliding window
|
|
@@ -3323,19 +3340,29 @@ const _PerformanceMonitor = class _PerformanceMonitor {
|
|
|
3323
3340
|
return this._enabled;
|
|
3324
3341
|
}
|
|
3325
3342
|
/**
|
|
3326
|
-
* Samples current frame
|
|
3327
|
-
*
|
|
3343
|
+
* Samples current frame, set averageFPS instantaneousFrameTime
|
|
3344
|
+
* this method is called each frame by engine renderLoop --> endFrame.
|
|
3345
|
+
* @param timestamp A timestamp in milliseconds of the current frame to compare with other frames
|
|
3328
3346
|
*/
|
|
3329
|
-
sampleFrame(
|
|
3347
|
+
sampleFrame(timestamp = this.now()) {
|
|
3330
3348
|
if (this._enabled) {
|
|
3349
|
+
if (this._frameCountInLastSecond++, this._lastSecondTimeMs != null) {
|
|
3350
|
+
if (this._lastSecondTimeMs <= timestamp - DEFAULT_ONE_SEC_MS) {
|
|
3351
|
+
const passedTime = timestamp - this._lastSecondTimeMs;
|
|
3352
|
+
this._recFPSValueLastSecond = Math.round(this._frameCountInLastSecond / passedTime * DEFAULT_ONE_SEC_MS), this._lastSecondTimeMs = timestamp, this._frameCountInLastSecond = 0;
|
|
3353
|
+
}
|
|
3354
|
+
} else
|
|
3355
|
+
this._lastSecondTimeMs = timestamp;
|
|
3331
3356
|
if (this._lastFrameTimeMs != null) {
|
|
3332
|
-
const dt =
|
|
3333
|
-
this._rollingFrameTime.
|
|
3357
|
+
const dt = timestamp - this._lastFrameTimeMs;
|
|
3358
|
+
this._rollingFrameTime.addFrameTime(dt), this._rollingFrameTime.calcAverageFrameTime();
|
|
3334
3359
|
}
|
|
3335
|
-
this._lastFrameTimeMs = timeMs;
|
|
3336
3360
|
}
|
|
3337
3361
|
}
|
|
3338
|
-
|
|
3362
|
+
endFrame(timestamp) {
|
|
3363
|
+
this.sampleFrame(timestamp), this._lastFrameTimeMs = timestamp;
|
|
3364
|
+
}
|
|
3365
|
+
now() {
|
|
3339
3366
|
return performance && performance.now ? performance.now() : Date.now();
|
|
3340
3367
|
}
|
|
3341
3368
|
/**
|
|
@@ -3370,29 +3397,41 @@ const _RollingAverage = class _RollingAverage {
|
|
|
3370
3397
|
/**
|
|
3371
3398
|
* Current average
|
|
3372
3399
|
*/
|
|
3373
|
-
__publicField(this, "
|
|
3400
|
+
__publicField(this, "averageFrameTime", DEFAULT_FRAME_TIME);
|
|
3374
3401
|
/**
|
|
3375
3402
|
* Current variance
|
|
3376
3403
|
*/
|
|
3377
3404
|
__publicField(this, "variance", 0);
|
|
3378
3405
|
__publicField(this, "_samples", []);
|
|
3406
|
+
/**
|
|
3407
|
+
* for isStaturated
|
|
3408
|
+
* max value of _sampleCount is length of _samples
|
|
3409
|
+
*/
|
|
3379
3410
|
__publicField(this, "_sampleCount", 0);
|
|
3380
3411
|
__publicField(this, "_pos", 0);
|
|
3381
3412
|
__publicField(this, "_m2", 0);
|
|
3382
3413
|
this._samples = new Array(length), this.reset();
|
|
3383
3414
|
}
|
|
3384
3415
|
/**
|
|
3385
|
-
*
|
|
3386
|
-
* @param v The sample value
|
|
3416
|
+
* Calc average frameTime and variance.
|
|
3387
3417
|
*/
|
|
3388
|
-
|
|
3418
|
+
calcAverageFrameTime() {
|
|
3419
|
+
const frameDuration = this.history(0);
|
|
3389
3420
|
let delta;
|
|
3390
3421
|
if (this.isSaturated()) {
|
|
3391
3422
|
const bottomValue = this._samples[this._pos];
|
|
3392
|
-
delta = bottomValue - this.
|
|
3423
|
+
delta = bottomValue - this.averageFrameTime, this._m2 -= delta * (bottomValue - this.averageFrameTime);
|
|
3393
3424
|
} else
|
|
3394
3425
|
this._sampleCount++;
|
|
3395
|
-
|
|
3426
|
+
const min2 = Math.min(...this._samples), max2 = Math.min(...this._samples), filteredData = this._samples.filter((v) => v !== max2 && v !== min2);
|
|
3427
|
+
this.averageFrameTime = filteredData.reduce((sum, value) => sum + value, 0) / filteredData.length, delta = frameDuration - this.averageFrameTime, this._m2 += delta * (frameDuration - this.averageFrameTime), this.variance = this._m2 / (this._sampleCount - 1);
|
|
3428
|
+
}
|
|
3429
|
+
/**
|
|
3430
|
+
* Adds a sample to the sample set
|
|
3431
|
+
* @param frameTime The sample value
|
|
3432
|
+
*/
|
|
3433
|
+
addFrameTime(frameTime) {
|
|
3434
|
+
this._samples[this._pos] = frameTime, this._pos = ++this._pos % this._samples.length;
|
|
3396
3435
|
}
|
|
3397
3436
|
/**
|
|
3398
3437
|
* Returns previously added values or null if outside of history or outside the sliding window domain
|
|
@@ -3416,7 +3455,7 @@ const _RollingAverage = class _RollingAverage {
|
|
|
3416
3455
|
* Resets the rolling average (equivalent to 0 samples taken so far)
|
|
3417
3456
|
*/
|
|
3418
3457
|
reset() {
|
|
3419
|
-
this.
|
|
3458
|
+
this.averageFrameTime = DEFAULT_FRAME_TIME, this.variance = 0, this._sampleCount = 0, this._pos = 0, this._m2 = 0;
|
|
3420
3459
|
}
|
|
3421
3460
|
/**
|
|
3422
3461
|
* Wraps a value around the sample range boundaries
|
|
@@ -4355,7 +4394,7 @@ const _SpreadsheetColumnHeader = class _SpreadsheetColumnHeader extends Spreadsh
|
|
|
4355
4394
|
__name(_SpreadsheetColumnHeader, "SpreadsheetColumnHeader");
|
|
4356
4395
|
let SpreadsheetColumnHeader = _SpreadsheetColumnHeader;
|
|
4357
4396
|
var SHEET_EXTENSION_TYPE = /* @__PURE__ */ ((SHEET_EXTENSION_TYPE2) => (SHEET_EXTENSION_TYPE2[SHEET_EXTENSION_TYPE2.GRID = 0] = "GRID", SHEET_EXTENSION_TYPE2))(SHEET_EXTENSION_TYPE || {});
|
|
4358
|
-
const _SheetExtension = class _SheetExtension extends ComponentExtension {
|
|
4397
|
+
const SHEET_EXTENSION_PREFIX = "sheet-ext-", _SheetExtension = class _SheetExtension extends ComponentExtension {
|
|
4359
4398
|
constructor() {
|
|
4360
4399
|
super(...arguments);
|
|
4361
4400
|
__publicField(this, "type", 0);
|
|
@@ -4491,20 +4530,12 @@ let Background$1 = (_a = class extends SheetExtension {
|
|
|
4491
4530
|
var _a11;
|
|
4492
4531
|
return (_a11 = this.parent) != null && _a11.isPrinting ? this.PRINTING_Z_INDEX : this.Z_INDEX;
|
|
4493
4532
|
}
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
if (!spreadsheetSkeleton)
|
|
4498
|
-
return;
|
|
4499
|
-
const { worksheet } = spreadsheetSkeleton;
|
|
4500
|
-
if (!worksheet)
|
|
4501
|
-
return;
|
|
4502
|
-
const { rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton;
|
|
4503
|
-
if (!rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0)
|
|
4533
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges, { viewRanges, checkOutOfViewBound }) {
|
|
4534
|
+
const { stylesCache, worksheet, rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton, { background, backgroundPositions } = stylesCache;
|
|
4535
|
+
if (!worksheet || !background || !rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0)
|
|
4504
4536
|
return;
|
|
4505
4537
|
ctx.save();
|
|
4506
|
-
const { scaleX, scaleY } = ctx.getScale()
|
|
4507
|
-
background && Object.keys(background).forEach((rgb) => {
|
|
4538
|
+
const { scaleX, scaleY } = ctx.getScale(), renderBGByCell = /* @__PURE__ */ __name((rgb) => {
|
|
4508
4539
|
const backgroundCache = background[rgb];
|
|
4509
4540
|
ctx.fillStyle = rgb || getColor([255, 255, 255]);
|
|
4510
4541
|
const backgroundPaths = new Path2D();
|
|
@@ -4515,7 +4546,7 @@ let Background$1 = (_a = class extends SheetExtension {
|
|
|
4515
4546
|
if (cellInfo == null)
|
|
4516
4547
|
return !0;
|
|
4517
4548
|
let { startY, endY, startX, endX } = cellInfo;
|
|
4518
|
-
const { isMerged, isMergedMainCell, mergeInfo } = cellInfo, mergeTo = diffRanges && diffRanges.length > 0 ? diffRanges : viewRanges, combineWithMergeRanges =
|
|
4549
|
+
const { isMerged, isMergedMainCell, mergeInfo } = cellInfo, mergeTo = diffRanges && diffRanges.length > 0 ? diffRanges : viewRanges, combineWithMergeRanges = expandRangeIfIntersects([...mergeTo], [mergeInfo]);
|
|
4519
4550
|
if (!inViewRanges(combineWithMergeRanges, rowIndex, columnIndex) || isMerged)
|
|
4520
4551
|
return !0;
|
|
4521
4552
|
{
|
|
@@ -4526,7 +4557,8 @@ let Background$1 = (_a = class extends SheetExtension {
|
|
|
4526
4557
|
const startXPrecise = fixLineWidthByScale(startX, scaleX), startYPrecise = fixLineWidthByScale(startY, scaleY), endXPrecise = fixLineWidthByScale(endX, scaleX), endYPrecise = fixLineWidthByScale(endY, scaleY);
|
|
4527
4558
|
backgroundPaths.rect(startXPrecise, startYPrecise, endXPrecise - startXPrecise, endYPrecise - startYPrecise);
|
|
4528
4559
|
}), ctx.fill(backgroundPaths);
|
|
4529
|
-
}
|
|
4560
|
+
}, "renderBGByCell");
|
|
4561
|
+
Object.keys(background).forEach(renderBGByCell), ctx.restore();
|
|
4530
4562
|
}
|
|
4531
4563
|
}, __name(_a, "Background"), _a);
|
|
4532
4564
|
SpreadsheetExtensionRegistry.add(Background$1);
|
|
@@ -4539,20 +4571,14 @@ let Border$1 = (_a2 = class extends SheetExtension {
|
|
|
4539
4571
|
__publicField(this, "Z_INDEX", BORDER_Z_INDEX);
|
|
4540
4572
|
}
|
|
4541
4573
|
// eslint-disable-next-line max-lines-per-function
|
|
4542
|
-
draw(ctx,
|
|
4543
|
-
const { dataMergeCache, stylesCache, overflowCache
|
|
4544
|
-
if (!
|
|
4545
|
-
return;
|
|
4546
|
-
const { worksheet } = spreadsheetSkeleton;
|
|
4547
|
-
if (!worksheet)
|
|
4548
|
-
return;
|
|
4549
|
-
const { rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton;
|
|
4550
|
-
if (!rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0)
|
|
4574
|
+
draw(ctx, _parentScale, spreadsheetSkeleton, diffRanges) {
|
|
4575
|
+
const { dataMergeCache, stylesCache, overflowCache, worksheet, rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton;
|
|
4576
|
+
if (!worksheet || !rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0)
|
|
4551
4577
|
return;
|
|
4552
4578
|
ctx.save();
|
|
4553
4579
|
let preStyle, preColor;
|
|
4554
4580
|
ctx.translateWithPrecisionRatio(FIX_ONE_PIXEL_BLUR_OFFSET, FIX_ONE_PIXEL_BLUR_OFFSET);
|
|
4555
|
-
const precisionScale = this._getScale(ctx.getScale());
|
|
4581
|
+
const precisionScale = this._getScale(ctx.getScale()), { border } = stylesCache;
|
|
4556
4582
|
border == null || border.forValue((rowIndex, columnIndex, borderCaches) => {
|
|
4557
4583
|
if (!borderCaches)
|
|
4558
4584
|
return !0;
|
|
@@ -5109,7 +5135,7 @@ function getTableIdAndSliceIndex(tableSliceId) {
|
|
|
5109
5135
|
};
|
|
5110
5136
|
}
|
|
5111
5137
|
__name(getTableIdAndSliceIndex, "getTableIdAndSliceIndex");
|
|
5112
|
-
var BreakPointType = /* @__PURE__ */ ((BreakPointType2) => (BreakPointType2.Normal = "Normal", BreakPointType2.Mandatory = "Mandatory", BreakPointType2.Hyphen = "Hyphen", BreakPointType2))(BreakPointType || {});
|
|
5138
|
+
var BreakPointType = /* @__PURE__ */ ((BreakPointType2) => (BreakPointType2.Normal = "Normal", BreakPointType2.Mandatory = "Mandatory", BreakPointType2.Hyphen = "Hyphen", BreakPointType2.Link = "Link", BreakPointType2))(BreakPointType || {});
|
|
5113
5139
|
const _Break = class _Break {
|
|
5114
5140
|
constructor(position, type = "Normal") {
|
|
5115
5141
|
this.position = position, this.type = type;
|
|
@@ -20104,13 +20130,13 @@ function getWord(str) {
|
|
|
20104
20130
|
return word;
|
|
20105
20131
|
}
|
|
20106
20132
|
__name(getWord, "getWord");
|
|
20107
|
-
function
|
|
20108
|
-
let
|
|
20133
|
+
function getSlicePosition(lastPos, hyphenSlice, index2) {
|
|
20134
|
+
let position = lastPos;
|
|
20109
20135
|
for (let i = 0; i <= index2; i++)
|
|
20110
|
-
|
|
20111
|
-
return
|
|
20136
|
+
position += hyphenSlice[i].length;
|
|
20137
|
+
return position;
|
|
20112
20138
|
}
|
|
20113
|
-
__name(
|
|
20139
|
+
__name(getSlicePosition, "getSlicePosition");
|
|
20114
20140
|
function isUpperCase(word) {
|
|
20115
20141
|
return word.length > 0 && word === word.toUpperCase();
|
|
20116
20142
|
}
|
|
@@ -20123,21 +20149,21 @@ const _LineBreakerHyphenEnhancer = class _LineBreakerHyphenEnhancer {
|
|
|
20123
20149
|
__publicField(this, "_word", "");
|
|
20124
20150
|
__publicField(this, "_hyphenIndex", -1);
|
|
20125
20151
|
__publicField(this, "_hyphenSlice", []);
|
|
20126
|
-
__publicField(this, "
|
|
20127
|
-
this._lineBreaker = _lineBreaker, this._hyphen = _hyphen, this._lang = _lang, this._doNotHyphenateCaps = _doNotHyphenateCaps, this.
|
|
20152
|
+
__publicField(this, "content", "");
|
|
20153
|
+
this._lineBreaker = _lineBreaker, this._hyphen = _hyphen, this._lang = _lang, this._doNotHyphenateCaps = _doNotHyphenateCaps, this.content = _lineBreaker.content;
|
|
20128
20154
|
}
|
|
20129
20155
|
nextBreakPoint() {
|
|
20130
20156
|
if (this._isInWord)
|
|
20131
20157
|
if (this._hyphenIndex < this._hyphenSlice.length - 1) {
|
|
20132
|
-
const position =
|
|
20158
|
+
const position = getSlicePosition(this._curBreak.position, this._hyphenSlice, this._hyphenIndex);
|
|
20133
20159
|
return this._hyphenIndex++, new Break(position, BreakPointType.Hyphen);
|
|
20134
20160
|
} else
|
|
20135
20161
|
return this._isInWord = !1, this._word = "", this._hyphenSlice = [], this._hyphenIndex = -1, this._nextBreak;
|
|
20136
20162
|
else {
|
|
20137
20163
|
if (this._curBreak = this._nextBreak, this._nextBreak = this._lineBreaker.nextBreakPoint(), this._nextBreak == null || this._curBreak == null)
|
|
20138
20164
|
return null;
|
|
20139
|
-
const word = getWord(this.
|
|
20140
|
-
return word.length && !(isUpperCase(word) && this._doNotHyphenateCaps) ? (this._isInWord = !0, this._word = word, this._hyphenSlice = this._hyphen.hyphenate(this._word, this._lang), this._hyphenIndex = 0, this.nextBreakPoint()) : this._nextBreak;
|
|
20165
|
+
const word = getWord(this.content.slice(this._curBreak.position, this._nextBreak.position));
|
|
20166
|
+
return word.length && !(isUpperCase(word) && this._doNotHyphenateCaps) && this._nextBreak.type !== BreakPointType.Link ? (this._isInWord = !0, this._word = word, this._hyphenSlice = this._hyphen.hyphenate(this._word, this._lang), this._hyphenIndex = 0, this.nextBreakPoint()) : this._nextBreak;
|
|
20141
20167
|
}
|
|
20142
20168
|
}
|
|
20143
20169
|
};
|
|
@@ -20149,6 +20175,74 @@ function customBlockLineBreakExtension(breaker) {
|
|
|
20149
20175
|
breaker.addRule("break_before_and_after_slash_b", (codePoint, lastCodePoint) => codePoint === SLASH_B_CODE_POINT || lastCodePoint === SLASH_B_CODE_POINT);
|
|
20150
20176
|
}
|
|
20151
20177
|
__name(customBlockLineBreakExtension, "customBlockLineBreakExtension");
|
|
20178
|
+
function ofLinkCharType(char) {
|
|
20179
|
+
return /[a-z]/i.test(char) ? "Alphabetic" : /[0-9]/.test(char) ? "Digit" : char === "(" || char === "[" ? "Open" : "Other";
|
|
20180
|
+
}
|
|
20181
|
+
__name(ofLinkCharType, "ofLinkCharType");
|
|
20182
|
+
function linebreakLink(link) {
|
|
20183
|
+
const pieces = [];
|
|
20184
|
+
let offset = 0, prevCharType = "Other";
|
|
20185
|
+
for (let i = 0; i < link.length; i++) {
|
|
20186
|
+
const char = link[i], charType = ofLinkCharType(char);
|
|
20187
|
+
if (i > 0 && prevCharType !== "Open" && (charType === "Other" ? charType === "Other" : charType !== prevCharType)) {
|
|
20188
|
+
const piece = link.slice(offset, i);
|
|
20189
|
+
if (piece.length < 16)
|
|
20190
|
+
pieces.push(piece);
|
|
20191
|
+
else
|
|
20192
|
+
for (let j = 0; j < piece.length; j++)
|
|
20193
|
+
pieces.push(piece[j]);
|
|
20194
|
+
offset = i, prevCharType = charType;
|
|
20195
|
+
}
|
|
20196
|
+
}
|
|
20197
|
+
return pieces;
|
|
20198
|
+
}
|
|
20199
|
+
__name(linebreakLink, "linebreakLink");
|
|
20200
|
+
const LINK_CHAR_REG_EXP = /[a-z\d!#$%&*+,-./:;=?@_~\\]/i, LINK_CHAR_NO_TRAILING_REG_EXP = /[!,.;:?']$/g;
|
|
20201
|
+
function extractLink(content, offset) {
|
|
20202
|
+
let link = "";
|
|
20203
|
+
for (let i = offset; i < content.length; i++) {
|
|
20204
|
+
const char = content[i];
|
|
20205
|
+
if (LINK_CHAR_REG_EXP.test(char))
|
|
20206
|
+
link += char;
|
|
20207
|
+
else
|
|
20208
|
+
break;
|
|
20209
|
+
}
|
|
20210
|
+
return link.replace(LINK_CHAR_NO_TRAILING_REG_EXP, ""), link;
|
|
20211
|
+
}
|
|
20212
|
+
__name(extractLink, "extractLink");
|
|
20213
|
+
const _LineBreakerLinkEnhancer = class _LineBreakerLinkEnhancer {
|
|
20214
|
+
constructor(_lineBreaker) {
|
|
20215
|
+
__publicField(this, "_curBreak", null);
|
|
20216
|
+
__publicField(this, "_nextBreak", new Break(0));
|
|
20217
|
+
__publicField(this, "_isInLink", !1);
|
|
20218
|
+
__publicField(this, "_link", "");
|
|
20219
|
+
__publicField(this, "_index", -1);
|
|
20220
|
+
__publicField(this, "_linkSlice", []);
|
|
20221
|
+
__publicField(this, "content", "");
|
|
20222
|
+
this._lineBreaker = _lineBreaker, this.content = _lineBreaker.content;
|
|
20223
|
+
}
|
|
20224
|
+
nextBreakPoint() {
|
|
20225
|
+
if (this._isInLink)
|
|
20226
|
+
if (this._index < this._linkSlice.length - 1) {
|
|
20227
|
+
const position = getSlicePosition(this._curBreak.position, this._linkSlice, this._index);
|
|
20228
|
+
return this._index++, new Break(position, BreakPointType.Link);
|
|
20229
|
+
} else
|
|
20230
|
+
return this._isInLink = !1, this._link = "", this._linkSlice = [], this._index = -1, this._nextBreak;
|
|
20231
|
+
else {
|
|
20232
|
+
if (this._curBreak = this._nextBreak, this._nextBreak = this._lineBreaker.nextBreakPoint(), this._nextBreak == null || this._curBreak == null)
|
|
20233
|
+
return null;
|
|
20234
|
+
const word = this.content.slice(this._curBreak.position, this._nextBreak.position);
|
|
20235
|
+
if (word.length && (word.endsWith("://") || word.startsWith("www."))) {
|
|
20236
|
+
for (this._isInLink = !0, this._link = extractLink(this.content, this._curBreak.position), this._linkSlice = linebreakLink(this._link), this._index = 0; this._nextBreak && this._nextBreak.position < this._curBreak.position + this._link.length; )
|
|
20237
|
+
this._nextBreak = this._lineBreaker.nextBreakPoint();
|
|
20238
|
+
return this.nextBreakPoint();
|
|
20239
|
+
} else
|
|
20240
|
+
return this._nextBreak;
|
|
20241
|
+
}
|
|
20242
|
+
}
|
|
20243
|
+
};
|
|
20244
|
+
__name(_LineBreakerLinkEnhancer, "LineBreakerLinkEnhancer");
|
|
20245
|
+
let LineBreakerLinkEnhancer = _LineBreakerLinkEnhancer;
|
|
20152
20246
|
function otherHandler(index2, charArray, viewModel, paragraphNode, sectionBreakConfig, paragraph) {
|
|
20153
20247
|
const glyphGroup = [];
|
|
20154
20248
|
let step = 0;
|
|
@@ -20244,7 +20338,7 @@ function shaping(ctx, content, viewModel, paragraphNode, sectionBreakConfig, use
|
|
|
20244
20338
|
let last = 0, bk, lastGlyphIndex = 0;
|
|
20245
20339
|
const { hyphen, languageDetector } = ctx, paragraphBody = prepareParagraphBody(viewModel.getBody(), endIndex);
|
|
20246
20340
|
let glyphInfos = [];
|
|
20247
|
-
useOpenType && (glyphInfos = textShape(paragraphBody)), tabLineBreakExtension(breaker), customBlockLineBreakExtension(breaker);
|
|
20341
|
+
useOpenType && (glyphInfos = textShape(paragraphBody)), tabLineBreakExtension(breaker), customBlockLineBreakExtension(breaker), breaker = new LineBreakerLinkEnhancer(breaker);
|
|
20248
20342
|
const lang = languageDetector.detect(content), needHyphen = hyphenConfig(paragraphStyle, sectionBreakConfig), doNotHyphenateCaps = sectionBreakConfig.doNotHyphenateCaps === BooleanNumber.TRUE;
|
|
20249
20343
|
for (lang !== Lang.UNKNOWN && needHyphen && (hyphen.hasPattern(lang) ? breaker = new LineBreakerHyphenEnhancer(breaker, hyphen, lang, doNotHyphenateCaps) : hyphen.loadPattern(lang)); bk = breaker.nextBreakPoint(); ) {
|
|
20250
20344
|
const word = content.slice(last, bk.position), shapedGlyphs = [];
|
|
@@ -25382,15 +25476,16 @@ let SpreadsheetSkeleton = (_a6 = class extends Skeleton {
|
|
|
25382
25476
|
this._setCellStylesCache(mergeRange.startRow, mergeRange.startColumn, {
|
|
25383
25477
|
mergeRange
|
|
25384
25478
|
});
|
|
25385
|
-
for (let r = startRow; r <= endRow; r++)
|
|
25386
|
-
|
|
25387
|
-
|
|
25388
|
-
|
|
25389
|
-
|
|
25390
|
-
if (endColumn !== 0)
|
|
25391
|
-
for (let c = endColumn + 1; c < columnWidthAccumulation.length; c++)
|
|
25479
|
+
for (let r = startRow; r <= endRow; r++)
|
|
25480
|
+
if (this.worksheet.getRowVisible(r) !== !1) {
|
|
25481
|
+
for (let c = startColumn; c <= endColumn; c++)
|
|
25482
|
+
this._setCellStylesCache(r, c);
|
|
25483
|
+
for (let c = 0; c < startColumn; c++)
|
|
25392
25484
|
this._setCellStylesCache(r, c, { cacheItem: { bg: !1, border: !1 } });
|
|
25393
|
-
|
|
25485
|
+
if (endColumn !== 0)
|
|
25486
|
+
for (let c = endColumn + 1; c < columnWidthAccumulation.length; c++)
|
|
25487
|
+
this._setCellStylesCache(r, c, { cacheItem: { bg: !1, border: !1 } });
|
|
25488
|
+
}
|
|
25394
25489
|
}
|
|
25395
25490
|
}
|
|
25396
25491
|
_resetCache() {
|
|
@@ -25694,15 +25789,13 @@ const UNIQUE_KEY$7 = "DefaultFontExtension", EXTENSION_Z_INDEX = 45, _Font = cla
|
|
|
25694
25789
|
return parent == null ? void 0 : parent.getDocuments();
|
|
25695
25790
|
}
|
|
25696
25791
|
draw(ctx, parentScale, spreadsheetSkeleton, diffRanges, moreBoundsInfo) {
|
|
25697
|
-
const {
|
|
25698
|
-
if (!
|
|
25699
|
-
return;
|
|
25700
|
-
const { rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton;
|
|
25701
|
-
if (!rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0 || !worksheet)
|
|
25792
|
+
const { stylesCache, dataMergeCache, overflowCache, worksheet, rowHeightAccumulation, columnTotalWidth, columnWidthAccumulation, rowTotalHeight } = spreadsheetSkeleton, { font: fontList } = stylesCache;
|
|
25793
|
+
if (!worksheet || !fontList || !rowHeightAccumulation || !columnWidthAccumulation || columnTotalWidth === void 0 || rowTotalHeight === void 0 || !worksheet)
|
|
25702
25794
|
return;
|
|
25703
25795
|
ctx.save();
|
|
25704
25796
|
const scale = this._getScale(parentScale), renderFontByCell = /* @__PURE__ */ __name((fontFormat) => {
|
|
25705
|
-
fontList[fontFormat]
|
|
25797
|
+
const fontObjectArray = fontList[fontFormat], { viewRanges = [], checkOutOfViewBound } = moreBoundsInfo;
|
|
25798
|
+
fontObjectArray.forValue((rowIndex, columnIndex, docsConfig) => {
|
|
25706
25799
|
var _a11, _b, _c, _d, _e;
|
|
25707
25800
|
if (!checkOutOfViewBound && !inViewRanges(viewRanges, rowIndex, columnIndex))
|
|
25708
25801
|
return !0;
|
|
@@ -25721,7 +25814,7 @@ const UNIQUE_KEY$7 = "DefaultFontExtension", EXTENSION_Z_INDEX = 45, _Font = cla
|
|
|
25721
25814
|
const visibleRow = spreadsheetSkeleton.worksheet.getRowVisible(rowIndex), visibleCol = spreadsheetSkeleton.worksheet.getColVisible(columnIndex);
|
|
25722
25815
|
if (!visibleRow || !visibleCol) return !0;
|
|
25723
25816
|
}
|
|
25724
|
-
const mergeTo = diffRanges && diffRanges.length > 0 ? diffRanges : viewRanges, combineWithMergeRanges =
|
|
25817
|
+
const mergeTo = diffRanges && diffRanges.length > 0 ? diffRanges : viewRanges, combineWithMergeRanges = expandRangeIfIntersects([...mergeTo], [mergeInfo]);
|
|
25725
25818
|
if (!inRowViewRanges(combineWithMergeRanges, rowIndex) || (isMergedMainCell && (startY = mergeInfo.startY, endY = mergeInfo.endY, startX = mergeInfo.startX, endX = mergeInfo.endX), diffRanges && !this.isRowInRanges(mergeInfo.startRow, mergeInfo.endRow, diffRanges)))
|
|
25726
25819
|
return !0;
|
|
25727
25820
|
const overflowRectangle = overflowCache.getValue(rowIndex, columnIndex), { horizontalAlign, vertexAngle = 0, centerAngle = 0 } = docsConfig;
|
|
@@ -25969,7 +26062,7 @@ const UNIQUE_KEY$4 = "DefaultCustomExtension", Z_INDEX = 55, stringifyRange = /*
|
|
|
25969
26062
|
__publicField(this, "Z_INDEX", Z_INDEX);
|
|
25970
26063
|
__publicField(this, "uKey", UNIQUE_KEY$4);
|
|
25971
26064
|
}
|
|
25972
|
-
draw(ctx,
|
|
26065
|
+
draw(ctx, _parentScale, skeleton, diffRanges) {
|
|
25973
26066
|
const { rowHeightAccumulation, columnWidthAccumulation, worksheet, dataMergeCache, rowColumnSegment } = skeleton;
|
|
25974
26067
|
if (!worksheet)
|
|
25975
26068
|
return;
|
|
@@ -27686,7 +27779,7 @@ const MINI_THUMB_SIZE = 17, _ScrollBar = class _ScrollBar extends BaseScrollBar
|
|
|
27686
27779
|
const e = evt, srcElement = this.verticalThumbRect;
|
|
27687
27780
|
this._isVerticalMove = !0, this._lastX = e.offsetX, this._lastY = e.offsetY, srcElement == null || srcElement.setProps({
|
|
27688
27781
|
fill: this.thumbActiveBackgroundColor
|
|
27689
|
-
}), mainScene.
|
|
27782
|
+
}), mainScene.disableObjectsEvent(), this.makeViewDirty(!0), state.stopPropagation();
|
|
27690
27783
|
})), this._verticalPointerMoveSub = mainScene.onPointerMove$.subscribeEvent((evt, _state) => {
|
|
27691
27784
|
var _a11;
|
|
27692
27785
|
const e = evt;
|
|
@@ -27695,7 +27788,7 @@ const MINI_THUMB_SIZE = 17, _ScrollBar = class _ScrollBar extends BaseScrollBar
|
|
|
27695
27788
|
}), this._lastY = e.offsetY, (_a11 = mainScene.getEngine()) == null || _a11.setRemainCapture());
|
|
27696
27789
|
}), this._verticalPointerUpSub = mainScene.onPointerUp$.subscribeEvent((_evt, _state) => {
|
|
27697
27790
|
const srcElement = this.verticalThumbRect;
|
|
27698
|
-
this._isVerticalMove = !1, mainScene.
|
|
27791
|
+
this._isVerticalMove = !1, mainScene.enableObjectsEvent(), srcElement == null || srcElement.setProps({
|
|
27699
27792
|
fill: this.thumbBackgroundColor
|
|
27700
27793
|
}), this.makeViewDirty(!0);
|
|
27701
27794
|
});
|
|
@@ -27727,7 +27820,7 @@ const MINI_THUMB_SIZE = 17, _ScrollBar = class _ScrollBar extends BaseScrollBar
|
|
|
27727
27820
|
const e = evt;
|
|
27728
27821
|
this._isHorizonMove = !0, this._lastX = e.offsetX, this._lastY = e.offsetY, (_a11 = this.horizonThumbRect) == null || _a11.setProps({
|
|
27729
27822
|
fill: this.thumbActiveBackgroundColor
|
|
27730
|
-
}), this.makeViewDirty(!0), mainScene.
|
|
27823
|
+
}), this.makeViewDirty(!0), mainScene.disableObjectsEvent(), state.stopPropagation();
|
|
27731
27824
|
})), this._horizonPointerMoveSub = mainScene.onPointerMove$.subscribeEvent((evt, _state) => {
|
|
27732
27825
|
var _a11;
|
|
27733
27826
|
const e = evt;
|
|
@@ -27736,7 +27829,7 @@ const MINI_THUMB_SIZE = 17, _ScrollBar = class _ScrollBar extends BaseScrollBar
|
|
|
27736
27829
|
}), this._lastX = e.offsetX, (_a11 = mainScene.getEngine()) == null || _a11.setRemainCapture());
|
|
27737
27830
|
}), this._horizonPointerUpSub = mainScene.onPointerUp$.subscribeEvent((evt, state) => {
|
|
27738
27831
|
const srcElement = this.horizonThumbRect;
|
|
27739
|
-
this._isHorizonMove = !1, mainScene.
|
|
27832
|
+
this._isHorizonMove = !1, mainScene.enableObjectsEvent(), srcElement == null || srcElement.setProps({
|
|
27740
27833
|
fill: this.thumbBackgroundColor
|
|
27741
27834
|
}), this.makeViewDirty(!0);
|
|
27742
27835
|
});
|
|
@@ -28529,13 +28622,28 @@ const OBJECT_KEY = "__SHEET_EXTENSION_FONT_DOCUMENT_INSTANCE__", _Spreadsheet =
|
|
|
28529
28622
|
if (!spreadsheetSkeleton)
|
|
28530
28623
|
return;
|
|
28531
28624
|
this._drawAuxiliary(ctx);
|
|
28532
|
-
const parentScale = this.getParentScale(), diffRanges = this._refreshIncrementalState && (viewportInfo != null && viewportInfo.diffBounds) ? (_a11 = viewportInfo == null ? void 0 : viewportInfo.diffBounds) == null ? void 0 : _a11.map((bound) => spreadsheetSkeleton.getRowColumnSegmentByViewBound(bound)) :
|
|
28533
|
-
for (const extension of extensions)
|
|
28534
|
-
`${
|
|
28625
|
+
const parentScale = this.getParentScale(), diffRanges = this._refreshIncrementalState && (viewportInfo != null && viewportInfo.diffBounds) ? (_a11 = viewportInfo == null ? void 0 : viewportInfo.diffBounds) == null ? void 0 : _a11.map((bound) => spreadsheetSkeleton.getRowColumnSegmentByViewBound(bound)) : [], viewRanges = [spreadsheetSkeleton.getRowColumnSegmentByViewBound(viewportInfo == null ? void 0 : viewportInfo.cacheBound)], extensions = this.getExtensionsByOrder(), scene = this.getScene();
|
|
28626
|
+
for (const extension of extensions) {
|
|
28627
|
+
const timeKey = `${SHEET_EXTENSION_PREFIX}${extension.uKey}`, st = Tools.now();
|
|
28628
|
+
extension.draw(ctx, parentScale, spreadsheetSkeleton, diffRanges, {
|
|
28535
28629
|
viewRanges,
|
|
28536
28630
|
checkOutOfViewBound: !0,
|
|
28537
28631
|
viewportKey: viewportInfo.viewportKey
|
|
28538
|
-
});
|
|
28632
|
+
}), this.addRenderFrameTimeMetricToScene(timeKey, Tools.now() - st, scene);
|
|
28633
|
+
}
|
|
28634
|
+
}
|
|
28635
|
+
addRenderFrameTimeMetricToScene(timeKey, val, scene) {
|
|
28636
|
+
scene = scene != null ? scene : this.getScene(), scene.getEngine().renderFrameTimeMetric$.next([timeKey, val]);
|
|
28637
|
+
}
|
|
28638
|
+
addRenderTagToScene(renderKey, val, scene) {
|
|
28639
|
+
scene = scene != null ? scene : this.getScene(), scene.getEngine().renderFrameTags$.next([renderKey, val]);
|
|
28640
|
+
}
|
|
28641
|
+
/**
|
|
28642
|
+
* override for return type as Scene.
|
|
28643
|
+
* @returns Scene
|
|
28644
|
+
*/
|
|
28645
|
+
getScene() {
|
|
28646
|
+
return super.getScene();
|
|
28539
28647
|
}
|
|
28540
28648
|
isHit(coord) {
|
|
28541
28649
|
const oCoord = this.getInverseCoord(coord), skeleton = this.getSkeleton();
|
|
@@ -28607,7 +28715,7 @@ const OBJECT_KEY = "__SHEET_EXTENSION_FONT_DOCUMENT_INSTANCE__", _Spreadsheet =
|
|
|
28607
28715
|
const { diffBounds, diffX, diffY, viewPortPosition, cacheCanvas, leftOrigin, topOrigin, bufferEdgeX, bufferEdgeY, isDirty: isViewportDirty, isForceDirty: isViewportForceDirty } = viewportInfo, { rowHeaderWidth, columnHeaderHeight } = spreadsheetSkeleton, { a: scaleX = 1, d: scaleY = 1 } = mainCtx.getTransform(), bufferEdgeSizeX = bufferEdgeX * scaleX / window.devicePixelRatio, bufferEdgeSizeY = bufferEdgeY * scaleY / window.devicePixelRatio, cacheCtx = cacheCanvas.getContext();
|
|
28608
28716
|
cacheCtx.save();
|
|
28609
28717
|
const { left, top, right, bottom } = viewPortPosition, dw = right - left + rowHeaderWidth, dh = bottom - top + columnHeaderHeight, isForceDirty = isViewportForceDirty || this.isForceDirty(), isDirty = isViewportDirty || this.isDirty();
|
|
28610
|
-
diffBounds.length === 0 || diffX === 0 && diffY === 0 || isForceDirty || isDirty ? (isDirty || isForceDirty) && this.refreshCacheCanvas(viewportInfo, { cacheCanvas, cacheCtx, mainCtx, topOrigin, leftOrigin, bufferEdgeX, bufferEdgeY }) : (diffBounds.length !== 0 || diffX !== 0 || diffY !== 0) && this.paintNewAreaForScrolling(viewportInfo, {
|
|
28718
|
+
diffBounds.length === 0 || diffX === 0 && diffY === 0 || isForceDirty || isDirty ? (isDirty || isForceDirty) && (this.addRenderTagToScene("scrolling", !1), this.refreshCacheCanvas(viewportInfo, { cacheCanvas, cacheCtx, mainCtx, topOrigin, leftOrigin, bufferEdgeX, bufferEdgeY })) : (diffBounds.length !== 0 || diffX !== 0 || diffY !== 0) && (this.addRenderTagToScene("scrolling", !0), this.paintNewAreaForScrolling(viewportInfo, {
|
|
28611
28719
|
cacheCanvas,
|
|
28612
28720
|
cacheCtx,
|
|
28613
28721
|
mainCtx,
|
|
@@ -28619,7 +28727,7 @@ const OBJECT_KEY = "__SHEET_EXTENSION_FONT_DOCUMENT_INSTANCE__", _Spreadsheet =
|
|
|
28619
28727
|
scaleY,
|
|
28620
28728
|
columnHeaderHeight,
|
|
28621
28729
|
rowHeaderWidth
|
|
28622
|
-
});
|
|
28730
|
+
}));
|
|
28623
28731
|
const sourceLeft = bufferEdgeSizeX * Math.min(1, window.devicePixelRatio), sourceTop = bufferEdgeSizeY * Math.min(1, window.devicePixelRatio);
|
|
28624
28732
|
this._applyCache(cacheCanvas, mainCtx, sourceLeft, sourceTop, dw, dh, left, top, dw, dh), cacheCtx.restore();
|
|
28625
28733
|
}
|
|
@@ -29276,21 +29384,30 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29276
29384
|
__publicField(this, "beginFrame$", this._beginFrame$.asObservable());
|
|
29277
29385
|
__publicField(this, "_endFrame$", new Subject());
|
|
29278
29386
|
__publicField(this, "endFrame$", this._endFrame$.asObservable());
|
|
29387
|
+
__publicField(this, "renderFrameTimeMetric$", new Subject());
|
|
29388
|
+
__publicField(this, "renderFrameTags$", new Subject());
|
|
29389
|
+
/**
|
|
29390
|
+
* time when render start, for elapsedTime
|
|
29391
|
+
*/
|
|
29392
|
+
__publicField(this, "_renderStartTime", 0);
|
|
29279
29393
|
__publicField(this, "_rect$", null);
|
|
29280
29394
|
__publicField(this, "_container");
|
|
29281
29395
|
__publicField(this, "_canvas");
|
|
29282
29396
|
__publicField(this, "_renderingQueueLaunched", !1);
|
|
29283
|
-
__publicField(this, "
|
|
29284
|
-
__publicField(this, "_renderFunction", /* @__PURE__ */ __name(() => {
|
|
29397
|
+
__publicField(this, "_renderFrameTasks", new Array());
|
|
29398
|
+
__publicField(this, "_renderFunction", /* @__PURE__ */ __name((_timestamp) => {
|
|
29285
29399
|
}, "_renderFunction"));
|
|
29286
29400
|
__publicField(this, "_requestNewFrameHandler", -1);
|
|
29401
|
+
/**
|
|
29402
|
+
* frameCount
|
|
29403
|
+
*/
|
|
29287
29404
|
__publicField(this, "_frameId", -1);
|
|
29288
29405
|
__publicField(this, "_usingSafari", IsSafari());
|
|
29289
29406
|
__publicField(this, "_resizeObserver");
|
|
29290
29407
|
// FPS
|
|
29291
29408
|
__publicField(this, "_fps", 60);
|
|
29292
29409
|
__publicField(this, "_deltaTime", 0);
|
|
29293
|
-
__publicField(this, "_performanceMonitor"
|
|
29410
|
+
__publicField(this, "_performanceMonitor");
|
|
29294
29411
|
__publicField(this, "_pointerMoveEvent");
|
|
29295
29412
|
__publicField(this, "_pointerDownEvent");
|
|
29296
29413
|
__publicField(this, "_pointerUpEvent");
|
|
@@ -29316,7 +29433,7 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29316
29433
|
width: elemWidth,
|
|
29317
29434
|
height: elemHeight,
|
|
29318
29435
|
pixelRatio
|
|
29319
|
-
}), this._handleKeyboardAction(), this._handlePointerAction(), this._handleDragAction(), mode !== CanvasRenderMode.Printing && this._matchMediaHandler();
|
|
29436
|
+
}), this._init(), this._handleKeyboardAction(), this._handlePointerAction(), this._handleDragAction(), mode !== CanvasRenderMode.Printing && this._matchMediaHandler();
|
|
29320
29437
|
}
|
|
29321
29438
|
get clientRect$() {
|
|
29322
29439
|
return this._rect$ || (this._rect$ = new Observable((subscriber) => {
|
|
@@ -29328,6 +29445,12 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29328
29445
|
};
|
|
29329
29446
|
})).pipe(shareReplay(1));
|
|
29330
29447
|
}
|
|
29448
|
+
_init() {
|
|
29449
|
+
this._performanceMonitor = new PerformanceMonitor();
|
|
29450
|
+
}
|
|
29451
|
+
get elapsedTime() {
|
|
29452
|
+
return Tools.now() - this._renderStartTime;
|
|
29453
|
+
}
|
|
29331
29454
|
get width() {
|
|
29332
29455
|
return this.getCanvas().getWidth();
|
|
29333
29456
|
}
|
|
@@ -29414,14 +29537,20 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29414
29537
|
var _a11;
|
|
29415
29538
|
super.dispose();
|
|
29416
29539
|
const eventPrefix = getPointerPrefix(), canvasEle = this.getCanvasElement();
|
|
29417
|
-
canvasEle.removeEventListener(`${eventPrefix}leave`, this._pointerLeaveEvent), canvasEle.removeEventListener(`${eventPrefix}enter`, this._pointerEnterEvent), canvasEle.removeEventListener(`${eventPrefix}move`, this._pointerMoveEvent), canvasEle.removeEventListener(`${eventPrefix}down`, this._pointerDownEvent), canvasEle.removeEventListener(`${eventPrefix}up`, this._pointerUpEvent), canvasEle.removeEventListener(`${eventPrefix}out`, this._pointerOutEvent), canvasEle.removeEventListener(`${eventPrefix}cancel`, this._pointerCancelEvent), canvasEle.removeEventListener("blur", this._pointerBlurEvent), canvasEle.removeEventListener("dragenter", this._dragEnterEvent), canvasEle.removeEventListener("dragleave", this._dragLeaveEvent), canvasEle.removeEventListener("dragover", this._dragOverEvent), canvasEle.removeEventListener("drop", this._dropEvent), canvasEle.removeEventListener(this._getWheelEventName(), this._pointerWheelEvent), this.
|
|
29540
|
+
canvasEle.removeEventListener(`${eventPrefix}leave`, this._pointerLeaveEvent), canvasEle.removeEventListener(`${eventPrefix}enter`, this._pointerEnterEvent), canvasEle.removeEventListener(`${eventPrefix}move`, this._pointerMoveEvent), canvasEle.removeEventListener(`${eventPrefix}down`, this._pointerDownEvent), canvasEle.removeEventListener(`${eventPrefix}up`, this._pointerUpEvent), canvasEle.removeEventListener(`${eventPrefix}out`, this._pointerOutEvent), canvasEle.removeEventListener(`${eventPrefix}cancel`, this._pointerCancelEvent), canvasEle.removeEventListener("blur", this._pointerBlurEvent), canvasEle.removeEventListener("dragenter", this._dragEnterEvent), canvasEle.removeEventListener("dragleave", this._dragLeaveEvent), canvasEle.removeEventListener("dragover", this._dragOverEvent), canvasEle.removeEventListener("drop", this._dropEvent), canvasEle.removeEventListener(this._getWheelEventName(), this._pointerWheelEvent), this._renderFrameTasks = [], this._performanceMonitor.dispose(), this.getCanvas().dispose(), this.onTransformChange$.complete(), this.onTransformChange$.complete(), this._beginFrame$.complete(), this._endFrame$.complete(), (_a11 = this._resizeObserver) == null || _a11.disconnect(), this._container = null;
|
|
29541
|
+
}
|
|
29542
|
+
addFunction2RenderLoop(renderFunction) {
|
|
29543
|
+
this._renderFrameTasks.indexOf(renderFunction) === -1 && this._renderFrameTasks.push(renderFunction);
|
|
29544
|
+
}
|
|
29545
|
+
startRenderLoop() {
|
|
29546
|
+
this._renderingQueueLaunched || (this._renderStartTime = performance.now(), this._renderingQueueLaunched = !0, this._renderFunction = this._renderFunctionCore.bind(this), this._requestNewFrameHandler = requestNewFrame(this._renderFunction));
|
|
29418
29547
|
}
|
|
29419
29548
|
/**
|
|
29420
|
-
* Register and execute a render loop. The engine
|
|
29549
|
+
* Register and execute a render loop. The engine could manage more than one render function
|
|
29421
29550
|
* @param renderFunction defines the function to continuously execute
|
|
29422
29551
|
*/
|
|
29423
29552
|
runRenderLoop(renderFunction) {
|
|
29424
|
-
this.
|
|
29553
|
+
this.addFunction2RenderLoop(renderFunction), this.startRenderLoop();
|
|
29425
29554
|
}
|
|
29426
29555
|
/**
|
|
29427
29556
|
* stop executing a render loop function and remove it from the execution array
|
|
@@ -29429,25 +29558,28 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29429
29558
|
*/
|
|
29430
29559
|
stopRenderLoop(renderFunction) {
|
|
29431
29560
|
if (!renderFunction) {
|
|
29432
|
-
this.
|
|
29561
|
+
this._renderFrameTasks.length = 0, this._cancelFrame();
|
|
29433
29562
|
return;
|
|
29434
29563
|
}
|
|
29435
|
-
const index2 = this.
|
|
29436
|
-
index2 >= 0 && (this.
|
|
29564
|
+
const index2 = this._renderFrameTasks.indexOf(renderFunction);
|
|
29565
|
+
index2 >= 0 && (this._renderFrameTasks.splice(index2, 1), this._renderFrameTasks.length === 0 && this._cancelFrame());
|
|
29437
29566
|
}
|
|
29438
29567
|
/**
|
|
29439
29568
|
* Begin a new frame
|
|
29440
29569
|
*/
|
|
29441
|
-
|
|
29442
|
-
this.
|
|
29570
|
+
_beginFrame(_timestamp) {
|
|
29571
|
+
this._frameId++, this._beginFrame$.next(this._frameId);
|
|
29443
29572
|
}
|
|
29444
29573
|
/**
|
|
29445
29574
|
* End the current frame
|
|
29446
29575
|
*/
|
|
29447
|
-
|
|
29448
|
-
this.
|
|
29576
|
+
_endFrame(timestamp) {
|
|
29577
|
+
this._performanceMonitor.endFrame(timestamp), this._fps = this._performanceMonitor.averageFPS, this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0, this._endFrame$.next({
|
|
29578
|
+
FPS: this.getFps(),
|
|
29579
|
+
frameTime: this.getDeltaTime(),
|
|
29580
|
+
elapsedTime: this.elapsedTime
|
|
29581
|
+
});
|
|
29449
29582
|
}
|
|
29450
|
-
// FPS
|
|
29451
29583
|
/**
|
|
29452
29584
|
* Gets the current framerate
|
|
29453
29585
|
* @returns a number representing the framerate
|
|
@@ -29462,9 +29594,12 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29462
29594
|
getDeltaTime() {
|
|
29463
29595
|
return this._deltaTime;
|
|
29464
29596
|
}
|
|
29465
|
-
|
|
29466
|
-
|
|
29467
|
-
|
|
29597
|
+
/**
|
|
29598
|
+
* Exec all function in _renderFrameTasks
|
|
29599
|
+
*/
|
|
29600
|
+
_renderFrame(_timestamp) {
|
|
29601
|
+
for (let index2 = 0; index2 < this._renderFrameTasks.length; index2++) {
|
|
29602
|
+
const renderFunction = this._renderFrameTasks[index2];
|
|
29468
29603
|
renderFunction();
|
|
29469
29604
|
}
|
|
29470
29605
|
}
|
|
@@ -29485,12 +29620,13 @@ const _Engine = class _Engine extends ThinEngine {
|
|
|
29485
29620
|
var _a11;
|
|
29486
29621
|
return typeof window > "u" ? null : (_a11 = this.getCanvasElement().ownerDocument) != null && _a11.defaultView ? this.getCanvasElement().ownerDocument.defaultView : window;
|
|
29487
29622
|
}
|
|
29488
|
-
|
|
29623
|
+
/**
|
|
29624
|
+
* call itself by raf
|
|
29625
|
+
* Exec all function in _renderFrameTasks in _renderFrame()
|
|
29626
|
+
*/
|
|
29627
|
+
_renderFunctionCore(timestamp) {
|
|
29489
29628
|
let shouldRender = !0;
|
|
29490
|
-
this.renderEvenInBackground || (shouldRender = !1), shouldRender && (this.
|
|
29491
|
-
}
|
|
29492
|
-
_measureFps() {
|
|
29493
|
-
this._performanceMonitor.sampleFrame(), this._fps = this._performanceMonitor.averageFPS, this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;
|
|
29629
|
+
this.renderEvenInBackground || (shouldRender = !1), shouldRender && (this._beginFrame(timestamp), this._renderFrame(timestamp), this._endFrame(timestamp)), this._renderFrameTasks.length > 0 ? this._requestNewFrameHandler = requestNewFrame(this._renderFunction) : this._renderingQueueLaunched = !1;
|
|
29494
29630
|
}
|
|
29495
29631
|
_handleKeyboardAction() {
|
|
29496
29632
|
const keyboardDownEvent = /* @__PURE__ */ __name((evt) => {
|
|
@@ -29955,6 +30091,194 @@ const _Layer = class _Layer extends Disposable {
|
|
|
29955
30091
|
};
|
|
29956
30092
|
__name(_Layer, "Layer");
|
|
29957
30093
|
let Layer = _Layer;
|
|
30094
|
+
const _InputManager = class _InputManager extends Disposable {
|
|
30095
|
+
constructor(scene) {
|
|
30096
|
+
super();
|
|
30097
|
+
__publicField(this, "_scene");
|
|
30098
|
+
/** This is a defensive check to not allow control attachment prior to an already active one. If already attached, previous control is unattached before attaching the new one. */
|
|
30099
|
+
__publicField(this, "_alreadyAttached", !1);
|
|
30100
|
+
// private _alreadyAttachedTo: HTMLElement;
|
|
30101
|
+
// WorkBookObserver
|
|
30102
|
+
__publicField(this, "_onInput$");
|
|
30103
|
+
// Pointers
|
|
30104
|
+
__publicField(this, "_onPointerMove");
|
|
30105
|
+
__publicField(this, "_onPointerDown");
|
|
30106
|
+
__publicField(this, "_onPointerUp");
|
|
30107
|
+
__publicField(this, "_onPointerOut");
|
|
30108
|
+
__publicField(this, "_onPointerCancel");
|
|
30109
|
+
__publicField(this, "_onPointerEnter");
|
|
30110
|
+
__publicField(this, "_onPointerLeave");
|
|
30111
|
+
__publicField(this, "_onMouseWheel");
|
|
30112
|
+
// Keyboard
|
|
30113
|
+
__publicField(this, "_onKeyDown");
|
|
30114
|
+
__publicField(this, "_onKeyUp");
|
|
30115
|
+
// Drag
|
|
30116
|
+
__publicField(this, "_onDragEnter");
|
|
30117
|
+
__publicField(this, "_onDragLeave");
|
|
30118
|
+
__publicField(this, "_onDragOver");
|
|
30119
|
+
__publicField(this, "_onDrop");
|
|
30120
|
+
__publicField(this, "_currentMouseEnterPicked");
|
|
30121
|
+
__publicField(this, "_startingPosition", new Vector2(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY));
|
|
30122
|
+
__publicField(this, "_delayedTimeout", -1);
|
|
30123
|
+
__publicField(this, "_delayedTripeTimeout", -1);
|
|
30124
|
+
__publicField(this, "_doubleClickOccurred", 0);
|
|
30125
|
+
__publicField(this, "_tripleClickState", !1);
|
|
30126
|
+
__publicField(this, "_currentObject");
|
|
30127
|
+
this._scene = scene;
|
|
30128
|
+
}
|
|
30129
|
+
/**
|
|
30130
|
+
* TODO: DR-Univer, fix as unknown as
|
|
30131
|
+
*/
|
|
30132
|
+
dispose() {
|
|
30133
|
+
super.dispose(), this.detachControl(), this._scene = null, this._currentMouseEnterPicked = null, this._currentObject = null, this._startingPosition = null, clearTimeout(this._delayedTimeout), clearTimeout(this._delayedTripeTimeout), this._onPointerMove = null, this._onPointerDown = null, this._onPointerUp = null, this._onPointerEnter = null, this._onPointerLeave = null, this._onMouseWheel = null, this._onKeyDown = null, this._onKeyUp = null, this._onDragEnter = null, this._onDragLeave = null, this._onDragOver = null, this._onDrop = null;
|
|
30134
|
+
}
|
|
30135
|
+
// Handle events such as triggering mouseleave and mouseenter.
|
|
30136
|
+
mouseLeaveEnterHandler(evt) {
|
|
30137
|
+
var _a11;
|
|
30138
|
+
const o = this._currentObject;
|
|
30139
|
+
if (o == null)
|
|
30140
|
+
(_a11 = this._currentMouseEnterPicked) == null || _a11.triggerPointerLeave(evt), this._currentMouseEnterPicked = null;
|
|
30141
|
+
else if (o !== this._currentMouseEnterPicked) {
|
|
30142
|
+
const previousPicked = this._currentMouseEnterPicked;
|
|
30143
|
+
this._currentMouseEnterPicked = o, previousPicked == null || previousPicked.triggerPointerLeave(evt), o == null || o.triggerPointerEnter(evt);
|
|
30144
|
+
}
|
|
30145
|
+
}
|
|
30146
|
+
// Handle events such as triggering dragleave and dragenter.
|
|
30147
|
+
dragLeaveEnterHandler(evt) {
|
|
30148
|
+
var _a11;
|
|
30149
|
+
const o = this._currentObject;
|
|
30150
|
+
if (o == null)
|
|
30151
|
+
(_a11 = this._currentMouseEnterPicked) == null || _a11.triggerDragLeave(evt), this._currentMouseEnterPicked = null;
|
|
30152
|
+
else if (o !== this._currentMouseEnterPicked) {
|
|
30153
|
+
const previousPicked = this._currentMouseEnterPicked;
|
|
30154
|
+
this._currentMouseEnterPicked = o, previousPicked == null || previousPicked.triggerDragLeave(evt), o == null || o.triggerDragEnter(evt);
|
|
30155
|
+
}
|
|
30156
|
+
}
|
|
30157
|
+
// eslint-disable-next-line max-lines-per-function
|
|
30158
|
+
attachControl(hasDown = !0, hasUp = !0, enableMove = !0, hasWheel = !0, hasEnter = !0, hasLeave = !0) {
|
|
30159
|
+
const engine = this._scene.getEngine();
|
|
30160
|
+
engine && (this._onPointerEnter = (evt) => {
|
|
30161
|
+
var _a11;
|
|
30162
|
+
evt.pointerId === void 0 && (evt.pointerId = 0), this._currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), (_a11 = this._currentObject) == null || _a11.triggerPointerMove(evt), this.mouseLeaveEnterHandler(evt);
|
|
30163
|
+
}, this._onPointerLeave = (evt) => {
|
|
30164
|
+
evt.pointerId === void 0 && (evt.pointerId = 0), this._currentObject = null, this.mouseLeaveEnterHandler(evt);
|
|
30165
|
+
}, this._onPointerMove = (evt) => {
|
|
30166
|
+
var _a11;
|
|
30167
|
+
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
30168
|
+
const currentObject = this._currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerMove(evt);
|
|
30169
|
+
this.mouseLeaveEnterHandler(evt), this._checkDirectSceneEventTrigger(!isStop, this._currentObject) && (this._scene.onPointerMove$.emitEvent(evt), (_a11 = this._scene.getEngine()) == null || _a11.setRemainCapture());
|
|
30170
|
+
}, this._onPointerDown = (evt) => {
|
|
30171
|
+
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
30172
|
+
const currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerDown(evt);
|
|
30173
|
+
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onPointerDown$.emitEvent(evt);
|
|
30174
|
+
}, this._onPointerUp = (evt) => {
|
|
30175
|
+
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
30176
|
+
const currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerUp(evt);
|
|
30177
|
+
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onPointerUp$.emitEvent(evt), this._prePointerDoubleOrTripleClick(evt);
|
|
30178
|
+
}, this._onPointerCancel = (evt) => {
|
|
30179
|
+
this._scene.onPointerCancel$.emitEvent(evt);
|
|
30180
|
+
}, this._onPointerOut = (evt) => {
|
|
30181
|
+
this._scene.onPointerOut$.emitEvent(evt);
|
|
30182
|
+
}, this._onMouseWheel = (evt) => {
|
|
30183
|
+
const currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerMouseWheel(evt);
|
|
30184
|
+
this._scene.getViewports().forEach((vp) => {
|
|
30185
|
+
vp.onMouseWheel$.emitEvent(evt);
|
|
30186
|
+
}), this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onMouseWheel$.emitEvent(evt);
|
|
30187
|
+
}, this._onKeyDown = (evt) => {
|
|
30188
|
+
this._scene.onKeyDown$.emitEvent(evt);
|
|
30189
|
+
}, this._onKeyUp = (evt) => {
|
|
30190
|
+
this._scene.onKeyUp$.emitEvent(evt);
|
|
30191
|
+
}, this._onDragEnter = (evt) => {
|
|
30192
|
+
var _a11;
|
|
30193
|
+
this._currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), (_a11 = this._currentObject) == null || _a11.triggerDragOver(evt), this.dragLeaveEnterHandler(evt);
|
|
30194
|
+
}, this._onDragLeave = (evt) => {
|
|
30195
|
+
this._currentObject = null, this.dragLeaveEnterHandler(evt);
|
|
30196
|
+
}, this._onDragOver = (evt) => {
|
|
30197
|
+
var _a11, _b;
|
|
30198
|
+
this._currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY);
|
|
30199
|
+
const isStop = (_a11 = this._currentObject) == null ? void 0 : _a11.triggerDragOver(evt);
|
|
30200
|
+
this.dragLeaveEnterHandler(evt), this._checkDirectSceneEventTrigger(!isStop, this._currentObject) && (this._scene.onDragOver$.emitEvent(evt), (_b = this._scene.getEngine()) == null || _b.setRemainCapture());
|
|
30201
|
+
}, this._onDrop = (evt) => {
|
|
30202
|
+
const currentObject = this._getObjectAtPos(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerDrop(evt);
|
|
30203
|
+
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onDrop$.emitEvent(evt);
|
|
30204
|
+
}, this._onInput$ = engine.onInputChanged$.subscribeEvent((eventData) => {
|
|
30205
|
+
const evt = eventData;
|
|
30206
|
+
if (eventData.deviceType === DeviceType.Keyboard && (eventData.currentState === 1 && this._onKeyDown(evt), eventData.currentState === 0 && this._onKeyUp(evt)), eventData.dataTransfer) {
|
|
30207
|
+
enableMove && (eventData.inputIndex === PointerInput.Horizontal || eventData.inputIndex === PointerInput.Vertical || eventData.inputIndex === PointerInput.DeltaHorizontal || eventData.inputIndex === PointerInput.DeltaVertical) ? this._onDragOver(evt) : hasEnter && eventData.currentState === 4 ? this._onDragEnter(evt) : hasLeave && eventData.currentState === 5 ? this._onDragLeave(evt) : hasUp && eventData.currentState === 6 && this._onDrop(evt);
|
|
30208
|
+
return;
|
|
30209
|
+
}
|
|
30210
|
+
if (eventData.deviceType === DeviceType.Mouse || eventData.deviceType === DeviceType.Touch)
|
|
30211
|
+
switch (hasDown && eventData.inputIndex >= PointerInput.LeftClick && eventData.inputIndex <= PointerInput.RightClick && eventData.currentState === 1 && this._onPointerDown(evt), hasUp && eventData.inputIndex >= PointerInput.LeftClick && eventData.inputIndex <= PointerInput.RightClick && eventData.currentState === 0 && this._onPointerUp(evt), enableMove && eventData.type === "pointermove" ? this._onPointerMove(evt) : hasWheel && (eventData.inputIndex === PointerInput.MouseWheelX || eventData.inputIndex === PointerInput.MouseWheelY || eventData.inputIndex === PointerInput.MouseWheelZ) ? this._onMouseWheel(evt) : hasEnter && eventData.currentState === 2 ? this._onPointerEnter(evt) : hasLeave && eventData.currentState === 3 && this._onPointerLeave(evt), evt.type) {
|
|
30212
|
+
case "pointerout":
|
|
30213
|
+
this._onPointerOut(evt);
|
|
30214
|
+
break;
|
|
30215
|
+
case "pointercancel":
|
|
30216
|
+
this._onPointerCancel(evt);
|
|
30217
|
+
break;
|
|
30218
|
+
}
|
|
30219
|
+
}), this.disposeWithMe(
|
|
30220
|
+
toDisposable(
|
|
30221
|
+
this._onInput$
|
|
30222
|
+
)
|
|
30223
|
+
), this._alreadyAttached = !0);
|
|
30224
|
+
}
|
|
30225
|
+
/**
|
|
30226
|
+
* Detaches all event handlers
|
|
30227
|
+
*/
|
|
30228
|
+
detachControl() {
|
|
30229
|
+
var _a11;
|
|
30230
|
+
!this._alreadyAttached || !this._scene.getEngine() || ((_a11 = this._onInput$) == null || _a11.unsubscribe(), this._alreadyAttached = !1);
|
|
30231
|
+
}
|
|
30232
|
+
/**
|
|
30233
|
+
* Just call this._scene?.pick, nothing special.
|
|
30234
|
+
* @param offsetX
|
|
30235
|
+
* @param offsetY
|
|
30236
|
+
* @returns
|
|
30237
|
+
*/
|
|
30238
|
+
_getObjectAtPos(offsetX, offsetY) {
|
|
30239
|
+
var _a11;
|
|
30240
|
+
return (_a11 = this._scene) == null ? void 0 : _a11.pick(Vector2.FromArray([offsetX, offsetY]));
|
|
30241
|
+
}
|
|
30242
|
+
_checkDirectSceneEventTrigger(isTrigger, currentObject) {
|
|
30243
|
+
let notObject = !1;
|
|
30244
|
+
currentObject == null && (notObject = !0);
|
|
30245
|
+
let isNotInSceneViewer = !0;
|
|
30246
|
+
if (currentObject && currentObject.classType === RENDER_CLASS_TYPE.BASE_OBJECT) {
|
|
30247
|
+
const scene = currentObject.getScene();
|
|
30248
|
+
scene && (isNotInSceneViewer = scene.getParent().classType !== RENDER_CLASS_TYPE.SCENE_VIEWER);
|
|
30249
|
+
}
|
|
30250
|
+
return !this._scene.objectsEvented && isTrigger && isNotInSceneViewer || notObject;
|
|
30251
|
+
}
|
|
30252
|
+
/**
|
|
30253
|
+
* @hidden
|
|
30254
|
+
* @returns Boolean if delta for pointer exceeds drag movement threshold
|
|
30255
|
+
*/
|
|
30256
|
+
_isPointerSwiping(pointerX, pointerY) {
|
|
30257
|
+
return Math.abs(this._startingPosition.x - pointerX) > _InputManager.DragMovementThreshold || Math.abs(this._startingPosition.y - pointerY) > _InputManager.DragMovementThreshold;
|
|
30258
|
+
}
|
|
30259
|
+
_prePointerDoubleOrTripleClick(evt) {
|
|
30260
|
+
var _a11, _b, _c, _d;
|
|
30261
|
+
const { clientX, clientY } = evt;
|
|
30262
|
+
this._isPointerSwiping(clientX, clientY) && this._resetDoubleClickParam(), this._delayedTimeout = setTimeout(() => {
|
|
30263
|
+
this._resetDoubleClickParam();
|
|
30264
|
+
}, _InputManager.DoubleClickDelay), this._doubleClickOccurred += 1, this._tripleClickState && ((_b = (_a11 = this._scene) == null ? void 0 : _a11.pick(Vector2.FromArray([evt.offsetX, evt.offsetY]))) == null || _b.triggerTripleClick(evt), this._scene.onTripleClick$.emitEvent(evt)), this._doubleClickOccurred === 2 && ((_d = (_c = this._scene) == null ? void 0 : _c.pick(Vector2.FromArray([evt.offsetX, evt.offsetY]))) == null || _d.triggerDblclick(evt), this._scene.onDblclick$.emitEvent(evt), this._resetDoubleClickParam(), this._tripleClickState = !0, clearTimeout(this._delayedTripeTimeout), this._delayedTripeTimeout = setTimeout(() => {
|
|
30265
|
+
this._tripleClickState = !1;
|
|
30266
|
+
}, _InputManager.TripleClickDelay)), this._startingPosition.x = clientX, this._startingPosition.y = clientY;
|
|
30267
|
+
}
|
|
30268
|
+
_resetDoubleClickParam() {
|
|
30269
|
+
this._doubleClickOccurred = 0, clearTimeout(this._delayedTimeout);
|
|
30270
|
+
}
|
|
30271
|
+
};
|
|
30272
|
+
__name(_InputManager, "InputManager"), /** The distance in pixel that you have to move to prevent some events */
|
|
30273
|
+
__publicField(_InputManager, "DragMovementThreshold", 2), // in pixels
|
|
30274
|
+
/** Time in milliseconds to wait to raise long press events if button is still pressed */
|
|
30275
|
+
__publicField(_InputManager, "LongPressDelay", 500), // in milliseconds
|
|
30276
|
+
/** Time in milliseconds with two consecutive clicks will be considered as a double or triple click */
|
|
30277
|
+
__publicField(_InputManager, "DoubleClickDelay", 500), // in milliseconds
|
|
30278
|
+
__publicField(_InputManager, "TripleClickDelay", 300), // in milliseconds
|
|
30279
|
+
/** If you need to check double click without raising a single click at first click, enable this flag */
|
|
30280
|
+
__publicField(_InputManager, "ExclusiveDoubleClickMode", !1);
|
|
30281
|
+
let InputManager = _InputManager;
|
|
29958
30282
|
var ScrollTimerType = /* @__PURE__ */ ((ScrollTimerType2) => (ScrollTimerType2[ScrollTimerType2.NONE = 0] = "NONE", ScrollTimerType2[ScrollTimerType2.X = 1] = "X", ScrollTimerType2[ScrollTimerType2.Y = 2] = "Y", ScrollTimerType2[ScrollTimerType2.ALL = 3] = "ALL", ScrollTimerType2))(ScrollTimerType || {});
|
|
29959
30283
|
const _ScrollTimer = class _ScrollTimer {
|
|
29960
30284
|
constructor(_scene, _scrollTimerType = 3, _padding) {
|
|
@@ -29966,6 +30290,9 @@ const _ScrollTimer = class _ScrollTimer {
|
|
|
29966
30290
|
__publicField(this, "_moveY", 0);
|
|
29967
30291
|
__publicField(this, "_scrollX", 0);
|
|
29968
30292
|
__publicField(this, "_scrollY", 0);
|
|
30293
|
+
/**
|
|
30294
|
+
* Custmize scroll function.
|
|
30295
|
+
*/
|
|
29969
30296
|
__publicField(this, "_scrollFunction");
|
|
29970
30297
|
this._scene = _scene, this._scrollTimerType = _scrollTimerType, this._padding = _padding, this._padding || (this._padding = { t: 0, b: 15, l: 0, r: 60 });
|
|
29971
30298
|
}
|
|
@@ -29987,7 +30314,8 @@ const _ScrollTimer = class _ScrollTimer {
|
|
|
29987
30314
|
startScroll(offsetX, offsetY, targetViewport) {
|
|
29988
30315
|
this._offsetX = offsetX, this._offsetY = offsetY, this._moveX = offsetX, this._moveY = offsetY, targetViewport != null ? this._viewport = targetViewport : this._viewport = this.getViewportByCoord(this._scene), this._runRenderLoop();
|
|
29989
30316
|
}
|
|
29990
|
-
|
|
30317
|
+
//eslint-disable-next-line complexity
|
|
30318
|
+
_autoScroll(viewport) {
|
|
29991
30319
|
const topBounding = (viewport == null ? void 0 : viewport.top) || 0, bottomBounding = topBounding + ((viewport == null ? void 0 : viewport.height) || 0), leftBounding = (viewport == null ? void 0 : viewport.left) || 0, rightBounding = leftBounding + ((viewport == null ? void 0 : viewport.width) || 0), { t = 0, b = 0, r = 0, l = 0 } = this._padding;
|
|
29992
30320
|
let x = 0, y = 0, shouldScroll = !1;
|
|
29993
30321
|
if (this._scrollTimerType & 1 && (this._moveX < leftBounding + l && (x = this._moveX - leftBounding - l, shouldScroll = !0), this._moveX > rightBounding - r && (x = this._moveX - rightBounding + r, shouldScroll = !0)), this._scrollTimerType & 2 && (this._moveY < topBounding + t && (y = this._moveY - topBounding - t, shouldScroll = !0), this._moveY > bottomBounding - b && (y = this._moveY - bottomBounding + b, shouldScroll = !0)), !shouldScroll)
|
|
@@ -29998,7 +30326,7 @@ const _ScrollTimer = class _ScrollTimer {
|
|
|
29998
30326
|
}), viewportScrollVal = viewport == null ? void 0 : viewport.transScroll2ViewportScrollValue(x, y);
|
|
29999
30327
|
if (this._scrollX = (viewportScrollVal == null ? void 0 : viewportScrollVal.x) || 0, this._scrollY = (viewportScrollVal == null ? void 0 : viewportScrollVal.y) || 0, limited) {
|
|
30000
30328
|
const ancestorScene = this._findAncestorScene(viewport == null ? void 0 : viewport.scene), newViewport = this.getViewportByCoord(ancestorScene);
|
|
30001
|
-
newViewport && this.
|
|
30329
|
+
newViewport && this._autoScroll(newViewport);
|
|
30002
30330
|
}
|
|
30003
30331
|
}
|
|
30004
30332
|
scrolling(offsetX, offsetY, scrollFunction) {
|
|
@@ -30017,7 +30345,7 @@ const _ScrollTimer = class _ScrollTimer {
|
|
|
30017
30345
|
return this._scene;
|
|
30018
30346
|
}
|
|
30019
30347
|
_runRenderLoop() {
|
|
30020
|
-
this.
|
|
30348
|
+
this._autoScroll(this._viewport), this._scrollFunction && this._scrollFunction(this._scrollX, this._scrollY), this._requestNewFrameNumber = requestNewFrame(this._runRenderLoop.bind(this));
|
|
30021
30349
|
}
|
|
30022
30350
|
_findAncestorScene(scene) {
|
|
30023
30351
|
let parent = scene == null ? void 0 : scene.getParent();
|
|
@@ -30232,7 +30560,7 @@ const TransformerManagerTypeArray = [
|
|
|
30232
30560
|
const { isCropper } = this._getConfig(applyObject), scene = this._getTopScene();
|
|
30233
30561
|
if (!scene)
|
|
30234
30562
|
return;
|
|
30235
|
-
this._addCancelObserver(scene), scene.
|
|
30563
|
+
this._addCancelObserver(scene), scene.disableObjectsEvent();
|
|
30236
30564
|
const scrollTimer = ScrollTimer.create(scene);
|
|
30237
30565
|
scrollTimer.startScroll(evtOffsetX, evtOffsetY);
|
|
30238
30566
|
const { scrollX, scrollY } = getCurrentScrollXY(scrollTimer);
|
|
@@ -30253,7 +30581,7 @@ const TransformerManagerTypeArray = [
|
|
|
30253
30581
|
this._moving(moveOffsetX, moveOffsetY, scrollTimer, isCropper);
|
|
30254
30582
|
});
|
|
30255
30583
|
}), scenePointerUpSub = scene.onPointerUp$.subscribeEvent((event) => {
|
|
30256
|
-
scenePointerMoveSub == null || scenePointerMoveSub.unsubscribe(), scenePointerUpSub == null || scenePointerUpSub.unsubscribe(), scene.
|
|
30584
|
+
scenePointerMoveSub == null || scenePointerMoveSub.unsubscribe(), scenePointerUpSub == null || scenePointerUpSub.unsubscribe(), scene.enableObjectsEvent(), !isCropper && this.refreshControls(), scrollTimer.dispose();
|
|
30257
30585
|
const { offsetX, offsetY } = event;
|
|
30258
30586
|
isCropper ? this._changeEnd$.next({
|
|
30259
30587
|
objects: /* @__PURE__ */ new Map([[applyObject.oKey, applyObject]]),
|
|
@@ -30521,7 +30849,7 @@ const TransformerManagerTypeArray = [
|
|
|
30521
30849
|
const topScene = this._getTopScene(), { keepRatio, isCropper } = this._getConfig(applyObject);
|
|
30522
30850
|
if (topScene == null)
|
|
30523
30851
|
return;
|
|
30524
|
-
topScene.
|
|
30852
|
+
topScene.disableObjectsEvent();
|
|
30525
30853
|
const scrollTimer = ScrollTimer.create(topScene);
|
|
30526
30854
|
scrollTimer.startScroll(evtOffsetX, evtOffsetY);
|
|
30527
30855
|
const { scrollX, scrollY } = getCurrentScrollXY(scrollTimer);
|
|
@@ -30552,7 +30880,7 @@ const TransformerManagerTypeArray = [
|
|
|
30552
30880
|
}), topScene.setCursor(cursor);
|
|
30553
30881
|
}), this._topScenePointerUpSub = topScene.onPointerUp$.subscribeEvent((event) => {
|
|
30554
30882
|
var _a11, _b;
|
|
30555
|
-
(_a11 = this._topScenePointerMoveSub) == null || _a11.unsubscribe(), (_b = this._topScenePointerUpSub) == null || _b.unsubscribe(), topScene.
|
|
30883
|
+
(_a11 = this._topScenePointerMoveSub) == null || _a11.unsubscribe(), (_b = this._topScenePointerUpSub) == null || _b.unsubscribe(), topScene.enableObjectsEvent(), topScene.resetCursor(), scrollTimer.dispose(), this._startStateMap.clear();
|
|
30556
30884
|
const { offsetX, offsetY } = event;
|
|
30557
30885
|
isCropper ? (this._recoverySizeBoundary([applyObject], ancestorLeft, ancestorTop, topSceneWidth, topSceneHeight), this._changeEnd$.next({
|
|
30558
30886
|
objects: /* @__PURE__ */ new Map([[applyObject.oKey, applyObject]]),
|
|
@@ -30585,7 +30913,7 @@ const TransformerManagerTypeArray = [
|
|
|
30585
30913
|
const topScene = this._getTopScene();
|
|
30586
30914
|
if (topScene == null)
|
|
30587
30915
|
return;
|
|
30588
|
-
topScene.
|
|
30916
|
+
topScene.disableObjectsEvent();
|
|
30589
30917
|
const viewportActualXY = topScene.getVpScrollXYInfoByPosToVp(Vector2.create(evtOffsetX, evtOffsetY));
|
|
30590
30918
|
this._viewportScrollX = viewportActualXY.x, this._viewportScrollY = viewportActualXY.y;
|
|
30591
30919
|
const cursor = this._getRotateAnchorCursor(
|
|
@@ -30601,7 +30929,7 @@ const TransformerManagerTypeArray = [
|
|
|
30601
30929
|
const { offsetX: moveOffsetX, offsetY: moveOffsetY } = moveEvt;
|
|
30602
30930
|
this._rotateMoving(moveOffsetX, moveOffsetY, centerX, centerY, agentOrigin), topScene.setCursor(cursor);
|
|
30603
30931
|
}), topScenePointerUpSub = topScene.onPointerUp$.subscribeEvent((event) => {
|
|
30604
|
-
topScenePointerMoveSub == null || topScenePointerMoveSub.unsubscribe(), topScenePointerUpSub == null || topScenePointerUpSub.unsubscribe(), topScene.
|
|
30932
|
+
topScenePointerMoveSub == null || topScenePointerMoveSub.unsubscribe(), topScenePointerUpSub == null || topScenePointerUpSub.unsubscribe(), topScene.enableObjectsEvent(), topScene.resetCursor(), this.refreshControls();
|
|
30605
30933
|
const { offsetX, offsetY } = event;
|
|
30606
30934
|
this._changeEnd$.next({
|
|
30607
30935
|
objects: this._selectedObjectMap,
|
|
@@ -31032,188 +31360,6 @@ const TransformerManagerTypeArray = [
|
|
|
31032
31360
|
};
|
|
31033
31361
|
__name(_Transformer, "Transformer");
|
|
31034
31362
|
let Transformer = _Transformer;
|
|
31035
|
-
const _InputManager = class _InputManager extends Disposable {
|
|
31036
|
-
constructor(scene) {
|
|
31037
|
-
super();
|
|
31038
|
-
/** This is a defensive check to not allow control attachment prior to an already active one. If already attached, previous control is unattached before attaching the new one. */
|
|
31039
|
-
__publicField(this, "_alreadyAttached", !1);
|
|
31040
|
-
// private _alreadyAttachedTo: HTMLElement;
|
|
31041
|
-
// WorkBookObserver
|
|
31042
|
-
__publicField(this, "_onInput$");
|
|
31043
|
-
// Pointers
|
|
31044
|
-
__publicField(this, "_onPointerMove");
|
|
31045
|
-
__publicField(this, "_onPointerDown");
|
|
31046
|
-
__publicField(this, "_onPointerUp");
|
|
31047
|
-
__publicField(this, "_onPointerOut");
|
|
31048
|
-
__publicField(this, "_onPointerCancel");
|
|
31049
|
-
__publicField(this, "_onPointerEnter");
|
|
31050
|
-
__publicField(this, "_onPointerLeave");
|
|
31051
|
-
__publicField(this, "_onMouseWheel");
|
|
31052
|
-
// Keyboard
|
|
31053
|
-
__publicField(this, "_onKeyDown");
|
|
31054
|
-
__publicField(this, "_onKeyUp");
|
|
31055
|
-
// Drag
|
|
31056
|
-
__publicField(this, "_onDragEnter");
|
|
31057
|
-
__publicField(this, "_onDragLeave");
|
|
31058
|
-
__publicField(this, "_onDragOver");
|
|
31059
|
-
__publicField(this, "_onDrop");
|
|
31060
|
-
__publicField(this, "_scene");
|
|
31061
|
-
__publicField(this, "_currentMouseEnterPicked");
|
|
31062
|
-
__publicField(this, "_startingPosition", new Vector2(Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY));
|
|
31063
|
-
__publicField(this, "_delayedTimeout", -1);
|
|
31064
|
-
__publicField(this, "_delayedTripeTimeout", -1);
|
|
31065
|
-
__publicField(this, "_doubleClickOccurred", 0);
|
|
31066
|
-
__publicField(this, "_tripleClickState", !1);
|
|
31067
|
-
__publicField(this, "_currentObject");
|
|
31068
|
-
this._scene = scene;
|
|
31069
|
-
}
|
|
31070
|
-
/**
|
|
31071
|
-
* TODO: DR-Univer, fix as unknown as
|
|
31072
|
-
*/
|
|
31073
|
-
dispose() {
|
|
31074
|
-
super.dispose(), this.detachControl(), this._scene = null, this._currentMouseEnterPicked = null, this._currentObject = null, this._startingPosition = null, clearTimeout(this._delayedTimeout), clearTimeout(this._delayedTripeTimeout), this._onPointerMove = null, this._onPointerDown = null, this._onPointerUp = null, this._onPointerEnter = null, this._onPointerLeave = null, this._onMouseWheel = null, this._onKeyDown = null, this._onKeyUp = null, this._onDragEnter = null, this._onDragLeave = null, this._onDragOver = null, this._onDrop = null;
|
|
31075
|
-
}
|
|
31076
|
-
// Handle events such as triggering mouseleave and mouseenter.
|
|
31077
|
-
mouseLeaveEnterHandler(evt) {
|
|
31078
|
-
var _a11;
|
|
31079
|
-
const o = this._currentObject;
|
|
31080
|
-
if (o == null)
|
|
31081
|
-
(_a11 = this._currentMouseEnterPicked) == null || _a11.triggerPointerLeave(evt), this._currentMouseEnterPicked = null;
|
|
31082
|
-
else if (o !== this._currentMouseEnterPicked) {
|
|
31083
|
-
const previousPicked = this._currentMouseEnterPicked;
|
|
31084
|
-
this._currentMouseEnterPicked = o, previousPicked == null || previousPicked.triggerPointerLeave(evt), o == null || o.triggerPointerEnter(evt);
|
|
31085
|
-
}
|
|
31086
|
-
}
|
|
31087
|
-
// Handle events such as triggering dragleave and dragenter.
|
|
31088
|
-
dragLeaveEnterHandler(evt) {
|
|
31089
|
-
var _a11;
|
|
31090
|
-
const o = this._currentObject;
|
|
31091
|
-
if (o == null)
|
|
31092
|
-
(_a11 = this._currentMouseEnterPicked) == null || _a11.triggerDragLeave(evt), this._currentMouseEnterPicked = null;
|
|
31093
|
-
else if (o !== this._currentMouseEnterPicked) {
|
|
31094
|
-
const previousPicked = this._currentMouseEnterPicked;
|
|
31095
|
-
this._currentMouseEnterPicked = o, previousPicked == null || previousPicked.triggerDragLeave(evt), o == null || o.triggerDragEnter(evt);
|
|
31096
|
-
}
|
|
31097
|
-
}
|
|
31098
|
-
// eslint-disable-next-line max-lines-per-function
|
|
31099
|
-
attachControl(hasDown = !0, hasUp = !0, enableMove = !0, hasWheel = !0, hasEnter = !0, hasLeave = !0) {
|
|
31100
|
-
const engine = this._scene.getEngine();
|
|
31101
|
-
engine && (this._onPointerEnter = (evt) => {
|
|
31102
|
-
var _a11;
|
|
31103
|
-
evt.pointerId === void 0 && (evt.pointerId = 0), this._currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), (_a11 = this._currentObject) == null || _a11.triggerPointerMove(evt), this.mouseLeaveEnterHandler(evt);
|
|
31104
|
-
}, this._onPointerLeave = (evt) => {
|
|
31105
|
-
evt.pointerId === void 0 && (evt.pointerId = 0), this._currentObject = null, this.mouseLeaveEnterHandler(evt);
|
|
31106
|
-
}, this._onPointerMove = (evt) => {
|
|
31107
|
-
var _a11;
|
|
31108
|
-
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
31109
|
-
const currentObject = this._currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerMove(evt);
|
|
31110
|
-
this.mouseLeaveEnterHandler(evt), this._checkDirectSceneEventTrigger(!isStop, this._currentObject) && (this._scene.onPointerMove$.emitEvent(evt), (_a11 = this._scene.getEngine()) == null || _a11.setRemainCapture());
|
|
31111
|
-
}, this._onPointerDown = (evt) => {
|
|
31112
|
-
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
31113
|
-
const currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerDown(evt);
|
|
31114
|
-
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onPointerDown$.emitEvent(evt);
|
|
31115
|
-
}, this._onPointerUp = (evt) => {
|
|
31116
|
-
evt.pointerId === void 0 && (evt.pointerId = 0);
|
|
31117
|
-
const currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerPointerUp(evt);
|
|
31118
|
-
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onPointerUp$.emitEvent(evt), this._prePointerDoubleOrTripleClick(evt);
|
|
31119
|
-
}, this._onPointerCancel = (evt) => {
|
|
31120
|
-
this._scene.onPointerCancel$.emitEvent(evt);
|
|
31121
|
-
}, this._onPointerOut = (evt) => {
|
|
31122
|
-
this._scene.onPointerOut$.emitEvent(evt);
|
|
31123
|
-
}, this._onMouseWheel = (evt) => {
|
|
31124
|
-
const currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerMouseWheel(evt);
|
|
31125
|
-
this._scene.getViewports().forEach((vp) => {
|
|
31126
|
-
vp.onMouseWheel$.emitEvent(evt);
|
|
31127
|
-
}), this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onMouseWheel$.emitEvent(evt);
|
|
31128
|
-
}, this._onKeyDown = (evt) => {
|
|
31129
|
-
this._scene.onKeyDown$.emitEvent(evt);
|
|
31130
|
-
}, this._onKeyUp = (evt) => {
|
|
31131
|
-
this._scene.onKeyUp$.emitEvent(evt);
|
|
31132
|
-
}, this._onDragEnter = (evt) => {
|
|
31133
|
-
var _a11;
|
|
31134
|
-
this._currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), (_a11 = this._currentObject) == null || _a11.triggerDragOver(evt), this.dragLeaveEnterHandler(evt);
|
|
31135
|
-
}, this._onDragLeave = (evt) => {
|
|
31136
|
-
this._currentObject = null, this.dragLeaveEnterHandler(evt);
|
|
31137
|
-
}, this._onDragOver = (evt) => {
|
|
31138
|
-
var _a11, _b;
|
|
31139
|
-
this._currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY);
|
|
31140
|
-
const isStop = (_a11 = this._currentObject) == null ? void 0 : _a11.triggerDragOver(evt);
|
|
31141
|
-
this.dragLeaveEnterHandler(evt), this._checkDirectSceneEventTrigger(!isStop, this._currentObject) && (this._scene.onDragOver$.emitEvent(evt), (_b = this._scene.getEngine()) == null || _b.setRemainCapture());
|
|
31142
|
-
}, this._onDrop = (evt) => {
|
|
31143
|
-
const currentObject = this._getCurrentObject(evt.offsetX, evt.offsetY), isStop = currentObject == null ? void 0 : currentObject.triggerDrop(evt);
|
|
31144
|
-
this._checkDirectSceneEventTrigger(!isStop, currentObject) && this._scene.onDrop$.emitEvent(evt);
|
|
31145
|
-
}, this._onInput$ = engine.onInputChanged$.subscribeEvent((eventData) => {
|
|
31146
|
-
const evt = eventData;
|
|
31147
|
-
if (eventData.deviceType === DeviceType.Keyboard && (eventData.currentState === 1 && this._onKeyDown(evt), eventData.currentState === 0 && this._onKeyUp(evt)), eventData.dataTransfer) {
|
|
31148
|
-
enableMove && (eventData.inputIndex === PointerInput.Horizontal || eventData.inputIndex === PointerInput.Vertical || eventData.inputIndex === PointerInput.DeltaHorizontal || eventData.inputIndex === PointerInput.DeltaVertical) ? this._onDragOver(evt) : hasEnter && eventData.currentState === 4 ? this._onDragEnter(evt) : hasLeave && eventData.currentState === 5 ? this._onDragLeave(evt) : hasUp && eventData.currentState === 6 && this._onDrop(evt);
|
|
31149
|
-
return;
|
|
31150
|
-
}
|
|
31151
|
-
if (eventData.deviceType === DeviceType.Mouse || eventData.deviceType === DeviceType.Touch)
|
|
31152
|
-
switch (hasDown && eventData.inputIndex >= PointerInput.LeftClick && eventData.inputIndex <= PointerInput.RightClick && eventData.currentState === 1 && this._onPointerDown(evt), hasUp && eventData.inputIndex >= PointerInput.LeftClick && eventData.inputIndex <= PointerInput.RightClick && eventData.currentState === 0 && this._onPointerUp(evt), enableMove && eventData.type === "pointermove" ? this._onPointerMove(evt) : hasWheel && (eventData.inputIndex === PointerInput.MouseWheelX || eventData.inputIndex === PointerInput.MouseWheelY || eventData.inputIndex === PointerInput.MouseWheelZ) ? this._onMouseWheel(evt) : hasEnter && eventData.currentState === 2 ? this._onPointerEnter(evt) : hasLeave && eventData.currentState === 3 && this._onPointerLeave(evt), evt.type) {
|
|
31153
|
-
case "pointerout":
|
|
31154
|
-
this._onPointerOut(evt);
|
|
31155
|
-
break;
|
|
31156
|
-
case "pointercancel":
|
|
31157
|
-
this._onPointerCancel(evt);
|
|
31158
|
-
break;
|
|
31159
|
-
}
|
|
31160
|
-
}), this.disposeWithMe(
|
|
31161
|
-
toDisposable(
|
|
31162
|
-
this._onInput$
|
|
31163
|
-
)
|
|
31164
|
-
), this._alreadyAttached = !0);
|
|
31165
|
-
}
|
|
31166
|
-
/**
|
|
31167
|
-
* Detaches all event handlers
|
|
31168
|
-
*/
|
|
31169
|
-
detachControl() {
|
|
31170
|
-
var _a11;
|
|
31171
|
-
!this._alreadyAttached || !this._scene.getEngine() || ((_a11 = this._onInput$) == null || _a11.unsubscribe(), this._alreadyAttached = !1);
|
|
31172
|
-
}
|
|
31173
|
-
_getCurrentObject(offsetX, offsetY) {
|
|
31174
|
-
var _a11;
|
|
31175
|
-
return (_a11 = this._scene) == null ? void 0 : _a11.pick(Vector2.FromArray([offsetX, offsetY]));
|
|
31176
|
-
}
|
|
31177
|
-
_checkDirectSceneEventTrigger(isTrigger, currentObject) {
|
|
31178
|
-
let notObject = !1;
|
|
31179
|
-
currentObject == null && (notObject = !0);
|
|
31180
|
-
let isNotInSceneViewer = !0;
|
|
31181
|
-
if (currentObject && currentObject.classType === RENDER_CLASS_TYPE.BASE_OBJECT) {
|
|
31182
|
-
const scene = currentObject.getScene();
|
|
31183
|
-
scene && (isNotInSceneViewer = scene.getParent().classType !== RENDER_CLASS_TYPE.SCENE_VIEWER);
|
|
31184
|
-
}
|
|
31185
|
-
return !this._scene.evented && isTrigger && isNotInSceneViewer || notObject;
|
|
31186
|
-
}
|
|
31187
|
-
/**
|
|
31188
|
-
* @hidden
|
|
31189
|
-
* @returns Boolean if delta for pointer exceeds drag movement threshold
|
|
31190
|
-
*/
|
|
31191
|
-
_isPointerSwiping(pointerX, pointerY) {
|
|
31192
|
-
return Math.abs(this._startingPosition.x - pointerX) > _InputManager.DragMovementThreshold || Math.abs(this._startingPosition.y - pointerY) > _InputManager.DragMovementThreshold;
|
|
31193
|
-
}
|
|
31194
|
-
_prePointerDoubleOrTripleClick(evt) {
|
|
31195
|
-
var _a11, _b, _c, _d;
|
|
31196
|
-
const { clientX, clientY } = evt;
|
|
31197
|
-
this._isPointerSwiping(clientX, clientY) && this._resetDoubleClickParam(), this._delayedTimeout = setTimeout(() => {
|
|
31198
|
-
this._resetDoubleClickParam();
|
|
31199
|
-
}, _InputManager.DoubleClickDelay), this._doubleClickOccurred += 1, this._tripleClickState && ((_b = (_a11 = this._scene) == null ? void 0 : _a11.pick(Vector2.FromArray([evt.offsetX, evt.offsetY]))) == null || _b.triggerTripleClick(evt), this._scene.onTripleClick$.emitEvent(evt)), this._doubleClickOccurred === 2 && ((_d = (_c = this._scene) == null ? void 0 : _c.pick(Vector2.FromArray([evt.offsetX, evt.offsetY]))) == null || _d.triggerDblclick(evt), this._scene.onDblclick$.emitEvent(evt), this._resetDoubleClickParam(), this._tripleClickState = !0, clearTimeout(this._delayedTripeTimeout), this._delayedTripeTimeout = setTimeout(() => {
|
|
31200
|
-
this._tripleClickState = !1;
|
|
31201
|
-
}, _InputManager.TripleClickDelay)), this._startingPosition.x = clientX, this._startingPosition.y = clientY;
|
|
31202
|
-
}
|
|
31203
|
-
_resetDoubleClickParam() {
|
|
31204
|
-
this._doubleClickOccurred = 0, clearTimeout(this._delayedTimeout);
|
|
31205
|
-
}
|
|
31206
|
-
};
|
|
31207
|
-
__name(_InputManager, "InputManager"), /** The distance in pixel that you have to move to prevent some events */
|
|
31208
|
-
__publicField(_InputManager, "DragMovementThreshold", 2), // in pixels
|
|
31209
|
-
/** Time in milliseconds to wait to raise long press events if button is still pressed */
|
|
31210
|
-
__publicField(_InputManager, "LongPressDelay", 500), // in milliseconds
|
|
31211
|
-
/** Time in milliseconds with two consecutive clicks will be considered as a double or triple click */
|
|
31212
|
-
__publicField(_InputManager, "DoubleClickDelay", 500), // in milliseconds
|
|
31213
|
-
__publicField(_InputManager, "TripleClickDelay", 300), // in milliseconds
|
|
31214
|
-
/** If you need to check double click without raising a single click at first click, enable this flag */
|
|
31215
|
-
__publicField(_InputManager, "ExclusiveDoubleClickMode", !1);
|
|
31216
|
-
let InputManager = _InputManager;
|
|
31217
31363
|
const _ThinScene = class _ThinScene extends Disposable {
|
|
31218
31364
|
constructor(sceneKey) {
|
|
31219
31365
|
super();
|
|
@@ -31266,7 +31412,7 @@ const _ThinScene = class _ThinScene extends Disposable {
|
|
|
31266
31412
|
get sceneKey() {
|
|
31267
31413
|
return this._sceneKey;
|
|
31268
31414
|
}
|
|
31269
|
-
get
|
|
31415
|
+
get objectsEvented() {
|
|
31270
31416
|
return this._evented;
|
|
31271
31417
|
}
|
|
31272
31418
|
set transform(trans) {
|
|
@@ -31284,10 +31430,15 @@ const _ThinScene = class _ThinScene extends Disposable {
|
|
|
31284
31430
|
set scaleY(scaleY) {
|
|
31285
31431
|
this._scaleY = scaleY;
|
|
31286
31432
|
}
|
|
31287
|
-
|
|
31433
|
+
enableObjectsEvent() {
|
|
31288
31434
|
this._evented = !0;
|
|
31289
31435
|
}
|
|
31290
|
-
|
|
31436
|
+
/**
|
|
31437
|
+
* If scene.event is disabled, scene.pick(curosrPos) return null.
|
|
31438
|
+
* Then only scene itself can response to pointer event, all objects under the scene would not.
|
|
31439
|
+
* see sceneInputManager@_onPointerMove
|
|
31440
|
+
*/
|
|
31441
|
+
disableObjectsEvent() {
|
|
31291
31442
|
this._evented = !1;
|
|
31292
31443
|
}
|
|
31293
31444
|
triggerKeyDown(evt) {
|
|
@@ -31518,6 +31669,11 @@ const _Scene = class _Scene extends ThinScene {
|
|
|
31518
31669
|
return layer;
|
|
31519
31670
|
return this._createDefaultLayer(zIndex);
|
|
31520
31671
|
}
|
|
31672
|
+
findLayerByZIndex(zIndex = 1) {
|
|
31673
|
+
for (const layer of this.getLayers())
|
|
31674
|
+
if (layer.zIndex === zIndex)
|
|
31675
|
+
return layer;
|
|
31676
|
+
}
|
|
31521
31677
|
getLayerMaxZIndex() {
|
|
31522
31678
|
let maxIndex = Number.MIN_VALUE;
|
|
31523
31679
|
for (let i = 0; i < this._layers.length; i++) {
|
|
@@ -31694,7 +31850,7 @@ const _Scene = class _Scene extends ThinScene {
|
|
|
31694
31850
|
layers[i].render(parentCtx, i === len - 1);
|
|
31695
31851
|
}
|
|
31696
31852
|
async requestRender(parentCtx) {
|
|
31697
|
-
return new Promise((resolve,
|
|
31853
|
+
return new Promise((resolve, _reject) => {
|
|
31698
31854
|
this.render(parentCtx), requestNewFrame(resolve);
|
|
31699
31855
|
});
|
|
31700
31856
|
}
|
|
@@ -31814,15 +31970,19 @@ const _Scene = class _Scene extends ThinScene {
|
|
|
31814
31970
|
viewport.dispose();
|
|
31815
31971
|
}), viewports = [], this.clearLayer(), this.clearViewports(), this.detachControl(), (_a11 = this.onTransformChange$) == null || _a11.complete(), (_b = this._inputManager) == null || _b.dispose(), this._inputManager = null, (_c = this._transformer) == null || _c.dispose(), this._transformer = null, this.onPointerDown$.complete(), this.onPointerMove$.complete(), this.onPointerUp$.complete(), this.onPointerEnter$.complete(), this.onPointerLeave$.complete(), this.onDblclick$.complete(), this.onTripleClick$.complete(), this.onMouseWheel$.complete(), this.onKeyDown$.complete(), this.onKeyUp$.complete(), this._addObject$.complete(), super.dispose();
|
|
31816
31972
|
}
|
|
31817
|
-
|
|
31818
|
-
|
|
31819
|
-
|
|
31820
|
-
|
|
31821
|
-
|
|
31822
|
-
|
|
31973
|
+
/**
|
|
31974
|
+
* Get the object under the pointer, if scene.event is disabled, the object is null.
|
|
31975
|
+
* @param {Vector2} coord
|
|
31976
|
+
* @return {Nullable<BaseObject | Scene | ThinScene>} object under the pointer
|
|
31977
|
+
*/
|
|
31978
|
+
pick(coord) {
|
|
31979
|
+
let pickedViewport = this.getActiveViewportByCoord(coord);
|
|
31980
|
+
if (pickedViewport || (pickedViewport = this._viewports[0]), !this.objectsEvented || !pickedViewport)
|
|
31981
|
+
return null;
|
|
31982
|
+
const scrollBarRect = pickedViewport.pickScrollBar(coord);
|
|
31823
31983
|
if (scrollBarRect)
|
|
31824
31984
|
return scrollBarRect;
|
|
31825
|
-
const vecFromSheetContent = pickedViewport.transformVector2SceneCoord(
|
|
31985
|
+
const vecFromSheetContent = pickedViewport.transformVector2SceneCoord(coord);
|
|
31826
31986
|
let isPickedObject = null;
|
|
31827
31987
|
const objectOrder = this.getAllObjectsByOrderForPick().reverse(), objectLength = objectOrder.length;
|
|
31828
31988
|
for (let i = 0; i < objectLength; i++) {
|
|
@@ -32215,6 +32375,7 @@ function isDisposable(thing) {
|
|
|
32215
32375
|
return !!thing && typeof thing.dispose == "function";
|
|
32216
32376
|
}
|
|
32217
32377
|
__name(isDisposable, "isDisposable");
|
|
32378
|
+
const PLUGIN_CONFIG_KEY = "engine-render.config", defaultPluginConfig = {};
|
|
32218
32379
|
var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor, __decorateClass$1 = /* @__PURE__ */ __name((decorators, target, key, kind) => {
|
|
32219
32380
|
for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
|
|
32220
32381
|
(decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
|
|
@@ -32223,8 +32384,10 @@ var __defProp$1 = Object.defineProperty, __getOwnPropDesc$1 = Object.getOwnPrope
|
|
|
32223
32384
|
const IRenderingEngine = createIdentifier("univer.render-engine"), PLUGIN_NAME = "RENDER_ENGINE_PLUGIN";
|
|
32224
32385
|
var _a9;
|
|
32225
32386
|
let UniverRenderEnginePlugin = (_a9 = class extends Plugin {
|
|
32226
|
-
constructor(_config, _injector) {
|
|
32227
|
-
super(), this.
|
|
32387
|
+
constructor(_config = defaultPluginConfig, _injector, _configService) {
|
|
32388
|
+
super(), this._config = _config, this._injector = _injector, this._configService = _configService;
|
|
32389
|
+
const { ...rest } = this._config;
|
|
32390
|
+
this._configService.setConfig(PLUGIN_CONFIG_KEY, rest), this._injector.add([IRenderingEngine, { useFactory: /* @__PURE__ */ __name(() => new Engine(), "useFactory") }]), this._injector.add([
|
|
32228
32391
|
IRenderManagerService,
|
|
32229
32392
|
{
|
|
32230
32393
|
useClass: RenderManagerService
|
|
@@ -32233,7 +32396,8 @@ let UniverRenderEnginePlugin = (_a9 = class extends Plugin {
|
|
|
32233
32396
|
}
|
|
32234
32397
|
}, __name(_a9, "UniverRenderEnginePlugin"), __publicField(_a9, "pluginName", PLUGIN_NAME), _a9);
|
|
32235
32398
|
UniverRenderEnginePlugin = __decorateClass$1([
|
|
32236
|
-
__decorateParam$1(1, Inject(Injector))
|
|
32399
|
+
__decorateParam$1(1, Inject(Injector)),
|
|
32400
|
+
__decorateParam$1(2, IConfigService)
|
|
32237
32401
|
], UniverRenderEnginePlugin);
|
|
32238
32402
|
function subtractViewportRange(range1, range2) {
|
|
32239
32403
|
if (range2.startRow >= range1.endRow || range2.endRow <= range1.startRow || range2.startColumn >= range1.endColumn || range2.endColumn <= range1.startColumn)
|
|
@@ -34063,7 +34227,7 @@ let TextSelectionRenderManager = (_a10 = class extends RxDisposable {
|
|
|
34063
34227
|
return;
|
|
34064
34228
|
}
|
|
34065
34229
|
const { segmentId, segmentPage } = startNode;
|
|
34066
|
-
segmentId && this._currentSegmentId && segmentId !== this._currentSegmentId && this.setSegment(segmentId), segmentId && segmentPage !== this._currentSegmentPage && this.setSegmentPage(segmentPage), this._anchorNodePosition = position, evt.shiftKey && this._getActiveRangeInstance() ? this._updateActiveRangePosition(position) : !evt.ctrlKey && !this._isEmpty() && this._removeAllRanges(), scene.
|
|
34230
|
+
segmentId && this._currentSegmentId && segmentId !== this._currentSegmentId && this.setSegment(segmentId), segmentId && segmentPage !== this._currentSegmentPage && this.setSegmentPage(segmentPage), this._anchorNodePosition = position, evt.shiftKey && this._getActiveRangeInstance() ? this._updateActiveRangePosition(position) : !evt.ctrlKey && !this._isEmpty() && this._removeAllRanges(), scene.disableObjectsEvent();
|
|
34067
34231
|
const scrollTimer = ScrollTimer.create(scene);
|
|
34068
34232
|
this._scrollTimers.push(scrollTimer), scrollTimer.startScroll(evtOffsetX, evtOffsetY), this._onSelectionStart$.next((_b = this._getActiveRangeInstance()) == null ? void 0 : _b.startNodePosition), (_c = scene.getTransformer()) == null || _c.clearSelectedObjects();
|
|
34069
34233
|
let preMoveOffsetX = evtOffsetX, preMoveOffsetY = evtOffsetY;
|
|
@@ -34073,7 +34237,7 @@ let TextSelectionRenderManager = (_a10 = class extends RxDisposable {
|
|
|
34073
34237
|
})), this._scenePointerUpSubs.push(scene.onPointerUp$.subscribeEvent(() => {
|
|
34074
34238
|
if ([...this._scenePointerMoveSubs, ...this._scenePointerUpSubs].forEach((e) => {
|
|
34075
34239
|
e.unsubscribe();
|
|
34076
|
-
}), scene.
|
|
34240
|
+
}), scene.enableObjectsEvent(), this._anchorNodePosition && !this._focusNodePosition) {
|
|
34077
34241
|
const textRange = new TextRange(this._scene, this._document, this._docSkeleton, this._anchorNodePosition, void 0, this._selectionStyle, this._currentSegmentId);
|
|
34078
34242
|
this._addTextRange(textRange);
|
|
34079
34243
|
} else if (this._anchorNodePosition && this._focusNodePosition) {
|
|
@@ -34590,6 +34754,8 @@ export {
|
|
|
34590
34754
|
CustomObject,
|
|
34591
34755
|
DEFAULT_DOCUMENT_FONTSIZE,
|
|
34592
34756
|
DEFAULT_FONTFACE_PLANE,
|
|
34757
|
+
DEFAULT_FRAME_LIST_SIZE,
|
|
34758
|
+
DEFAULT_FRAME_SAMPLE_SIZE,
|
|
34593
34759
|
DEFAULT_MEASURE_TEXT,
|
|
34594
34760
|
DEFAULT_OFFSET_SPACING,
|
|
34595
34761
|
DEFAULT_PADDING_DATA,
|
|
@@ -34663,6 +34829,7 @@ export {
|
|
|
34663
34829
|
RowHeaderLayout,
|
|
34664
34830
|
SHAPE_OBJECT_ARRAY,
|
|
34665
34831
|
SHAPE_TYPE,
|
|
34832
|
+
SHEET_EXTENSION_PREFIX,
|
|
34666
34833
|
SHEET_EXTENSION_TYPE,
|
|
34667
34834
|
SHEET_VIEWPORT_KEY,
|
|
34668
34835
|
SLIDE_NAVIGATION_KEY,
|
|
@@ -34714,6 +34881,7 @@ export {
|
|
|
34714
34881
|
degToRad,
|
|
34715
34882
|
drawDiagonalLineByBorderType,
|
|
34716
34883
|
drawLineByBorderType,
|
|
34884
|
+
expandRangeIfIntersects,
|
|
34717
34885
|
fixLineWidthByScale,
|
|
34718
34886
|
generateRandomKey,
|
|
34719
34887
|
getAnchorBounding,
|
|
@@ -34782,7 +34950,6 @@ export {
|
|
|
34782
34950
|
isValidRectRange,
|
|
34783
34951
|
lineIterator,
|
|
34784
34952
|
mergeInfoOffset,
|
|
34785
|
-
mergeRangeIfIntersects,
|
|
34786
34953
|
parseDataStreamToTree,
|
|
34787
34954
|
pixelToPt,
|
|
34788
34955
|
precisionTo,
|