@tmagic/stage 1.8.0-beta.21 → 1.8.0-beta.23

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.
@@ -81,7 +81,7 @@ var MoveableOptionsManager = class extends EventEmitter$1 {
81
81
  */
82
82
  getDefaultOptions(isMultiSelect) {
83
83
  const isSortable = this.mode === Mode.SORTABLE;
84
- return merge({
84
+ const commonOptions = {
85
85
  draggable: true,
86
86
  resizable: true,
87
87
  rootContainer: this.getRootContainer(),
@@ -97,7 +97,9 @@ var MoveableOptionsManager = class extends EventEmitter$1 {
97
97
  right: this.container.clientWidth,
98
98
  bottom: isSortable ? void 0 : this.container.clientHeight
99
99
  }
100
- }, isMultiSelect ? this.getMultiOptions() : this.getSingleOptions());
100
+ };
101
+ const differenceOptions = isMultiSelect ? this.getMultiOptions() : this.getSingleOptions();
102
+ return merge(commonOptions, differenceOptions);
101
103
  }
102
104
  /**
103
105
  * 获取单选下的差异化参数
@@ -243,6 +243,15 @@ var StageCore = class extends EventEmitter {
243
243
  this.pageResizeObserver.observe(page);
244
244
  }
245
245
  }
246
+ /**
247
+ * page-el-update 后,若当前选中节点仍在新页面文档中且需要自动滚动,则重新触发 scrollIntoView
248
+ */
249
+ scrollSelectedIntoViewAfterPageUpdate() {
250
+ const selected = this.actionManager?.getSelectedEl();
251
+ if (!selected?.isConnected) return;
252
+ if (!(this.autoScrollIntoView || selected.dataset.autoScrollIntoView)) return;
253
+ this.mask?.observerIntersection(selected);
254
+ }
246
255
  getActionManagerConfig(config) {
247
256
  return {
248
257
  containerHighlightClassName: config.containerHighlightClassName,
@@ -271,6 +280,7 @@ var StageCore = class extends EventEmitter {
271
280
  this.renderer?.on("page-el-update", (el) => {
272
281
  this.mask?.observe(el);
273
282
  this.observePageResize(el);
283
+ this.scrollSelectedIntoViewAfterPageUpdate();
274
284
  this.emit("page-el-update", el);
275
285
  });
276
286
  }
@@ -73,25 +73,38 @@ var StageMask = class extends Rule {
73
73
  }
74
74
  /**
75
75
  * 初始化视窗和蒙层监听,监听元素是否在视窗区域、监听mask蒙层所在的wrapper大小变化
76
- * @description 初始化视窗和蒙层监听
76
+ * @description 初始化视窗和蒙层监听;切换到新页面 DOM 时重置滚动
77
77
  * @param page 页面Dom节点
78
78
  */
79
79
  observe(page) {
80
80
  if (!page) return;
81
+ const pageChanged = this.page !== page;
81
82
  this.page = page;
82
83
  this.initObserverIntersection();
83
84
  this.initObserverWrapper();
85
+ if (pageChanged) {
86
+ this.pageScrollParent?.scrollTo({
87
+ top: 0,
88
+ left: 0
89
+ });
90
+ this.scrollTop = 0;
91
+ this.scrollLeft = 0;
92
+ this.scroll();
93
+ }
94
+ this.syncPageSize();
84
95
  }
85
96
  /**
86
- * 处理页面大小变更,同步页面和mask大小
97
+ * 处理页面大小变更,同步页面和 mask 大小
98
+ * @description 仅处理当前 page 且仍挂载在文档中的 entry;非当前页、已卸载或宽高为 0 的回调会被忽略
87
99
  * @param entries ResizeObserverEntry,获取页面最新大小
88
100
  */
89
101
  pageResize(entries) {
90
- const [entry] = entries;
91
- const { clientHeight, clientWidth } = entry.target;
92
- this.setHeight(clientHeight);
93
- this.setWidth(clientWidth);
94
- this.scroll();
102
+ if (!this.page || !entries.length) return;
103
+ const entry = entries.find((item) => item.target === this.page);
104
+ if (!entry) return;
105
+ const { target } = entry;
106
+ if (!target.isConnected) return;
107
+ this.applyPageSize(target.clientWidth, target.clientHeight);
95
108
  }
96
109
  /**
97
110
  * 监听一个组件是否在画布可视区域内
@@ -132,6 +145,7 @@ var StageMask = class extends Rule {
132
145
  this.content?.remove();
133
146
  this.page = null;
134
147
  this.pageScrollParent = null;
148
+ this.intersectionObserver?.disconnect();
135
149
  this.wrapperResizeObserver?.disconnect();
136
150
  }
137
151
  on(eventName, listener) {
@@ -202,6 +216,22 @@ var StageMask = class extends Rule {
202
216
  this.content.dispatchEvent(event);
203
217
  }
204
218
  /**
219
+ * 从当前页面同步蒙层宽高,并修正滚动偏移
220
+ */
221
+ syncPageSize() {
222
+ if (!this.page?.isConnected) return;
223
+ this.applyPageSize(this.page.clientWidth, this.page.clientHeight);
224
+ }
225
+ /**
226
+ * 应用页面尺寸到蒙层;宽高为 0 时忽略,避免切换/布局过程中把 editor-mask 置空
227
+ */
228
+ applyPageSize(clientWidth, clientHeight) {
229
+ if (clientWidth <= 0 || clientHeight <= 0) return;
230
+ this.setHeight(clientHeight);
231
+ this.setWidth(clientWidth);
232
+ this.scroll();
233
+ }
234
+ /**
205
235
  * 设置蒙层高度
206
236
  * @param height 高度
207
237
  */
@@ -31,7 +31,7 @@
31
31
  }
32
32
  return to;
33
33
  };
34
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
34
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
35
35
  value: mod,
36
36
  enumerable: true
37
37
  }) : target, mod));
@@ -41,21 +41,21 @@
41
41
  moveable_helper = __toESM(moveable_helper, 1);
42
42
  moveable = __toESM(moveable, 1);
43
43
  _scena_guides = __toESM(_scena_guides, 1);
44
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.js
44
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js
45
45
  /** Detect free variable `global` from Node.js. */
46
46
  var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
47
47
  //#endregion
48
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.js
48
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_root.js
49
49
  /** Detect free variable `self`. */
