@shijiu/jsview-vue 1.9.631 → 1.9.642

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.
@@ -1,8 +1,8 @@
1
- import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';
2
- export { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';
3
- import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';
4
- export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
5
-
1
+ import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';
2
+ export { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';
3
+ import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';
4
+ export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
5
+
6
6
  const stack = [];
7
7
  function pushWarningContext(vnode) {
8
8
  stack.push(vnode);
@@ -115,8 +115,8 @@ function formatProp(key, value, raw) {
115
115
  value = toRaw(value);
116
116
  return raw ? value : [`${key}=`, value];
117
117
  }
118
- }
119
-
118
+ }
119
+
120
120
  const ErrorTypeStrings = {
121
121
  ["sp" /* SERVER_PREFETCH */]: 'serverPrefetch hook',
122
122
  ["bc" /* BEFORE_CREATE */]: 'beforeCreate hook',
@@ -225,8 +225,8 @@ function logError(err, type, contextVNode, throwInDev = true) {
225
225
  // recover in prod to reduce the impact on end-user
226
226
  console.error(err);
227
227
  }
228
- }
229
-
228
+ }
229
+
230
230
  let isFlushing = false;
231
231
  let isFlushPending = false;
232
232
  const queue = [];
@@ -245,15 +245,15 @@ function nextTick(fn) {
245
245
  const p = currentFlushPromise || resolvedPromise;
246
246
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
247
247
  }
248
-
249
- // JsView Added >>>
250
- const jsvDelayQueue = [];
251
- let jsvPendingForFirstDelayRender = false;
252
- let jsvDelayQueueTimer = 0;
253
- let jsvDelayQueueTaskToken = 1;
254
- const jsvDelayQueueRecord = [];
255
- // JsView Added <<<
256
-
248
+
249
+ // JsView Added >>>
250
+ const jsvDelayQueue = [];
251
+ let jsvPendingForFirstDelayRender = false;
252
+ let jsvDelayQueueTimer = 0;
253
+ let jsvDelayQueueTaskToken = 1;
254
+ const jsvDelayQueueRecord = [];
255
+ // JsView Added <<<
256
+
257
257
  // #2768
258
258
  // Use binary-search to find a suitable position in the queue,
259
259
  // so that the queue maintains the increasing order of job's id,
@@ -385,22 +385,22 @@ function flushJobs(seen) {
385
385
  // priority number)
386
386
  // 2. If a component is unmounted during a parent component's update,
387
387
  // its update can be skipped.
388
-
389
- // JsView Modified >>>
390
- if (jsvDelayQueue.length && !jsvPendingForFirstDelayRender) {
391
- // 将延迟后的任务放入执行队列前,如果任务本身已经失效了,此instance.update就会被设置成inactive
392
- // console.log("QCodeDrop jsvDelayQueue.length=", jsvDelayQueue.length);
393
- queue.unshift(...jsvDelayQueue);
394
-
395
- // 记录 Recorder 用于调试
396
- // jsvDelayQueueRecord.length = 0;
397
- // jsvDelayQueueRecord.unshift(...jsvDelayQueue);
398
-
399
- jsvDelayQueue.length = 0;
400
- jsvDelayQueueTaskToken++;
401
- }
402
- // JsView Modified <<<
403
-
388
+
389
+ // JsView Modified >>>
390
+ if (jsvDelayQueue.length && !jsvPendingForFirstDelayRender) {
391
+ // 将延迟后的任务放入执行队列前,如果任务本身已经失效了,此instance.update就会被设置成inactive
392
+ // console.log("QCodeDrop jsvDelayQueue.length=", jsvDelayQueue.length);
393
+ queue.unshift(...jsvDelayQueue);
394
+
395
+ // 记录 Recorder 用于调试
396
+ // jsvDelayQueueRecord.length = 0;
397
+ // jsvDelayQueueRecord.unshift(...jsvDelayQueue);
398
+
399
+ jsvDelayQueue.length = 0;
400
+ jsvDelayQueueTaskToken++;
401
+ }
402
+ // JsView Modified <<<
403
+
404
404
  queue.sort((a, b) => getId(a) - getId(b));
405
405
  // conditional usage of checkRecursiveUpdate must be determined out of
406
406
  // try ... catch block since Rollup by default de-optimizes treeshaking
@@ -436,31 +436,31 @@ function flushJobs(seen) {
436
436
  flushJobs(seen);
437
437
  }
438
438
  }
