@vue/compat 3.3.4 → 3.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vue.cjs.js CHANGED
@@ -40,7 +40,7 @@ const isString = (val) => typeof val === "string";
40
40
  const isSymbol = (val) => typeof val === "symbol";
41
41
  const isObject = (val) => val !== null && typeof val === "object";
42
42
  const isPromise = (val) => {
43
- return isObject(val) && isFunction(val.then) && isFunction(val.catch);
43
+ return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
44
44
  };
45
45
  const objectToString = Object.prototype.toString;
46
46
  const toTypeString = (value) => objectToString.call(value);
@@ -71,12 +71,13 @@ const hyphenateRE = /\B([A-Z])/g;
71
71
  const hyphenate = cacheStringFunction(
72
72
  (str) => str.replace(hyphenateRE, "-$1").toLowerCase()
73
73
  );
74
- const capitalize = cacheStringFunction(
75
- (str) => str.charAt(0).toUpperCase() + str.slice(1)
76
- );
77
- const toHandlerKey = cacheStringFunction(
78
- (str) => str ? `on${capitalize(str)}` : ``
79
- );
74
+ const capitalize = cacheStringFunction((str) => {
75
+ return str.charAt(0).toUpperCase() + str.slice(1);
76
+ });
77
+ const toHandlerKey = cacheStringFunction((str) => {
78
+ const s = str ? `on${capitalize(str)}` : ``;
79
+ return s;
80
+ });
80
81
  const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
81
82
  const invokeArrayFns = (fns, arg) => {
82
83
  for (let i = 0; i < fns.length; i++) {
@@ -130,8 +131,8 @@ const slotFlagsText = {
130
131
  [3]: "FORWARDED"
131
132
  };
132
133
 
133
- const GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console";
134
- const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
134
+ const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console";
135
+ const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);
135
136
 
136
137
  const range = 2;
137
138
  function generateCodeFrame(source, start = 0, end = source.length) {
@@ -186,9 +187,7 @@ function normalizeStyle(value) {
186
187
  }
187
188
  }
188
189
  return res;
189
- } else if (isString(value)) {
190
- return value;
191
- } else if (isObject(value)) {
190
+ } else if (isString(value) || isObject(value)) {
192
191
  return value;
193
192
  }
194
193
  }
@@ -600,7 +599,7 @@ function cleanupEffect(effect2) {
600
599
  }
601
600
  }