50
50
  var freeSelf = typeof self == "object" && self && self.Object === Object && self;
51
51
  /** Used as a reference to the global object. */
52
52
  var root = freeGlobal || freeSelf || Function("return this")();
53
53
  //#endregion
54
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.js
54
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js
55
55
  /** Built-in value references. */
56
56
  var Symbol$1 = root.Symbol;
57
57
  //#endregion
58
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.js
58
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js
59
59
  /** Used for built-in method references. */
60
60
  var objectProto$4 = Object.prototype;
61
61
  /** Used to check objects for own properties. */
@@ -87,7 +87,7 @@
87
87
  return result;
88
88
  }
89
89
  //#endregion
90
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.js
90
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js
91
91
  /**
92
92
  * Used to resolve the
93
93
  * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
@@ -105,7 +105,7 @@
105
105
  return nativeObjectToString.call(value);
106
106
  }
107
107
  //#endregion
108
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.js
108
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js
109
109
  /** `Object#toString` result references. */
110
110
  var nullTag = "[object Null]";
111
111
  var undefinedTag = "[object Undefined]";
@@ -123,7 +123,7 @@
123
123
  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
124
124
  }
125
125
  //#endregion
126
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.js
126
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js
127
127
  /**
128
128
  * Checks if `value` is object-like. A value is object-like if it's not `null`
129
129
  * and has a `typeof` result of "object".
@@ -152,7 +152,7 @@
152
152
  return value != null && typeof value == "object";
153
153
  }
154
154
  //#endregion
155
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isSymbol.js
155
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js
156
156
  /** `Object#toString` result references. */
157
157
  var symbolTag = "[object Symbol]";
158
158
  /**
@@ -176,7 +176,7 @@
176
176
  return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
177
177
  }
178
178
  //#endregion
179
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.js
179
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArray.js
180
180
  /**
181
181
  * Checks if `value` is classified as an `Array` object.
182
182
  *
@@ -202,7 +202,7 @@
202
202
  */
203
203
  var isArray = Array.isArray;
204
204
  //#endregion
205
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_trimmedEndIndex.js
205
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js
206
206
  /** Used to match a single whitespace character. */
207
207
  var reWhitespace = /\s/;
208
208
  /**
@@ -219,7 +219,7 @@
219
219
  return index;
220
220
  }
221
221
  //#endregion
222
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTrim.js
222
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js
223
223
  /** Used to match leading whitespace. */
224
224
  var reTrimStart = /^\s+/;
225
225
  /**
@@ -233,7 +233,7 @@
233
233
  return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
234
234
  }
235
235
  //#endregion
236
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.js
236
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObject.js
237
237
  /**
238
238
  * Checks if `value` is the
239
239
  * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
@@ -264,7 +264,7 @@
264
264
  return value != null && (type == "object" || type == "function");
265
265
  }
266
266
  //#endregion
267
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toNumber.js
267
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js
268
268
  /** Used as references for various `Number` constants. */
269
269
  var NAN = NaN;
270
270
  /** Used to detect bad signed hexadecimal string values. */
@@ -311,7 +311,7 @@
311
311
  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
312
312
  }
313
313
  //#endregion
314
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js
314
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/identity.js
315
315
  /**
316
316
  * This method returns the first argument it receives.
317
317
  *
@@ -332,7 +332,7 @@
332
332
  return value;
333
333
  }
334
334
  //#endregion
335
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.js
335
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js
336
336
  /** `Object#toString` result references. */
337
337
  var asyncTag = "[object AsyncFunction]";
338
338
  var funcTag$1 = "[object Function]";
@@ -361,11 +361,11 @@
361
361
  return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;
362
362
  }
363
363
  //#endregion
364
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.js
364
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js
365
365
  /** Used to detect overreaching core-js shims. */
366
366
  var coreJsData = root["__core-js_shared__"];
367
367
  //#endregion
368
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.js
368
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js
369
369
  /** Used to detect methods masquerading as native. */
370
370
  var maskSrcKey = function() {
371
371
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
@@ -382,7 +382,7 @@
382
382
  return !!maskSrcKey && maskSrcKey in func;
383
383
  }
384
384
  //#endregion
385
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.js
385
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js
386
386
  /** Used to resolve the decompiled source of functions. */
387
387
  var funcToString$2 = Function.prototype.toString;
388
388
  /**
@@ -404,7 +404,7 @@
404
404
  return "";
405
405
  }
406
406
  //#endregion
407
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.js
407
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js
408
408
  /**
409
409
  * Used to match `RegExp`
410
410
  * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
@@ -434,7 +434,7 @@
434
434
  return (isFunction(value) ? reIsNative : reIsHostCtor).test(toSource(value));
435
435
  }
436
436
  //#endregion
437
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.js
437
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js
438
438
  /**
439
439
  * Gets the value at `key` of `object`.
440
440
  *
@@ -447,7 +447,7 @@
447
447
  return object == null ? void 0 : object[key];
448
448
  }
449
449
  //#endregion
450
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.js
450
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js
451
451
  /**
452
452
  * Gets the native function at `key` of `object`.
453
453
  *
@@ -461,7 +461,7 @@
461
461
  return baseIsNative(value) ? value : void 0;
462
462
  }
463
463
  //#endregion
464
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseCreate.js
464
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js
465
465
  /** Built-in value references. */
466
466
  var objectCreate = Object.create;
467
467
  /**
@@ -484,7 +484,7 @@
484
484
  };
485
485
  }();
486
486
  //#endregion
487
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_apply.js
487
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_apply.js
488
488
  /**
489
489
  * A faster alternative to `Function#apply`, this function invokes `func`
490
490
  * with the `this` binding of `thisArg` and the arguments of `args`.
@@ -505,7 +505,7 @@
505
505
  return func.apply(thisArg, args);
506
506
  }
507
507
  //#endregion
508
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyArray.js
508
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js
509
509
  /**
510
510
  * Copies the values of `source` to `array`.
511
511
  *
@@ -521,7 +521,7 @@
521
521
  return array;
522
522
  }
523
523
  //#endregion
524
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_shortOut.js
524
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js
525
525
  /** Used to detect hot functions by number of calls within a span of milliseconds. */
526
526
  var HOT_COUNT = 800;
527
527
  var HOT_SPAN = 16;
@@ -547,7 +547,7 @@
547
547
  };
548
548
  }
549
549
  //#endregion