439
-
440
- // JsView Modified >>>
441
- // 重置pending drawing状态
442
- jsvPendingForFirstDelayRender = false;
443
-
444
- // 测试是否开启新的 pending draw 状态
445
- if (window.JsView?.hasPendingUserInput?.()) {
446
- jsvPendingForFirstDelayRender = true;
447
- }
448
-
449
- // JsView 提交延迟执行任务
450
- if (jsvDelayQueue.length > 0) {
451
- if (jsvDelayQueueTimer > 0) {
452
- clearTimeout(jsvDelayQueueTimer);
453
- jsvDelayQueueTimer = 0;
454
- }
455
-
456
- jsvDelayQueueTimer = setTimeout(() => {
457
- jsvDelayQueueTimer = 0;
458
- if (jsvDelayQueue.length > 0) {
459
- queueFlush();
460
- }
461
- }, 0);
462
- }
463
- // JsView Modified <<<
439
+
440
+ // JsView Modified >>>
441
+ // 重置pending drawing状态
442
+ jsvPendingForFirstDelayRender = false;
443
+
444
+ // 测试是否开启新的 pending draw 状态
445
+ if (window.JsView?.hasPendingUserInput?.()) {
446
+ jsvPendingForFirstDelayRender = true;
447
+ }
448
+
449
+ // JsView 提交延迟执行任务
450
+ if (jsvDelayQueue.length > 0) {
451
+ if (jsvDelayQueueTimer > 0) {
452
+ clearTimeout(jsvDelayQueueTimer);
453
+ jsvDelayQueueTimer = 0;
454
+ }
455
+
456
+ jsvDelayQueueTimer = setTimeout(() => {
457
+ jsvDelayQueueTimer = 0;
458
+ if (jsvDelayQueue.length > 0) {
459
+ queueFlush();
460
+ }
461
+ }, 0);
462
+ }
463
+ // JsView Modified <<<
464
464
  }
465
465
  function checkRecursiveUpdates(seen, fn) {
466
466
  if (!seen.has(fn)) {
@@ -482,8 +482,8 @@ function checkRecursiveUpdates(seen, fn) {
482
482
  seen.set(fn, count + 1);
483
483
  }
484
484
  }
485
- }
486
-
485
+ }
486
+
487
487
  /* eslint-disable no-restricted-globals */
488
488
  let isHmrUpdating = false;
489
489
  const hmrDirtyComponents = new Set();
@@ -623,8 +623,8 @@ function tryWrap(fn) {
623
623
  `Full reload required.`);
624
624
  }
625
625
  };
626
- }
627
-
626
+ }
627
+
628
628
  let devtools;
629
629
  let buffer = [];
630
630
  let devtoolsNotInstalled = false;
@@ -704,8 +704,8 @@ function createDevtoolsPerformanceHook(hook) {
704
704
  }
705
705
  function devtoolsComponentEmit(component, event, params) {
706
706
  emit("component:emit" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);
707
- }
708
-
707
+ }
708
+
709
709
  function emit$1(instance, event, ...rawArgs) {
710
710
  if (instance.isUnmounted)
711
711
  return;
@@ -834,8 +834,8 @@ function isEmitListener(options, key) {
834
834
  return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||
835
835
  hasOwn(options, hyphenate(key)) ||
836
836
  hasOwn(options, key));
837
- }
838
-
837
+ }
838
+
839
839
  /**
840
840
  * mark the current rendering instance for asset resolution (e.g.
841
841
  * resolveComponent, resolveDirective) during render
@@ -919,8 +919,8 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false on
919
919
  // disable block tracking by default
920
920
  renderFnWithContext._d = true;
921
921
  return renderFnWithContext;
922
- }
923
-
922
+ }
923
+
924
924
  /**
925
925
  * dev only flag to track whether $attrs was used during render.
926
926
  * If $attrs was used during render then the warning for failed attrs
@@ -1213,8 +1213,8 @@ function updateHOCHostEl({ vnode, parent }, el // HostNode
1213
1213
  (vnode = parent.vnode).el = el;
1214
1214
  parent = parent.parent;
1215
1215
  }
1216
- }
1217
-
1216
+ }
1217
+
1218
1218
  const isSuspense = (type) => type.__isSuspense;
1219
1219
  // Suspense exposes a component-like API, and is treated like a component
1220
1220
  // in the compiler, but internally it's a special built-in type that hooks
@@ -1642,8 +1642,8 @@ function setActiveBranch(suspense, branch) {
1642
1642
  parentComponent.vnode.el = el;
1643
1643
  updateHOCHostEl(parentComponent, el);
1644
1644
  }
1645
- }
1646
-
1645
+ }
1646
+
1647
1647
  function provide(key, value) {
1648
1648
  if (!currentInstance) {
1649
1649
  if ((process.env.NODE_ENV !== 'production')) {
@@ -1692,8 +1692,8 @@ function inject(key, defaultValue, treatDefaultAsFactory = false) {
1692
1692
  else if ((process.env.NODE_ENV !== 'production')) {
1693
1693
  warn(`inject() can only be used inside setup() or functional components.`);
1694
1694
  }
1695
- }
1696
-
1695
+ }
1696
+
1697
1697
  // Simple effect.
1698
1698
  function watchEffect(effect, options) {
1699
1699
  return doWatch(effect, null, options);
@@ -1949,8 +1949,8 @@ function traverse(value, seen) {
1949
1949
  }
1950
1950
  }
1951
1951
  return value;
1952
- }
1953
-
1952
+ }
1953
+
1954
1954
  function useTransitionState() {
1955
1955
  const state = {
1956
1956
  isMounted: false,
@@ -2286,13 +2286,13 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
2286
2286
  }
2287
2287
  }
2288
2288
  return ret;
2289
- }
2290
-
2289
+ }
2290
+
2291
2291
  // implementation, close to no-op
2292
2292
  function defineComponent(options) {
2293
2293
  return isFunction(options) ? { setup: options, name: options.name } : options;
2294
- }
2295
-
2294
+ }
2295
+
2296
2296
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
2297
2297
  function defineAsyncComponent(source) {
2298
2298
  if (isFunction(source)) {
@@ -2429,8 +2429,8 @@ function createInnerComp(comp, { vnode: { ref, props, children, shapeFlag }, par
2429
2429
  // ensure inner component inherits the async wrapper's ref owner
2430
2430
  vnode.ref = ref;
2431
2431
  return vnode;
2432
- }
2433
-
2432
+ }
2433
+
2434
2434
  const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
2435
2435
  const KeepAliveImpl = {
2436
2436
  name: `KeepAlive`,
@@ -2714,8 +2714,8 @@ function resetShapeFlag(vnode) {
2714
2714
  }
2715
2715
  function getInnerChild(vnode) {
2716
2716
  return vnode.shapeFlag & 128 /* SUSPENSE */ ? vnode.ssContent : vnode;