602
601
  function effect(fn, options) {
603
- if (fn.effect) {
602
+ if (fn.effect instanceof ReactiveEffect) {
604
603
  fn = fn.effect.fn;
605
604
  }
606
605
  const _effect = new ReactiveEffect(fn);
@@ -766,10 +765,6 @@ const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`
766
765
  const builtInSymbols = new Set(
767
766
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
768
767
  );
769
- const get$1 = /* @__PURE__ */ createGetter();
770
- const shallowGet = /* @__PURE__ */ createGetter(false, true);
771
- const readonlyGet = /* @__PURE__ */ createGetter(true);
772
- const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
773
768
  const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
774
769
  function createArrayInstrumentations() {
775
770
  const instrumentations = {};
@@ -802,8 +797,13 @@ function hasOwnProperty(key) {
802
797
  track(obj, "has", key);
803
798
  return obj.hasOwnProperty(key);
804
799
  }
805
- function createGetter(isReadonly2 = false, shallow = false) {
806
- return function get2(target, key, receiver) {
800
+ class BaseReactiveHandler {
801
+ constructor(_isReadonly = false, _shallow = false) {
802
+ this._isReadonly = _isReadonly;
803
+ this._shallow = _shallow;
804
+ }
805
+ get(target, key, receiver) {
806
+ const isReadonly2 = this._isReadonly, shallow = this._shallow;
807
807
  if (key === "__v_isReactive") {
808
808
  return !isReadonly2;
809
809
  } else if (key === "__v_isReadonly") {
@@ -839,17 +839,18 @@ function createGetter(isReadonly2 = false, shallow = false) {
839
839
  return isReadonly2 ? readonly(res) : reactive(res);
840
840
  }
841
841
  return res;
842
- };
842
+ }
843
843
  }
844
- const set$1 = /* @__PURE__ */ createSetter();
845
- const shallowSet = /* @__PURE__ */ createSetter(true);
846
- function createSetter(shallow = false) {
847
- return function set2(target, key, value, receiver) {
844
+ class MutableReactiveHandler extends BaseReactiveHandler {
845
+ constructor(shallow = false) {
846
+ super(false, shallow);
847
+ }
848
+ set(target, key, value, receiver) {
848
849
  let oldValue = target[key];
849
850
  if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
850
851
  return false;
851
852
  }
852
- if (!shallow) {
853
+ if (!this._shallow) {
853
854
  if (!isShallow(value) && !isReadonly(value)) {
854
855
  oldValue = toRaw(oldValue);
855
856
  value = toRaw(value);
@@ -869,37 +870,36 @@ function createSetter(shallow = false) {
869
870
  }
870
871
  }
871
872
  return result;
872
- };
873
- }
874
- function deleteProperty(target, key) {
875
- const hadKey = hasOwn(target, key);
876
- const oldValue = target[key];
877
- const result = Reflect.deleteProperty(target, key);
878
- if (result && hadKey) {
879
- trigger(target, "delete", key, void 0, oldValue);
880
873
  }
881
- return result;
882
- }
883
- function has$1(target, key) {
884
- const result = Reflect.has(target, key);
885
- if (!isSymbol(key) || !builtInSymbols.has(key)) {
886
- track(target, "has", key);
874
+ deleteProperty(target, key) {
875
+ const hadKey = hasOwn(target, key);
876
+ const oldValue = target[key];
877
+ const result = Reflect.deleteProperty(target, key);
878
+ if (result && hadKey) {
879
+ trigger(target, "delete", key, void 0, oldValue);
880
+ }
881
+ return result;
882
+ }
883
+ has(target, key) {
884
+ const result = Reflect.has(target, key);
885
+ if (!isSymbol(key) || !builtInSymbols.has(key)) {
886
+ track(target, "has", key);
887
+ }
888
+ return result;
889
+ }
890
+ ownKeys(target) {
891
+ track(
892
+ target,
893
+ "iterate",
894
+ isArray(target) ? "length" : ITERATE_KEY
895
+ );
896
+ return Reflect.ownKeys(target);
887
897
  }
888
- return result;
889
- }
890
- function ownKeys(target) {
891
- track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
892
- return Reflect.ownKeys(target);
893
898
  }
894
- const mutableHandlers = {
895
- get: get$1,
896
- set: set$1,
897
- deleteProperty,
898
- has: has$1,
899
- ownKeys
900
- };
901
- const readonlyHandlers = {
902
- get: readonlyGet,
899
+ class ReadonlyReactiveHandler extends BaseReactiveHandler {
900
+ constructor(shallow = false) {
901
+ super(true, shallow);
902
+ }
903
903
  set(target, key) {
904
904
  {
905
905
  warn$1(
@@ -908,7 +908,7 @@ const readonlyHandlers = {
908
908
  );
909
909
  }
910
910
  return true;
911
- },
911
+ }
912
912
  deleteProperty(target, key) {
913
913
  {
914
914
  warn$1(
@@ -918,22 +918,13 @@ const readonlyHandlers = {
918
918
  }
919
919
  return true;
920
920
  }
921
- };
922
- const shallowReactiveHandlers = /* @__PURE__ */ extend(
923
- {},
924
- mutableHandlers,
925
- {
926
- get: shallowGet,
927
- set: shallowSet
928
- }
929
- );
930
- const shallowReadonlyHandlers = /* @__PURE__ */ extend(
931
- {},
932
- readonlyHandlers,
933
- {
934
- get: shallowReadonlyGet
935
- }
921
+ }
922
+ const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
923
+ const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
924
+ const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(
925
+ true
936
926
  );
927
+ const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
937
928
 
938
929
  const toShallow = (value) => value;
939
930
  const getProto = (v) => Reflect.getPrototypeOf(v);
@@ -942,7 +933,7 @@ function get(target, key, isReadonly = false, isShallow = false) {
942
933
  const rawTarget = toRaw(target);
943
934
  const rawKey = toRaw(key);
944
935
  if (!isReadonly) {
945
- if (key !== rawKey) {
936
+ if (hasChanged(key, rawKey)) {
946
937
  track(rawTarget, "get", key);
947
938
  }
948
939
  track(rawTarget, "get", rawKey);
@@ -962,7 +953,7 @@ function has(key, isReadonly = false) {
962
953
  const rawTarget = toRaw(target);
963
954
  const rawKey = toRaw(key);
964
955
  if (!isReadonly) {
965
- if (key !== rawKey) {
956
+ if (hasChanged(key, rawKey)) {
966
957
  track(rawTarget, "has", key);
967
958
  }
968
959
  track(rawTarget, "has", rawKey);
@@ -1492,11 +1483,7 @@ function toRef(source, key, defaultValue) {
1492
1483
  }
1493
1484
  function propertyToRef(source, key, defaultValue) {
1494
1485
  const val = source[key];
1495
- return isRef(val) ? val : new ObjectRefImpl(
1496
- source,
1497
- key,
1498
- defaultValue
1499
- );
1486
+ return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);
1500
1487
  }
1501
1488
 
1502
1489
  class ComputedRefImpl {
@@ -3809,9 +3796,7 @@ function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EM
3809
3796
  }
3810
3797
  if (cb) {
3811
3798
  const newValue = effect.run();
3812
- if (deep || forceTrigger || (isMultiSource ? newValue.some(
3813
- (v, i) => hasChanged(v, oldValue[i])
3814
- ) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3799
+ if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) {
3815
3800
  if (cleanup) {
3816
3801
  cleanup();
3817
3802
  }
@@ -3987,6 +3972,8 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name) {
3987
3972
  }
3988
3973
  }
3989
3974
 
3975
+ const leaveCbKey = Symbol("_leaveCb");
3976
+ const enterCbKey$1 = Symbol("_enterCb");
3990
3977
  function useTransitionState() {
3991
3978
  const state = {
3992
3979
  isMounted: false,
@@ -4107,9 +4094,9 @@ const BaseTransitionImpl = {
4107
4094
  oldInnerChild
4108
4095
  );
4109
4096
  leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
4110
- el._leaveCb = () => {
4097
+ el[leaveCbKey] = () => {
4111
4098
  earlyRemove();
4112
- el._leaveCb = void 0;
4099
+ el[leaveCbKey] = void 0;
4113
4100
  delete enterHooks.delayedLeave;
4114
4101
  };
4115
4102
  enterHooks.delayedLeave = delayedLeave;
@@ -4183,15 +4170,15 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4183
4170
  return;
4184
4171
  }
4185
4172
  }
4186
- if (el._leaveCb) {
4187
- el._leaveCb(
4173
+ if (el[leaveCbKey]) {
4174
+ el[leaveCbKey](
4188
4175
  true
4189
4176
  /* cancelled */
4190
4177
  );
4191
4178
  }
4192
4179
  const leavingVNode = leavingVNodesCache[key];
4193
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
4194
- leavingVNode.el._leaveCb();
4180
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4181
+ leavingVNode.el[leaveCbKey]();
4195
4182
  }
4196
4183
  callHook(hook, [el]);
4197
4184
  },
@@ -4209,7 +4196,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4209
4196
  }
4210
4197
  }
4211
4198
  let called = false;
4212
- const done = el._enterCb = (cancelled) => {
4199
+ const done = el[enterCbKey$1] = (cancelled) => {
4213
4200
  if (called)
4214
4201
  return;
4215
4202
  called = true;
@@ -4221,7 +4208,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4221
4208
  if (hooks.delayedLeave) {
4222
4209
  hooks.delayedLeave();
4223
4210
  }
4224
- el._enterCb = void 0;
4211
+ el[enterCbKey$1] = void 0;
4225
4212
  };
4226
4213
  if (hook) {
4227
4214
  callAsyncHook(hook, [el, done]);
@@ -4231,8 +4218,8 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4231
4218
  },
4232
4219
  leave(el, remove) {
4233
4220
  const key2 = String(vnode.key);
4234
- if (el._enterCb) {
4235
- el._enterCb(
4221
+ if (el[enterCbKey$1]) {
4222
+ el[enterCbKey$1](
4236
4223
  true
4237
4224
  /* cancelled */
4238
4225
  );
@@ -4242,7 +4229,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4242
4229
  }
4243
4230
  callHook(onBeforeLeave, [el]);
4244
4231
  let called = false;
4245
- const done = el._leaveCb = (cancelled) => {
4232
+ const done = el[leaveCbKey] = (cancelled) => {
4246
4233
  if (called)
4247
4234
  return;
4248
4235
  called = true;
@@ -4252,7 +4239,7 @@ function resolveTransitionHooks(vnode, props, state, instance) {
4252
4239
  } else {
4253
4240
  callHook(onAfterLeave, [el]);
4254
4241
  }
4255
- el._leaveCb = void 0;
4242
+ el[leaveCbKey] = void 0;
4256
4243
  if (leavingVNodesCache[key2] === vnode) {
4257
4244
  delete leavingVNodesCache[key2];
4258
4245
  }
@@ -4314,6 +4301,8 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4314
4301
  return ret;
4315
4302
  }
4316
4303
 
4304
+ /*! #__NO_SIDE_EFFECTS__ */
4305
+ // @__NO_SIDE_EFFECTS__
4317
4306
  function defineComponent(options, extraOptions) {
4318
4307
  return isFunction(options) ? (
4319
4308
  // #8326: extend call and options.name access are considered side-effects
@@ -4323,6 +4312,8 @@ function defineComponent(options, extraOptions) {
4323
4312
  }
4324
4313
 
4325
4314
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4315
+ /*! #__NO_SIDE_EFFECTS__ */
4316
+ // @__NO_SIDE_EFFECTS__
4326
4317
  function defineAsyncComponent(source) {
4327
4318
  if (isFunction(source)) {
4328
4319
  source = { loader: source };
@@ -5341,6 +5332,7 @@ function legacyPrependModifier(value, symbol) {
5341
5332
  function installCompatInstanceProperties(map) {
5342
5333
  const set = (target, key, val) => {
5343
5334
  target[key] = val;
5335
+ return target[key];
5344
5336
  };
5345
5337
  const del = (target, key) => {
5346
5338
  delete target[key];
@@ -5618,7 +5610,7 @@ const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend(
5618
5610
  return PublicInstanceProxyHandlers.get(target, key, target);
5619
5611
  },
5620
5612
  has(_, key) {
5621
- const has = key[0] !== "_" && !isGloballyWhitelisted(key);
5613
+ const has = key[0] !== "_" && !isGloballyAllowed(key);
5622
5614
  if (!has && PublicInstanceProxyHandlers.has(_, key)) {
5623
5615
  warn(
5624
5616
  `Property ${JSON.stringify(
@@ -6355,7 +6347,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6355
6347
  return vm;
6356
6348
  }
6357
6349
  }
6358
- Vue.version = `2.6.14-compat:${"3.3.4"}`;
6350
+ Vue.version = `2.6.14-compat:${"3.3.5"}`;
6359
6351
  Vue.config = singletonApp.config;
6360
6352
  Vue.use = (p, ...options) => {
6361
6353
  if (p && isFunction(p.install)) {
@@ -6763,7 +6755,7 @@ function createAppAPI(render, hydrate) {
6763
6755
  },
6764
6756
  set() {
6765
6757
  warn(
6766
- `app.config.unwrapInjectedRef has been deprecated. 3.3 now alawys unwraps injected refs in Options API.`
6758
+ `app.config.unwrapInjectedRef has been deprecated. 3.3 now always unwraps injected refs in Options API.`
6767
6759
  );
6768
6760
  }
6769
6761
  });
@@ -6850,10 +6842,7 @@ function createAppAPI(render, hydrate) {
6850
6842
  If you want to mount another app on the same host container, you need to unmount the previous app by calling \`app.unmount()\` first.`
6851
6843
  );
6852
6844
  }
6853
- const vnode = createVNode(
6854
- rootComponent,
6855
- rootProps
6856
- );
6845
+ const vnode = createVNode(rootComponent, rootProps);
6857
6846
  vnode.appContext = context;
6858
6847
  {
6859
6848
  context.reload = () => {
@@ -7676,8 +7665,10 @@ function createHydrationFunctions(rendererInternals) {
7676
7665
  hasMismatch = true;
7677
7666
  warn(
7678
7667
  `Hydration text mismatch:
7679
- - Client: ${JSON.stringify(node.data)}
7680
- - Server: ${JSON.stringify(vnode.children)}`
7668
+ - Server rendered: ${JSON.stringify(
7669
+ node.data
7670
+ )}
7671
+ - Client rendered: ${JSON.stringify(vnode.children)}`
7681
7672
  );
7682
7673
  node.data = vnode.children;
7683
7674
  }
@@ -7880,8 +7871,8 @@ function createHydrationFunctions(rendererInternals) {
7880
7871
  hasMismatch = true;
7881
7872
  warn(
7882
7873
  `Hydration text content mismatch in <${vnode.type}>:
7883
- - Client: ${el.textContent}
7884
- - Server: ${vnode.children}`
7874
+ - Server rendered: ${el.textContent}
7875
+ - Client rendered: ${vnode.children}`
7885
7876
  );
7886
7877
  el.textContent = vnode.children;
7887
7878
  }
@@ -9663,6 +9654,10 @@ const TeleportImpl = {
9663
9654
  internals,
9664
9655
  1
9665
9656
  );
9657
+ } else {
9658
+ if (n2.props && n1.props && n2.props.to !== n1.props.to) {
9659
+ n2.props.to = n1.props.to;
9660
+ }
9666
9661
  }
9667
9662
  } else {
9668
9663
  if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
@@ -10528,9 +10523,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
10528
10523
  if (!skipOptions) {
10529
10524
  setCurrentInstance(instance);
10530
10525
  pauseTracking();
10531
- applyOptions(instance);
10532
- resetTracking();
10533
- unsetCurrentInstance();
10526
+ try {
10527
+ applyOptions(instance);
10528
+ } finally {
10529
+ resetTracking();
10530
+ unsetCurrentInstance();
10531
+ }
10534
10532
  }
10535
10533
  if (!Component.render && instance.render === NOOP && !isSSR) {
10536
10534
  if (!compile$1 && Component.template) {
@@ -10896,7 +10894,7 @@ function isMemoSame(cached, memo) {
10896
10894
  return true;
10897
10895
  }
10898
10896
 
10899
- const version = "3.3.4";
10897
+ const version = "3.3.5";
10900
10898
  const _ssrUtils = {
10901
10899
  createComponentInstance,
10902
10900
  setupComponent,
@@ -10983,146 +10981,499 @@ const nodeOps = {
10983
10981
  }
10984
10982
  };
10985
10983
 
10986
- function patchClass(el, value, isSVG) {
10987
- const transitionClasses = el._vtc;
10988
- if (transitionClasses) {
10989
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
10990
- }
10991
- if (value == null) {
10992
- el.removeAttribute("class");
10993
- } else if (isSVG) {
10994
- el.setAttribute("class", value);
10995
- } else {
10996
- el.className = value;
10997
- }
10984
+ const TRANSITION$1 = "transition";
10985
+ const ANIMATION = "animation";
10986
+ const vtcKey = Symbol("_vtc");
10987
+ const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
10988
+ Transition.displayName = "Transition";
10989
+ {
10990
+ Transition.__isBuiltIn = true;
10998
10991
  }
10999
-
11000
- function patchStyle(el, prev, next) {
11001
- const style = el.style;
11002
- const isCssString = isString(next);
11003
- if (next && !isCssString) {
11004
- if (prev && !isString(prev)) {
11005
- for (const key in prev) {
11006
- if (next[key] == null) {
11007
- setStyle(style, key, "");
11008
- }
11009
- }
11010
- }
11011
- for (const key in next) {
11012
- setStyle(style, key, next[key]);
11013
- }
11014
- } else {
11015
- const currentDisplay = style.display;
11016
- if (isCssString) {
11017
- if (prev !== next) {
11018
- style.cssText = next;
11019
- }
11020
- } else if (prev) {
11021
- el.removeAttribute("style");
11022
- }
11023
- if ("_vod" in el) {
11024
- style.display = currentDisplay;
11025
- }
10992
+ const DOMTransitionPropsValidators = {
10993
+ name: String,
10994
+ type: String,
10995
+ css: {
10996
+ type: Boolean,
10997
+ default: true
10998
+ },
10999
+ duration: [String, Number, Object],
11000
+ enterFromClass: String,
11001
+ enterActiveClass: String,
11002
+ enterToClass: String,
11003
+ appearFromClass: String,
11004
+ appearActiveClass: String,
11005
+ appearToClass: String,
11006
+ leaveFromClass: String,
11007
+ leaveActiveClass: String,
11008
+ leaveToClass: String
11009
+ };
11010
+ const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11011
+ {},
11012
+ BaseTransitionPropsValidators,
11013
+ DOMTransitionPropsValidators
11014
+ );
11015
+ const callHook = (hook, args = []) => {
11016
+ if (isArray(hook)) {
11017
+ hook.forEach((h2) => h2(...args));
11018
+ } else if (hook) {
11019
+ hook(...args);
11026
11020
  }
11027
- }
11028
- const semicolonRE = /[^\\];\s*$/;
11029
- const importantRE = /\s*!important$/;
11030
- function setStyle(style, name, val) {
11031
- if (isArray(val)) {
11032
- val.forEach((v) => setStyle(style, name, v));
11033
- } else {
11034
- if (val == null)
11035
- val = "";
11036
- {
11037
- if (semicolonRE.test(val)) {
11038
- warn(
11039
- `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11040
- );
11041
- }
11042
- }
11043
- if (name.startsWith("--")) {
11044
- style.setProperty(name, val);
11045
- } else {
11046
- const prefixed = autoPrefix(style, name);
11047
- if (importantRE.test(val)) {
11048
- style.setProperty(
11049
- hyphenate(prefixed),
11050
- val.replace(importantRE, ""),
11051
- "important"
11052
- );
11053
- } else {
11054
- style[prefixed] = val;
11055
- }
11021
+ };
11022
+ const hasExplicitCallback = (hook) => {
11023
+ return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11024
+ };
11025
+ function resolveTransitionProps(rawProps) {
11026
+ const baseProps = {};
11027
+ for (const key in rawProps) {
11028
+ if (!(key in DOMTransitionPropsValidators)) {
11029
+ baseProps[key] = rawProps[key];
11056
11030
  }
11057
11031
  }
11058
- }
11059
- const prefixes = ["Webkit", "Moz", "ms"];
11060
- const prefixCache = {};
11061
- function autoPrefix(style, rawName) {
11062
- const cached = prefixCache[rawName];
11063
- if (cached) {
11064
- return cached;
11065
- }
11066
- let name = camelize(rawName);
11067
- if (name !== "filter" && name in style) {
11068
- return prefixCache[rawName] = name;
11069
- }
11070
- name = capitalize(name);
11071
- for (let i = 0; i < prefixes.length; i++) {
11072
- const prefixed = prefixes[i] + name;
11073
- if (prefixed in style) {
11074
- return prefixCache[rawName] = prefixed;
11075
- }
11032
+ if (rawProps.css === false) {
11033
+ return baseProps;
11076
11034
  }
11077
- return rawName;
11078
- }
11079
-
11080
- const xlinkNS = "http://www.w3.org/1999/xlink";
11081
- function patchAttr(el, key, value, isSVG, instance) {
11082
- if (isSVG && key.startsWith("xlink:")) {
11083
- if (value == null) {
11084
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11085
- } else {
11086
- el.setAttributeNS(xlinkNS, key, value);
11087
- }
11088
- } else {
11089
- if (compatCoerceAttr(el, key, value, instance)) {
11090
- return;
11035
+ const {
11036
+ name = "v",
11037
+ type,
11038
+ duration,
11039
+ enterFromClass = `${name}-enter-from`,
11040
+ enterActiveClass = `${name}-enter-active`,
11041
+ enterToClass = `${name}-enter-to`,
11042
+ appearFromClass = enterFromClass,
11043
+ appearActiveClass = enterActiveClass,
11044
+ appearToClass = enterToClass,
11045
+ leaveFromClass = `${name}-leave-from`,
11046
+ leaveActiveClass = `${name}-leave-active`,
11047
+ leaveToClass = `${name}-leave-to`
11048
+ } = rawProps;
11049
+ const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11050
+ let legacyEnterFromClass;
11051
+ let legacyAppearFromClass;
11052
+ let legacyLeaveFromClass;
11053
+ if (legacyClassEnabled) {
11054
+ const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11055
+ if (!rawProps.enterFromClass) {
11056
+ legacyEnterFromClass = toLegacyClass(enterFromClass);
11091
11057
  }
11092
- const isBoolean = isSpecialBooleanAttr(key);
11093
- if (value == null || isBoolean && !includeBooleanAttr(value)) {
11094
- el.removeAttribute(key);
11095
- } else {
11096
- el.setAttribute(key, isBoolean ? "" : value);
11058
+ if (!rawProps.appearFromClass) {
11059
+ legacyAppearFromClass = toLegacyClass(appearFromClass);
11097
11060
  }
11098
- }
11099
- }
11100
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11101
- function compatCoerceAttr(el, key, value, instance = null) {
11102
- if (isEnumeratedAttr(key)) {
11103
- const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11104
- if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11105
- "ATTR_ENUMERATED_COERCION",
11106
- instance,
11107
- key,
11108
- value,
11109
- v2CoercedValue
11110
- )) {
11111
- el.setAttribute(key, v2CoercedValue);
11112
- return true;
11061
+ if (!rawProps.leaveFromClass) {
11062
+ legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11113
11063
  }
11114
- } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11115
- "ATTR_FALSE_VALUE",
11116
- instance,
11117
- key
11118
- )) {
11119
- el.removeAttribute(key);
11120
- return true;
11121
11064
  }
11122
- return false;
11123
- }
11124
-
11125
- function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11065
+ const durations = normalizeDuration(duration);
11066
+ const enterDuration = durations && durations[0];
11067
+ const leaveDuration = durations && durations[1];
11068
+ const {
11069
+ onBeforeEnter,
11070
+ onEnter,
11071
+ onEnterCancelled,
11072
+ onLeave,
11073
+ onLeaveCancelled,
11074
+ onBeforeAppear = onBeforeEnter,
11075
+ onAppear = onEnter,
11076
+ onAppearCancelled = onEnterCancelled
11077
+ } = baseProps;
11078
+ const finishEnter = (el, isAppear, done) => {
11079
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11080
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11081
+ done && done();
11082
+ };
11083
+ const finishLeave = (el, done) => {
11084
+ el._isLeaving = false;
11085
+ removeTransitionClass(el, leaveFromClass);
11086
+ removeTransitionClass(el, leaveToClass);
11087
+ removeTransitionClass(el, leaveActiveClass);
11088
+ done && done();
11089
+ };
11090
+ const makeEnterHook = (isAppear) => {
11091
+ return (el, done) => {
11092
+ const hook = isAppear ? onAppear : onEnter;
11093
+ const resolve = () => finishEnter(el, isAppear, done);
11094
+ callHook(hook, [el, resolve]);
11095
+ nextFrame(() => {
11096
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11097
+ if (legacyClassEnabled) {
11098
+ const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11099
+ if (legacyClass) {
11100
+ removeTransitionClass(el, legacyClass);
11101
+ }
11102
+ }
11103
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11104
+ if (!hasExplicitCallback(hook)) {
11105
+ whenTransitionEnds(el, type, enterDuration, resolve);
11106
+ }
11107
+ });
11108
+ };
11109
+ };
11110
+ return extend(baseProps, {
11111
+ onBeforeEnter(el) {
11112
+ callHook(onBeforeEnter, [el]);
11113
+ addTransitionClass(el, enterFromClass);
11114
+ if (legacyClassEnabled && legacyEnterFromClass) {
11115
+ addTransitionClass(el, legacyEnterFromClass);
11116
+ }
11117
+ addTransitionClass(el, enterActiveClass);
11118
+ },
11119
+ onBeforeAppear(el) {
11120
+ callHook(onBeforeAppear, [el]);
11121
+ addTransitionClass(el, appearFromClass);
11122
+ if (legacyClassEnabled && legacyAppearFromClass) {
11123
+ addTransitionClass(el, legacyAppearFromClass);
11124
+ }
11125
+ addTransitionClass(el, appearActiveClass);
11126
+ },
11127
+ onEnter: makeEnterHook(false),
11128
+ onAppear: makeEnterHook(true),
11129
+ onLeave(el, done) {
11130
+ el._isLeaving = true;
11131
+ const resolve = () => finishLeave(el, done);
11132
+ addTransitionClass(el, leaveFromClass);
11133
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11134
+ addTransitionClass(el, legacyLeaveFromClass);
11135
+ }
11136
+ forceReflow();
11137
+ addTransitionClass(el, leaveActiveClass);
11138
+ nextFrame(() => {
11139
+ if (!el._isLeaving) {
11140
+ return;
11141
+ }
11142
+ removeTransitionClass(el, leaveFromClass);
11143
+ if (legacyClassEnabled && legacyLeaveFromClass) {
11144
+ removeTransitionClass(el, legacyLeaveFromClass);
11145
+ }
11146
+ addTransitionClass(el, leaveToClass);
11147
+ if (!hasExplicitCallback(onLeave)) {
11148
+ whenTransitionEnds(el, type, leaveDuration, resolve);
11149
+ }
11150
+ });
11151
+ callHook(onLeave, [el, resolve]);
11152
+ },
11153
+ onEnterCancelled(el) {
11154
+ finishEnter(el, false);
11155
+ callHook(onEnterCancelled, [el]);
11156
+ },
11157
+ onAppearCancelled(el) {
11158
+ finishEnter(el, true);
11159
+ callHook(onAppearCancelled, [el]);
11160
+ },
11161
+ onLeaveCancelled(el) {
11162
+ finishLeave(el);
11163
+ callHook(onLeaveCancelled, [el]);
11164
+ }
11165
+ });
11166
+ }
11167
+ function normalizeDuration(duration) {
11168
+ if (duration == null) {
11169
+ return null;
11170
+ } else if (isObject(duration)) {
11171
+ return [NumberOf(duration.enter), NumberOf(duration.leave)];
11172
+ } else {
11173
+ const n = NumberOf(duration);
11174
+ return [n, n];
11175
+ }
11176
+ }
11177
+ function NumberOf(val) {
11178
+ const res = toNumber(val);
11179
+ {
11180
+ assertNumber(res, "<transition> explicit duration");
11181
+ }
11182
+ return res;
11183
+ }
11184
+ function addTransitionClass(el, cls) {
11185
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11186
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
11187
+ }
11188
+ function removeTransitionClass(el, cls) {
11189
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11190
+ const _vtc = el[vtcKey];
11191
+ if (_vtc) {
11192
+ _vtc.delete(cls);
11193
+ if (!_vtc.size) {
11194
+ el[vtcKey] = void 0;
11195
+ }
11196
+ }
11197
+ }
11198
+ function nextFrame(cb) {
11199
+ requestAnimationFrame(() => {
11200
+ requestAnimationFrame(cb);
11201
+ });
11202
+ }
11203
+ let endId = 0;
11204
+ function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11205
+ const id = el._endId = ++endId;
11206
+ const resolveIfNotStale = () => {
11207
+ if (id === el._endId) {
11208
+ resolve();
11209
+ }
11210
+ };
11211
+ if (explicitTimeout) {
11212
+ return setTimeout(resolveIfNotStale, explicitTimeout);
11213
+ }
11214
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11215
+ if (!type) {
11216
+ return resolve();
11217
+ }
11218
+ const endEvent = type + "end";
11219
+ let ended = 0;
11220
+ const end = () => {
11221
+ el.removeEventListener(endEvent, onEnd);
11222
+ resolveIfNotStale();
11223
+ };
11224
+ const onEnd = (e) => {
11225
+ if (e.target === el && ++ended >= propCount) {
11226
+ end();
11227
+ }
11228
+ };
11229
+ setTimeout(() => {
11230
+ if (ended < propCount) {
11231
+ end();
11232
+ }
11233
+ }, timeout + 1);
11234
+ el.addEventListener(endEvent, onEnd);
11235
+ }
11236
+ function getTransitionInfo(el, expectedType) {
11237
+ const styles = window.getComputedStyle(el);
11238
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
11239
+ const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11240
+ const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11241
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11242
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11243
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11244
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
11245
+ let type = null;
11246
+ let timeout = 0;
11247
+ let propCount = 0;
11248
+ if (expectedType === TRANSITION$1) {
11249
+ if (transitionTimeout > 0) {
11250
+ type = TRANSITION$1;
11251
+ timeout = transitionTimeout;
11252
+ propCount = transitionDurations.length;
11253
+ }
11254
+ } else if (expectedType === ANIMATION) {
11255
+ if (animationTimeout > 0) {
11256
+ type = ANIMATION;
11257
+ timeout = animationTimeout;
11258
+ propCount = animationDurations.length;
11259
+ }
11260
+ } else {
11261
+ timeout = Math.max(transitionTimeout, animationTimeout);
11262
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11263
+ propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11264
+ }
11265
+ const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11266
+ getStyleProperties(`${TRANSITION$1}Property`).toString()
11267
+ );
11268
+ return {
11269
+ type,
11270
+ timeout,
11271
+ propCount,
11272
+ hasTransform
11273
+ };
11274
+ }
11275
+ function getTimeout(delays, durations) {
11276
+ while (delays.length < durations.length) {
11277
+ delays = delays.concat(delays);
11278
+ }
11279
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11280
+ }
11281
+ function toMs(s) {
11282
+ if (s === "auto")
11283
+ return 0;
11284
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11285
+ }
11286
+ function forceReflow() {
11287
+ return document.body.offsetHeight;
11288
+ }
11289
+
11290
+ function patchClass(el, value, isSVG) {
11291
+ const transitionClasses = el[vtcKey];
11292
+ if (transitionClasses) {
11293
+ value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
11294
+ }
11295
+ if (value == null) {
11296
+ el.removeAttribute("class");
11297
+ } else if (isSVG) {
11298
+ el.setAttribute("class", value);
11299
+ } else {
11300
+ el.className = value;
11301
+ }
11302
+ }
11303
+
11304
+ const vShowOldKey = Symbol("_vod");
11305
+ const vShow = {
11306
+ beforeMount(el, { value }, { transition }) {
11307
+ el[vShowOldKey] = el.style.display === "none" ? "" : el.style.display;
11308
+ if (transition && value) {
11309
+ transition.beforeEnter(el);
11310
+ } else {
11311
+ setDisplay(el, value);
11312
+ }
11313
+ },
11314
+ mounted(el, { value }, { transition }) {
11315
+ if (transition && value) {
11316
+ transition.enter(el);
11317
+ }
11318
+ },
11319
+ updated(el, { value, oldValue }, { transition }) {
11320
+ if (!value === !oldValue)
11321
+ return;
11322
+ if (transition) {
11323
+ if (value) {
11324
+ transition.beforeEnter(el);
11325
+ setDisplay(el, true);
11326
+ transition.enter(el);
11327
+ } else {
11328
+ transition.leave(el, () => {
11329
+ setDisplay(el, false);
11330
+ });
11331
+ }
11332
+ } else {
11333
+ setDisplay(el, value);
11334
+ }
11335
+ },
11336
+ beforeUnmount(el, { value }) {
11337
+ setDisplay(el, value);
11338
+ }
11339
+ };
11340
+ function setDisplay(el, value) {
11341
+ el.style.display = value ? el[vShowOldKey] : "none";
11342
+ }
11343
+ function initVShowForSSR() {
11344
+ vShow.getSSRProps = ({ value }) => {
11345
+ if (!value) {
11346
+ return { style: { display: "none" } };
11347
+ }
11348
+ };
11349
+ }
11350
+
11351
+ function patchStyle(el, prev, next) {
11352
+ const style = el.style;
11353
+ const isCssString = isString(next);
11354
+ if (next && !isCssString) {
11355
+ if (prev && !isString(prev)) {
11356
+ for (const key in prev) {
11357
+ if (next[key] == null) {
11358
+ setStyle(style, key, "");
11359
+ }
11360
+ }
11361
+ }
11362
+ for (const key in next) {
11363
+ setStyle(style, key, next[key]);
11364
+ }
11365
+ } else {
11366
+ const currentDisplay = style.display;
11367
+ if (isCssString) {
11368
+ if (prev !== next) {
11369
+ style.cssText = next;
11370
+ }
11371
+ } else if (prev) {
11372
+ el.removeAttribute("style");
11373
+ }
11374
+ if (vShowOldKey in el) {
11375
+ style.display = currentDisplay;
11376
+ }
11377
+ }
11378
+ }
11379
+ const semicolonRE = /[^\\];\s*$/;
11380
+ const importantRE = /\s*!important$/;
11381
+ function setStyle(style, name, val) {
11382
+ if (isArray(val)) {
11383
+ val.forEach((v) => setStyle(style, name, v));
11384
+ } else {
11385
+ if (val == null)
11386
+ val = "";
11387
+ {
11388
+ if (semicolonRE.test(val)) {
11389
+ warn(
11390
+ `Unexpected semicolon at the end of '${name}' style value: '${val}'`
11391
+ );
11392
+ }
11393
+ }
11394
+ if (name.startsWith("--")) {
11395
+ style.setProperty(name, val);
11396
+ } else {
11397
+ const prefixed = autoPrefix(style, name);
11398
+ if (importantRE.test(val)) {
11399
+ style.setProperty(
11400
+ hyphenate(prefixed),
11401
+ val.replace(importantRE, ""),
11402
+ "important"
11403
+ );
11404
+ } else {
11405
+ style[prefixed] = val;
11406
+ }
11407
+ }
11408
+ }
11409
+ }
11410
+ const prefixes = ["Webkit", "Moz", "ms"];
11411
+ const prefixCache = {};
11412
+ function autoPrefix(style, rawName) {
11413
+ const cached = prefixCache[rawName];
11414
+ if (cached) {
11415
+ return cached;
11416
+ }
11417
+ let name = camelize(rawName);
11418
+ if (name !== "filter" && name in style) {
11419
+ return prefixCache[rawName] = name;
11420
+ }
11421
+ name = capitalize(name);
11422
+ for (let i = 0; i < prefixes.length; i++) {
11423
+ const prefixed = prefixes[i] + name;
11424
+ if (prefixed in style) {
11425
+ return prefixCache[rawName] = prefixed;
11426
+ }
11427
+ }
11428
+ return rawName;
11429
+ }
11430
+
11431
+ const xlinkNS = "http://www.w3.org/1999/xlink";
11432
+ function patchAttr(el, key, value, isSVG, instance) {
11433
+ if (isSVG && key.startsWith("xlink:")) {
11434
+ if (value == null) {
11435
+ el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
11436
+ } else {
11437
+ el.setAttributeNS(xlinkNS, key, value);
11438
+ }
11439
+ } else {
11440
+ if (compatCoerceAttr(el, key, value, instance)) {
11441
+ return;
11442
+ }
11443
+ const isBoolean = isSpecialBooleanAttr(key);
11444
+ if (value == null || isBoolean && !includeBooleanAttr(value)) {
11445
+ el.removeAttribute(key);
11446
+ } else {
11447
+ el.setAttribute(key, isBoolean ? "" : value);
11448
+ }
11449
+ }
11450
+ }
11451
+ const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck") ;
11452
+ function compatCoerceAttr(el, key, value, instance = null) {
11453
+ if (isEnumeratedAttr(key)) {
11454
+ const v2CoercedValue = value === null ? "false" : typeof value !== "boolean" && value !== void 0 ? "true" : null;
11455
+ if (v2CoercedValue && compatUtils.softAssertCompatEnabled(
11456
+ "ATTR_ENUMERATED_COERCION",
11457
+ instance,
11458
+ key,
11459
+ value,
11460
+ v2CoercedValue
11461
+ )) {
11462
+ el.setAttribute(key, v2CoercedValue);
11463
+ return true;
11464
+ }
11465
+ } else if (value === false && !isSpecialBooleanAttr(key) && compatUtils.softAssertCompatEnabled(
11466
+ "ATTR_FALSE_VALUE",
11467
+ instance,
11468
+ key
11469
+ )) {
11470
+ el.removeAttribute(key);
11471
+ return true;
11472
+ }
11473
+ return false;
11474
+ }
11475
+
11476
+ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
11126
11477
  if (key === "innerHTML" || key === "textContent") {
11127
11478
  if (prevChildren) {
11128
11479
  unmountChildren(prevChildren, parentComponent, parentSuspense);
@@ -11164,698 +11515,407 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
11164
11515
  const type = typeof el[key];
11165
11516
  if (type === "string" || type === "number") {
11166
11517
  compatUtils.warnDeprecation(
11167
- "ATTR_FALSE_VALUE",
11168
- parentComponent,
11169
- key
11170
- );
11171
- value = type === "number" ? 0 : "";
11172
- needRemove = true;
11173
- }
11174
- }
11175
- }
11176
- try {
11177
- el[key] = value;
11178
- } catch (e) {
11179
- if (!needRemove) {
11180
- warn(
11181
- `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11182
- e
11183
- );
11184
- }
11185
- }
11186
- needRemove && el.removeAttribute(key);
11187
- }
11188
-
11189
- function addEventListener(el, event, handler, options) {
11190
- el.addEventListener(event, handler, options);
11191
- }
11192
- function removeEventListener(el, event, handler, options) {
11193
- el.removeEventListener(event, handler, options);
11194
- }
11195
- function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11196
- const invokers = el._vei || (el._vei = {});
11197
- const existingInvoker = invokers[rawName];
11198
- if (nextValue && existingInvoker) {
11199
- existingInvoker.value = nextValue;
11200
- } else {
11201
- const [name, options] = parseName(rawName);
11202
- if (nextValue) {
11203
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11204
- addEventListener(el, name, invoker, options);
11205
- } else if (existingInvoker) {
11206
- removeEventListener(el, name, existingInvoker, options);
11207
- invokers[rawName] = void 0;
11208
- }
11209
- }
11210
- }
11211
- const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11212
- function parseName(name) {
11213
- let options;
11214
- if (optionsModifierRE.test(name)) {
11215
- options = {};
11216
- let m;
11217
- while (m = name.match(optionsModifierRE)) {
11218
- name = name.slice(0, name.length - m[0].length);
11219
- options[m[0].toLowerCase()] = true;
11220
- }
11221
- }
11222
- const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11223
- return [event, options];
11224
- }
11225
- let cachedNow = 0;
11226
- const p = /* @__PURE__ */ Promise.resolve();
11227
- const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11228
- function createInvoker(initialValue, instance) {
11229
- const invoker = (e) => {
11230
- if (!e._vts) {
11231
- e._vts = Date.now();
11232
- } else if (e._vts <= invoker.attached) {
11233
- return;
11234
- }
11235
- callWithAsyncErrorHandling(
11236
- patchStopImmediatePropagation(e, invoker.value),
11237
- instance,
11238
- 5,
11239
- [e]
11240
- );
11241
- };
11242
- invoker.value = initialValue;
11243
- invoker.attached = getNow();
11244
- return invoker;
11245
- }
11246
- function patchStopImmediatePropagation(e, value) {
11247
- if (isArray(value)) {
11248
- const originalStop = e.stopImmediatePropagation;
11249
- e.stopImmediatePropagation = () => {
11250
- originalStop.call(e);
11251
- e._stopped = true;
11252
- };
11253
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11254
- } else {
11255
- return value;
11256
- }
11257
- }
11258
-
11259
- const nativeOnRE = /^on[a-z]/;
11260
- const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11261
- if (key === "class") {
11262
- patchClass(el, nextValue, isSVG);
11263
- } else if (key === "style") {
11264
- patchStyle(el, prevValue, nextValue);
11265
- } else if (isOn(key)) {
11266
- if (!isModelListener(key)) {
11267
- patchEvent(el, key, prevValue, nextValue, parentComponent);
11268
- }
11269
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11270
- patchDOMProp(
11271
- el,
11272
- key,
11273
- nextValue,
11274
- prevChildren,
11275
- parentComponent,
11276
- parentSuspense,
11277
- unmountChildren
11278
- );
11279
- } else {
11280
- if (key === "true-value") {
11281
- el._trueValue = nextValue;
11282
- } else if (key === "false-value") {
11283
- el._falseValue = nextValue;
11284
- }
11285
- patchAttr(el, key, nextValue, isSVG, parentComponent);
11286
- }
11287
- };
11288
- function shouldSetAsProp(el, key, value, isSVG) {
11289
- if (isSVG) {
11290
- if (key === "innerHTML" || key === "textContent") {
11291
- return true;
11292
- }
11293
- if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11294
- return true;
11295
- }
11296
- return false;
11297
- }
11298
- if (key === "spellcheck" || key === "draggable" || key === "translate") {
11299
- return false;
11300
- }
11301
- if (key === "form") {
11302
- return false;
11303
- }
11304
- if (key === "list" && el.tagName === "INPUT") {
11305
- return false;
11306
- }
11307
- if (key === "type" && el.tagName === "TEXTAREA") {
11308
- return false;
11309
- }
11310
- if (nativeOnRE.test(key) && isString(value)) {
11311
- return false;
11312
- }
11313
- return key in el;
11314
- }
11315
-
11316
- function defineCustomElement(options, hydrate2) {
11317
- const Comp = defineComponent(options);
11318
- class VueCustomElement extends VueElement {
11319
- constructor(initialProps) {
11320
- super(Comp, initialProps, hydrate2);
11321
- }
11322
- }
11323
- VueCustomElement.def = Comp;
11324
- return VueCustomElement;
11325
- }
11326
- const defineSSRCustomElement = (options) => {
11327
- return defineCustomElement(options, hydrate);
11328
- };
11329
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11330
- };
11331
- class VueElement extends BaseClass {
11332
- constructor(_def, _props = {}, hydrate2) {
11333
- super();
11334
- this._def = _def;
11335
- this._props = _props;
11336
- /**
11337
- * @internal
11338
- */
11339
- this._instance = null;
11340
- this._connected = false;
11341
- this._resolved = false;
11342
- this._numberProps = null;
11343
- if (this.shadowRoot && hydrate2) {
11344
- hydrate2(this._createVNode(), this.shadowRoot);
11345
- } else {
11346
- if (this.shadowRoot) {
11347
- warn(
11348
- `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11349
- );
11350
- }
11351
- this.attachShadow({ mode: "open" });
11352
- if (!this._def.__asyncLoader) {
11353
- this._resolveProps(this._def);
11354
- }
11355
- }
11356
- }
11357
- connectedCallback() {
11358
- this._connected = true;
11359
- if (!this._instance) {
11360
- if (this._resolved) {
11361
- this._update();
11362
- } else {
11363
- this._resolveDef();
11364
- }
11365
- }
11366
- }
11367
- disconnectedCallback() {
11368
- this._connected = false;
11369
- nextTick(() => {
11370
- if (!this._connected) {
11371
- render(null, this.shadowRoot);
11372
- this._instance = null;
11373
- }
11374
- });
11375
- }
11376
- /**
11377
- * resolve inner component definition (handle possible async component)
11378
- */
11379
- _resolveDef() {
11380
- this._resolved = true;
11381
- for (let i = 0; i < this.attributes.length; i++) {
11382
- this._setAttr(this.attributes[i].name);
11383
- }
11384
- new MutationObserver((mutations) => {
11385
- for (const m of mutations) {
11386
- this._setAttr(m.attributeName);
11387
- }
11388
- }).observe(this, { attributes: true });
11389
- const resolve = (def, isAsync = false) => {
11390
- const { props, styles } = def;
11391
- let numberProps;
11392
- if (props && !isArray(props)) {
11393
- for (const key in props) {
11394
- const opt = props[key];
11395
- if (opt === Number || opt && opt.type === Number) {
11396
- if (key in this._props) {
11397
- this._props[key] = toNumber(this._props[key]);
11398
- }
11399
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11400
- }
11401
- }
11402
- }
11403
- this._numberProps = numberProps;
11404
- if (isAsync) {
11405
- this._resolveProps(def);
11406
- }
11407
- this._applyStyles(styles);
11408
- this._update();
11409
- };
11410
- const asyncDef = this._def.__asyncLoader;
11411
- if (asyncDef) {
11412
- asyncDef().then((def) => resolve(def, true));
11413
- } else {
11414
- resolve(this._def);
11415
- }
11416
- }
11417
- _resolveProps(def) {
11418
- const { props } = def;
11419
- const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11420
- for (const key of Object.keys(this)) {
11421
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11422
- this._setProp(key, this[key], true, false);
11518
+ "ATTR_FALSE_VALUE",
11519
+ parentComponent,
11520
+ key
11521
+ );
11522
+ value = type === "number" ? 0 : "";
11523
+ needRemove = true;
11423
11524
  }
11424
11525
  }
11425
- for (const key of declaredPropKeys.map(camelize)) {
11426
- Object.defineProperty(this, key, {
11427
- get() {
11428
- return this._getProp(key);
11429
- },
11430
- set(val) {
11431
- this._setProp(key, val);
11432
- }
11433
- });
11434
- }
11435
11526
  }
11436
- _setAttr(key) {
11437
- let value = this.getAttribute(key);
11438
- const camelKey = camelize(key);
11439
- if (this._numberProps && this._numberProps[camelKey]) {
11440
- value = toNumber(value);
11527
+ try {
11528
+ el[key] = value;
11529
+ } catch (e) {
11530
+ if (!needRemove) {
11531
+ warn(
11532
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
11533
+ e
11534
+ );
11441
11535
  }
11442
- this._setProp(camelKey, value, false);
11443
- }
11444
- /**
11445
- * @internal
11446
- */
11447
- _getProp(key) {
11448
- return this._props[key];
11449
11536
  }
11450
- /**
11451
- * @internal
11452
- */
11453
- _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11454
- if (val !== this._props[key]) {
11455
- this._props[key] = val;
11456
- if (shouldUpdate && this._instance) {
11457
- this._update();
11458
- }
11459
- if (shouldReflect) {
11460
- if (val === true) {
11461
- this.setAttribute(hyphenate(key), "");
11462
- } else if (typeof val === "string" || typeof val === "number") {
11463
- this.setAttribute(hyphenate(key), val + "");
11464
- } else if (!val) {
11465
- this.removeAttribute(hyphenate(key));
11466
- }
11467
- }
11537
+ needRemove && el.removeAttribute(key);
11538
+ }
11539
+
11540
+ function addEventListener(el, event, handler, options) {
11541
+ el.addEventListener(event, handler, options);
11542
+ }
11543
+ function removeEventListener(el, event, handler, options) {
11544
+ el.removeEventListener(event, handler, options);
11545
+ }
11546
+ const veiKey = Symbol("_vei");
11547
+ function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
11548
+ const invokers = el[veiKey] || (el[veiKey] = {});
11549
+ const existingInvoker = invokers[rawName];
11550
+ if (nextValue && existingInvoker) {
11551
+ existingInvoker.value = nextValue;
11552
+ } else {
11553
+ const [name, options] = parseName(rawName);
11554
+ if (nextValue) {
11555
+ const invoker = invokers[rawName] = createInvoker(nextValue, instance);
11556
+ addEventListener(el, name, invoker, options);
11557
+ } else if (existingInvoker) {
11558
+ removeEventListener(el, name, existingInvoker, options);
11559
+ invokers[rawName] = void 0;
11468
11560
  }
11469
11561
  }
11470
- _update() {
11471
- render(this._createVNode(), this.shadowRoot);
11472
- }
11473
- _createVNode() {
11474
- const vnode = createVNode(this._def, extend({}, this._props));
11475
- if (!this._instance) {
11476
- vnode.ce = (instance) => {
11477
- this._instance = instance;
11478
- instance.isCE = true;
11479
- {
11480
- instance.ceReload = (newStyles) => {
11481
- if (this._styles) {
11482
- this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11483
- this._styles.length = 0;
11484
- }
11485
- this._applyStyles(newStyles);
11486
- this._instance = null;
11487
- this._update();
11488
- };
11489
- }
11490
- const dispatch = (event, args) => {
11491
- this.dispatchEvent(
11492
- new CustomEvent(event, {
11493
- detail: args
11494
- })
11495
- );
11496
- };
11497
- instance.emit = (event, ...args) => {
11498
- dispatch(event, args);
11499
- if (hyphenate(event) !== event) {
11500
- dispatch(hyphenate(event), args);
11501
- }
11502
- };
11503
- let parent = this;
11504
- while (parent = parent && (parent.parentNode || parent.host)) {
11505
- if (parent instanceof VueElement) {
11506
- instance.parent = parent._instance;
11507
- instance.provides = parent._instance.provides;
11508
- break;
11509
- }
11510
- }
11511
- };
11562
+ }
11563
+ const optionsModifierRE = /(?:Once|Passive|Capture)$/;
11564
+ function parseName(name) {
11565
+ let options;
11566
+ if (optionsModifierRE.test(name)) {
11567
+ options = {};
11568
+ let m;
11569
+ while (m = name.match(optionsModifierRE)) {
11570
+ name = name.slice(0, name.length - m[0].length);
11571
+ options[m[0].toLowerCase()] = true;
11512
11572
  }
11513
- return vnode;
11514
11573
  }
11515
- _applyStyles(styles) {
11516
- if (styles) {
11517
- styles.forEach((css) => {
11518
- const s = document.createElement("style");
11519
- s.textContent = css;
11520
- this.shadowRoot.appendChild(s);
11521
- {
11522
- (this._styles || (this._styles = [])).push(s);
11523
- }
11524
- });
11574
+ const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
11575
+ return [event, options];
11576
+ }
11577
+ let cachedNow = 0;
11578
+ const p = /* @__PURE__ */ Promise.resolve();
11579
+ const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
11580
+ function createInvoker(initialValue, instance) {
11581
+ const invoker = (e) => {
11582
+ if (!e._vts) {
11583
+ e._vts = Date.now();
11584
+ } else if (e._vts <= invoker.attached) {
11585
+ return;
11525
11586
  }
11587
+ callWithAsyncErrorHandling(
11588
+ patchStopImmediatePropagation(e, invoker.value),
11589
+ instance,
11590
+ 5,
11591
+ [e]
11592
+ );
11593
+ };
11594
+ invoker.value = initialValue;
11595
+ invoker.attached = getNow();
11596
+ return invoker;
11597
+ }
11598
+ function patchStopImmediatePropagation(e, value) {
11599
+ if (isArray(value)) {
11600
+ const originalStop = e.stopImmediatePropagation;
11601
+ e.stopImmediatePropagation = () => {
11602
+ originalStop.call(e);
11603
+ e._stopped = true;
11604
+ };
11605
+ return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
11606
+ } else {
11607
+ return value;
11526
11608
  }
11527
11609
  }
11528
11610
 
11529
- function useCssModule(name = "$style") {
11530
- {
11531
- const instance = getCurrentInstance();
11532
- if (!instance) {
11533
- warn(`useCssModule must be called inside setup()`);
11534
- return EMPTY_OBJ;
11535
- }
11536
- const modules = instance.type.__cssModules;
11537
- if (!modules) {
11538
- warn(`Current instance does not have CSS modules injected.`);
11539
- return EMPTY_OBJ;
11611
+ const nativeOnRE = /^on[a-z]/;
11612
+ const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
11613
+ if (key === "class") {
11614
+ patchClass(el, nextValue, isSVG);
11615
+ } else if (key === "style") {
11616
+ patchStyle(el, prevValue, nextValue);
11617
+ } else if (isOn(key)) {
11618
+ if (!isModelListener(key)) {
11619
+ patchEvent(el, key, prevValue, nextValue, parentComponent);
11540
11620
  }
11541
- const mod = modules[name];
11542
- if (!mod) {
11543
- warn(`Current instance does not have CSS module named "${name}".`);
11544
- return EMPTY_OBJ;
11621
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
11622
+ patchDOMProp(
11623
+ el,
11624
+ key,
11625
+ nextValue,
11626
+ prevChildren,
11627
+ parentComponent,
11628
+ parentSuspense,
11629
+ unmountChildren
11630
+ );
11631
+ } else {
11632
+ if (key === "true-value") {
11633
+ el._trueValue = nextValue;
11634
+ } else if (key === "false-value") {
11635
+ el._falseValue = nextValue;
11545
11636
  }
11546
- return mod;
11637
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
11547
11638
  }
11548
- }
11549
-
11550
- function useCssVars(getter) {
11551
- return;
11552
- }
11553
-
11554
- const TRANSITION$1 = "transition";
11555
- const ANIMATION = "animation";
11556
- const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
11557
- Transition.displayName = "Transition";
11558
- {
11559
- Transition.__isBuiltIn = true;
11560
- }
11561
- const DOMTransitionPropsValidators = {
11562
- name: String,
11563
- type: String,
11564
- css: {
11565
- type: Boolean,
11566
- default: true
11567
- },
11568
- duration: [String, Number, Object],
11569
- enterFromClass: String,
11570
- enterActiveClass: String,
11571
- enterToClass: String,
11572
- appearFromClass: String,
11573
- appearActiveClass: String,
11574
- appearToClass: String,
11575
- leaveFromClass: String,
11576
- leaveActiveClass: String,
11577
- leaveToClass: String
11578
11639
  };
11579
- const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend(
11580
- {},
11581
- BaseTransitionPropsValidators,
11582
- DOMTransitionPropsValidators
11583
- );
11584
- const callHook = (hook, args = []) => {
11585
- if (isArray(hook)) {
11586
- hook.forEach((h2) => h2(...args));
11587
- } else if (hook) {
11588
- hook(...args);
11640
+ function shouldSetAsProp(el, key, value, isSVG) {
11641
+ if (isSVG) {
11642
+ if (key === "innerHTML" || key === "textContent") {
11643
+ return true;
11644
+ }
11645
+ if (key in el && nativeOnRE.test(key) && isFunction(value)) {
11646
+ return true;
11647
+ }
11648
+ return false;
11649
+ }
11650
+ if (key === "spellcheck" || key === "draggable" || key === "translate") {
11651
+ return false;
11652
+ }
11653
+ if (key === "form") {
11654
+ return false;
11655
+ }
11656
+ if (key === "list" && el.tagName === "INPUT") {
11657
+ return false;
11658
+ }
11659
+ if (key === "type" && el.tagName === "TEXTAREA") {
11660
+ return false;
11661
+ }
11662
+ if (nativeOnRE.test(key) && isString(value)) {
11663
+ return false;
11664
+ }
11665
+ return key in el;
11666
+ }
11667
+
11668
+ /*! #__NO_SIDE_EFFECTS__ */
11669
+ // @__NO_SIDE_EFFECTS__
11670
+ function defineCustomElement(options, hydrate2) {
11671
+ const Comp = defineComponent(options);
11672
+ class VueCustomElement extends VueElement {
11673
+ constructor(initialProps) {
11674
+ super(Comp, initialProps, hydrate2);
11675
+ }
11589
11676
  }
11677
+ VueCustomElement.def = Comp;
11678
+ return VueCustomElement;
11679
+ }
11680
+ /*! #__NO_SIDE_EFFECTS__ */
11681
+ const defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options) => {
11682
+ return /* @__PURE__ */ defineCustomElement(options, hydrate);
11590
11683
  };
11591
- const hasExplicitCallback = (hook) => {
11592
- return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
11684
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
11593
11685
  };
11594
- function resolveTransitionProps(rawProps) {
11595
- const baseProps = {};
11596
- for (const key in rawProps) {
11597
- if (!(key in DOMTransitionPropsValidators)) {
11598
- baseProps[key] = rawProps[key];
11686
+ class VueElement extends BaseClass {
11687
+ constructor(_def, _props = {}, hydrate2) {
11688
+ super();
11689
+ this._def = _def;
11690
+ this._props = _props;
11691
+ /**
11692
+ * @internal
11693
+ */
11694
+ this._instance = null;
11695
+ this._connected = false;
11696
+ this._resolved = false;
11697
+ this._numberProps = null;
11698
+ this._ob = null;
11699
+ if (this.shadowRoot && hydrate2) {
11700
+ hydrate2(this._createVNode(), this.shadowRoot);
11701
+ } else {
11702
+ if (this.shadowRoot) {
11703
+ warn(
11704
+ `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \`defineSSRCustomElement\`.`
11705
+ );
11706
+ }
11707
+ this.attachShadow({ mode: "open" });
11708
+ if (!this._def.__asyncLoader) {
11709
+ this._resolveProps(this._def);
11710
+ }
11599
11711
  }
11600
11712
  }
11601
- if (rawProps.css === false) {
11602
- return baseProps;
11603
- }
11604
- const {
11605
- name = "v",
11606
- type,
11607
- duration,
11608
- enterFromClass = `${name}-enter-from`,
11609
- enterActiveClass = `${name}-enter-active`,
11610
- enterToClass = `${name}-enter-to`,
11611
- appearFromClass = enterFromClass,
11612
- appearActiveClass = enterActiveClass,
11613
- appearToClass = enterToClass,
11614
- leaveFromClass = `${name}-leave-from`,
11615
- leaveActiveClass = `${name}-leave-active`,
11616
- leaveToClass = `${name}-leave-to`
11617
- } = rawProps;
11618
- const legacyClassEnabled = compatUtils.isCompatEnabled("TRANSITION_CLASSES", null);
11619
- let legacyEnterFromClass;
11620
- let legacyAppearFromClass;
11621
- let legacyLeaveFromClass;
11622
- if (legacyClassEnabled) {
11623
- const toLegacyClass = (cls) => cls.replace(/-from$/, "");
11624
- if (!rawProps.enterFromClass) {
11625
- legacyEnterFromClass = toLegacyClass(enterFromClass);
11626
- }
11627
- if (!rawProps.appearFromClass) {
11628
- legacyAppearFromClass = toLegacyClass(appearFromClass);
11713
+ connectedCallback() {
11714
+ this._connected = true;
11715
+ if (!this._instance) {
11716
+ if (this._resolved) {
11717
+ this._update();
11718
+ } else {
11719
+ this._resolveDef();
11720
+ }
11629
11721
  }
11630
- if (!rawProps.leaveFromClass) {
11631
- legacyLeaveFromClass = toLegacyClass(leaveFromClass);
11722
+ }
11723
+ disconnectedCallback() {
11724
+ this._connected = false;
11725
+ if (this._ob) {
11726
+ this._ob.disconnect();
11727
+ this._ob = null;
11632
11728
  }
11729
+ nextTick(() => {
11730
+ if (!this._connected) {
11731
+ render(null, this.shadowRoot);
11732
+ this._instance = null;
11733
+ }
11734
+ });
11633
11735
  }
11634
- const durations = normalizeDuration(duration);
11635
- const enterDuration = durations && durations[0];
11636
- const leaveDuration = durations && durations[1];
11637
- const {
11638
- onBeforeEnter,
11639
- onEnter,
11640
- onEnterCancelled,
11641
- onLeave,
11642
- onLeaveCancelled,
11643
- onBeforeAppear = onBeforeEnter,
11644
- onAppear = onEnter,
11645
- onAppearCancelled = onEnterCancelled
11646
- } = baseProps;
11647
- const finishEnter = (el, isAppear, done) => {
11648
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
11649
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
11650
- done && done();
11651
- };
11652
- const finishLeave = (el, done) => {
11653
- el._isLeaving = false;
11654
- removeTransitionClass(el, leaveFromClass);
11655
- removeTransitionClass(el, leaveToClass);
11656
- removeTransitionClass(el, leaveActiveClass);
11657
- done && done();
11658
- };
11659
- const makeEnterHook = (isAppear) => {
11660
- return (el, done) => {
11661
- const hook = isAppear ? onAppear : onEnter;
11662
- const resolve = () => finishEnter(el, isAppear, done);
11663
- callHook(hook, [el, resolve]);
11664
- nextFrame(() => {
11665
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
11666
- if (legacyClassEnabled) {
11667
- const legacyClass = isAppear ? legacyAppearFromClass : legacyEnterFromClass;
11668
- if (legacyClass) {
11669
- removeTransitionClass(el, legacyClass);
11736
+ /**
11737
+ * resolve inner component definition (handle possible async component)
11738
+ */
11739
+ _resolveDef() {
11740
+ this._resolved = true;
11741
+ for (let i = 0; i < this.attributes.length; i++) {
11742
+ this._setAttr(this.attributes[i].name);
11743
+ }
11744
+ this._ob = new MutationObserver((mutations) => {
11745
+ for (const m of mutations) {
11746
+ this._setAttr(m.attributeName);
11747
+ }
11748
+ });
11749
+ this._ob.observe(this, { attributes: true });
11750
+ const resolve = (def, isAsync = false) => {
11751
+ const { props, styles } = def;
11752
+ let numberProps;
11753
+ if (props && !isArray(props)) {
11754
+ for (const key in props) {
11755
+ const opt = props[key];
11756
+ if (opt === Number || opt && opt.type === Number) {
11757
+ if (key in this._props) {
11758
+ this._props[key] = toNumber(this._props[key]);
11759
+ }
11760
+ (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize(key)] = true;
11670
11761
  }
11671
11762
  }
11672
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
11673
- if (!hasExplicitCallback(hook)) {
11674
- whenTransitionEnds(el, type, enterDuration, resolve);
11675
- }
11676
- });
11677
- };
11678
- };
11679
- return extend(baseProps, {
11680
- onBeforeEnter(el) {
11681
- callHook(onBeforeEnter, [el]);
11682
- addTransitionClass(el, enterFromClass);
11683
- if (legacyClassEnabled && legacyEnterFromClass) {
11684
- addTransitionClass(el, legacyEnterFromClass);
11685
11763
  }
11686
- addTransitionClass(el, enterActiveClass);
11687
- },
11688
- onBeforeAppear(el) {
11689
- callHook(onBeforeAppear, [el]);
11690
- addTransitionClass(el, appearFromClass);
11691
- if (legacyClassEnabled && legacyAppearFromClass) {
11692
- addTransitionClass(el, legacyAppearFromClass);
11764
+ this._numberProps = numberProps;
11765
+ if (isAsync) {
11766
+ this._resolveProps(def);
11693
11767
  }
11694
- addTransitionClass(el, appearActiveClass);
11695
- },
11696
- onEnter: makeEnterHook(false),
11697
- onAppear: makeEnterHook(true),
11698
- onLeave(el, done) {
11699
- el._isLeaving = true;
11700
- const resolve = () => finishLeave(el, done);
11701
- addTransitionClass(el, leaveFromClass);
11702
- if (legacyClassEnabled && legacyLeaveFromClass) {
11703
- addTransitionClass(el, legacyLeaveFromClass);
11768
+ this._applyStyles(styles);
11769
+ this._update();
11770
+ };
11771
+ const asyncDef = this._def.__asyncLoader;
11772
+ if (asyncDef) {
11773
+ asyncDef().then((def) => resolve(def, true));
11774
+ } else {
11775
+ resolve(this._def);
11776
+ }
11777
+ }
11778
+ _resolveProps(def) {
11779
+ const { props } = def;
11780
+ const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
11781
+ for (const key of Object.keys(this)) {
11782
+ if (key[0] !== "_" && declaredPropKeys.includes(key)) {
11783
+ this._setProp(key, this[key], true, false);
11704
11784
  }
11705
- forceReflow();
11706
- addTransitionClass(el, leaveActiveClass);
11707
- nextFrame(() => {
11708
- if (!el._isLeaving) {
11709
- return;
11710
- }
11711
- removeTransitionClass(el, leaveFromClass);
11712
- if (legacyClassEnabled && legacyLeaveFromClass) {
11713
- removeTransitionClass(el, legacyLeaveFromClass);
11714
- }
11715
- addTransitionClass(el, leaveToClass);
11716
- if (!hasExplicitCallback(onLeave)) {
11717
- whenTransitionEnds(el, type, leaveDuration, resolve);
11718
- }
11719
- });
11720
- callHook(onLeave, [el, resolve]);
11721
- },
11722
- onEnterCancelled(el) {
11723
- finishEnter(el, false);
11724
- callHook(onEnterCancelled, [el]);
11725
- },
11726
- onAppearCancelled(el) {
11727
- finishEnter(el, true);
11728
- callHook(onAppearCancelled, [el]);
11729
- },
11730
- onLeaveCancelled(el) {
11731
- finishLeave(el);
11732
- callHook(onLeaveCancelled, [el]);
11733
11785
  }
11734
- });
11735
- }
11736
- function normalizeDuration(duration) {
11737
- if (duration == null) {
11738
- return null;
11739
- } else if (isObject(duration)) {
11740
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
11741
- } else {
11742
- const n = NumberOf(duration);
11743
- return [n, n];
11744
- }
11745
- }
11746
- function NumberOf(val) {
11747
- const res = toNumber(val);
11748
- {
11749
- assertNumber(res, "<transition> explicit duration");
11786
+ for (const key of declaredPropKeys.map(camelize)) {
11787
+ Object.defineProperty(this, key, {
11788
+ get() {
11789
+ return this._getProp(key);
11790
+ },
11791
+ set(val) {
11792
+ this._setProp(key, val);
11793
+ }
11794
+ });
11795
+ }
11750
11796
  }
11751
- return res;
11752
- }
11753
- function addTransitionClass(el, cls) {
11754
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
11755
- (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
11756
- }
11757
- function removeTransitionClass(el, cls) {
11758
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
11759
- const { _vtc } = el;
11760
- if (_vtc) {
11761
- _vtc.delete(cls);
11762
- if (!_vtc.size) {
11763
- el._vtc = void 0;
11797
+ _setAttr(key) {
11798
+ let value = this.getAttribute(key);
11799
+ const camelKey = camelize(key);
11800
+ if (this._numberProps && this._numberProps[camelKey]) {
11801
+ value = toNumber(value);
11764
11802
  }
11803
+ this._setProp(camelKey, value, false);
11765
11804
  }
11766
- }
11767
- function nextFrame(cb) {
11768
- requestAnimationFrame(() => {
11769
- requestAnimationFrame(cb);
11770
- });
11771
- }
11772
- let endId = 0;
11773
- function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
11774
- const id = el._endId = ++endId;
11775
- const resolveIfNotStale = () => {
11776
- if (id === el._endId) {
11777
- resolve();
11805
+ /**
11806
+ * @internal
11807
+ */
11808
+ _getProp(key) {
11809
+ return this._props[key];
11810
+ }
11811
+ /**
11812
+ * @internal
11813
+ */
11814
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
11815
+ if (val !== this._props[key]) {
11816
+ this._props[key] = val;
11817
+ if (shouldUpdate && this._instance) {
11818
+ this._update();
11819
+ }
11820
+ if (shouldReflect) {
11821
+ if (val === true) {
11822
+ this.setAttribute(hyphenate(key), "");
11823
+ } else if (typeof val === "string" || typeof val === "number") {
11824
+ this.setAttribute(hyphenate(key), val + "");
11825
+ } else if (!val) {
11826
+ this.removeAttribute(hyphenate(key));
11827
+ }
11828
+ }
11778
11829
  }
11779
- };
11780
- if (explicitTimeout) {
11781
- return setTimeout(resolveIfNotStale, explicitTimeout);
11782
11830
  }
11783
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
11784
- if (!type) {
11785
- return resolve();
11831
+ _update() {
11832
+ render(this._createVNode(), this.shadowRoot);
11786
11833
  }
11787
- const endEvent = type + "end";
11788
- let ended = 0;
11789
- const end = () => {
11790
- el.removeEventListener(endEvent, onEnd);
11791
- resolveIfNotStale();
11792
- };
11793
- const onEnd = (e) => {
11794
- if (e.target === el && ++ended >= propCount) {
11795
- end();
11834
+ _createVNode() {
11835
+ const vnode = createVNode(this._def, extend({}, this._props));
11836
+ if (!this._instance) {
11837
+ vnode.ce = (instance) => {
11838
+ this._instance = instance;
11839
+ instance.isCE = true;
11840
+ {
11841
+ instance.ceReload = (newStyles) => {
11842
+ if (this._styles) {
11843
+ this._styles.forEach((s) => this.shadowRoot.removeChild(s));
11844
+ this._styles.length = 0;
11845
+ }
11846
+ this._applyStyles(newStyles);
11847
+ this._instance = null;
11848
+ this._update();
11849
+ };
11850
+ }
11851
+ const dispatch = (event, args) => {
11852
+ this.dispatchEvent(
11853
+ new CustomEvent(event, {
11854
+ detail: args
11855
+ })
11856
+ );
11857
+ };
11858
+ instance.emit = (event, ...args) => {
11859
+ dispatch(event, args);
11860
+ if (hyphenate(event) !== event) {
11861
+ dispatch(hyphenate(event), args);
11862
+ }
11863
+ };
11864
+ let parent = this;
11865
+ while (parent = parent && (parent.parentNode || parent.host)) {
11866
+ if (parent instanceof VueElement) {
11867
+ instance.parent = parent._instance;
11868
+ instance.provides = parent._instance.provides;
11869
+ break;
11870
+ }
11871
+ }
11872
+ };
11796
11873
  }
11797
- };
11798
- setTimeout(() => {
11799
- if (ended < propCount) {
11800
- end();
11874
+ return vnode;
11875
+ }
11876
+ _applyStyles(styles) {
11877
+ if (styles) {
11878
+ styles.forEach((css) => {
11879
+ const s = document.createElement("style");
11880
+ s.textContent = css;
11881
+ this.shadowRoot.appendChild(s);
11882
+ {
11883
+ (this._styles || (this._styles = [])).push(s);
11884
+ }
11885
+ });
11801
11886
  }
11802
- }, timeout + 1);
11803
- el.addEventListener(endEvent, onEnd);
11887
+ }
11804
11888
  }
11805
- function getTransitionInfo(el, expectedType) {
11806
- const styles = window.getComputedStyle(el);
11807
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
11808
- const transitionDelays = getStyleProperties(`${TRANSITION$1}Delay`);
11809
- const transitionDurations = getStyleProperties(`${TRANSITION$1}Duration`);
11810
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
11811
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
11812
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
11813
- const animationTimeout = getTimeout(animationDelays, animationDurations);
11814
- let type = null;
11815
- let timeout = 0;
11816
- let propCount = 0;
11817
- if (expectedType === TRANSITION$1) {
11818
- if (transitionTimeout > 0) {
11819
- type = TRANSITION$1;
11820
- timeout = transitionTimeout;
11821
- propCount = transitionDurations.length;
11889
+
11890
+ function useCssModule(name = "$style") {
11891
+ {
11892
+ const instance = getCurrentInstance();
11893
+ if (!instance) {
11894
+ warn(`useCssModule must be called inside setup()`);
11895
+ return EMPTY_OBJ;
11822
11896
  }
11823
- } else if (expectedType === ANIMATION) {
11824
- if (animationTimeout > 0) {
11825
- type = ANIMATION;
11826
- timeout = animationTimeout;
11827
- propCount = animationDurations.length;
11897
+ const modules = instance.type.__cssModules;
11898
+ if (!modules) {
11899
+ warn(`Current instance does not have CSS modules injected.`);
11900
+ return EMPTY_OBJ;
11828
11901
  }
11829
- } else {
11830
- timeout = Math.max(transitionTimeout, animationTimeout);
11831
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$1 : ANIMATION : null;
11832
- propCount = type ? type === TRANSITION$1 ? transitionDurations.length : animationDurations.length : 0;
11833
- }
11834
- const hasTransform = type === TRANSITION$1 && /\b(transform|all)(,|$)/.test(
11835
- getStyleProperties(`${TRANSITION$1}Property`).toString()
11836
- );
11837
- return {
11838
- type,
11839
- timeout,
11840
- propCount,
11841
- hasTransform
11842
- };
11843
- }
11844
- function getTimeout(delays, durations) {
11845
- while (delays.length < durations.length) {
11846
- delays = delays.concat(delays);
11902
+ const mod = modules[name];
11903
+ if (!mod) {
11904
+ warn(`Current instance does not have CSS module named "${name}".`);
11905
+ return EMPTY_OBJ;
11906
+ }
11907
+ return mod;
11847
11908
  }
11848
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
11849
- }
11850
- function toMs(s) {
11851
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
11852
11909
  }
11853
- function forceReflow() {
11854
- return document.body.offsetHeight;
11910
+
11911
+ function useCssVars(getter) {
11912
+ return;
11855
11913
  }
11856
11914
 
11857
11915
  const positionMap = /* @__PURE__ */ new WeakMap();
11858
11916
  const newPositionMap = /* @__PURE__ */ new WeakMap();
11917
+ const moveCbKey = Symbol("_moveCb");
11918
+ const enterCbKey = Symbol("_enterCb");
11859
11919
  const TransitionGroupImpl = {
11860
11920
  name: "TransitionGroup",
11861
11921
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
@@ -11888,13 +11948,13 @@ const TransitionGroupImpl = {
11888
11948
  const style = el.style;
11889
11949
  addTransitionClass(el, moveClass);
11890
11950
  style.transform = style.webkitTransform = style.transitionDuration = "";
11891
- const cb = el._moveCb = (e) => {
11951
+ const cb = el[moveCbKey] = (e) => {
11892
11952
  if (e && e.target !== el) {
11893
11953
  return;
11894
11954
  }
11895
11955
  if (!e || /transform$/.test(e.propertyName)) {
11896
11956
  el.removeEventListener("transitionend", cb);
11897
- el._moveCb = null;
11957
+ el[moveCbKey] = null;
11898
11958
  removeTransitionClass(el, moveClass);
11899
11959
  }
11900
11960
  };
@@ -11946,11 +12006,11 @@ const removeMode = (props) => delete props.mode;
11946
12006
  const TransitionGroup = TransitionGroupImpl;
11947
12007
  function callPendingCbs(c) {
11948
12008
  const el = c.el;
11949
- if (el._moveCb) {
11950
- el._moveCb();
12009
+ if (el[moveCbKey]) {
12010
+ el[moveCbKey]();
11951
12011
  }
11952
- if (el._enterCb) {
11953
- el._enterCb();
12012
+ if (el[enterCbKey]) {
12013
+ el[enterCbKey]();
11954
12014
  }
11955
12015
  }
11956
12016
  function recordPosition(c) {
@@ -11970,8 +12030,9 @@ function applyTranslation(c) {
11970
12030
  }
11971
12031
  function hasCSSTransform(el, root, moveClass) {
11972
12032
  const clone = el.cloneNode();
11973
- if (el._vtc) {
11974
- el._vtc.forEach((cls) => {
12033
+ const _vtc = el[vtcKey];
12034
+ if (_vtc) {
12035
+ _vtc.forEach((cls) => {
11975
12036
  cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
11976
12037
  });
11977
12038
  }
@@ -11998,9 +12059,10 @@ function onCompositionEnd(e) {
11998
12059
  target.dispatchEvent(new Event("input"));
11999
12060
  }
12000
12061
  }
12062
+ const assignKey = Symbol("_assign");
12001
12063
  const vModelText = {
12002
12064
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
12003
- el._assign = getModelAssigner(vnode);
12065
+ el[assignKey] = getModelAssigner(vnode);
12004
12066
  const castToNumber = number || vnode.props && vnode.props.type === "number";
12005
12067
  addEventListener(el, lazy ? "change" : "input", (e) => {
12006
12068
  if (e.target.composing)
@@ -12012,7 +12074,7 @@ const vModelText = {
12012
12074
  if (castToNumber) {
12013
12075
  domValue = looseToNumber(domValue);
12014
12076
  }
12015
- el._assign(domValue);
12077
+ el[assignKey](domValue);
12016
12078
  });
12017
12079
  if (trim) {
12018
12080
  addEventListener(el, "change", () => {
@@ -12030,7 +12092,7 @@ const vModelText = {
12030
12092
  el.value = value == null ? "" : value;
12031
12093
  },
12032
12094
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
12033
- el._assign = getModelAssigner(vnode);
12095
+ el[assignKey] = getModelAssigner(vnode);
12034
12096
  if (el.composing)
12035
12097
  return;
12036
12098
  if (document.activeElement === el && el.type !== "range") {
@@ -12054,12 +12116,12 @@ const vModelCheckbox = {
12054
12116
  // #4096 array checkboxes need to be deep traversed
12055
12117
  deep: true,
12056
12118
  created(el, _, vnode) {
12057
- el._assign = getModelAssigner(vnode);
12119
+ el[assignKey] = getModelAssigner(vnode);
12058
12120
  addEventListener(el, "change", () => {
12059
12121
  const modelValue = el._modelValue;
12060
12122
  const elementValue = getValue(el);
12061
12123
  const checked = el.checked;
12062
- const assign = el._assign;
12124
+ const assign = el[assignKey];
12063
12125
  if (isArray(modelValue)) {
12064
12126
  const index = looseIndexOf(modelValue, elementValue);
12065
12127
  const found = index !== -1;
@@ -12086,7 +12148,7 @@ const vModelCheckbox = {
12086
12148
  // set initial checked on mount to wait for true-value/false-value
12087
12149
  mounted: setChecked,
12088
12150
  beforeUpdate(el, binding, vnode) {
12089
- el._assign = getModelAssigner(vnode);
12151
+ el[assignKey] = getModelAssigner(vnode);
12090
12152
  setChecked(el, binding, vnode);
12091
12153
  }
12092
12154
  };
@@ -12103,13 +12165,13 @@ function setChecked(el, { value, oldValue }, vnode) {
12103
12165
  const vModelRadio = {
12104
12166
  created(el, { value }, vnode) {
12105
12167
  el.checked = looseEqual(value, vnode.props.value);
12106
- el._assign = getModelAssigner(vnode);
12168
+ el[assignKey] = getModelAssigner(vnode);
12107
12169
  addEventListener(el, "change", () => {
12108
- el._assign(getValue(el));
12170
+ el[assignKey](getValue(el));
12109
12171
  });
12110
12172
  },
12111
12173
  beforeUpdate(el, { value, oldValue }, vnode) {
12112
- el._assign = getModelAssigner(vnode);
12174
+ el[assignKey] = getModelAssigner(vnode);
12113
12175
  if (value !== oldValue) {
12114
12176
  el.checked = looseEqual(value, vnode.props.value);
12115
12177
  }
@@ -12124,11 +12186,11 @@ const vModelSelect = {
12124
12186
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
12125
12187
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
12126
12188
  );
12127
- el._assign(
12189
+ el[assignKey](
12128
12190
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12129
12191
  );
12130
12192
  });
12131
- el._assign = getModelAssigner(vnode);
12193
+ el[assignKey] = getModelAssigner(vnode);
12132
12194
  },
12133
12195
  // set value in mounted & updated because <select> relies on its children
12134
12196
  // <option>s.
@@ -12136,7 +12198,7 @@ const vModelSelect = {
12136
12198
  setSelected(el, value);
12137
12199
  },
12138
12200
  beforeUpdate(el, _binding, vnode) {
12139
- el._assign = getModelAssigner(vnode);
12201
+ el[assignKey] = getModelAssigner(vnode);
12140
12202
  },
12141
12203
  updated(el, { value }) {
12142
12204
  setSelected(el, value);
@@ -12333,52 +12395,6 @@ const withKeys = (fn, modifiers) => {
12333
12395
  };
12334
12396
  };
12335
12397
 
12336
- const vShow = {
12337
- beforeMount(el, { value }, { transition }) {
12338
- el._vod = el.style.display === "none" ? "" : el.style.display;
12339
- if (transition && value) {
12340
- transition.beforeEnter(el);
12341
- } else {
12342
- setDisplay(el, value);
12343
- }
12344
- },
12345
- mounted(el, { value }, { transition }) {
12346
- if (transition && value) {
12347
- transition.enter(el);
12348
- }
12349
- },
12350
- updated(el, { value, oldValue }, { transition }) {
12351
- if (!value === !oldValue)
12352
- return;
12353
- if (transition) {
12354
- if (value) {
12355
- transition.beforeEnter(el);
12356
- setDisplay(el, true);
12357
- transition.enter(el);
12358
- } else {
12359
- transition.leave(el, () => {
12360
- setDisplay(el, false);
12361
- });
12362
- }
12363
- } else {
12364
- setDisplay(el, value);
12365
- }
12366
- },
12367
- beforeUnmount(el, { value }) {
12368
- setDisplay(el, value);
12369
- }
12370
- };
12371
- function setDisplay(el, value) {
12372
- el.style.display = value ? el._vod : "none";
12373
- }
12374
- function initVShowForSSR() {
12375
- vShow.getSSRProps = ({ value }) => {
12376
- if (!value) {
12377
- return { style: { display: "none" } };
12378
- }
12379
- };
12380
- }
12381
-
12382
12398
  const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
12383
12399
  let renderer;
12384
12400
  let enabledHydration = false;
@@ -13396,7 +13412,7 @@ function parseChildren(context, mode, ancestors) {
13396
13412
  continue;
13397
13413
  } else if (/[a-z]/i.test(s[2])) {
13398
13414
  emitError(context, 23);
13399
- parseTag(context, TagType.End, parent);
13415
+ parseTag(context, 1 /* End */, parent);
13400
13416
  continue;
13401
13417
  } else {
13402
13418
  emitError(
@@ -13557,7 +13573,7 @@ function parseElement(context, ancestors) {
13557
13573
  const wasInPre = context.inPre;
13558
13574
  const wasInVPre = context.inVPre;
13559
13575
  const parent = last(ancestors);
13560
- const element = parseTag(context, TagType.Start, parent);
13576
+ const element = parseTag(context, 0 /* Start */, parent);
13561
13577
  const isPreBoundary = context.inPre && !wasInPre;
13562
13578
  const isVPreBoundary = context.inVPre && !wasInVPre;
13563
13579
  if (element.isSelfClosing || context.options.isVoidTag(element.tag)) {
@@ -13592,7 +13608,7 @@ function parseElement(context, ancestors) {
13592
13608
  }
13593
13609
  element.children = children;
13594
13610
  if (startsWithEndTagOpen(context.source, element.tag)) {
13595
- parseTag(context, TagType.End, parent);
13611
+ parseTag(context, 1 /* End */, parent);
13596
13612
  } else {
13597
13613
  emitError(context, 24, 0, element.loc.start);
13598
13614
  if (context.source.length === 0 && element.tag.toLowerCase() === "script") {
@@ -13611,11 +13627,6 @@ function parseElement(context, ancestors) {
13611
13627
  }
13612
13628
  return element;
13613
13629
  }
13614
- var TagType = /* @__PURE__ */ ((TagType2) => {
13615
- TagType2[TagType2["Start"] = 0] = "Start";
13616
- TagType2[TagType2["End"] = 1] = "End";
13617
- return TagType2;
13618
- })(TagType || {});
13619
13630
  const isSpecialTemplateDirective = /* @__PURE__ */ makeMap(
13620
13631
  `if,else,else-if,for,slot`
13621
13632
  );
@@ -15738,7 +15749,7 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15738
15749
  const bailConstant = constantBailRE.test(rawExp);
15739
15750
  if (isSimpleIdentifier(rawExp)) {
15740
15751
  const isScopeVarReference = context.identifiers[rawExp];
15741
- const isAllowedGlobal = isGloballyWhitelisted(rawExp);
15752
+ const isAllowedGlobal = isGloballyAllowed(rawExp);
15742
15753
  const isLiteral = isLiteralWhitelisted(rawExp);
15743
15754
  if (!asParams && !isScopeVarReference && !isAllowedGlobal && !isLiteral) {
15744
15755
  if (isConst(bindingMetadata[node.content])) {
@@ -15840,7 +15851,7 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15840
15851
  return ret;
15841
15852
  }
15842
15853
  function canPrefix(id) {
15843
- if (isGloballyWhitelisted(id.name)) {
15854
+ if (isGloballyAllowed(id.name)) {
15844
15855
  return false;
15845
15856
  }
15846
15857
  if (id.name === "require") {