550
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/constant.js
550
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/constant.js
551
551
  /**
552
552
  * Creates a function that returns `value`.
553
553
  *
@@ -573,7 +573,7 @@
573
573
  };
574
574
  }
575
575
  //#endregion
576
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_defineProperty.js
576
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js
577
577
  var defineProperty = function() {
578
578
  try {
579
579
  var func = getNative(Object, "defineProperty");
@@ -582,7 +582,7 @@
582
582
  } catch (e) {}
583
583
  }();
584
584
  //#endregion
585
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToString.js
585
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js
586
586
  /**
587
587
  * Sets the `toString` method of `func` to return `string`.
588
588
  *
@@ -600,7 +600,7 @@
600
600
  });
601
601
  });
602
602
  //#endregion
603
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.js
603
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js
604
604
  /** Used as references for various `Number` constants. */
605
605
  var MAX_SAFE_INTEGER$1 = 9007199254740991;
606
606
  /** Used to detect unsigned integer values. */
@@ -619,7 +619,7 @@
619
619
  return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
620
620
  }
621
621
  //#endregion
622
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseAssignValue.js
622
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js
623
623
  /**
624
624
  * The base implementation of `assignValue` and `assignMergeValue` without
625
625
  * value checks.
@@ -639,7 +639,7 @@
639
639
  else object[key] = value;
640
640
  }
641
641
  //#endregion
642
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.js
642
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/eq.js
643
643
  /**
644
644
  * Performs a
645
645
  * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
@@ -676,7 +676,7 @@
676
676
  return value === other || value !== value && other !== other;
677
677
  }
678
678
  //#endregion
679
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignValue.js
679
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js
680
680
  /** Used to check objects for own properties. */
681
681
  var hasOwnProperty$6 = Object.prototype.hasOwnProperty;
682
682
  /**
@@ -694,7 +694,7 @@
694
694
  if (!(hasOwnProperty$6.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) baseAssignValue(object, key, value);
695
695
  }
696
696
  //#endregion
697
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_copyObject.js
697
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js
698
698
  /**
699
699
  * Copies properties of `source` to `object`.
700
700
  *
@@ -719,7 +719,7 @@
719
719
  return object;
720
720
  }
721
721
  //#endregion
722
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overRest.js
722
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js
723
723
  var nativeMax$1 = Math.max;
724
724
  /**
725
725
  * A specialized version of `baseRest` which transforms the rest array.
@@ -743,7 +743,7 @@
743
743
  };
744
744
  }
745
745
  //#endregion
746
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseRest.js
746
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js
747
747
  /**
748
748
  * The base implementation of `_.rest` which doesn't validate or coerce arguments.
749
749
  *
@@ -756,7 +756,7 @@
756
756
  return setToString(overRest(func, start, identity), func + "");
757
757
  }
758
758
  //#endregion
759
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.js
759
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isLength.js
760
760
  /** Used as references for various `Number` constants. */
761
761
  var MAX_SAFE_INTEGER = 9007199254740991;
762
762
  /**
@@ -789,7 +789,7 @@
789
789
  return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
790
790
  }
791
791
  //#endregion
792
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.js
792
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js
793
793
  /**
794
794
  * Checks if `value` is array-like. A value is considered array-like if it's
795
795
  * not a function and has a `value.length` that's an integer greater than or
@@ -819,7 +819,7 @@
819
819
  return value != null && isLength(value.length) && !isFunction(value);
820
820
  }
821
821
  //#endregion
822
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIterateeCall.js
822
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js
823
823
  /**
824
824
  * Checks if the given arguments are from an iteratee call.
825
825
  *
@@ -837,7 +837,7 @@
837
837
  return false;
838
838
  }
839
839
  //#endregion
840
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createAssigner.js
840
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js
841
841
  /**
842
842
  * Creates a function like `_.assign`.
843
843
  *
@@ -862,7 +862,7 @@
862
862
  });
863
863
  }
864
864
  //#endregion
865
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.js
865
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js
866
866
  /** Used for built-in method references. */
867
867
  var objectProto$2 = Object.prototype;
868
868
  /**
@@ -877,7 +877,7 @@
877
877
  return value === (typeof Ctor == "function" && Ctor.prototype || objectProto$2);
878
878
  }
879
879
  //#endregion
880
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.js
880
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js
881
881
  /**
882
882
  * The base implementation of `_.times` without support for iteratee shorthands
883
883
  * or max array length checks.
@@ -893,7 +893,7 @@
893
893
  return result;
894
894
  }
895
895
  //#endregion
896
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.js
896
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js
897
897
  /** `Object#toString` result references. */
898
898
  var argsTag$1 = "[object Arguments]";
899
899
  /**
@@ -907,7 +907,7 @@
907
907
  return isObjectLike(value) && baseGetTag(value) == argsTag$1;
908
908
  }
909
909
  //#endregion
910
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.js
910
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js
911
911
  /** Used for built-in method references. */
912
912
  var objectProto$1 = Object.prototype;
913
913
  /** Used to check objects for own properties. */
@@ -938,7 +938,7 @@
938
938
  return isObjectLike(value) && hasOwnProperty$5.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
939
939
  };
940
940
  //#endregion
941
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.js
941
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js
942
942
  /**
943
943
  * This method returns `false`.
944
944
  *
@@ -956,7 +956,7 @@
956
956
  return false;
957
957
  }
958
958
  //#endregion
959
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.js
959
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js
960
960
  /** Detect free variable `exports`. */
961
961
  var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports;
962
962
  /** Detect free variable `module`. */
@@ -982,7 +982,7 @@
982
982
  */
983
983
  var isBuffer = (Buffer$2 ? Buffer$2.isBuffer : void 0) || stubFalse;
984
984
  //#endregion
985
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.js
985
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js
986
986
  /** `Object#toString` result references. */
987
987
  var argsTag = "[object Arguments]";
988
988
  var arrayTag = "[object Array]";
@@ -1023,7 +1023,7 @@
1023
1023
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
1024
1024
  }
1025
1025
  //#endregion
1026
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.js
1026
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js
1027
1027
  /**
1028
1028
  * The base implementation of `_.unary` without support for storing metadata.
1029
1029
  *
@@ -1037,7 +1037,7 @@
1037
1037
  };
1038
1038
  }
1039
1039
  //#endregion
1040
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.js
1040
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js
1041
1041
  /** Detect free variable `exports`. */