2717
- }
2718
-
2717
+ }
2718
+
2719
2719
  function injectHook(type, hook, target = currentInstance, prepend = false) {
2720
2720
  if (target) {
2721
2721
  const hooks = target[type] || (target[type] = []);
@@ -2772,15 +2772,15 @@ const onRenderTriggered = createHook("rtg" /* RENDER_TRIGGERED */);
2772
2772
  const onRenderTracked = createHook("rtc" /* RENDER_TRACKED */);
2773
2773
  function onErrorCaptured(hook, target = currentInstance) {
2774
2774
  injectHook("ec" /* ERROR_CAPTURED */, hook, target);
2775
- }
2776
-
2775
+ }
2776
+
2777
2777
  /**
2778
2778
  Runtime helper for applying directives to a vnode. Example usage:
2779
-
2779
+
2780
2780
  const comp = resolveComponent('comp')
2781
2781
  const foo = resolveDirective('foo')
2782
2782
  const bar = resolveDirective('bar')
2783
-
2783
+
2784
2784
  return withDirectives(h(comp), [
2785
2785
  [foo, this.x],
2786
2786
  [bar, this.y]
@@ -2847,8 +2847,8 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
2847
2847
  resetTracking();
2848
2848
  }
2849
2849
  }
2850
- }
2851
-
2850
+ }
2851
+
2852
2852
  const COMPONENTS = 'components';
2853
2853
  const DIRECTIVES = 'directives';
2854
2854
  /**
@@ -2901,10 +2901,11 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
2901
2901
  // fallback to implicit self-reference
2902
2902
  return Component;
2903
2903
  }
2904
- // JsView Modified >>>
2905
- // if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {
2906
- // 避免掉jsv自定义 element的报错问题
2907
- if ((process.env.NODE_ENV !== 'production') && warnMissing && !res && !name.startsWith("jsve-")) {
2904
+ // JsView Modified >>>
2905
+ // if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {
2906
+ // 避免掉jsv自定义 element的报错问题
2907
+ if ((process.env.NODE_ENV !== 'production') && warnMissing && !res
2908
+ && !name.startsWith("jsve-") && !name.startsWith("jsv-") && !name.startsWith("fdiv")) {
2908
2909
  // JsView Modified <<<
2909
2910
  const extra = type === COMPONENTS
2910
2911
  ? `\nIf this is a native custom element, make sure to exclude it from ` +
@@ -2924,8 +2925,8 @@ function resolve(registry, name) {
2924
2925
  (registry[name] ||
2925
2926
  registry[camelize(name)] ||
2926
2927
  registry[capitalize(camelize(name))]));
2927
- }
2928
-
2928
+ }
2929
+
2929
2930
  /**
2930
2931
  * Actual implementation
2931
2932
  */
@@ -2967,8 +2968,8 @@ function renderList(source, renderItem, cache, index) {
2967
2968
  cache[index] = ret;
2968
2969
  }
2969
2970
  return ret;
2970
- }
2971
-
2971
+ }
2972
+
2972
2973
  /**
2973
2974
  * Compiler runtime helper for creating dynamic slots object
2974
2975
  * @private
@@ -2988,8 +2989,8 @@ function createSlots(slots, dynamicSlots) {
2988
2989
  }
2989
2990
  }
2990
2991
  return slots;
2991
- }
2992
-
2992
+ }
2993
+
2993
2994
  /**
2994
2995
  * Compiler runtime helper for rendering `<slot/>`
2995
2996
  * @private
@@ -3044,8 +3045,8 @@ function ensureValidVNode(vnodes) {
3044
3045
  })
3045
3046
  ? vnodes
3046
3047
  : null;
3047
- }
3048
-
3048
+ }
3049
+
3049
3050
  /**
3050
3051
  * For prefixing keys in v-on="obj" with "on"
3051
3052
  * @private
@@ -3060,8 +3061,8 @@ function toHandlers(obj) {
3060
3061
  ret[toHandlerKey(key)] = obj[key];
3061
3062
  }
3062
3063
  return ret;
3063
- }
3064
-
3064
+ }
3065
+
3065
3066
  /**
3066
3067
  * #2437 In Vue 3, functional components do not have a public instance proxy but
3067
3068
  * they exist in the internal parent chain. For code that relies on traversing
@@ -3338,8 +3339,8 @@ function exposeSetupStateOnRenderContext(instance) {
3338
3339
  });
3339
3340
  }
3340
3341
  });
3341
- }
3342
-
3342
+ }
3343
+
3343
3344
  function createDuplicateChecker() {
3344
3345
  const cache = Object.create(null);
3345
3346
  return (type, key) => {
@@ -3759,8 +3760,8 @@ function mergeWatchOptions(to, from) {
3759
3760
  merged[key] = mergeAsArray(to[key], from[key]);
3760
3761
  }
3761
3762
  return merged;
3762
- }
3763
-
3763
+ }
3764
+
3764
3765
  function initProps(instance, rawProps, isStateful, // result of bitwise flag comparison
3765
3766
  isSSR = false) {
3766
3767
  const props = {};
@@ -4196,8 +4197,8 @@ function isExplicable(type) {
4196
4197
  */
4197
4198
  function isBoolean(...args) {
4198
4199
  return args.some(elem => elem.toLowerCase() === 'boolean');
4199
- }
4200
-
4200
+ }
4201
+
4201
4202
  const isInternalKey = (key) => key[0] === '_' || key === '$stable';
4202
4203
  const normalizeSlotValue = (value) => isArray(value)
4203
4204
  ? value.map(normalizeVNode)
@@ -4320,8 +4321,8 @@ const updateSlots = (instance, children, optimized) => {
4320
4321
  }
4321
4322
  }
4322
4323
  }
4323
- };
4324
-
4324
+ };
4325
+
4325
4326
  function createAppContext() {
4326
4327
  return {
4327
4328
  app: null,
@@ -4495,8 +4496,8 @@ function createAppAPI(render, hydrate) {
4495
4496
  });
4496
4497
  return app;
4497
4498
  };
4498
- }
4499
-
4499
+ }
4500
+
4500
4501
  /**
4501
4502
  * Function for handling a template ref
4502
4503
  */
@@ -4594,8 +4595,8 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4594
4595
  warn('Invalid template ref type:', ref, `(${typeof ref})`);
4595
4596
  }
4596
4597
  }
4597
- }
4598
-
4598
+ }
4599
+
4599
4600
  let hasMismatch = false;
4600
4601
  const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== 'foreignObject';
4601
4602
  const isComment = (node) => node.nodeType === 8 /* COMMENT */;
@@ -4944,8 +4945,8 @@ function createHydrationFunctions(rendererInternals) {
4944
4945
  return node;
4945
4946
  };
4946
4947
  return [hydrate, hydrateNode];
4947
- }
4948
-
4948
+ }
4949
+
4949
4950
  /* eslint-disable no-restricted-globals */
4950
4951
  let supported;
4951
4952
  let perf;
@@ -4982,8 +4983,8 @@ function isSupported() {
4982
4983
  supported = false;
4983
4984
  }
4984
4985
  return supported;