1042
1042
  var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
1043
1043
  /** Detect free variable `module`. */
@@ -1053,7 +1053,7 @@
1053
1053
  } catch (e) {}
1054
1054
  }();
1055
1055
  //#endregion
1056
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.js
1056
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js
1057
1057
  var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
1058
1058
  /**
1059
1059
  * Checks if `value` is classified as a typed array.
@@ -1074,7 +1074,7 @@
1074
1074
  */
1075
1075
  var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
1076
1076
  //#endregion
1077
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.js
1077
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js
1078
1078
  /** Used to check objects for own properties. */
1079
1079
  var hasOwnProperty$4 = Object.prototype.hasOwnProperty;
1080
1080
  /**
@@ -1091,7 +1091,7 @@
1091
1091
  return result;
1092
1092
  }
1093
1093
  //#endregion
1094
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.js
1094
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js
1095
1095
  /**
1096
1096
  * Creates a unary function that invokes `func` with its argument transformed.
1097
1097
  *
@@ -1106,7 +1106,7 @@
1106
1106
  };
1107
1107
  }
1108
1108
  //#endregion
1109
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeysIn.js
1109
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js
1110
1110
  /**
1111
1111
  * This function is like
1112
1112
  * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
@@ -1122,7 +1122,7 @@
1122
1122
  return result;
1123
1123
  }
1124
1124
  //#endregion
1125
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeysIn.js
1125
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js
1126
1126
  /** Used to check objects for own properties. */
1127
1127
  var hasOwnProperty$3 = Object.prototype.hasOwnProperty;
1128
1128
  /**
@@ -1139,7 +1139,7 @@
1139
1139
  return result;
1140
1140
  }
1141
1141
  //#endregion
1142
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keysIn.js
1142
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js
1143
1143
  /**
1144
1144
  * Creates an array of the own and inherited enumerable property names of `object`.
1145
1145
  *
@@ -1167,10 +1167,10 @@
1167
1167
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
1168
1168
  }
1169
1169
  //#endregion
1170
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.js
1170
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js
1171
1171
  var nativeCreate = getNative(Object, "create");
1172
1172
  //#endregion
1173
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.js
1173
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js
1174
1174
  /**
1175
1175
  * Removes all key-value entries from the hash.
1176
1176
  *
@@ -1183,7 +1183,7 @@
1183
1183
  this.size = 0;
1184
1184
  }
1185
1185
  //#endregion
1186
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.js
1186
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js
1187
1187
  /**
1188
1188
  * Removes `key` and its value from the hash.
1189
1189
  *
@@ -1200,7 +1200,7 @@
1200
1200
  return result;
1201
1201
  }
1202
1202
  //#endregion
1203
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.js
1203
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js
1204
1204
  /** Used to stand-in for `undefined` hash values. */
1205
1205
  var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
1206
1206
  /** Used to check objects for own properties. */
@@ -1223,7 +1223,7 @@
1223
1223
  return hasOwnProperty$2.call(data, key) ? data[key] : void 0;
1224
1224
  }
1225
1225
  //#endregion
1226
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.js
1226
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js
1227
1227
  /** Used to check objects for own properties. */
1228
1228
  var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
1229
1229
  /**
@@ -1240,7 +1240,7 @@
1240
1240
  return nativeCreate ? data[key] !== void 0 : hasOwnProperty$1.call(data, key);
1241
1241
  }
1242
1242
  //#endregion
1243
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.js
1243
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js
1244
1244
  /** Used to stand-in for `undefined` hash values. */
1245
1245
  var HASH_UNDEFINED = "__lodash_hash_undefined__";
1246
1246
  /**
@@ -1260,7 +1260,7 @@
1260
1260
  return this;
1261
1261
  }
1262
1262
  //#endregion
1263
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.js
1263
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js
1264
1264
  /**
1265
1265
  * Creates a hash object.
1266
1266
  *
@@ -1282,7 +1282,7 @@
1282
1282
  Hash.prototype.has = hashHas;
1283
1283
  Hash.prototype.set = hashSet;
1284
1284
  //#endregion
1285
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.js
1285
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js
1286
1286
  /**
1287
1287
  * Removes all key-value entries from the list cache.
1288
1288
  *
@@ -1295,7 +1295,7 @@
1295
1295
  this.size = 0;
1296
1296
  }
1297
1297
  //#endregion
1298
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.js
1298
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js
1299
1299
  /**
1300
1300
  * Gets the index at which the `key` is found in `array` of key-value pairs.
1301
1301
  *
@@ -1310,7 +1310,7 @@
1310
1310
  return -1;
1311
1311
  }
1312
1312
  //#endregion
1313
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.js
1313
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js
1314
1314
  /** Built-in value references. */
1315
1315
  var splice = Array.prototype.splice;
1316
1316
  /**
@@ -1331,7 +1331,7 @@
1331
1331
  return true;
1332
1332
  }
1333
1333
  //#endregion
1334
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.js
1334
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js
1335
1335
  /**
1336
1336
  * Gets the list cache value for `key`.
1337
1337
  *
@@ -1346,7 +1346,7 @@
1346
1346
  return index < 0 ? void 0 : data[index][1];
1347
1347
  }
1348
1348
  //#endregion
1349
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.js
1349
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js
1350
1350
  /**
1351
1351
  * Checks if a list cache value for `key` exists.
1352
1352
  *
@@ -1360,7 +1360,7 @@
1360
1360
  return assocIndexOf(this.__data__, key) > -1;
1361
1361
  }
1362
1362
  //#endregion
1363
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.js
1363
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js
1364
1364
  /**
1365
1365
  * Sets the list cache `key` to `value`.
1366
1366
  *
@@ -1380,7 +1380,7 @@
1380
1380
  return this;
1381
1381
  }
1382
1382
  //#endregion
1383
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.js
1383
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js
1384
1384
  /**
1385
1385
  * Creates an list cache object.
1386
1386
  *
@@ -1402,10 +1402,10 @@
1402
1402
  ListCache.prototype.has = listCacheHas;
1403
1403
  ListCache.prototype.set = listCacheSet;
1404
1404
  //#endregion
1405
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.js
1405
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Map.js
1406
1406
  var Map = getNative(root, "Map");
1407
1407
  //#endregion
1408
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.js
1408
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js
1409
1409
  /**
1410
1410
  * Removes all key-value entries from the map.
1411
1411
  *
@@ -1422,7 +1422,7 @@
1422
1422
  };
1423
1423
  }
1424
1424
  //#endregion
1425
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.js
1425
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js
1426
1426
  /**
1427
1427
  * Checks if `value` is suitable for use as unique object key.
1428
1428
  *
@@ -1435,7 +1435,7 @@
1435
1435
  return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
1436
1436
  }
1437
1437
  //#endregion
1438
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.js
1438
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js
1439
1439
  /**
1440
1440
  * Gets the data for `map`.
1441
1441
  *
@@ -1449,7 +1449,7 @@
1449
1449
  return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
1450
1450
  }
1451
1451
  //#endregion
1452
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.js
1452
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js
1453
1453
  /**
1454
1454
  * Removes `key` and its value from the map.
1455
1455
  *
@@ -1465,7 +1465,7 @@
1465
1465
  return result;
1466
1466
  }
1467
1467
  //#endregion
1468
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.js
1468
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js
1469
1469
  /**
1470
1470
  * Gets the map value for `key`.
1471
1471
  *
@@ -1479,7 +1479,7 @@
1479
1479
  return getMapData(this, key).get(key);
1480
1480
  }
1481
1481
  //#endregion
1482
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.js
1482
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js
1483
1483
  /**
1484
1484
  * Checks if a map value for `key` exists.
1485
1485
  *
@@ -1493,7 +1493,7 @@
1493
1493
  return getMapData(this, key).has(key);
1494
1494
  }
1495
1495
  //#endregion
1496
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.js
1496
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js
1497
1497
  /**
1498
1498
  * Sets the map `key` to `value`.
1499
1499
  *
@@ -1511,7 +1511,7 @@
1511
1511
  return this;
1512
1512
  }
1513
1513
  //#endregion
1514
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.js
1514
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js
1515
1515
  /**
1516
1516
  * Creates a map cache object to store key-value pairs.
1517
1517
  *
@@ -1533,11 +1533,11 @@
1533
1533
  MapCache.prototype.has = mapCacheHas;
1534
1534
  MapCache.prototype.set = mapCacheSet;
1535
1535
  //#endregion
1536
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getPrototype.js
1536
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js
1537
1537
  /** Built-in value references. */
1538
1538
  var getPrototype = overArg(Object.getPrototypeOf, Object);
1539
1539
  //#endregion
1540
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isPlainObject.js
1540
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isPlainObject.js
1541
1541
  /** `Object#toString` result references. */
1542
1542
  var objectTag = "[object Object]";
1543
1543
  /** Used for built-in method references. */
@@ -1585,7 +1585,7 @@
1585
1585
  return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
1586
1586
  }
1587
1587
  //#endregion
1588
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.js
1588
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js
1589
1589
  /**
1590
1590
  * Removes all key-value entries from the stack.
1591
1591
  *
@@ -1598,7 +1598,7 @@
1598
1598
  this.size = 0;
1599
1599
  }
1600
1600
  //#endregion
1601
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.js
1601
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js
1602
1602
  /**
1603
1603
  * Removes `key` and its value from the stack.
1604
1604
  *
@@ -1614,7 +1614,7 @@
1614
1614
  return result;
1615
1615
  }
1616
1616
  //#endregion
1617
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.js
1617
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js
1618
1618
  /**
1619
1619
  * Gets the stack value for `key`.
1620
1620
  *
@@ -1628,7 +1628,7 @@
1628
1628
  return this.__data__.get(key);
1629
1629
  }
1630
1630
  //#endregion
1631
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.js
1631
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js
1632
1632
  /**
1633
1633
  * Checks if a stack value for `key` exists.
1634
1634
  *
@@ -1642,7 +1642,7 @@
1642
1642
  return this.__data__.has(key);
1643
1643
  }
1644
1644
  //#endregion
1645
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.js
1645
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js
1646
1646
  /** Used as the size to enable large array optimizations. */
1647
1647
  var LARGE_ARRAY_SIZE = 200;
1648
1648
  /**
@@ -1671,7 +1671,7 @@
1671
1671
  return this;
1672
1672
  }
1673
1673
  //#endregion
1674
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.js
1674
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js
1675
1675
  /**
1676
1676
  * Creates a stack cache object to store key-value pairs.
1677
1677
  *
@@ -1689,7 +1689,7 @@
1689
1689
  Stack.prototype.has = stackHas;
1690
1690
  Stack.prototype.set = stackSet;
1691
1691
  //#endregion
1692
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneBuffer.js
1692
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js
1693
1693
  /** Detect free variable `exports`. */
1694
1694
  var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
1695
1695
  /** Detect free variable `module`. */
@@ -1712,11 +1712,11 @@
1712
1712
  return result;
1713
1713
  }
1714
1714
  //#endregion
1715
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.js
1715
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js
1716
1716
  /** Built-in value references. */
1717
1717
  var Uint8Array$1 = root.Uint8Array;
1718
1718
  //#endregion
1719
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneArrayBuffer.js
1719
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js
1720
1720
  /**
1721
1721
  * Creates a clone of `arrayBuffer`.
1722
1722
  *
@@ -1730,7 +1730,7 @@
1730
1730
  return result;
1731
1731
  }
1732
1732
  //#endregion
1733
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cloneTypedArray.js
1733
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js
1734
1734
  /**
1735
1735
  * Creates a clone of `typedArray`.
1736
1736
  *
@@ -1744,7 +1744,7 @@
1744
1744
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
1745
1745
  }
1746
1746
  //#endregion
1747
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_initCloneObject.js
1747
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js
1748
1748
  /**
1749
1749
  * Initializes an object clone.
1750
1750
  *
@@ -1756,7 +1756,7 @@
1756
1756
  return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
1757
1757
  }
1758
1758
  //#endregion
1759
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_createBaseFor.js
1759
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js
1760
1760
  /**
1761
1761
  * Creates a base function for methods like `_.forIn` and `_.forOwn`.
1762
1762
  *
@@ -1775,7 +1775,7 @@
1775
1775
  };
1776
1776
  }
1777
1777
  //#endregion
1778
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseFor.js
1778
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js
1779
1779
  /**
1780
1780
  * The base implementation of `baseForOwn` which iterates over `object`
1781
1781
  * properties returned by `keysFunc` and invokes `iteratee` for each property.
@@ -1789,7 +1789,7 @@
1789
1789
  */
1790
1790
  var baseFor = createBaseFor();
1791
1791
  //#endregion
1792
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/now.js
1792
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/now.js
1793
1793
  /**
1794
1794
  * Gets the timestamp of the number of milliseconds that have elapsed since
1795
1795
  * the Unix epoch (1 January 1970 00:00:00 UTC).
@@ -1810,7 +1810,7 @@
1810
1810
  return root.Date.now();
1811
1811
  };
1812
1812
  //#endregion
1813
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.js
1813
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/debounce.js
1814
1814
  /** Error message constants. */
1815
1815
  var FUNC_ERROR_TEXT$1 = "Expected a function";
1816
1816
  var nativeMax = Math.max;
@@ -1939,7 +1939,7 @@
1939
1939
  return debounced;
1940
1940
  }
1941
1941
  //#endregion
1942
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assignMergeValue.js
1942
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js
1943
1943
  /**
1944
1944
  * This function is like `assignValue` except that it doesn't assign
1945
1945
  * `undefined` values.
@@ -1953,7 +1953,7 @@
1953
1953
  if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) baseAssignValue(object, key, value);
1954
1954
  }
1955
1955
  //#endregion
1956
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLikeObject.js
1956
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js
1957
1957
  /**
1958
1958
  * This method is like `_.isArrayLike` except that it also checks if `value`
1959
1959
  * is an object.
@@ -1983,7 +1983,7 @@
1983
1983
  return isObjectLike(value) && isArrayLike(value);
1984
1984
  }
1985
1985
  //#endregion
1986
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_safeGet.js
1986
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js
1987
1987
  /**
1988
1988
  * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
1989
1989
  *
@@ -1998,7 +1998,7 @@
1998
1998
  return object[key];
1999
1999
  }
2000
2000
  //#endregion
2001
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/toPlainObject.js
2001
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js
2002
2002
  /**
2003
2003
  * Converts `value` to a plain object flattening inherited enumerable string
2004
2004
  * keyed properties of `value` to own properties of the plain object.
@@ -2027,7 +2027,7 @@
2027
2027
  return copyObject(value, keysIn(value));
2028
2028
  }
2029
2029
  //#endregion
2030
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMergeDeep.js
2030
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js
2031
2031
  /**
2032
2032
  * A specialized version of `baseMerge` for arrays and objects which performs
2033
2033
  * deep merges and tracks traversed objects enabling objects with circular
@@ -2077,7 +2077,7 @@
2077
2077
  assignMergeValue(object, key, newValue);
2078
2078
  }
2079
2079
  //#endregion
2080
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseMerge.js
2080
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js
2081
2081
  /**
2082
2082
  * The base implementation of `_.merge` without support for multiple sources.
2083
2083
  *
@@ -2102,7 +2102,7 @@
2102
2102
  }, keysIn);
2103
2103
  }
2104
2104
  //#endregion
2105
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.js
2105
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/merge.js
2106
2106
  /**
2107
2107
  * This method is like `_.assign` except that it recursively merges own and
2108
2108
  * inherited enumerable string keyed properties of source objects into the
@@ -2138,7 +2138,7 @@
2138
2138
  baseMerge(object, source, srcIndex);
2139
2139
  });
2140
2140
  //#endregion
2141
- //#region node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/throttle.js
2141
+ //#region node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/throttle.js
2142
2142
  /** Error message constants. */
2143
2143
  var FUNC_ERROR_TEXT = "Expected a function";
2144
2144
  /**
@@ -4365,25 +4365,38 @@
4365
4365
  }
4366
4366
  /**
4367
4367
  * 初始化视窗和蒙层监听,监听元素是否在视窗区域、监听mask蒙层所在的wrapper大小变化
4368
- * @description 初始化视窗和蒙层监听
4368
+ * @description 初始化视窗和蒙层监听;切换到新页面 DOM 时重置滚动
4369
4369
  * @param page 页面Dom节点
4370
4370
  */
4371
4371
  observe(page) {
4372
4372
  if (!page) return;
4373
+ const pageChanged = this.page !== page;
4373
4374
  this.page = page;
4374
4375
  this.initObserverIntersection();
4375
4376
  this.initObserverWrapper();
4377
+ if (pageChanged) {
4378
+ this.pageScrollParent?.scrollTo({
4379
+ top: 0,
4380
+ left: 0
4381
+ });
4382
+ this.scrollTop = 0;
4383
+ this.scrollLeft = 0;
4384
+ this.scroll();
4385
+ }
4386
+ this.syncPageSize();
4376
4387
  }
4377
4388
  /**
4378
- * 处理页面大小变更,同步页面和mask大小
4389
+ * 处理页面大小变更,同步页面和 mask 大小
4390
+ * @description 仅处理当前 page 且仍挂载在文档中的 entry;非当前页、已卸载或宽高为 0 的回调会被忽略
4379
4391
  * @param entries ResizeObserverEntry,获取页面最新大小
4380
4392
  */
4381
4393
  pageResize(entries) {
4382
- const [entry] = entries;
4383
- const { clientHeight, clientWidth } = entry.target;
4384
- this.setHeight(clientHeight);
4385
- this.setWidth(clientWidth);
4386
- this.scroll();
4394
+ if (!this.page || !entries.length) return;
4395
+ const entry = entries.find((item) => item.target === this.page);
4396
+ if (!entry) return;
4397
+ const { target } = entry;
4398
+ if (!target.isConnected) return;
4399
+ this.applyPageSize(target.clientWidth, target.clientHeight);
4387
4400
  }
4388
4401
  /**
4389
4402
  * 监听一个组件是否在画布可视区域内
@@ -4424,6 +4437,7 @@
4424
4437
  this.content?.remove();
4425
4438
  this.page = null;
4426
4439
  this.pageScrollParent = null;
4440
+ this.intersectionObserver?.disconnect();
4427
4441
  this.wrapperResizeObserver?.disconnect();
4428
4442
  }
4429
4443
  on(eventName, listener) {
@@ -4494,6 +4508,22 @@
4494
4508
  this.content.dispatchEvent(event);
4495
4509
  }
4496
4510
  /**
4511
+ * 从当前页面同步蒙层宽高,并修正滚动偏移
4512
+ */
4513
+ syncPageSize() {
4514
+ if (!this.page?.isConnected) return;
4515
+ this.applyPageSize(this.page.clientWidth, this.page.clientHeight);
4516
+ }
4517
+ /**
4518
+ * 应用页面尺寸到蒙层;宽高为 0 时忽略,避免切换/布局过程中把 editor-mask 置空
4519
+ */
4520
+ applyPageSize(clientWidth, clientHeight) {
4521
+ if (clientWidth <= 0 || clientHeight <= 0) return;
4522
+ this.setHeight(clientHeight);
4523
+ this.setWidth(clientWidth);
4524
+ this.scroll();
4525
+ }
4526
+ /**
4497
4527
  * 设置蒙层高度
4498
4528
  * @param height 高度
4499
4529
  */
@@ -4981,6 +5011,15 @@
4981
5011
  this.pageResizeObserver.observe(page);
4982
5012
  }
4983
5013
  }
5014
+ /**
5015
+ * page-el-update 后,若当前选中节点仍在新页面文档中且需要自动滚动,则重新触发 scrollIntoView
5016
+ */
5017
+ scrollSelectedIntoViewAfterPageUpdate() {
5018
+ const selected = this.actionManager?.getSelectedEl();
5019
+ if (!selected?.isConnected) return;
5020
+ if (!(this.autoScrollIntoView || selected.dataset.autoScrollIntoView)) return;
5021
+ this.mask?.observerIntersection(selected);
5022
+ }
4984
5023
  getActionManagerConfig(config) {
4985
5024
  return {
4986
5025
  containerHighlightClassName: config.containerHighlightClassName,
@@ -5009,6 +5048,7 @@
5009
5048
  this.renderer?.on("page-el-update", (el) => {
5010
5049
  this.mask?.observe(el);
5011
5050
  this.observePageResize(el);
5051
+ this.scrollSelectedIntoViewAfterPageUpdate();
5012
5052
  this.emit("page-el-update", el);
5013
5053
  });
5014
5054
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.8.0-beta.21",
2
+ "version": "1.8.0-beta.23",
3
3
  "name": "@tmagic/stage",
4
4
  "type": "module",
5
5
  "sideEffects": false,
@@ -30,21 +30,21 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@scena/guides": "^0.29.2",
33
+ "@zumer/snapdom": "^2.23.2",
33
34
  "events": "^3.3.0",
34
- "@zumer/snapdom": "^2.8.0",
35
35
  "keycon": "^1.4.0",
36
- "lodash-es": "^4.17.21",
36
+ "lodash-es": "^4.18.1",
37
37
  "moveable": "^0.53.0",
38
38
  "moveable-helper": "^0.4.0",
39
39
  "scenejs": "^1.10.3"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/events": "^3.0.3",
43
- "@types/lodash-es": "^4.17.4"
43
+ "@types/lodash-es": "^4.17.12"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "typescript": "^6.0.3",
47
- "@tmagic/core": "1.8.0-beta.21"
47
+ "@tmagic/core": "1.8.0-beta.23"
48
48
  },
49
49
  "peerDependenciesMeta": {
50
50
  "typescript": {
package/src/StageCore.ts CHANGED
@@ -368,6 +368,17 @@ export default class StageCore extends EventEmitter {
368
368
  }
369
369
  }
370
370
 
371
+ /**
372
+ * page-el-update 后,若当前选中节点仍在新页面文档中且需要自动滚动,则重新触发 scrollIntoView
373
+ */
374
+ private scrollSelectedIntoViewAfterPageUpdate(): void {
375
+ const selected = this.actionManager?.getSelectedEl();
376
+ if (!selected?.isConnected) return;
377
+ if (!(this.autoScrollIntoView || selected.dataset.autoScrollIntoView)) return;
378
+
379
+ this.mask?.observerIntersection(selected);
380
+ }
381
+
371
382
  private getActionManagerConfig(config: StageCoreConfig): ActionManagerConfig {
372
383
  const actionManagerConfig: ActionManagerConfig = {
373
384
  containerHighlightClassName: config.containerHighlightClassName,
@@ -400,6 +411,10 @@ export default class StageCore extends EventEmitter {
400
411
  this.mask?.observe(el);
401
412
  this.observePageResize(el);
402
413
 
414
+ // observe 切页时会重置滚动;若 select + scrollIntoView 已先完成,这里对仍挂载的选中节点
415
+ // 重新触发一次,避免滚动被打回顶部
416
+ this.scrollSelectedIntoViewAfterPageUpdate();
417
+
403
418
  this.emit('page-el-update', el);
404
419
  });
405
420
  }
package/src/StageMask.ts CHANGED
@@ -108,28 +108,50 @@ export default class StageMask extends Rule {
108
108
 
109
109
  /**
110
110
  * 初始化视窗和蒙层监听,监听元素是否在视窗区域、监听mask蒙层所在的wrapper大小变化
111
- * @description 初始化视窗和蒙层监听
111
+ * @description 初始化视窗和蒙层监听;切换到新页面 DOM 时重置滚动
112
112
  * @param page 页面Dom节点
113
113
  */
114
114
  public observe(page: HTMLElement): void {
115
115
  if (!page) return;
116
116
 
117
+ const pageChanged = this.page !== page;
118
+
117
119
  this.page = page;
118
120
  this.initObserverIntersection();
119
121
  this.initObserverWrapper();
122
+
123
+ if (pageChanged) {
124
+ // runtime 按 pageId 重挂载后,滚动容器(多为 documentElement)可能仍残留上一页偏移;
125
+ // 新页默认从顶部展示:重置页面与 mask 滚动,并立刻 scroll() 刷新 transform/标尺。
126
+ // syncPageSize 在宽高为 0 时会提前返回,不能依赖它刷新视觉状态。
127
+ // 若 select 已先 scrollIntoView,由 StageCore 在 page-el-update 后重新触发一次补回。
128
+ this.pageScrollParent?.scrollTo({ top: 0, left: 0 });
129
+ this.scrollTop = 0;
130
+ this.scrollLeft = 0;
131
+ this.scroll();
132
+ }
133
+
134
+ // 页面切换后立即同步一次;ResizeObserver 首次回调可能仍上报旧页/0 尺寸
135
+ this.syncPageSize();
120
136
  }
121
137
 
122
138
  /**
123
- * 处理页面大小变更,同步页面和mask大小
139
+ * 处理页面大小变更,同步页面和 mask 大小
140
+ * @description 仅处理当前 page 且仍挂载在文档中的 entry;非当前页、已卸载或宽高为 0 的回调会被忽略
124
141
  * @param entries ResizeObserverEntry,获取页面最新大小
125
142
  */
126
143
  public pageResize(entries: ResizeObserverEntry[]): void {
127
- const [entry] = entries;
128
- const { clientHeight, clientWidth } = entry.target;
129
- this.setHeight(clientHeight);
130
- this.setWidth(clientWidth);
144
+ if (!this.page || !entries.length) return;
131
145
 
132
- this.scroll();
146
+ // 取当前 page 对应 entry,避免 batch 中首项是旧页时整批被丢弃
147
+ const entry = entries.find((item) => item.target === this.page);
148
+ if (!entry) return;
149
+
150
+ const { target } = entry;
151
+ // 旧页卸载后仍可能回调,已断开连接的节点不再同步尺寸
152
+ if (!target.isConnected) return;
153
+
154
+ this.applyPageSize(target.clientWidth, target.clientHeight);
133
155
  }
134
156
 
135
157
  /**
@@ -186,6 +208,7 @@ export default class StageMask extends Rule {
186
208
  this.content?.remove();
187
209
  this.page = null;
188
210
  this.pageScrollParent = null;
211
+ this.intersectionObserver?.disconnect();
189
212
  this.wrapperResizeObserver?.disconnect();
190
213
  }
191
214
 
@@ -287,6 +310,26 @@ export default class StageMask extends Rule {
287
310
  this.content.dispatchEvent(event);
288
311
  }
289
312
 
313
+ /**
314
+ * 从当前页面同步蒙层宽高,并修正滚动偏移
315
+ */
316
+ private syncPageSize(): void {
317
+ if (!this.page?.isConnected) return;
318
+
319
+ this.applyPageSize(this.page.clientWidth, this.page.clientHeight);
320
+ }
321
+
322
+ /**
323
+ * 应用页面尺寸到蒙层;宽高为 0 时忽略,避免切换/布局过程中把 editor-mask 置空
324
+ */
325
+ private applyPageSize(clientWidth: number, clientHeight: number): void {
326
+ if (clientWidth <= 0 || clientHeight <= 0) return;
327
+
328
+ this.setHeight(clientHeight);
329
+ this.setWidth(clientWidth);
330
+ this.scroll();
331
+ }
332
+
290
333
  /**
291
334
  * 设置蒙层高度
292
335
  * @param height 高度
package/types/index.d.ts CHANGED
@@ -5,7 +5,6 @@ import Core, { Id, MApp, MContainer, MNode } from "@tmagic/core";
5
5
  import Guides, { GuidesOptions, GuidesOptions as GuidesOptions$1 } from "@scena/guides";
6
6
  import MoveableHelper from "moveable-helper";
7
7
  export * from "moveable";
8
-
9
8
  //#region temp/packages/stage/src/const.d.ts
10
9
  /** 流式布局下拖动时需要clone一个镜像节点,镜像节点的id前缀 */
11
10
  declare const GHOST_EL_ID_PREFIX = "ghost_el_";
@@ -705,12 +704,13 @@ declare class StageMask extends Rule {
705
704
  setMode(mode: Mode): void;
706
705
  /**
707
706
  * 初始化视窗和蒙层监听,监听元素是否在视窗区域、监听mask蒙层所在的wrapper大小变化
708
- * @description 初始化视窗和蒙层监听
707
+ * @description 初始化视窗和蒙层监听;切换到新页面 DOM 时重置滚动
709
708
  * @param page 页面Dom节点
710
709
  */
711
710
  observe(page: HTMLElement): void;
712
711
  /**
713
- * 处理页面大小变更,同步页面和mask大小
712
+ * 处理页面大小变更,同步页面和 mask 大小
713
+ * @description 仅处理当前 page 且仍挂载在文档中的 entry;非当前页、已卸载或宽高为 0 的回调会被忽略
714
714
  * @param entries ResizeObserverEntry,获取页面最新大小
715
715
  */
716
716
  pageResize(entries: ResizeObserverEntry[]): void;
@@ -742,6 +742,14 @@ declare class StageMask extends Rule {
742
742
  private initObserverWrapper;
743
743
  private scroll;
744
744
  private scrollTo;
745
+ /**
746
+ * 从当前页面同步蒙层宽高,并修正滚动偏移
747
+ */
748
+ private syncPageSize;
749
+ /**
750
+ * 应用页面尺寸到蒙层;宽高为 0 时忽略,避免切换/布局过程中把 editor-mask 置空
751
+ */
752
+ private applyPageSize;
745
753
  /**
746
754
  * 设置蒙层高度
747
755
  * @param height 高度
@@ -779,12 +787,7 @@ declare class StageRender extends EventEmitter {
779
787
  private zoom;
780
788
  private renderType;
781
789
  private customizedRender?;
782
- constructor({
783
- runtimeUrl,
784
- zoom,
785
- customizedRender,
786
- renderType
787
- }: StageRenderConfig);
790
+ constructor({ runtimeUrl, zoom, customizedRender, renderType }: StageRenderConfig);
788
791
  getMagicApi: () => {
789
792
  id: string;
790
793
  onPageElUpdate: (el: HTMLElement) => void;
@@ -931,6 +934,10 @@ declare class StageCore extends EventEmitter {
931
934
  * 监听页面大小变化
932
935
  */
933
936
  private observePageResize;
937
+ /**
938
+ * page-el-update 后,若当前选中节点仍在新页面文档中且需要自动滚动,则重新触发 scrollIntoView
939
+ */
940
+ private scrollSelectedIntoViewAfterPageUpdate;
934
941
  private getActionManagerConfig;
935
942
  private initRenderEvent;
936
943
  private initMaskEvent;
@@ -1095,10 +1102,7 @@ declare class StageDragResize extends MoveableOptionsManager {
1095
1102
  //#region temp/packages/stage/src/util.d.ts
1096
1103
  declare const getOffset: (el: Element) => Offset;
1097
1104
  declare const getTargetElStyle: (el: TargetElement, zIndex?: ZIndex) => string;
1098
- declare const getAbsolutePosition: (el: HTMLElement, {
1099
- top,
1100
- left
1101
- }: Offset) => {
1105
+ declare const getAbsolutePosition: (el: HTMLElement, { top, left }: Offset) => {
1102
1106
  left: number;
1103
1107
  top: number;
1104
1108
  };