4985
- }
4986
-
4986
+ }
4987
+
4987
4988
  /**
4988
4989
  * This is only called in esm-bundler builds.
4989
4990
  * It is called when a renderer is created, in `baseCreateRenderer` so that
@@ -5009,8 +5010,8 @@ function initFeatureFlags() {
5009
5010
  `production bundle.\n\n` +
5010
5011
  `For more details, see https://link.vuejs.org/feature-flags.`);
5011
5012
  }
5012
- }
5013
-
5013
+ }
5014
+
5014
5015
  const queuePostRenderEffect = queueEffectWithSuspense
5015
5016
  ;
5016
5017
  /**
@@ -5052,27 +5053,27 @@ function baseCreateRenderer(options, createHydrationFns) {
5052
5053
  // Note: functions inside this closure should use `const xxx = () => {}`
5053
5054
  // style in order to prevent being inlined by minifiers.
5054
5055
  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {
5055
- // JsView Added >>>
5056
- if (n1 && n1.jsvRenderBreaker?.breaked) {
5057
- // 前一次的patch被打断
5058
-
5059
- // anchor和container要从n1中还原出来
5060
- container = n1.jsvRenderBreaker.patchPack.container;
5061
- anchor = n1.jsvRenderBreaker.patchPack.anchor;
5062
-
5063
- // 释放renderBreak时,创建出来的占位element
5064
- if (n1.el) {
5065
- n1.el.parentElement.removeChild(n1.el);
5066
- n1.el = null;
5067
- }
5068
-
5069
- n1 = null;
5070
- // if (n2 == null) {
5071
- // console.log("QCodeDrop become nothing to draw");
5072
- // }
5073
- }
5074
- // JsView Added <<<
5075
-
5056
+ // JsView Added >>>
5057
+ if (n1 && n1.jsvRenderBreaker?.breaked) {
5058
+ // 前一次的patch被打断
5059
+
5060
+ // anchor和container要从n1中还原出来
5061
+ container = n1.jsvRenderBreaker.patchPack.container;
5062
+ anchor = n1.jsvRenderBreaker.patchPack.anchor;
5063
+
5064
+ // 释放renderBreak时,创建出来的占位element
5065
+ if (n1.el) {
5066
+ n1.el.parentElement.removeChild(n1.el);
5067
+ n1.el = null;
5068
+ }
5069
+
5070
+ n1 = null;
5071
+ // if (n2 == null) {
5072
+ // console.log("QCodeDrop become nothing to draw");
5073
+ // }
5074
+ }
5075
+ // JsView Added <<<
5076
+
5076
5077
  if (n1 === n2) {
5077
5078
  return;
5078
5079
  }
@@ -5086,46 +5087,46 @@ function baseCreateRenderer(options, createHydrationFns) {
5086
5087
  optimized = false;
5087
5088
  n2.dynamicChildren = null;
5088
5089
  }
5089
-
5090
- // JsView Added >>>
5091
- // 有按键打断, 取消patch
5092
- if (n1 == null && n2) {
5093
- if (n2.key == "__QcodeJsviewMetroWidgetSlot" && (jsvPendingForFirstDelayRender || window.JsView?.hasPendingUserInput?.())) {
5094
- // 创建Comment节点, 以解决el释放可能出错问题
5095
- // 同时存储el以便给父节点进行属性链接
5096
- hostInsert((n2.el = hostCreateComment('')), container, anchor)
5097
- n2.anchor = anchor;
5098
-
5099
- n2.jsvRenderBreaker = {
5100
- breaked: true,
5101
- patchPack: {
5102
- container,
5103
- anchor, // 可能获取从fragment提交过来的anchor
5104
- }
5105
- };
5106
-
5107
- if (n2.children[0].key === "__QcodeJsviewMetroWidgetSlot") {
5108
- n2.children[0].anchor = anchor;
5109
- n2.children[0].jsvRenderBreaker = {
5110
- breaked: true,
5111
- patchPack: {
5112
- container,
5113
- anchor, // 可能获取从fragment提交过来的anchor
5114
- }
5115
- };
5116
- }
5117
-
5118
- if (!parentComponent.update.delayToken || parentComponent.update.delayToken != jsvDelayQueueTaskToken) {
5119
- parentComponent.update.delayToken = jsvDelayQueueTaskToken;
5120
- jsvDelayQueue.push(parentComponent.update);
5121
- } else {
5122
- // console.log("QCodeDrop repeat add parentComponent.update for id=" + parentComponent.update.id);
5123
- }
5124
- return;
5125
- }
5126
- }
5127
- // JsView Added <<<
5128
-
5090
+
5091
+ // JsView Added >>>
5092
+ // 有按键打断, 取消patch
5093
+ if (n1 == null && n2) {
5094
+ if (n2.key == "__QcodeJsviewMetroWidgetSlot" && (jsvPendingForFirstDelayRender || window.JsView?.hasPendingUserInput?.())) {
5095
+ // 创建Comment节点, 以解决el释放可能出错问题
5096
+ // 同时存储el以便给父节点进行属性链接
5097
+ hostInsert((n2.el = hostCreateComment('')), container, anchor)
5098
+ n2.anchor = anchor;
5099
+
5100
+ n2.jsvRenderBreaker = {
5101
+ breaked: true,
5102
+ patchPack: {
5103
+ container,
5104
+ anchor, // 可能获取从fragment提交过来的anchor
5105
+ }
5106
+ };
5107
+
5108
+ if (n2.children[0].key === "__QcodeJsviewMetroWidgetSlot") {
5109
+ n2.children[0].anchor = anchor;
5110
+ n2.children[0].jsvRenderBreaker = {
5111
+ breaked: true,
5112
+ patchPack: {
5113
+ container,
5114
+ anchor, // 可能获取从fragment提交过来的anchor
5115
+ }
5116
+ };
5117
+ }
5118
+
5119
+ if (!parentComponent.update.delayToken || parentComponent.update.delayToken != jsvDelayQueueTaskToken) {
5120
+ parentComponent.update.delayToken = jsvDelayQueueTaskToken;
5121
+ jsvDelayQueue.push(parentComponent.update);
5122
+ } else {
5123
+ // console.log("QCodeDrop repeat add parentComponent.update for id=" + parentComponent.update.id);
5124
+ }
5125
+ return;
5126
+ }
5127
+ }
5128
+ // JsView Added <<<
5129
+
5129
5130
  const { type, ref, shapeFlag } = n2;
5130
5131
  switch (type) {
5131
5132
  case Text:
@@ -5166,10 +5167,10 @@ function baseCreateRenderer(options, createHydrationFns) {
5166
5167
  if (ref != null && parentComponent) {
5167
5168
  setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
5168
5169
  }
5169
-
5170
- // JsView Added >>>
5171
- n2.jsvPatchedFlag = true; // 记录是否执行完成patch操作,用于避免unmount处理失效
5172
- // JsView Added <<<
5170
+
5171
+ // JsView Added >>>
5172
+ n2.jsvPatchedFlag = true; // 记录是否执行完成patch操作,用于避免unmount处理失效
5173
+ // JsView Added <<<
5173
5174
  };
5174
5175
  const processText = (n1, n2, container, anchor) => {
5175
5176
  if (n1 == null) {
@@ -5776,45 +5777,45 @@ function baseCreateRenderer(options, createHydrationFns) {
5776
5777
  if ((process.env.NODE_ENV !== 'production')) {
5777
5778
  startMeasure(instance, `patch`);
5778
5779
  }
5779
-
5780
- // JsView Added >>>
5781
- let el_parent_node;
5782
- let next_host_node;
5783
- if (prevTree.jsvRenderBreaker?.breaked) {
5784
- // el_parent_node = hostParentNode(prevTree.el);
5785
- // next_host_node = getNextHostNode(prevTree);
5786
- el_parent_node = prevTree.jsvRenderBreaker.patchPack.container;
5787
- next_host_node = prevTree.jsvRenderBreaker.patchPack.anchor;
5788
-
5789
- if (next_host_node && next_host_node.parent != el_parent_node) {
5790
- // anchor失效了
5791
- // console.warn("QCodeDrop lost anchor for anchor.parent=", next_host_node.parent);
5792
- next_host_node = null;
5793
- }
5794
- } else if (prevTree.jsvPatchedFlag) {
5795
- // if (!prevTree.el) {
5796
- // console.log("QCodeDrop element lost...");
5797
- // }
5798
- el_parent_node = hostParentNode(prevTree.el);
5799
- next_host_node = getNextHostNode(prevTree);
5800
- } else {
5801
- console.warn("QCodeDrop update with no patched item, use default set");
5802
- el_parent_node = container;
5803
- next_host_node = anchor;
5804
- return;
5805
- }
5806
- // JsView Added <<<
5807
-
5780
+
5781
+ // JsView Added >>>
5782
+ let el_parent_node;
5783
+ let next_host_node;
5784
+ if (prevTree.jsvRenderBreaker?.breaked) {
5785
+ // el_parent_node = hostParentNode(prevTree.el);
5786
+ // next_host_node = getNextHostNode(prevTree);
5787
+ el_parent_node = prevTree.jsvRenderBreaker.patchPack.container;
5788
+ next_host_node = prevTree.jsvRenderBreaker.patchPack.anchor;
5789
+
5790
+ if (next_host_node && next_host_node.parent != el_parent_node) {
5791
+ // anchor失效了
5792
+ // console.warn("QCodeDrop lost anchor for anchor.parent=", next_host_node.parent);
5793
+ next_host_node = null;
5794
+ }
5795
+ } else if (prevTree.jsvPatchedFlag) {
5796
+ // if (!prevTree.el) {
5797
+ // console.log("QCodeDrop element lost...");
5798
+ // }
5799
+ el_parent_node = hostParentNode(prevTree.el);
5800
+ next_host_node = getNextHostNode(prevTree);
5801
+ } else {
5802
+ console.warn("QCodeDrop update with no patched item, use default set");
5803
+ el_parent_node = container;
5804
+ next_host_node = anchor;
5805
+ return;
5806
+ }
5807
+ // JsView Added <<<
5808
+
5808
5809
  patch(prevTree, nextTree,
5809
- // JsView Modified >>>
5810
+ // JsView Modified >>>
5810
5811
  // // parent may have changed if it's in a teleport
5811
5812
  // hostParentNode(prevTree.el),
5812
5813
  // // anchor may have changed if it's in a fragment
5813
- // getNextHostNode(prevTree), instance, parentSuspense, isSVG);
5814
- el_parent_node,
5815
- next_host_node,
5814
+ // getNextHostNode(prevTree), instance, parentSuspense, isSVG);
5815
+ el_parent_node,
5816
+ next_host_node,
5816
5817
  instance, parentSuspense, isSVG);
5817
- // JsView Modified <<<
5818
+ // JsView Modified <<<
5818
5819
  if ((process.env.NODE_ENV !== 'production')) {
5819
5820
  endMeasure(instance, `patch`);
5820
5821
  }
@@ -6179,24 +6180,24 @@ function baseCreateRenderer(options, createHydrationFns) {
6179
6180
  }
6180
6181
  };
6181
6182
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
6182
- // JsView Added >>>
6183
- if (!vnode.jsvPatchedFlag) {
6184
- // unmount动作要进行的是vnode中的子节点进行unmount,但是vnode本身没有去进行创建,所以也不用去销毁
6185
- // 但是 mount 状态需要进行记录,避免由于RenderBreaker引起子节点未patch因为无法umount状态
6186
-
6187
- if (vnode.jsvRenderBreaker?.breaked) {
6188
- vnode.el.parentElement.removeChild(vnode.el);
6189
- vnode.el = null;
6190
- vnode.anchor = null;
6191
- vnode.jsvRenderBreaker = null;
6192
- }
6193
- return;
6194
- } else {
6195
- // unmount时重置jsvPatchedFlag
6196
- vnode.jsvPatchedFlag = false;
6197
- }
6198
- // JsView Added <<<
6199
-
6183
+ // JsView Added >>>
6184
+ if (!vnode.jsvPatchedFlag) {
6185
+ // unmount动作要进行的是vnode中的子节点进行unmount,但是vnode本身没有去进行创建,所以也不用去销毁
6186
+ // 但是 mount 状态需要进行记录,避免由于RenderBreaker引起子节点未patch因为无法umount状态
6187
+
6188
+ if (vnode.jsvRenderBreaker?.breaked) {
6189
+ vnode.el.parentElement.removeChild(vnode.el);
6190
+ vnode.el = null;
6191
+ vnode.anchor = null;
6192
+ vnode.jsvRenderBreaker = null;
6193
+ }
6194
+ return;
6195
+ } else {
6196
+ // unmount时重置jsvPatchedFlag
6197
+ vnode.jsvPatchedFlag = false;
6198
+ }
6199
+ // JsView Added <<<
6200
+
6200
6201
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;
6201
6202
  // unset ref
6202
6203
  if (ref != null) {
@@ -6485,8 +6486,8 @@ function getSequence(arr) {
6485
6486
  v = p[v];
6486
6487
  }
6487
6488
  return result;
6488
- }
6489
-
6489
+ }
6490
+
6490
6491
  const isTeleport = (type) => type.__isTeleport;
6491
6492
  const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === '');
6492
6493
  const isTargetSVG = (target) => typeof SVGElement !== 'undefined' && target instanceof SVGElement;
@@ -6692,8 +6693,8 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
6692
6693
  return vnode.anchor && nextSibling(vnode.anchor);
6693
6694
  }
6694
6695
  // Force-casted public typing for h and TSX props inference
6695
- const Teleport = TeleportImpl;
6696
-
6696
+ const Teleport = TeleportImpl;
6697
+
6697
6698
  const Fragment = Symbol((process.env.NODE_ENV !== 'production') ? 'Fragment' : undefined);
6698
6699
  const Text = Symbol((process.env.NODE_ENV !== 'production') ? 'Text' : undefined);
6699
6700
  const Comment = Symbol((process.env.NODE_ENV !== 'production') ? 'Comment' : undefined);
@@ -6842,10 +6843,10 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
6842
6843
  shapeFlag,
6843
6844
  patchFlag,
6844
6845
  dynamicProps,
6845
- dynamicChildren: null,
6846
- // JsView Added >>>
6847
- jsvRenderBreaker: null, //打断处理
6848
- jsvPatchedFlag: false, // 用于记录节点是否完成mount,未完成的可能由于jsvRenderBreaker打断了导致子节点不mount
6846
+ dynamicChildren: null,
6847
+ // JsView Added >>>
6848
+ jsvRenderBreaker: null, //打断处理
6849
+ jsvPatchedFlag: false, // 用于记录节点是否完成mount,未完成的可能由于jsvRenderBreaker打断了导致子节点不mount
6849
6850
  // JsView Added <<<
6850
6851
  appContext: null
6851
6852
  };
@@ -7175,8 +7176,8 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
7175
7176
  vnode,
7176
7177
  prevVNode
7177
7178
  ]);
7178
- }
7179
-
7179
+ }
7180
+
7180
7181
  const emptyAppContext = createAppContext();
7181
7182
  let uid$1 = 0;
7182
7183
  function createComponentInstance(vnode, parent, suspense) {
@@ -7537,13 +7538,13 @@ function createSetupContext(instance) {
7537
7538
  }
7538
7539
  }
7539
7540
  function getExposeProxy(instance) {
7540
- // JsView Added >>>
7541
- // 用于确认执行错误问题
7542
- if (!instance) {
7543
- console.error("QCodeDrop lost instance");
7544
- }
7545
- // JsView Added <<<
7546
-
7541
+ // JsView Added >>>
7542
+ // 用于确认执行错误问题
7543
+ if (!instance) {
7544
+ console.error("QCodeDrop lost instance");
7545
+ }
7546
+ // JsView Added <<<
7547
+
7547
7548
  if (instance.exposed) {
7548
7549
  return (instance.exposeProxy ||
7549
7550
  (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
@@ -7591,13 +7592,13 @@ function formatComponentName(instance, Component, isRoot = false) {
7591
7592
  }
7592
7593
  function isClassComponent(value) {
7593
7594
  return isFunction(value) && '__vccOpts' in value;
7594
- }
7595
-
7595
+ }
7596
+
7596
7597
  const computed = ((getterOrOptions, debugOptions) => {
7597
7598
  // @ts-ignore
7598
7599
  return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
7599
- });
7600
-
7600
+ });
7601
+
7601
7602
  // dev only
7602
7603
  const warnRuntimeUsage = (method) => warn(`${method}() is a compiler-hint helper that is only usable inside ` +
7603
7604
  `<script setup> of a single file component. Its arguments should be ` +
@@ -7748,8 +7749,8 @@ function withAsyncContext(getAwaitable) {
7748
7749
  });
7749
7750
  }
7750
7751
  return [awaitable, () => setCurrentInstance(ctx)];
7751
- }
7752
-
7752
+ }
7753
+
7753
7754
  // Actual implementation
7754
7755
  function h(type, propsOrChildren, children) {
7755
7756
  const l = arguments.length;
@@ -7776,8 +7777,8 @@ function h(type, propsOrChildren, children) {
7776
7777
  }
7777
7778
  return createVNode(type, propsOrChildren, children);
7778
7779
  }
7779
- }
7780
-
7780
+ }
7781
+
7781
7782
  const ssrContextKey = Symbol((process.env.NODE_ENV !== 'production') ? `ssrContext` : ``);
7782
7783
  const useSSRContext = () => {
7783
7784
  {
@@ -7788,12 +7789,12 @@ const useSSRContext = () => {
7788
7789
  }
7789
7790
  return ctx;
7790
7791
  }
7791
- };
7792
-
7792
+ };
7793
+
7793
7794
  function isShallow(value) {
7794
7795
  return !!(value && value["__v_isShallow" /* IS_SHALLOW */]);
7795
- }
7796
-
7796
+ }
7797
+
7797
7798
  function initCustomFormatter() {
7798
7799
  /* eslint-disable no-restricted-globals */
7799
7800
  if (!(process.env.NODE_ENV !== 'production') || typeof window === 'undefined') {
@@ -7981,8 +7982,8 @@ function initCustomFormatter() {
7981
7982
  else {
7982
7983
  window.devtoolsFormatters = [formatter];
7983
7984
  }
7984
- }
7985
-
7985
+ }
7986
+
7986
7987
  function withMemo(memo, render, cache, index) {
7987
7988
  const cached = cache[index];
7988
7989
  if (cached && isMemoSame(cached, memo)) {
@@ -8008,8 +8009,8 @@ function isMemoSame(cached, memo) {
8008
8009
  currentBlock.push(cached);
8009
8010
  }
8010
8011
  return true;
8011
- }
8012
-
8012
+ }
8013
+
8013
8014
  // Core API ------------------------------------------------------------------
8014
8015
  const version = "3.2.37";
8015
8016
  const _ssrUtils = {
@@ -8032,6 +8033,6 @@ const resolveFilter = null;
8032
8033
  /**
8033
8034
  * @internal only exposed in compat builds.
8034
8035
  */
8035
- const compatUtils = (null);
8036
-
8037
- export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
8036
+ const compatUtils = (null);
8037
+
8038
+ export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };