(function(factory) {
  typeof define === "function" && define.amd ? define(factory) : factory();
})(function() {
  "use strict";
  function getDefaultExportFromCjs(x) {
    return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
  }
  var _wks = { exports: {} };
  var _shared = { exports: {} };
  var _core = { exports: {} };
  var core$3 = _core.exports = {
    version: "2.6.12"
  };
  if (typeof __e == "number")
    __e = core$3;
  var _coreExports = _core.exports;
  var _global = { exports: {} };
  var global$5 = _global.exports = typeof window != "undefined" && window.Math == Math ? window : typeof self != "undefined" && self.Math == Math ? self : Function("return this")();
  if (typeof __g == "number")
    __g = global$5;
  var _globalExports = _global.exports;
  var core$2 = _coreExports;
  var global$4 = _globalExports;
  var SHARED = "__core-js_shared__";
  var store$1 = global$4[SHARED] || (global$4[SHARED] = {});
  (_shared.exports = function(key2, value) {
    return store$1[key2] || (store$1[key2] = value !== void 0 ? value : {});
  })("versions", []).push({
    version: core$2.version,
    mode: "global",
    copyright: "© 2020 Denis Pushkarev (zloirock.ru)"
  });
  var _sharedExports = _shared.exports;
  var id = 0;
  var px = Math.random();
  var _uid = function(key2) {
    return "Symbol(".concat(key2 === void 0 ? "" : key2, ")_", (++id + px).toString(36));
  };
  var store = _sharedExports("wks");
  var uid$3 = _uid;
  var Symbol$1 = _globalExports.Symbol;
  var USE_SYMBOL = typeof Symbol$1 == "function";
  var $exports = _wks.exports = function(name) {
    return store[name] || (store[name] = USE_SYMBOL && Symbol$1[name] || (USE_SYMBOL ? Symbol$1 : uid$3)("Symbol." + name));
  };
  $exports.store = store;
  var _wksExports = _wks.exports;
  var _objectDp = {};
  var _isObject = function(it) {
    return typeof it === "object" ? it !== null : typeof it === "function";
  };
  var isObject$4 = _isObject;
  var _anObject = function(it) {
    if (!isObject$4(it))
      throw TypeError(it + " is not an object!");
    return it;
  };
  var _fails = function(exec) {
    try {
      return !!exec();
    } catch (e2) {
      return true;
    }
  };
  var _descriptors = !_fails(function() {
    return Object.defineProperty({}, "a", {
      get: function() {
        return 7;
      }
    }).a != 7;
  });
  var _domCreate;
  var hasRequired_domCreate;
  function require_domCreate() {
    if (hasRequired_domCreate)
      return _domCreate;
    hasRequired_domCreate = 1;
    var isObject2 = _isObject;
    var document2 = _globalExports.document;
    var is = isObject2(document2) && isObject2(document2.createElement);
    _domCreate = function(it) {
      return is ? document2.createElement(it) : {};
    };
    return _domCreate;
  }
  var _ie8DomDefine = !_descriptors && !_fails(function() {
    return Object.defineProperty(require_domCreate()("div"), "a", {
      get: function() {
        return 7;
      }
    }).a != 7;
  });
  var isObject$3 = _isObject;
  var _toPrimitive$1 = function(it, S) {
    if (!isObject$3(it))
      return it;
    var fn, val;
    if (S && typeof (fn = it.toString) == "function" && !isObject$3(val = fn.call(it)))
      return val;
    if (typeof (fn = it.valueOf) == "function" && !isObject$3(val = fn.call(it)))
      return val;
    if (!S && typeof (fn = it.toString) == "function" && !isObject$3(val = fn.call(it)))
      return val;
    throw TypeError("Can't convert object to primitive value");
  };
  var anObject$4 = _anObject;
  var IE8_DOM_DEFINE = _ie8DomDefine;
  var toPrimitive = _toPrimitive$1;
  var dP$2 = Object.defineProperty;
  _objectDp.f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
    anObject$4(O);
    P = toPrimitive(P, true);
    anObject$4(Attributes);
    if (IE8_DOM_DEFINE)
      try {
        return dP$2(O, P, Attributes);
      } catch (e2) {
      }
    if ("get" in Attributes || "set" in Attributes)
      throw TypeError("Accessors not supported!");
    if ("value" in Attributes)
      O[P] = Attributes.value;
    return O;
  };
  var _propertyDesc = function(bitmap, value) {
    return {
      enumerable: !(bitmap & 1),
      configurable: !(bitmap & 2),
      writable: !(bitmap & 4),
      value
    };
  };
  var dP$1 = _objectDp;
  var createDesc = _propertyDesc;
  var _hide = _descriptors ? function(object, key2, value) {
    return dP$1.f(object, key2, createDesc(1, value));
  } : function(object, key2, value) {
    object[key2] = value;
    return object;
  };
  var UNSCOPABLES = _wksExports("unscopables");
  var ArrayProto = Array.prototype;
  if (ArrayProto[UNSCOPABLES] == void 0)
    _hide(ArrayProto, UNSCOPABLES, {});
  var _addToUnscopables = function(key2) {
    ArrayProto[UNSCOPABLES][key2] = true;
  };
  var _iterStep = function(done, value) {
    return {
      value,
      done: !!done
    };
  };
  var _iterators = {};
  var toString$2 = {}.toString;
  var _cof = function(it) {
    return toString$2.call(it).slice(8, -1);
  };
  var cof = _cof;
  var _iobject = Object("z").propertyIsEnumerable(0) ? Object : function(it) {
    return cof(it) == "String" ? it.split("") : Object(it);
  };
  var _defined = function(it) {
    if (it == void 0)
      throw TypeError("Can't call method on  " + it);
    return it;
  };
  var IObject = _iobject;
  var defined$1 = _defined;
  var _toIobject = function(it) {
    return IObject(defined$1(it));
  };
  var _redefine = { exports: {} };
  var hasOwnProperty$3 = {}.hasOwnProperty;
  var _has = function(it, key2) {
    return hasOwnProperty$3.call(it, key2);
  };
  var _functionToString = _sharedExports("native-function-to-string", Function.toString);
  var global$3 = _globalExports;
  var hide$3 = _hide;
  var has$4 = _has;
  var SRC = _uid("src");
  var $toString = _functionToString;
  var TO_STRING = "toString";
  var TPL = ("" + $toString).split(TO_STRING);
  _coreExports.inspectSource = function(it) {
    return $toString.call(it);
  };
  (_redefine.exports = function(O, key2, val, safe) {
    var isFunction2 = typeof val == "function";
    if (isFunction2)
      has$4(val, "name") || hide$3(val, "name", key2);
    if (O[key2] === val)
      return;
    if (isFunction2)
      has$4(val, SRC) || hide$3(val, SRC, O[key2] ? "" + O[key2] : TPL.join(String(key2)));
    if (O === global$3) {
      O[key2] = val;
    } else if (!safe) {
      delete O[key2];
      hide$3(O, key2, val);
    } else if (O[key2]) {
      O[key2] = val;
    } else {
      hide$3(O, key2, val);
    }
  })(Function.prototype, TO_STRING, function toString2() {
    return typeof this == "function" && this[SRC] || $toString.call(this);
  });
  var _redefineExports = _redefine.exports;
  var _aFunction = function(it) {
    if (typeof it != "function")
      throw TypeError(it + " is not a function!");
    return it;
  };
  var aFunction$3 = _aFunction;
  var _ctx = function(fn, that, length) {
    aFunction$3(fn);
    if (that === void 0)
      return fn;
    switch (length) {
      case 1:
        return function(a2) {
          return fn.call(that, a2);
        };
      case 2:
        return function(a2, b) {
          return fn.call(that, a2, b);
        };
      case 3:
        return function(a2, b, c2) {
          return fn.call(that, a2, b, c2);
        };
    }
    return function() {
      return fn.apply(that, arguments);
    };
  };
  var global$2 = _globalExports;
  var core$1 = _coreExports;
  var hide$2 = _hide;
  var redefine$2 = _redefineExports;
  var ctx = _ctx;
  var PROTOTYPE$1 = "prototype";
  var $export$4 = function(type, name, source) {
    var IS_FORCED = type & $export$4.F;
    var IS_GLOBAL = type & $export$4.G;
    var IS_STATIC = type & $export$4.S;
    var IS_PROTO = type & $export$4.P;
    var IS_BIND = type & $export$4.B;
    var target = IS_GLOBAL ? global$2 : IS_STATIC ? global$2[name] || (global$2[name] = {}) : (global$2[name] || {})[PROTOTYPE$1];
    var exports = IS_GLOBAL ? core$1 : core$1[name] || (core$1[name] = {});
    var expProto = exports[PROTOTYPE$1] || (exports[PROTOTYPE$1] = {});
    var key2, own, out2, exp;
    if (IS_GLOBAL)
      source = name;
    for (key2 in source) {
      own = !IS_FORCED && target && target[key2] !== void 0;
      out2 = (own ? target : source)[key2];
      exp = IS_BIND && own ? ctx(out2, global$2) : IS_PROTO && typeof out2 == "function" ? ctx(Function.call, out2) : out2;
      if (target)
        redefine$2(target, key2, out2, type & $export$4.U);
      if (exports[key2] != out2)
        hide$2(exports, key2, exp);
      if (IS_PROTO && expProto[key2] != out2)
        expProto[key2] = out2;
    }
  };
  global$2.core = core$1;
  $export$4.F = 1;
  $export$4.G = 2;
  $export$4.S = 4;
  $export$4.P = 8;
  $export$4.B = 16;
  $export$4.W = 32;
  $export$4.U = 64;
  $export$4.R = 128;
  var _export = $export$4;
  var ceil = Math.ceil;
  var floor = Math.floor;
  var _toInteger = function(it) {
    return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
  };
  var toInteger$1 = _toInteger;
  var min$1 = Math.min;
  var _toLength = function(it) {
    return it > 0 ? min$1(toInteger$1(it), 9007199254740991) : 0;
  };
  var toInteger = _toInteger;
  var max = Math.max;
  var min = Math.min;
  var _toAbsoluteIndex = function(index2, length) {
    index2 = toInteger(index2);
    return index2 < 0 ? max(index2 + length, 0) : min(index2, length);
  };
  var toIObject$3 = _toIobject;
  var toLength = _toLength;
  var toAbsoluteIndex = _toAbsoluteIndex;
  var _arrayIncludes = function(IS_INCLUDES) {
    return function($this, el, fromIndex) {
      var O = toIObject$3($this);
      var length = toLength(O.length);
      var index2 = toAbsoluteIndex(fromIndex, length);
      var value;
      if (IS_INCLUDES && el != el)
        while (length > index2) {
          value = O[index2++];
          if (value != value)
            return true;
        }
      else
        for (; length > index2; index2++) {
          if (IS_INCLUDES || index2 in O) {
            if (O[index2] === el)
              return IS_INCLUDES || index2 || 0;
          }
        }
      return !IS_INCLUDES && -1;
    };
  };
  var shared = _sharedExports("keys");
  var uid$2 = _uid;
  var _sharedKey = function(key2) {
    return shared[key2] || (shared[key2] = uid$2(key2));
  };
  var has$3 = _has;
  var toIObject$2 = _toIobject;
  var arrayIndexOf = _arrayIncludes(false);
  var IE_PROTO$2 = _sharedKey("IE_PROTO");
  var _objectKeysInternal = function(object, names) {
    var O = toIObject$2(object);
    var i2 = 0;
    var result = [];
    var key2;
    for (key2 in O) {
      if (key2 != IE_PROTO$2)
        has$3(O, key2) && result.push(key2);
    }
    while (names.length > i2) {
      if (has$3(O, key2 = names[i2++])) {
        ~arrayIndexOf(result, key2) || result.push(key2);
      }
    }
    return result;
  };
  var _enumBugKeys = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",");
  var $keys = _objectKeysInternal;
  var enumBugKeys$1 = _enumBugKeys;
  var _objectKeys = Object.keys || function keys(O) {
    return $keys(O, enumBugKeys$1);
  };
  var dP = _objectDp;
  var anObject$3 = _anObject;
  var getKeys$2 = _objectKeys;
  var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
    anObject$3(O);
    var keys = getKeys$2(Properties);
    var length = keys.length;
    var i2 = 0;
    var P;
    while (length > i2) {
      dP.f(O, P = keys[i2++], Properties[P]);
    }
    return O;
  };
  var _html;
  var hasRequired_html;
  function require_html() {
    if (hasRequired_html)
      return _html;
    hasRequired_html = 1;
    var document2 = _globalExports.document;
    _html = document2 && document2.documentElement;
    return _html;
  }
  var anObject$2 = _anObject;
  var dPs = _objectDps;
  var enumBugKeys = _enumBugKeys;
  var IE_PROTO$1 = _sharedKey("IE_PROTO");
  var Empty = function() {
  };
  var PROTOTYPE = "prototype";
  var createDict = function() {
    var iframe = require_domCreate()("iframe");
    var i2 = enumBugKeys.length;
    var lt = "<";
    var gt = ">";
    var iframeDocument;
    iframe.style.display = "none";
    require_html().appendChild(iframe);
    iframe.src = "javascript:";
    iframeDocument = iframe.contentWindow.document;
    iframeDocument.open();
    iframeDocument.write(lt + "script" + gt + "document.F=Object" + lt + "/script" + gt);
    iframeDocument.close();
    createDict = iframeDocument.F;
    while (i2--) {
      delete createDict[PROTOTYPE][enumBugKeys[i2]];
    }
    return createDict();
  };
  var _objectCreate = Object.create || function create2(O, Properties) {
    var result;
    if (O !== null) {
      Empty[PROTOTYPE] = anObject$2(O);
      result = new Empty();
      Empty[PROTOTYPE] = null;
      result[IE_PROTO$1] = O;
    } else
      result = createDict();
    return Properties === void 0 ? result : dPs(result, Properties);
  };
  var def$1 = _objectDp.f;
  var has$2 = _has;
  var TAG = _wksExports("toStringTag");
  var _setToStringTag = function(it, tag, stat) {
    if (it && !has$2(it = stat ? it : it.prototype, TAG))
      def$1(it, TAG, {
        configurable: true,
        value: tag
      });
  };
  var create = _objectCreate;
  var descriptor = _propertyDesc;
  var setToStringTag$1 = _setToStringTag;
  var IteratorPrototype = {};
  _hide(IteratorPrototype, _wksExports("iterator"), function() {
    return this;
  });
  var _iterCreate = function(Constructor, NAME2, next) {
    Constructor.prototype = create(IteratorPrototype, {
      next: descriptor(1, next)
    });
    setToStringTag$1(Constructor, NAME2 + " Iterator");
  };
  var defined = _defined;
  var _toObject = function(it) {
    return Object(defined(it));
  };
  var has$1 = _has;
  var toObject$1 = _toObject;
  var IE_PROTO = _sharedKey("IE_PROTO");
  var ObjectProto = Object.prototype;
  var _objectGpo = Object.getPrototypeOf || function(O) {
    O = toObject$1(O);
    if (has$1(O, IE_PROTO))
      return O[IE_PROTO];
    if (typeof O.constructor == "function" && O instanceof O.constructor) {
      return O.constructor.prototype;
    }
    return O instanceof Object ? ObjectProto : null;
  };
  var $export$3 = _export;
  var redefine$1 = _redefineExports;
  var hide$1 = _hide;
  var Iterators$2 = _iterators;
  var $iterCreate = _iterCreate;
  var setToStringTag = _setToStringTag;
  var getPrototypeOf = _objectGpo;
  var ITERATOR$1 = _wksExports("iterator");
  var BUGGY = !([].keys && "next" in [].keys());
  var FF_ITERATOR = "@@iterator";
  var KEYS = "keys";
  var VALUES = "values";
  var returnThis = function() {
    return this;
  };
  var _iterDefine = function(Base, NAME2, Constructor, next, DEFAULT, IS_SET, FORCED) {
    $iterCreate(Constructor, NAME2, next);
    var getMethod = function(kind) {
      if (!BUGGY && kind in proto2)
        return proto2[kind];
      switch (kind) {
        case KEYS:
          return function keys() {
            return new Constructor(this, kind);
          };
        case VALUES:
          return function values() {
            return new Constructor(this, kind);
          };
      }
      return function entries2() {
        return new Constructor(this, kind);
      };
    };
    var TAG2 = NAME2 + " Iterator";
    var DEF_VALUES = DEFAULT == VALUES;
    var VALUES_BUG = false;
    var proto2 = Base.prototype;
    var $native = proto2[ITERATOR$1] || proto2[FF_ITERATOR] || DEFAULT && proto2[DEFAULT];
    var $default = $native || getMethod(DEFAULT);
    var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod("entries") : void 0;
    var $anyNative = NAME2 == "Array" ? proto2.entries || $native : $native;
    var methods, key2, IteratorPrototype2;
    if ($anyNative) {
      IteratorPrototype2 = getPrototypeOf($anyNative.call(new Base()));
      if (IteratorPrototype2 !== Object.prototype && IteratorPrototype2.next) {
        setToStringTag(IteratorPrototype2, TAG2, true);
        if (typeof IteratorPrototype2[ITERATOR$1] != "function")
          hide$1(IteratorPrototype2, ITERATOR$1, returnThis);
      }
    }
    if (DEF_VALUES && $native && $native.name !== VALUES) {
      VALUES_BUG = true;
      $default = function values() {
        return $native.call(this);
      };
    }
    if (BUGGY || VALUES_BUG || !proto2[ITERATOR$1]) {
      hide$1(proto2, ITERATOR$1, $default);
    }
    Iterators$2[NAME2] = $default;
    Iterators$2[TAG2] = returnThis;
    if (DEFAULT) {
      methods = {
        values: DEF_VALUES ? $default : getMethod(VALUES),
        keys: IS_SET ? $default : getMethod(KEYS),
        entries: $entries
      };
      if (FORCED)
        for (key2 in methods) {
          if (!(key2 in proto2))
            redefine$1(proto2, key2, methods[key2]);
        }
      else
        $export$3($export$3.P + $export$3.F * (BUGGY || VALUES_BUG), NAME2, methods);
    }
    return methods;
  };
  var addToUnscopables = _addToUnscopables;
  var step = _iterStep;
  var Iterators$1 = _iterators;
  var toIObject$1 = _toIobject;
  var es6_array_iterator = _iterDefine(Array, "Array", function(iterated, kind) {
    this._t = toIObject$1(iterated);
    this._i = 0;
    this._k = kind;
  }, function() {
    var O = this._t;
    var kind = this._k;
    var index2 = this._i++;
    if (!O || index2 >= O.length) {
      this._t = void 0;
      return step(1);
    }
    if (kind == "keys")
      return step(0, index2);
    if (kind == "values")
      return step(0, O[index2]);
    return step(0, [index2, O[index2]]);
  }, "values");
  Iterators$1.Arguments = Iterators$1.Array;
  addToUnscopables("keys");
  addToUnscopables("values");
  addToUnscopables("entries");
  var $iterators = es6_array_iterator;
  var getKeys$1 = _objectKeys;
  var redefine = _redefineExports;
  var global$1 = _globalExports;
  var hide = _hide;
  var Iterators = _iterators;
  var wks = _wksExports;
  var ITERATOR = wks("iterator");
  var TO_STRING_TAG = wks("toStringTag");
  var ArrayValues = Iterators.Array;
  var DOMIterables = {
    CSSRuleList: true,
    // TODO: Not spec compliant, should be false.
    CSSStyleDeclaration: false,
    CSSValueList: false,
    ClientRectList: false,
    DOMRectList: false,
    DOMStringList: false,
    DOMTokenList: true,
    DataTransferItemList: false,
    FileList: false,
    HTMLAllCollection: false,
    HTMLCollection: false,
    HTMLFormElement: false,
    HTMLSelectElement: false,
    MediaList: true,
    // TODO: Not spec compliant, should be false.
    MimeTypeArray: false,
    NamedNodeMap: false,
    NodeList: true,
    PaintRequestList: false,
    Plugin: false,
    PluginArray: false,
    SVGLengthList: false,
    SVGNumberList: false,
    SVGPathSegList: false,
    SVGPointList: false,
    SVGStringList: false,
    SVGTransformList: false,
    SourceBufferList: false,
    StyleSheetList: true,
    // TODO: Not spec compliant, should be false.
    TextTrackCueList: false,
    TextTrackList: false,
    TouchList: false
  };
  for (var collections = getKeys$1(DOMIterables), i = 0; i < collections.length; i++) {
    var NAME$1 = collections[i];
    var explicit = DOMIterables[NAME$1];
    var Collection = global$1[NAME$1];
    var proto = Collection && Collection.prototype;
    var key;
    if (proto) {
      if (!proto[ITERATOR])
        hide(proto, ITERATOR, ArrayValues);
      if (!proto[TO_STRING_TAG])
        hide(proto, TO_STRING_TAG, NAME$1);
      Iterators[NAME$1] = ArrayValues;
      if (explicit) {
        for (key in $iterators) {
          if (!proto[key])
            redefine(proto, key, $iterators[key], true);
        }
      }
    }
  }
  /**
  * @vue/shared v3.4.21
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
  * @license MIT
  **/
  function makeMap$1(str, expectsLowerCase) {
    var set2 = new Set(str.split(","));
    return (val) => set2.has(val);
  }
  var EMPTY_OBJ = {};
  var EMPTY_ARR = [];
  var NOOP = () => {
  };
  var NO = () => false;
  var isOn = (key2) => key2.charCodeAt(0) === 111 && key2.charCodeAt(1) === 110 && // uppercase letter
  (key2.charCodeAt(2) > 122 || key2.charCodeAt(2) < 97);
  var isModelListener = (key2) => key2.startsWith("onUpdate:");
  var extend = Object.assign;
  var remove = (arr, el) => {
    var i2 = arr.indexOf(el);
    if (i2 > -1) {
      arr.splice(i2, 1);
    }
  };
  var hasOwnProperty$2 = Object.prototype.hasOwnProperty;
  var hasOwn$1 = (val, key2) => hasOwnProperty$2.call(val, key2);
  var isArray = Array.isArray;
  var isMap = (val) => toTypeString(val) === "[object Map]";
  var isSet = (val) => toTypeString(val) === "[object Set]";
  var isFunction = (val) => typeof val === "function";
  var isString = (val) => typeof val === "string";
  var isSymbol = (val) => typeof val === "symbol";
  var isObject$2 = (val) => val !== null && typeof val === "object";
  var isPromise = (val) => {
    return (isObject$2(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);
  };
  var objectToString = Object.prototype.toString;
  var toTypeString = (value) => objectToString.call(value);
  var toRawType = (value) => {
    return toTypeString(value).slice(8, -1);
  };
  var isPlainObject = (val) => toTypeString(val) === "[object Object]";
  var isIntegerKey = (key2) => isString(key2) && key2 !== "NaN" && key2[0] !== "-" && "" + parseInt(key2, 10) === key2;
  var isReservedProp = /* @__PURE__ */ makeMap$1(
    // the leading comma is intentional so empty string "" is also included
    ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
  );
  var cacheStringFunction$1 = (fn) => {
    var cache2 = /* @__PURE__ */ Object.create(null);
    return (str) => {
      var hit = cache2[str];
      return hit || (cache2[str] = fn(str));
    };
  };
  var camelizeRE = /-(\w)/g;
  var camelize = cacheStringFunction$1((str) => {
    return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : "");
  });
  var hyphenateRE = /\B([A-Z])/g;
  var hyphenate = cacheStringFunction$1((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
  var capitalize = cacheStringFunction$1((str) => {
    return str.charAt(0).toUpperCase() + str.slice(1);
  });
  var toHandlerKey = cacheStringFunction$1((str) => {
    var s = str ? "on".concat(capitalize(str)) : "";
    return s;
  });
  var hasChanged = (value, oldValue) => !Object.is(value, oldValue);
  var invokeArrayFns = (fns, arg) => {
    for (var i2 = 0; i2 < fns.length; i2++) {
      fns[i2](arg);
    }
  };
  var def = (obj, key2, value) => {
    Object.defineProperty(obj, key2, {
      configurable: true,
      enumerable: false,
      value
    });
  };
  var looseToNumber = (val) => {
    var n = parseFloat(val);
    return isNaN(n) ? val : n;
  };
  var _globalThis;
  var getGlobalThis = () => {
    return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof window !== "undefined" ? window : {});
  };
  function normalizeStyle(value) {
    if (isArray(value)) {
      var res = {};
      for (var i2 = 0; i2 < value.length; i2++) {
        var item = value[i2];
        var normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);
        if (normalized) {
          for (var key2 in normalized) {
            res[key2] = normalized[key2];
          }
        }
      }
      return res;
    } else if (isString(value) || isObject$2(value)) {
      return value;
    }
  }
  var listDelimiterRE = /;(?![^(]*\))/g;
  var propertyDelimiterRE = /:([^]+)/;
  var styleCommentRE = /\/\*[^]*?\*\//g;
  function parseStringStyle(cssText) {
    var ret = {};
    cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
      if (item) {
        var tmp = item.split(propertyDelimiterRE);
        tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
      }
    });
    return ret;
  }
  function stringifyStyle(styles) {
    var ret = "";
    if (!styles || isString(styles)) {
      return ret;
    }
    for (var key2 in styles) {
      var value = styles[key2];
      var normalizedKey = key2.startsWith("--") ? key2 : hyphenate(key2);
      if (isString(value) || typeof value === "number") {
        ret += "".concat(normalizedKey, ":").concat(value, ";");
      }
    }
    return ret;
  }
  function normalizeClass(value) {
    var res = "";
    if (isString(value)) {
      res = value;
    } else if (isArray(value)) {
      for (var i2 = 0; i2 < value.length; i2++) {
        var normalized = normalizeClass(value[i2]);
        if (normalized) {
          res += normalized + " ";
        }
      }
    } else if (isObject$2(value)) {
      for (var name in value) {
        if (value[name]) {
          res += name + " ";
        }
      }
    }
    return res.trim();
  }
  var specialBooleanAttrs = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly";
  var isSpecialBooleanAttr = /* @__PURE__ */ makeMap$1(specialBooleanAttrs);
  function includeBooleanAttr(value) {
    return !!value || value === "";
  }
  var _strictMethod;
  var hasRequired_strictMethod;
  function require_strictMethod() {
    if (hasRequired_strictMethod)
      return _strictMethod;
    hasRequired_strictMethod = 1;
    var fails2 = _fails;
    _strictMethod = function(method, arg) {
      return !!method && fails2(function() {
        arg ? method.call(null, function() {
        }, 1) : method.call(null);
      });
    };
    return _strictMethod;
  }
  var $export$2 = _export;
  var aFunction$2 = _aFunction;
  var toObject = _toObject;
  var fails = _fails;
  var $sort = [].sort;
  var test = [1, 2, 3];
  $export$2($export$2.P + $export$2.F * (fails(function() {
    test.sort(void 0);
  }) || !fails(function() {
    test.sort(null);
  }) || !require_strictMethod()($sort)), "Array", {
    // 22.1.3.25 Array.prototype.sort(comparefn)
    sort: function sort(comparefn) {
      return comparefn === void 0 ? $sort.call(toObject(this)) : $sort.call(toObject(this), aFunction$2(comparefn));
    }
  });
  var LINEFEED = "\n";
  var PRIMARY_COLOR = "#007aff";
  var SCHEME_RE = /^([a-z-]+:)?\/\//i;
  var DATA_RE = /^data:.*,.*/;
  var WXS_PROTOCOL = "wxs://";
  var JSON_PROTOCOL = "json://";
  var WXS_MODULES = "wxsModules";
  var RENDERJS_MODULES = "renderjsModules";
  var ON_PAGE_SCROLL = "onPageScroll";
  var ON_REACH_BOTTOM = "onReachBottom";
  var ON_WXS_INVOKE_CALL_METHOD = "onWxsInvokeCallMethod";
  function cache(fn) {
    var cache2 = /* @__PURE__ */ Object.create(null);
    return (str) => {
      var hit = cache2[str];
      return hit || (cache2[str] = fn(str));
    };
  }
  function cacheStringFunction(fn) {
    return cache(fn);
  }
  function hasLeadingSlash(str) {
    return str.indexOf("/") === 0;
  }
  function addLeadingSlash(str) {
    return hasLeadingSlash(str) ? str : "/" + str;
  }
  function once(fn) {
    var ctx2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
    var res;
    return function() {
      if (fn) {
        for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
          args[_key2] = arguments[_key2];
        }
        res = fn.apply(ctx2, args);
        fn = null;
      }
      return res;
    };
  }
  function getValueByDataPath(obj, path) {
    if (!isString(path)) {
      return;
    }
    path = path.replace(/\[(\d+)\]/g, ".$1");
    var parts = path.split(".");
    var key2 = parts[0];
    if (!obj) {
      obj = {};
    }
    if (parts.length === 1) {
      return obj[key2];
    }
    return getValueByDataPath(obj[key2], parts.slice(1).join("."));
  }
  var lastLogTime = 0;
  function formatLog(module) {
    var now = Date.now();
    var diff = lastLogTime ? now - lastLogTime : 0;
    lastLogTime = now;
    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key3 = 1; _key3 < _len2; _key3++) {
      args[_key3 - 1] = arguments[_key3];
    }
    return "[".concat(now, "][").concat(diff, "ms][").concat(module, "]：").concat(args.map((arg) => JSON.stringify(arg)).join(" "));
  }
  function formatKey(key2) {
    return camelize(key2.substring(5));
  }
  var initCustomDatasetOnce = /* @__PURE__ */ once(() => {
    var prototype = HTMLElement.prototype;
    var setAttribute = prototype.setAttribute;
    prototype.setAttribute = function(key2, value) {
      if (key2.startsWith("data-") && this.tagName.startsWith("UNI-")) {
        var dataset = this.__uniDataset || (this.__uniDataset = {});
        dataset[formatKey(key2)] = value;
      }
      setAttribute.call(this, key2, value);
    };
    var removeAttribute = prototype.removeAttribute;
    prototype.removeAttribute = function(key2) {
      if (this.__uniDataset && key2.startsWith("data-") && this.tagName.startsWith("UNI-")) {
        delete this.__uniDataset[formatKey(key2)];
      }
      removeAttribute.call(this, key2);
    };
  });
  function getCustomDataset(el) {
    return extend({}, el.dataset, el.__uniDataset);
  }
  var unitRE = new RegExp(`"[^"]+"|'[^']+'|url\\([^)]+\\)|(\\d*\\.?\\d+)[r|u]px`, "g");
  function toFixed(number, precision) {
    var multiplier = Math.pow(10, precision + 1);
    var wholeNumber = Math.floor(number * multiplier);
    return Math.round(wholeNumber / 10) * 10 / multiplier;
  }
  var defaultRpx2Unit = {
    unit: "rem",
    unitRatio: 10 / 320,
    unitPrecision: 5
  };
  function createRpx2Unit(unit2, unitRatio2, unitPrecision2) {
    return (val) => val.replace(unitRE, (m, $1) => {
      if (!$1) {
        return m;
      }
      if (unitRatio2 === 1) {
        return "".concat($1).concat(unit2);
      }
      var value = toFixed(parseFloat($1) * unitRatio2, unitPrecision2);
      return value === 0 ? "0" : "".concat(value).concat(unit2);
    });
  }
  function passive(passive2) {
    return {
      passive: passive2
    };
  }
  function normalizeTarget(el) {
    var {
      id: id2,
      offsetTop,
      offsetLeft
    } = el;
    return {
      id: id2,
      dataset: getCustomDataset(el),
      offsetTop,
      offsetLeft
    };
  }
  function addFont(family, source, desc) {
    var fonts = document.fonts;
    if (fonts) {
      var fontFace = new FontFace(family, source, desc);
      return fontFace.load().then(() => {
        fonts.add && fonts.add(fontFace);
      });
    }
    return new Promise((resolve) => {
      var style = document.createElement("style");
      var values = [];
      if (desc) {
        var {
          style: style2,
          weight,
          stretch,
          unicodeRange,
          variant,
          featureSettings
        } = desc;
        style2 && values.push("font-style:".concat(style2));
        weight && values.push("font-weight:".concat(weight));
        stretch && values.push("font-stretch:".concat(stretch));
        unicodeRange && values.push("unicode-range:".concat(unicodeRange));
        variant && values.push("font-variant:".concat(variant));
        featureSettings && values.push("font-feature-settings:".concat(featureSettings));
      }
      style.innerText = '@font-face{font-family:"'.concat(family, '";src:').concat(source, ";").concat(values.join(";"), "}");
      document.head.appendChild(style);
      resolve();
    });
  }
  function scrollTo(scrollTop, duration, isH5) {
    if (isString(scrollTop)) {
      var el = document.querySelector(scrollTop);
      if (el) {
        var {
          top
        } = el.getBoundingClientRect();
        scrollTop = top + window.pageYOffset;
        var pageHeader = document.querySelector("uni-page-head");
        if (pageHeader) {
          scrollTop -= pageHeader.offsetHeight;
        }
      }
    }
    if (scrollTop < 0) {
      scrollTop = 0;
    }
    var documentElement = document.documentElement;
    var {
      clientHeight,
      scrollHeight
    } = documentElement;
    scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);
    if (duration === 0) {
      documentElement.scrollTop = document.body.scrollTop = scrollTop;
      return;
    }
    if (window.scrollY === scrollTop) {
      return;
    }
    var scrollTo2 = (duration2) => {
      if (duration2 <= 0) {
        window.scrollTo(0, scrollTop);
        return;
      }
      var distaince = scrollTop - window.scrollY;
      requestAnimationFrame(function() {
        window.scrollTo(0, window.scrollY + distaince / duration2 * 10);
        scrollTo2(duration2 - 10);
      });
    };
    scrollTo2(duration);
  }
  function plusReady(callback) {
    if (!isFunction(callback)) {
      return;
    }
    if (window.plus) {
      return callback();
    }
    document.addEventListener("plusready", callback);
  }
  function normalizeEventType(type, options) {
    if (options) {
      if (options.capture) {
        type += "Capture";
      }
      if (options.once) {
        type += "Once";
      }
      if (options.passive) {
        type += "Passive";
      }
    }
    return "on".concat(capitalize(camelize(type)));
  }
  var optionsModifierRE$1 = /(?:Once|Passive|Capture)$/;
  function parseEventName(name) {
    var options;
    if (optionsModifierRE$1.test(name)) {
      options = {};
      var m;
      while (m = name.match(optionsModifierRE$1)) {
        name = name.slice(0, name.length - m[0].length);
        options[m[0].toLowerCase()] = true;
      }
    }
    return [hyphenate(name.slice(2)), options];
  }
  var EventModifierFlags = /* @__PURE__ */ (() => {
    return {
      stop: 1,
      prevent: 1 << 1,
      self: 1 << 2
    };
  })();
  var ATTR_CLASS = "class";
  var ATTR_STYLE = "style";
  var ATTR_INNER_HTML = "innerHTML";
  var ATTR_TEXT_CONTENT = "textContent";
  var ATTR_V_SHOW = ".vShow";
  var ATTR_V_OWNER_ID = ".vOwnerId";
  var ATTR_V_RENDERJS = ".vRenderjs";
  var ATTR_CHANGE_PREFIX = "change:";
  var ACTION_TYPE_PAGE_CREATE = 1;
  var ACTION_TYPE_PAGE_CREATED = 2;
  var ACTION_TYPE_CREATE = 3;
  var ACTION_TYPE_INSERT = 4;
  var ACTION_TYPE_REMOVE = 5;
  var ACTION_TYPE_SET_ATTRIBUTE = 6;
  var ACTION_TYPE_REMOVE_ATTRIBUTE = 7;
  var ACTION_TYPE_ADD_EVENT = 8;
  var ACTION_TYPE_REMOVE_EVENT = 9;
  var ACTION_TYPE_SET_TEXT = 10;
  var ACTION_TYPE_ADD_WXS_EVENT = 12;
  var ACTION_TYPE_PAGE_SCROLL = 15;
  var ACTION_TYPE_EVENT = 20;
  function debounce(fn, delay, _ref2) {
    var {
      clearTimeout: clearTimeout2,
      setTimeout: setTimeout2
    } = _ref2;
    var timeout;
    var newFn = function() {
      clearTimeout2(timeout);
      var timerFn = () => fn.apply(this, arguments);
      timeout = setTimeout2(timerFn, delay);
    };
    newFn.cancel = function() {
      clearTimeout2(timeout);
    };
    return newFn;
  }
  var E = function() {
  };
  E.prototype = {
    _id: 1,
    on: function(name, callback, ctx2) {
      var e2 = this.e || (this.e = {});
      (e2[name] || (e2[name] = [])).push({
        fn: callback,
        ctx: ctx2,
        _id: this._id
      });
      return this._id++;
    },
    once: function(name, callback, ctx2) {
      var self2 = this;
      function listener() {
        self2.off(name, listener);
        callback.apply(ctx2, arguments);
      }
      listener._ = callback;
      return this.on(name, listener, ctx2);
    },
    emit: function(name) {
      var data = [].slice.call(arguments, 1);
      var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
      var i2 = 0;
      var len = evtArr.length;
      for (i2; i2 < len; i2++) {
        evtArr[i2].fn.apply(evtArr[i2].ctx, data);
      }
      return this;
    },
    off: function(name, event) {
      var e2 = this.e || (this.e = {});
      var evts = e2[name];
      var liveEvents = [];
      if (evts && event) {
        for (var i2 = evts.length - 1; i2 >= 0; i2--) {
          if (evts[i2].fn === event || evts[i2].fn._ === event || evts[i2]._id === event) {
            evts.splice(i2, 1);
            break;
          }
        }
        liveEvents = evts;
      }
      liveEvents.length ? e2[name] = liveEvents : delete e2[name];
      return this;
    }
  };
  var E$1 = E;
  var isObject$1 = (val) => val !== null && typeof val === "object";
  var defaultDelimiters = ["{", "}"];
  class BaseFormatter {
    constructor() {
      this._caches = /* @__PURE__ */ Object.create(null);
    }
    interpolate(message, values) {
      var delimiters = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultDelimiters;
      if (!values) {
        return [message];
      }
      var tokens = this._caches[message];
      if (!tokens) {
        tokens = parse(message, delimiters);
        this._caches[message] = tokens;
      }
      return compile$1(tokens, values);
    }
  }
  var RE_TOKEN_LIST_VALUE = /^(?:\d)+/;
  var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/;
  function parse(format, _ref) {
    var [startDelimiter, endDelimiter] = _ref;
    var tokens = [];
    var position = 0;
    var text2 = "";
    while (position < format.length) {
      var char = format[position++];
      if (char === startDelimiter) {
        if (text2) {
          tokens.push({
            type: "text",
            value: text2
          });
        }
        text2 = "";
        var sub = "";
        char = format[position++];
        while (char !== void 0 && char !== endDelimiter) {
          sub += char;
          char = format[position++];
        }
        var isClosed = char === endDelimiter;
        var type = RE_TOKEN_LIST_VALUE.test(sub) ? "list" : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? "named" : "unknown";
        tokens.push({
          value: sub,
          type
        });
      } else {
        text2 += char;
      }
    }
    text2 && tokens.push({
      type: "text",
      value: text2
    });
    return tokens;
  }
  function compile$1(tokens, values) {
    var compiled = [];
    var index2 = 0;
    var mode2 = Array.isArray(values) ? "list" : isObject$1(values) ? "named" : "unknown";
    if (mode2 === "unknown") {
      return compiled;
    }
    while (index2 < tokens.length) {
      var token = tokens[index2];
      switch (token.type) {
        case "text":
          compiled.push(token.value);
          break;
        case "list":
          compiled.push(values[parseInt(token.value, 10)]);
          break;
        case "named":
          if (mode2 === "named") {
            compiled.push(values[token.value]);
          }
          break;
      }
      index2++;
    }
    return compiled;
  }
  var LOCALE_ZH_HANS = "zh-Hans";
  var LOCALE_ZH_HANT = "zh-Hant";
  var LOCALE_EN = "en";
  var LOCALE_FR = "fr";
  var LOCALE_ES = "es";
  var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
  var hasOwn = (val, key2) => hasOwnProperty$1.call(val, key2);
  var defaultFormatter = new BaseFormatter();
  function include(str, parts) {
    return !!parts.find((part) => str.indexOf(part) !== -1);
  }
  function startsWith(str, parts) {
    return parts.find((part) => str.indexOf(part) === 0);
  }
  function normalizeLocale(locale, messages2) {
    if (!locale) {
      return;
    }
    locale = locale.trim().replace(/_/g, "-");
    if (messages2 && messages2[locale]) {
      return locale;
    }
    locale = locale.toLowerCase();
    if (locale === "chinese") {
      return LOCALE_ZH_HANS;
    }
    if (locale.indexOf("zh") === 0) {
      if (locale.indexOf("-hans") > -1) {
        return LOCALE_ZH_HANS;
      }
      if (locale.indexOf("-hant") > -1) {
        return LOCALE_ZH_HANT;
      }
      if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) {
        return LOCALE_ZH_HANT;
      }
      return LOCALE_ZH_HANS;
    }
    var locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
    if (messages2 && Object.keys(messages2).length > 0) {
      locales = Object.keys(messages2);
    }
    var lang = startsWith(locale, locales);
    if (lang) {
      return lang;
    }
  }
  class I18n {
    constructor(_ref2) {
      var {
        locale,
        fallbackLocale,
        messages: messages2,
        watcher,
        formater: formater2
      } = _ref2;
      this.locale = LOCALE_EN;
      this.fallbackLocale = LOCALE_EN;
      this.message = {};
      this.messages = {};
      this.watchers = [];
      if (fallbackLocale) {
        this.fallbackLocale = fallbackLocale;
      }
      this.formater = formater2 || defaultFormatter;
      this.messages = messages2 || {};
      this.setLocale(locale || LOCALE_EN);
      if (watcher) {
        this.watchLocale(watcher);
      }
    }
    setLocale(locale) {
      var oldLocale = this.locale;
      this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;
      if (!this.messages[this.locale]) {
        this.messages[this.locale] = {};
      }
      this.message = this.messages[this.locale];
      if (oldLocale !== this.locale) {
        this.watchers.forEach((watcher) => {
          watcher(this.locale, oldLocale);
        });
      }
    }
    getLocale() {
      return this.locale;
    }
    watchLocale(fn) {
      var index2 = this.watchers.push(fn) - 1;
      return () => {
        this.watchers.splice(index2, 1);
      };
    }
    add(locale, message) {
      var override = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
      var curMessages = this.messages[locale];
      if (curMessages) {
        if (override) {
          Object.assign(curMessages, message);
        } else {
          Object.keys(message).forEach((key2) => {
            if (!hasOwn(curMessages, key2)) {
              curMessages[key2] = message[key2];
            }
          });
        }
      } else {
        this.messages[locale] = message;
      }
    }
    f(message, values, delimiters) {
      return this.formater.interpolate(message, values, delimiters).join("");
    }
    t(key2, locale, values) {
      var message = this.message;
      if (typeof locale === "string") {
        locale = normalizeLocale(locale, this.messages);
        locale && (message = this.messages[locale]);
      } else {
        values = locale;
      }
      if (!hasOwn(message, key2)) {
        console.warn("Cannot translate the value of keypath ".concat(key2, ". Use the value of keypath as default."));
        return key2;
      }
      return this.formater.interpolate(message[key2], values).join("");
    }
  }
  function watchAppLocale(appVm, i18n2) {
    if (appVm.$watchLocale) {
      appVm.$watchLocale((newLocale) => {
        i18n2.setLocale(newLocale);
      });
    } else {
      appVm.$watch(() => appVm.$locale, (newLocale) => {
        i18n2.setLocale(newLocale);
      });
    }
  }
  function getDefaultLocale() {
    if (typeof uni !== "undefined" && uni.getLocale) {
      return uni.getLocale();
    }
    if (typeof window !== "undefined" && window.getLocale) {
      return window.getLocale();
    }
    return LOCALE_EN;
  }
  function initVueI18n(locale) {
    var messages2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    var fallbackLocale = arguments.length > 2 ? arguments[2] : void 0;
    var watcher = arguments.length > 3 ? arguments[3] : void 0;
    if (typeof locale !== "string") {
      var options = [messages2, locale];
      locale = options[0];
      messages2 = options[1];
    }
    if (typeof locale !== "string") {
      locale = getDefaultLocale();
    }
    if (typeof fallbackLocale !== "string") {
      fallbackLocale = typeof __uniConfig !== "undefined" && __uniConfig.fallbackLocale || LOCALE_EN;
    }
    var i18n2 = new I18n({
      locale,
      fallbackLocale,
      messages: messages2,
      watcher
    });
    var t2 = (key2, values) => {
      if (typeof getApp !== "function") {
        t2 = function(key22, values2) {
          return i18n2.t(key22, values2);
        };
      } else {
        var isWatchedAppLocale = false;
        t2 = function(key22, values2) {
          var appVm = getApp().$vm;
          if (appVm) {
            appVm.$locale;
            if (!isWatchedAppLocale) {
              isWatchedAppLocale = true;
              watchAppLocale(appVm, i18n2);
            }
          }
          return i18n2.t(key22, values2);
        };
      }
      return t2(key2, values);
    };
    return {
      i18n: i18n2,
      f(message, values, delimiters) {
        return i18n2.f(message, values, delimiters);
      },
      t(key2, values) {
        return t2(key2, values);
      },
      add(locale2, message) {
        var override = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
        return i18n2.add(locale2, message, override);
      },
      watch(fn) {
        return i18n2.watchLocale(fn);
      },
      getLocale() {
        return i18n2.getLocale();
      },
      setLocale(newLocale) {
        return i18n2.setLocale(newLocale);
      }
    };
  }
  var isEnableLocale = /* @__PURE__ */ once(() => typeof __uniConfig !== "undefined" && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length);
  var i18n;
  function useI18n() {
    if (!i18n) {
      var locale;
      {
        if (typeof getApp === "function") {
          locale = weex.requireModule("plus").getLanguage();
        } else {
          locale = plus.webview.currentWebview().getStyle().locale;
        }
      }
      i18n = initVueI18n(locale);
      if (isEnableLocale()) {
        var localeKeys = Object.keys(__uniConfig.locales || {});
        if (localeKeys.length) {
          localeKeys.forEach((locale2) => i18n.add(locale2, __uniConfig.locales[locale2]));
        }
        i18n.setLocale(locale);
      }
    }
    return i18n;
  }
  function normalizeMessages(module, keys, values) {
    return keys.reduce((res, name, index2) => {
      res[module + name] = values[index2];
      return res;
    }, {});
  }
  var initI18nVideoMsgsOnce = /* @__PURE__ */ once(() => {
    var name = "uni.video.";
    var keys = ["danmu", "volume"];
    {
      useI18n().add(LOCALE_EN, normalizeMessages(name, keys, ["Danmu", "Volume"]), false);
    }
    {
      useI18n().add(LOCALE_ES, normalizeMessages(name, keys, ["Danmu", "Volumen"]), false);
    }
    {
      useI18n().add(LOCALE_FR, normalizeMessages(name, keys, ["Danmu", "Le Volume"]), false);
    }
    {
      useI18n().add(LOCALE_ZH_HANS, normalizeMessages(name, keys, ["弹幕", "音量"]), false);
    }
    {
      useI18n().add(LOCALE_ZH_HANT, normalizeMessages(name, keys, ["彈幕", "音量"]), false);
    }
  });
  var initI18nChooseLocationMsgsOnce = /* @__PURE__ */ once(() => {
    var name = "uni.chooseLocation.";
    var keys = ["search", "cancel"];
    {
      useI18n().add(LOCALE_EN, normalizeMessages(name, keys, ["Find Place", "Cancel"]), false);
    }
    {
      useI18n().add(LOCALE_ES, normalizeMessages(name, keys, ["Encontrar", "Cancelar"]), false);
    }
    {
      useI18n().add(LOCALE_FR, normalizeMessages(name, keys, ["Trouve", "Annuler"]), false);
    }
    {
      useI18n().add(LOCALE_ZH_HANS, normalizeMessages(name, keys, ["搜索地点", "取消"]), false);
    }
    {
      useI18n().add(LOCALE_ZH_HANT, normalizeMessages(name, keys, ["搜索地點", "取消"]), false);
    }
  });
  function initBridge(subscribeNamespace) {
    var emitter = new E$1();
    return {
      on(event, callback) {
        return emitter.on(event, callback);
      },
      once(event, callback) {
        return emitter.once(event, callback);
      },
      off(event, callback) {
        return emitter.off(event, callback);
      },
      emit(event) {
        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
          args[_key - 1] = arguments[_key];
        }
        return emitter.emit(event, ...args);
      },
      subscribe(event, callback) {
        var once2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
        emitter[once2 ? "once" : "on"]("".concat(subscribeNamespace, ".").concat(event), callback);
      },
      unsubscribe(event, callback) {
        emitter.off("".concat(subscribeNamespace, ".").concat(event), callback);
      },
      subscribeHandler(event, args, pageId) {
        emitter.emit("".concat(subscribeNamespace, ".").concat(event), args, pageId);
      }
    };
  }
  var INVOKE_VIEW_API = "invokeViewApi";
  var INVOKE_SERVICE_API = "invokeServiceApi";
  var invokeServiceMethodId = 1;
  var invokeServiceMethod = (name, args, callback) => {
    var {
      subscribe,
      publishHandler: publishHandler2
    } = UniViewJSBridge;
    var id2 = callback ? invokeServiceMethodId++ : 0;
    callback && subscribe(INVOKE_SERVICE_API + "." + id2, callback, true);
    publishHandler2(INVOKE_SERVICE_API, {
      id: id2,
      name,
      args
    });
  };
  var viewMethods = /* @__PURE__ */ Object.create(null);
  function normalizeViewMethodName(pageId, name) {
    return pageId + "." + name;
  }
  function subscribeViewMethod(pageId, wrapper2) {
    UniViewJSBridge.subscribe(normalizeViewMethodName(pageId, INVOKE_VIEW_API), wrapper2 ? wrapper2(onInvokeViewMethod) : onInvokeViewMethod);
  }
  function registerViewMethod(pageId, name, fn) {
    name = normalizeViewMethodName(pageId, name);
    if (!viewMethods[name]) {
      viewMethods[name] = fn;
    }
  }
  function unregisterViewMethod(pageId, name) {
    name = normalizeViewMethodName(pageId, name);
    delete viewMethods[name];
  }
  function onInvokeViewMethod(_ref, pageId) {
    var {
      id: id2,
      name,
      args
    } = _ref;
    name = normalizeViewMethodName(pageId, name);
    var publish = (res) => {
      id2 && UniViewJSBridge.publishHandler(INVOKE_VIEW_API + "." + id2, res);
    };
    var handler = viewMethods[name];
    if (handler) {
      handler(args, publish);
    } else {
      publish({});
    }
  }
  var ViewJSBridge = /* @__PURE__ */ extend(/* @__PURE__ */ initBridge("service"), {
    invokeServiceMethod
  });
  var LONGPRESS_TIMEOUT = 350;
  var LONGPRESS_THRESHOLD = 10;
  var passiveOptions$2 = /* @__PURE__ */ passive(true);
  var longPressTimer;
  function clearLongPressTimer() {
    if (longPressTimer) {
      clearTimeout(longPressTimer);
      longPressTimer = null;
    }
  }
  var startPageX = 0;
  var startPageY = 0;
  function touchstart(evt) {
    clearLongPressTimer();
    if (evt.touches.length !== 1) {
      return;
    }
    var {
      pageX,
      pageY
    } = evt.touches[0];
    startPageX = pageX;
    startPageY = pageY;
    longPressTimer = setTimeout(function() {
      var customEvent = new CustomEvent("longpress", {
        bubbles: true,
        cancelable: true,
        // @ts-expect-error
        target: evt.target,
        currentTarget: evt.currentTarget
      });
      customEvent.touches = evt.touches;
      customEvent.changedTouches = evt.changedTouches;
      evt.target.dispatchEvent(customEvent);
    }, LONGPRESS_TIMEOUT);
  }
  function touchmove(evt) {
    if (!longPressTimer) {
      return;
    }
    if (evt.touches.length !== 1) {
      return clearLongPressTimer();
    }
    var {
      pageX,
      pageY
    } = evt.touches[0];
    if (Math.abs(pageX - startPageX) > LONGPRESS_THRESHOLD || Math.abs(pageY - startPageY) > LONGPRESS_THRESHOLD) {
      return clearLongPressTimer();
    }
  }
  function initLongPress() {
    window.addEventListener("touchstart", touchstart, passiveOptions$2);
    window.addEventListener("touchmove", touchmove, passiveOptions$2);
    window.addEventListener("touchend", clearLongPressTimer, passiveOptions$2);
    window.addEventListener("touchcancel", clearLongPressTimer, passiveOptions$2);
  }
  function checkValue$1(value, defaultValue) {
    var newValue = Number(value);
    return isNaN(newValue) ? defaultValue : newValue;
  }
  function getWindowWidth() {
    var screenFix = /^Apple/.test(navigator.vendor) && typeof window.orientation === "number";
    var landscape = screenFix && Math.abs(window.orientation) === 90;
    var screenWidth = screenFix ? Math[landscape ? "max" : "min"](screen.width, screen.height) : screen.width;
    var windowWidth = Math.min(window.innerWidth, document.documentElement.clientWidth, screenWidth) || screenWidth;
    return windowWidth;
  }
  function useRem() {
    var config = __uniConfig.globalStyle || {};
    var maxWidth2 = checkValue$1(config.rpxCalcMaxDeviceWidth, 960);
    var baseWidth2 = checkValue$1(config.rpxCalcBaseDeviceWidth, 375);
    function updateRem() {
      var width = getWindowWidth();
      width = width <= maxWidth2 ? width : baseWidth2;
      document.documentElement.style.fontSize = width / 23.4375 + "px";
    }
    updateRem();
    document.addEventListener("DOMContentLoaded", updateRem);
    window.addEventListener("load", updateRem);
    window.addEventListener("resize", updateRem);
  }
  function initView() {
    useRem();
    initCustomDatasetOnce();
    {
      initLongPress();
    }
  }
  var activeEffectScope;
  class EffectScope {
    constructor() {
      var detached = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      this.detached = detached;
      this._active = true;
      this.effects = [];
      this.cleanups = [];
      this.parent = activeEffectScope;
      if (!detached && activeEffectScope) {
        this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
      }
    }
    get active() {
      return this._active;
    }
    run(fn) {
      if (this._active) {
        var currentEffectScope = activeEffectScope;
        try {
          activeEffectScope = this;
          return fn();
        } finally {
          activeEffectScope = currentEffectScope;
        }
      }
    }
    /**
     * This should only be called on non-detached scopes
     * @internal
     */
    on() {
      activeEffectScope = this;
    }
    /**
     * This should only be called on non-detached scopes
     * @internal
     */
    off() {
      activeEffectScope = this.parent;
    }
    stop(fromParent) {
      if (this._active) {
        var i2, l;
        for (i2 = 0, l = this.effects.length; i2 < l; i2++) {
          this.effects[i2].stop();
        }
        for (i2 = 0, l = this.cleanups.length; i2 < l; i2++) {
          this.cleanups[i2]();
        }
        if (this.scopes) {
          for (i2 = 0, l = this.scopes.length; i2 < l; i2++) {
            this.scopes[i2].stop(true);
          }
        }
        if (!this.detached && this.parent && !fromParent) {
          var last = this.parent.scopes.pop();
          if (last && last !== this) {
            this.parent.scopes[this.index] = last;
            last.index = this.index;
          }
        }
        this.parent = void 0;
        this._active = false;
      }
    }
  }
  function recordEffectScope(effect2) {
    var scope = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : activeEffectScope;
    if (scope && scope.active) {
      scope.effects.push(effect2);
    }
  }
  function getCurrentScope() {
    return activeEffectScope;
  }
  var activeEffect;
  class ReactiveEffect {
    constructor(fn, trigger2, scheduler, scope) {
      this.fn = fn;
      this.trigger = trigger2;
      this.scheduler = scheduler;
      this.active = true;
      this.deps = [];
      this._dirtyLevel = 4;
      this._trackId = 0;
      this._runnings = 0;
      this._shouldSchedule = false;
      this._depsLength = 0;
      recordEffectScope(this, scope);
    }
    get dirty() {
      if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
        this._dirtyLevel = 1;
        pauseTracking();
        for (var i2 = 0; i2 < this._depsLength; i2++) {
          var dep = this.deps[i2];
          if (dep.computed) {
            triggerComputed(dep.computed);
            if (this._dirtyLevel >= 4) {
              break;
            }
          }
        }
        if (this._dirtyLevel === 1) {
          this._dirtyLevel = 0;
        }
        resetTracking();
      }
      return this._dirtyLevel >= 4;
    }
    set dirty(v2) {
      this._dirtyLevel = v2 ? 4 : 0;
    }
    run() {
      this._dirtyLevel = 0;
      if (!this.active) {
        return this.fn();
      }
      var lastShouldTrack = shouldTrack;
      var lastEffect = activeEffect;
      try {
        shouldTrack = true;
        activeEffect = this;
        this._runnings++;
        preCleanupEffect(this);
        return this.fn();
      } finally {
        postCleanupEffect(this);
        this._runnings--;
        activeEffect = lastEffect;
        shouldTrack = lastShouldTrack;
      }
    }
    stop() {
      var _a;
      if (this.active) {
        preCleanupEffect(this);
        postCleanupEffect(this);
        (_a = this.onStop) == null ? void 0 : _a.call(this);
        this.active = false;
      }
    }
  }
  function triggerComputed(computed2) {
    return computed2.value;
  }
  function preCleanupEffect(effect2) {
    effect2._trackId++;
    effect2._depsLength = 0;
  }
  function postCleanupEffect(effect2) {
    if (effect2.deps.length > effect2._depsLength) {
      for (var i2 = effect2._depsLength; i2 < effect2.deps.length; i2++) {
        cleanupDepEffect(effect2.deps[i2], effect2);
      }
      effect2.deps.length = effect2._depsLength;
    }
  }
  function cleanupDepEffect(dep, effect2) {
    var trackId = dep.get(effect2);
    if (trackId !== void 0 && effect2._trackId !== trackId) {
      dep.delete(effect2);
      if (dep.size === 0) {
        dep.cleanup();
      }
    }
  }
  var shouldTrack = true;
  var pauseScheduleStack = 0;
  var trackStack = [];
  function pauseTracking() {
    trackStack.push(shouldTrack);
    shouldTrack = false;
  }
  function resetTracking() {
    var last = trackStack.pop();
    shouldTrack = last === void 0 ? true : last;
  }
  function pauseScheduling() {
    pauseScheduleStack++;
  }
  function resetScheduling() {
    pauseScheduleStack--;
    while (!pauseScheduleStack && queueEffectSchedulers.length) {
      queueEffectSchedulers.shift()();
    }
  }
  function trackEffect(effect2, dep, debuggerEventExtraInfo) {
    if (dep.get(effect2) !== effect2._trackId) {
      dep.set(effect2, effect2._trackId);
      var oldDep = effect2.deps[effect2._depsLength];
      if (oldDep !== dep) {
        if (oldDep) {
          cleanupDepEffect(oldDep, effect2);
        }
        effect2.deps[effect2._depsLength++] = dep;
      } else {
        effect2._depsLength++;
      }
    }
  }
  var queueEffectSchedulers = [];
  function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
    pauseScheduling();
    for (var effect2 of dep.keys()) {
      var tracking = void 0;
      if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
        effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
        effect2._dirtyLevel = dirtyLevel;
      }
      if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
        effect2.trigger();
        if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
          effect2._shouldSchedule = false;
          if (effect2.scheduler) {
            queueEffectSchedulers.push(effect2.scheduler);
          }
        }
      }
    }
    resetScheduling();
  }
  var createDep = (cleanup, computed2) => {
    var dep = /* @__PURE__ */ new Map();
    dep.cleanup = cleanup;
    dep.computed = computed2;
    return dep;
  };
  var targetMap = /* @__PURE__ */ new WeakMap();
  var ITERATE_KEY = Symbol("");
  var MAP_KEY_ITERATE_KEY = Symbol("");
  function track(target, type, key2) {
    if (shouldTrack && activeEffect) {
      var depsMap = targetMap.get(target);
      if (!depsMap) {
        targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
      }
      var dep = depsMap.get(key2);
      if (!dep) {
        depsMap.set(key2, dep = createDep(() => depsMap.delete(key2)));
      }
      trackEffect(activeEffect, dep);
    }
  }
  function trigger(target, type, key2, newValue, oldValue, oldTarget) {
    var depsMap = targetMap.get(target);
    if (!depsMap) {
      return;
    }
    var deps = [];
    if (type === "clear") {
      deps = [...depsMap.values()];
    } else if (key2 === "length" && isArray(target)) {
      var newLength = Number(newValue);
      depsMap.forEach((dep2, key22) => {
        if (key22 === "length" || !isSymbol(key22) && key22 >= newLength) {
          deps.push(dep2);
        }
      });
    } else {
      if (key2 !== void 0) {
        deps.push(depsMap.get(key2));
      }
      switch (type) {
        case "add":
          if (!isArray(target)) {
            deps.push(depsMap.get(ITERATE_KEY));
            if (isMap(target)) {
              deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
            }
          } else if (isIntegerKey(key2)) {
            deps.push(depsMap.get("length"));
          }
          break;
        case "delete":
          if (!isArray(target)) {
            deps.push(depsMap.get(ITERATE_KEY));
            if (isMap(target)) {
              deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
            }
          }
          break;
        case "set":
          if (isMap(target)) {
            deps.push(depsMap.get(ITERATE_KEY));
          }
          break;
      }
    }
    pauseScheduling();
    for (var dep of deps) {
      if (dep) {
        triggerEffects(dep, 4);
      }
    }
    resetScheduling();
  }
  var isNonTrackableKeys = /* @__PURE__ */ makeMap$1("__proto__,__v_isRef,__isVue");
  var builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key2) => key2 !== "arguments" && key2 !== "caller").map((key2) => Symbol[key2]).filter(isSymbol));
  var arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
  function createArrayInstrumentations() {
    var instrumentations = {};
    ["includes", "indexOf", "lastIndexOf"].forEach((key2) => {
      instrumentations[key2] = function() {
        var arr = toRaw(this);
        for (var i2 = 0, l = this.length; i2 < l; i2++) {
          track(arr, "get", i2 + "");
        }
        for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
          args[_key3] = arguments[_key3];
        }
        var res = arr[key2](...args);
        if (res === -1 || res === false) {
          return arr[key2](...args.map(toRaw));
        } else {
          return res;
        }
      };
    });
    ["push", "pop", "shift", "unshift", "splice"].forEach((key2) => {
      instrumentations[key2] = function() {
        pauseTracking();
        pauseScheduling();
        for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {
          args[_key4] = arguments[_key4];
        }
        var res = toRaw(this)[key2].apply(this, args);
        resetScheduling();
        resetTracking();
        return res;
      };
    });
    return instrumentations;
  }
  function hasOwnProperty(key2) {
    var obj = toRaw(this);
    track(obj, "has", key2);
    return obj.hasOwnProperty(key2);
  }
  class BaseReactiveHandler {
    constructor() {
      var _isReadonly = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      var _isShallow = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
      this._isReadonly = _isReadonly;
      this._isShallow = _isShallow;
    }
    get(target, key2, receiver) {
      var isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;
      if (key2 === "__v_isReactive") {
        return !isReadonly2;
      } else if (key2 === "__v_isReadonly") {
        return isReadonly2;
      } else if (key2 === "__v_isShallow") {
        return isShallow2;
      } else if (key2 === "__v_raw") {
        if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype
        // this means the reciever is a user proxy of the reactive proxy
        Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {
          return target;
        }
        return;
      }
      var targetIsArray = isArray(target);
      if (!isReadonly2) {
        if (targetIsArray && hasOwn$1(arrayInstrumentations, key2)) {
          return Reflect.get(arrayInstrumentations, key2, receiver);
        }
        if (key2 === "hasOwnProperty") {
          return hasOwnProperty;
        }
      }
      var res = Reflect.get(target, key2, receiver);
      if (isSymbol(key2) ? builtInSymbols.has(key2) : isNonTrackableKeys(key2)) {
        return res;
      }
      if (!isReadonly2) {
        track(target, "get", key2);
      }
      if (isShallow2) {
        return res;
      }
      if (isRef(res)) {
        return targetIsArray && isIntegerKey(key2) ? res : res.value;
      }
      if (isObject$2(res)) {
        return isReadonly2 ? readonly(res) : reactive(res);
      }
      return res;
    }
  }
  class MutableReactiveHandler extends BaseReactiveHandler {
    constructor() {
      var isShallow2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      super(false, isShallow2);
    }
    set(target, key2, value, receiver) {
      var oldValue = target[key2];
      if (!this._isShallow) {
        var isOldValueReadonly = isReadonly(oldValue);
        if (!isShallow(value) && !isReadonly(value)) {
          oldValue = toRaw(oldValue);
          value = toRaw(value);
        }
        if (!isArray(target) && isRef(oldValue) && !isRef(value)) {
          if (isOldValueReadonly) {
            return false;
          } else {
            oldValue.value = value;
            return true;
          }
        }
      }
      var hadKey = isArray(target) && isIntegerKey(key2) ? Number(key2) < target.length : hasOwn$1(target, key2);
      var result = Reflect.set(target, key2, value, receiver);
      if (target === toRaw(receiver)) {
        if (!hadKey) {
          trigger(target, "add", key2, value);
        } else if (hasChanged(value, oldValue)) {
          trigger(target, "set", key2, value);
        }
      }
      return result;
    }
    deleteProperty(target, key2) {
      var hadKey = hasOwn$1(target, key2);
      target[key2];
      var result = Reflect.deleteProperty(target, key2);
      if (result && hadKey) {
        trigger(target, "delete", key2, void 0);
      }
      return result;
    }
    has(target, key2) {
      var result = Reflect.has(target, key2);
      if (!isSymbol(key2) || !builtInSymbols.has(key2)) {
        track(target, "has", key2);
      }
      return result;
    }
    ownKeys(target) {
      track(target, "iterate", isArray(target) ? "length" : ITERATE_KEY);
      return Reflect.ownKeys(target);
    }
  }
  class ReadonlyReactiveHandler extends BaseReactiveHandler {
    constructor() {
      var isShallow2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      super(true, isShallow2);
    }
    set(target, key2) {
      return true;
    }
    deleteProperty(target, key2) {
      return true;
    }
  }
  var mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
  var readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
  var shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
  var toShallow = (value) => value;
  var getProto = (v2) => Reflect.getPrototypeOf(v2);
  function get(target, key2) {
    var isReadonly2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var isShallow2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
    target = target["__v_raw"];
    var rawTarget = toRaw(target);
    var rawKey = toRaw(key2);
    if (!isReadonly2) {
      if (hasChanged(key2, rawKey)) {
        track(rawTarget, "get", key2);
      }
      track(rawTarget, "get", rawKey);
    }
    var {
      has: has2
    } = getProto(rawTarget);
    var wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
    if (has2.call(rawTarget, key2)) {
      return wrap(target.get(key2));
    } else if (has2.call(rawTarget, rawKey)) {
      return wrap(target.get(rawKey));
    } else if (target !== rawTarget) {
      target.get(key2);
    }
  }
  function has(key2) {
    var isReadonly2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
    var target = this["__v_raw"];
    var rawTarget = toRaw(target);
    var rawKey = toRaw(key2);
    if (!isReadonly2) {
      if (hasChanged(key2, rawKey)) {
        track(rawTarget, "has", key2);
      }
      track(rawTarget, "has", rawKey);
    }
    return key2 === rawKey ? target.has(key2) : target.has(key2) || target.has(rawKey);
  }
  function size(target) {
    var isReadonly2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
    target = target["__v_raw"];
    !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
    return Reflect.get(target, "size", target);
  }
  function add(value) {
    value = toRaw(value);
    var target = toRaw(this);
    var proto2 = getProto(target);
    var hadKey = proto2.has.call(target, value);
    if (!hadKey) {
      target.add(value);
      trigger(target, "add", value, value);
    }
    return this;
  }
  function set(key2, value) {
    value = toRaw(value);
    var target = toRaw(this);
    var {
      has: has2,
      get: get2
    } = getProto(target);
    var hadKey = has2.call(target, key2);
    if (!hadKey) {
      key2 = toRaw(key2);
      hadKey = has2.call(target, key2);
    }
    var oldValue = get2.call(target, key2);
    target.set(key2, value);
    if (!hadKey) {
      trigger(target, "add", key2, value);
    } else if (hasChanged(value, oldValue)) {
      trigger(target, "set", key2, value);
    }
    return this;
  }
  function deleteEntry(key2) {
    var target = toRaw(this);
    var {
      has: has2,
      get: get2
    } = getProto(target);
    var hadKey = has2.call(target, key2);
    if (!hadKey) {
      key2 = toRaw(key2);
      hadKey = has2.call(target, key2);
    }
    get2 ? get2.call(target, key2) : void 0;
    var result = target.delete(key2);
    if (hadKey) {
      trigger(target, "delete", key2, void 0);
    }
    return result;
  }
  function clear() {
    var target = toRaw(this);
    var hadItems = target.size !== 0;
    var result = target.clear();
    if (hadItems) {
      trigger(target, "clear", void 0, void 0);
    }
    return result;
  }
  function createForEach(isReadonly2, isShallow2) {
    return function forEach(callback, thisArg) {
      var observed = this;
      var target = observed["__v_raw"];
      var rawTarget = toRaw(target);
      var wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
      !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
      return target.forEach((value, key2) => {
        return callback.call(thisArg, wrap(value), wrap(key2), observed);
      });
    };
  }
  function createIterableMethod(method, isReadonly2, isShallow2) {
    return function() {
      var target = this["__v_raw"];
      var rawTarget = toRaw(target);
      var targetIsMap = isMap(rawTarget);
      var isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
      var isKeyOnly = method === "keys" && targetIsMap;
      var innerIterator = target[method](...arguments);
      var wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
      !isReadonly2 && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
      return {
        // iterator protocol
        next() {
          var {
            value,
            done
          } = innerIterator.next();
          return done ? {
            value,
            done
          } : {
            value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
            done
          };
        },
        // iterable protocol
        [Symbol.iterator]() {
          return this;
        }
      };
    };
  }
  function createReadonlyMethod(type) {
    return function() {
      return type === "delete" ? false : type === "clear" ? void 0 : this;
    };
  }
  function createInstrumentations() {
    var mutableInstrumentations2 = {
      get(key2) {
        return get(this, key2);
      },
      get size() {
        return size(this);
      },
      has,
      add,
      set,
      delete: deleteEntry,
      clear,
      forEach: createForEach(false, false)
    };
    var shallowInstrumentations2 = {
      get(key2) {
        return get(this, key2, false, true);
      },
      get size() {
        return size(this);
      },
      has,
      add,
      set,
      delete: deleteEntry,
      clear,
      forEach: createForEach(false, true)
    };
    var readonlyInstrumentations2 = {
      get(key2) {
        return get(this, key2, true);
      },
      get size() {
        return size(this, true);
      },
      has(key2) {
        return has.call(this, key2, true);
      },
      add: createReadonlyMethod("add"),
      set: createReadonlyMethod("set"),
      delete: createReadonlyMethod("delete"),
      clear: createReadonlyMethod("clear"),
      forEach: createForEach(true, false)
    };
    var shallowReadonlyInstrumentations2 = {
      get(key2) {
        return get(this, key2, true, true);
      },
      get size() {
        return size(this, true);
      },
      has(key2) {
        return has.call(this, key2, true);
      },
      add: createReadonlyMethod("add"),
      set: createReadonlyMethod("set"),
      delete: createReadonlyMethod("delete"),
      clear: createReadonlyMethod("clear"),
      forEach: createForEach(true, true)
    };
    var iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
    iteratorMethods.forEach((method) => {
      mutableInstrumentations2[method] = createIterableMethod(method, false, false);
      readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
      shallowInstrumentations2[method] = createIterableMethod(method, false, true);
      shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);
    });
    return [mutableInstrumentations2, readonlyInstrumentations2, shallowInstrumentations2, shallowReadonlyInstrumentations2];
  }
  var [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();
  function createInstrumentationGetter(isReadonly2, shallow) {
    var instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
    return (target, key2, receiver) => {
      if (key2 === "__v_isReactive") {
        return !isReadonly2;
      } else if (key2 === "__v_isReadonly") {
        return isReadonly2;
      } else if (key2 === "__v_raw") {
        return target;
      }
      return Reflect.get(hasOwn$1(instrumentations, key2) && key2 in target ? instrumentations : target, key2, receiver);
    };
  }
  var mutableCollectionHandlers = {
    get: /* @__PURE__ */ createInstrumentationGetter(false, false)
  };
  var shallowCollectionHandlers = {
    get: /* @__PURE__ */ createInstrumentationGetter(false, true)
  };
  var readonlyCollectionHandlers = {
    get: /* @__PURE__ */ createInstrumentationGetter(true, false)
  };
  var reactiveMap = /* @__PURE__ */ new WeakMap();
  var shallowReactiveMap = /* @__PURE__ */ new WeakMap();
  var readonlyMap = /* @__PURE__ */ new WeakMap();
  var shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
  function targetTypeMap(rawType) {
    switch (rawType) {
      case "Object":
      case "Array":
        return 1;
      case "Map":
      case "Set":
      case "WeakMap":
      case "WeakSet":
        return 2;
      default:
        return 0;
    }
  }
  function getTargetType(value) {
    return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
  }
  function reactive(target) {
    if (isReadonly(target)) {
      return target;
    }
    return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
  }
  function shallowReactive(target) {
    return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
  }
  function readonly(target) {
    return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
  }
  function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
    if (!isObject$2(target)) {
      return target;
    }
    if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) {
      return target;
    }
    var existingProxy = proxyMap.get(target);
    if (existingProxy) {
      return existingProxy;
    }
    var targetType = getTargetType(target);
    if (targetType === 0) {
      return target;
    }
    var proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
    proxyMap.set(target, proxy);
    return proxy;
  }
  function isReactive(value) {
    if (isReadonly(value)) {
      return isReactive(value["__v_raw"]);
    }
    return !!(value && value["__v_isReactive"]);
  }
  function isReadonly(value) {
    return !!(value && value["__v_isReadonly"]);
  }
  function isShallow(value) {
    return !!(value && value["__v_isShallow"]);
  }
  function isProxy(value) {
    return isReactive(value) || isReadonly(value);
  }
  function toRaw(observed) {
    var raw = observed && observed["__v_raw"];
    return raw ? toRaw(raw) : observed;
  }
  function markRaw(value) {
    if (Object.isExtensible(value)) {
      def(value, "__v_skip", true);
    }
    return value;
  }
  var toReactive = (value) => isObject$2(value) ? reactive(value) : value;
  var toReadonly = (value) => isObject$2(value) ? readonly(value) : value;
  class ComputedRefImpl {
    constructor(getter, _setter, isReadonly2, isSSR) {
      this.getter = getter;
      this._setter = _setter;
      this.dep = void 0;
      this.__v_isRef = true;
      this["__v_isReadonly"] = false;
      this.effect = new ReactiveEffect(() => getter(this._value), () => triggerRefValue(this, this.effect._dirtyLevel === 2 ? 2 : 3));
      this.effect.computed = this;
      this.effect.active = this._cacheable = !isSSR;
      this["__v_isReadonly"] = isReadonly2;
    }
    get value() {
      var self2 = toRaw(this);
      if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) {
        triggerRefValue(self2, 4);
      }
      trackRefValue(self2);
      if (self2.effect._dirtyLevel >= 2) {
        triggerRefValue(self2, 2);
      }
      return self2._value;
    }
    set value(newValue) {
      this._setter(newValue);
    }
    // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x
    get _dirty() {
      return this.effect.dirty;
    }
    set _dirty(v2) {
      this.effect.dirty = v2;
    }
    // #endregion
  }
  function computed$1(getterOrOptions, debugOptions) {
    var isSSR = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var getter;
    var setter;
    var onlyGetter = isFunction(getterOrOptions);
    if (onlyGetter) {
      getter = getterOrOptions;
      setter = NOOP;
    } else {
      getter = getterOrOptions.get;
      setter = getterOrOptions.set;
    }
    var cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
    return cRef;
  }
  function trackRefValue(ref2) {
    var _a;
    if (shouldTrack && activeEffect) {
      ref2 = toRaw(ref2);
      trackEffect(activeEffect, (_a = ref2.dep) != null ? _a : ref2.dep = createDep(() => ref2.dep = void 0, ref2 instanceof ComputedRefImpl ? ref2 : void 0));
    }
  }
  function triggerRefValue(ref2) {
    var dirtyLevel = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 4;
    ref2 = toRaw(ref2);
    var dep = ref2.dep;
    if (dep) {
      triggerEffects(dep, dirtyLevel);
    }
  }
  function isRef(r) {
    return !!(r && r.__v_isRef === true);
  }
  function ref(value) {
    return createRef(value, false);
  }
  function shallowRef(value) {
    return createRef(value, true);
  }
  function createRef(rawValue, shallow) {
    if (isRef(rawValue)) {
      return rawValue;
    }
    return new RefImpl(rawValue, shallow);
  }
  class RefImpl {
    constructor(value, __v_isShallow) {
      this.__v_isShallow = __v_isShallow;
      this.dep = void 0;
      this.__v_isRef = true;
      this._rawValue = __v_isShallow ? value : toRaw(value);
      this._value = __v_isShallow ? value : toReactive(value);
    }
    get value() {
      trackRefValue(this);
      return this._value;
    }
    set value(newVal) {
      var useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
      newVal = useDirectValue ? newVal : toRaw(newVal);
      if (hasChanged(newVal, this._rawValue)) {
        this._rawValue = newVal;
        this._value = useDirectValue ? newVal : toReactive(newVal);
        triggerRefValue(this, 4, newVal);
      }
    }
  }
  function unref(ref2) {
    return isRef(ref2) ? ref2.value : ref2;
  }
  var shallowUnwrapHandlers = {
    get: (target, key2, receiver) => unref(Reflect.get(target, key2, receiver)),
    set: (target, key2, value, receiver) => {
      var oldValue = target[key2];
      if (isRef(oldValue) && !isRef(value)) {
        oldValue.value = value;
        return true;
      } else {
        return Reflect.set(target, key2, value, receiver);
      }
    }
  };
  function proxyRefs(objectWithRefs) {
    return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
  }
  var stack = [];
  function warn$1(msg2) {
    pauseTracking();
    var instance = stack.length ? stack[stack.length - 1].component : null;
    var appWarnHandler = instance && instance.appContext.config.warnHandler;
    var trace = getComponentTrace();
    for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key5 = 1; _key5 < _len4; _key5++) {
      args[_key5 - 1] = arguments[_key5];
    }
    if (appWarnHandler) {
      callWithErrorHandling(appWarnHandler, instance, 11, [msg2 + args.map((a2) => {
        var _a, _b;
        return (_b = (_a = a2.toString) == null ? void 0 : _a.call(a2)) != null ? _b : JSON.stringify(a2);
      }).join(""), instance && instance.proxy, trace.map((_ref) => {
        var {
          vnode
        } = _ref;
        return "at <".concat(formatComponentName(instance, vnode.type), ">");
      }).join("\n"), trace]);
    } else {
      var warnArgs = ["[Vue warn]: ".concat(msg2), ...args];
      if (trace.length && // avoid spamming console during tests
      true) {
        warnArgs.push("\n", ...formatTrace(trace));
      }
      console.warn(...warnArgs);
    }
    resetTracking();
  }
  function getComponentTrace() {
    var currentVNode = stack[stack.length - 1];
    if (!currentVNode) {
      return [];
    }
    var normalizedStack = [];
    while (currentVNode) {
      var last = normalizedStack[0];
      if (last && last.vnode === currentVNode) {
        last.recurseCount++;
      } else {
        normalizedStack.push({
          vnode: currentVNode,
          recurseCount: 0
        });
      }
      var parentInstance = currentVNode.component && currentVNode.component.parent;
      currentVNode = parentInstance && parentInstance.vnode;
    }
    return normalizedStack;
  }
  function formatTrace(trace) {
    var logs = [];
    trace.forEach((entry, i2) => {
      logs.push(...i2 === 0 ? [] : ["\n"], ...formatTraceEntry(entry));
    });
    return logs;
  }
  function formatTraceEntry(_ref2) {
    var {
      vnode,
      recurseCount
    } = _ref2;
    var postfix = recurseCount > 0 ? "... (".concat(recurseCount, " recursive calls)") : "";
    var isRoot = vnode.component ? vnode.component.parent == null : false;
    var open = " at <".concat(formatComponentName(vnode.component, vnode.type, isRoot));
    var close = ">" + postfix;
    return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];
  }
  function formatProps(props2) {
    var res = [];
    var keys = Object.keys(props2);
    keys.slice(0, 3).forEach((key2) => {
      res.push(...formatProp(key2, props2[key2]));
    });
    if (keys.length > 3) {
      res.push(" ...");
    }
    return res;
  }
  function formatProp(key2, value, raw) {
    if (isString(value)) {
      value = JSON.stringify(value);
      return raw ? value : ["".concat(key2, "=").concat(value)];
    } else if (typeof value === "number" || typeof value === "boolean" || value == null) {
      return raw ? value : ["".concat(key2, "=").concat(value)];
    } else if (isRef(value)) {
      value = formatProp(key2, toRaw(value.value), true);
      return raw ? value : ["".concat(key2, "=Ref<"), value, ">"];
    } else if (isFunction(value)) {
      return ["".concat(key2, "=fn").concat(value.name ? "<".concat(value.name, ">") : "")];
    } else {
      value = toRaw(value);
      return raw ? value : ["".concat(key2, "="), value];
    }
  }
  function callWithErrorHandling(fn, instance, type, args) {
    try {
      return args ? fn(...args) : fn();
    } catch (err2) {
      handleError(err2, instance, type);
    }
  }
  function callWithAsyncErrorHandling(fn, instance, type, args) {
    if (isFunction(fn)) {
      var res = callWithErrorHandling(fn, instance, type, args);
      if (res && isPromise(res)) {
        res.catch((err2) => {
          handleError(err2, instance, type);
        });
      }
      return res;
    }
    var values = [];
    for (var i2 = 0; i2 < fn.length; i2++) {
      values.push(callWithAsyncErrorHandling(fn[i2], instance, type, args));
    }
    return values;
  }
  function handleError(err2, instance, type) {
    instance ? instance.vnode : null;
    if (instance) {
      var cur = instance.parent;
      var exposedInstance = instance.proxy;
      var errorInfo = "https://vuejs.org/error-reference/#runtime-".concat(type);
      while (cur) {
        var errorCapturedHooks = cur.ec;
        if (errorCapturedHooks) {
          for (var i2 = 0; i2 < errorCapturedHooks.length; i2++) {
            if (errorCapturedHooks[i2](err2, exposedInstance, errorInfo) === false) {
              return;
            }
          }
        }
        cur = cur.parent;
      }
      var appErrorHandler = instance.appContext.config.errorHandler;
      if (appErrorHandler) {
        callWithErrorHandling(appErrorHandler, null, 10, [err2, exposedInstance, errorInfo]);
        return;
      }
    }
    logError(err2);
  }
  function logError(err2, type, contextVNode) {
    {
      if (err2 instanceof Error) {
        console.error(err2.message + "\n" + err2.stack);
      } else {
        console.error(err2);
      }
    }
  }
  var isFlushing = false;
  var isFlushPending = false;
  var queue = [];
  var flushIndex = 0;
  var pendingPostFlushCbs = [];
  var activePostFlushCbs = null;
  var postFlushIndex = 0;
  var resolvedPromise = /* @__PURE__ */ Promise.resolve();
  var currentFlushPromise = null;
  function nextTick(fn) {
    var p2 = currentFlushPromise || resolvedPromise;
    return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
  }
  function findInsertionIndex(id2) {
    var start = flushIndex + 1;
    var end = queue.length;
    while (start < end) {
      var middle = start + end >>> 1;
      var middleJob = queue[middle];
      var middleJobId = getId(middleJob);
      if (middleJobId < id2 || middleJobId === id2 && middleJob.pre) {
        start = middle + 1;
      } else {
        end = middle;
      }
    }
    return start;
  }
  function queueJob(job) {
    if (!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {
      if (job.id == null) {
        queue.push(job);
      } else {
        queue.splice(findInsertionIndex(job.id), 0, job);
      }
      queueFlush();
    }
  }
  function queueFlush() {
    if (!isFlushing && !isFlushPending) {
      isFlushPending = true;
      currentFlushPromise = resolvedPromise.then(flushJobs);
    }
  }
  function invalidateJob(job) {
    var i2 = queue.indexOf(job);
    if (i2 > flushIndex) {
      queue.splice(i2, 1);
    }
  }
  function queuePostFlushCb(cb) {
    if (!isArray(cb)) {
      if (!activePostFlushCbs || !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {
        pendingPostFlushCbs.push(cb);
      }
    } else {
      pendingPostFlushCbs.push(...cb);
    }
    queueFlush();
  }
  function flushPreFlushCbs(instance, seen) {
    var i2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : isFlushing ? flushIndex + 1 : 0;
    for (; i2 < queue.length; i2++) {
      var cb = queue[i2];
      if (cb && cb.pre) {
        if (instance && cb.id !== instance.uid) {
          continue;
        }
        queue.splice(i2, 1);
        i2--;
        cb();
      }
    }
  }
  function flushPostFlushCbs(seen) {
    if (pendingPostFlushCbs.length) {
      var deduped = [...new Set(pendingPostFlushCbs)].sort((a2, b) => getId(a2) - getId(b));
      pendingPostFlushCbs.length = 0;
      if (activePostFlushCbs) {
        activePostFlushCbs.push(...deduped);
        return;
      }
      activePostFlushCbs = deduped;
      for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
        activePostFlushCbs[postFlushIndex]();
      }
      activePostFlushCbs = null;
      postFlushIndex = 0;
    }
  }
  var getId = (job) => job.id == null ? Infinity : job.id;
  var comparator = (a2, b) => {
    var diff = getId(a2) - getId(b);
    if (diff === 0) {
      if (a2.pre && !b.pre)
        return -1;
      if (b.pre && !a2.pre)
        return 1;
    }
    return diff;
  };
  function flushJobs(seen) {
    isFlushPending = false;
    isFlushing = true;
    queue.sort(comparator);
    try {
      for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
        var job = queue[flushIndex];
        if (job && job.active !== false) {
          if (false)
            ;
          callWithErrorHandling(job, null, 14);
        }
      }
    } finally {
      flushIndex = 0;
      queue.length = 0;
      flushPostFlushCbs();
      isFlushing = false;
      currentFlushPromise = null;
      if (queue.length || pendingPostFlushCbs.length) {
        flushJobs();
      }
    }
  }
  function emit$2(instance, event) {
    if (instance.isUnmounted)
      return;
    var props2 = instance.vnode.props || EMPTY_OBJ;
    for (var _len6 = arguments.length, rawArgs = new Array(_len6 > 2 ? _len6 - 2 : 0), _key7 = 2; _key7 < _len6; _key7++) {
      rawArgs[_key7 - 2] = arguments[_key7];
    }
    var args = rawArgs;
    var isModelListener2 = event.startsWith("update:");
    var modelArg = isModelListener2 && event.slice(7);
    if (modelArg && modelArg in props2) {
      var modifiersKey = "".concat(modelArg === "modelValue" ? "model" : modelArg, "Modifiers");
      var {
        number,
        trim
      } = props2[modifiersKey] || EMPTY_OBJ;
      if (trim) {
        args = rawArgs.map((a2) => isString(a2) ? a2.trim() : a2);
      }
      if (number) {
        args = rawArgs.map(looseToNumber);
      }
    }
    var handlerName;
    var handler = props2[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
    props2[handlerName = toHandlerKey(camelize(event))];
    if (!handler && isModelListener2) {
      handler = props2[handlerName = toHandlerKey(hyphenate(event))];
    }
    if (handler) {
      callWithAsyncErrorHandling(handler, instance, 6, args);
    }
    var onceHandler = props2[handlerName + "Once"];
    if (onceHandler) {
      if (!instance.emitted) {
        instance.emitted = {};
      } else if (instance.emitted[handlerName]) {
        return;
      }
      instance.emitted[handlerName] = true;
      callWithAsyncErrorHandling(onceHandler, instance, 6, args);
    }
  }
  function normalizeEmitsOptions(comp, appContext) {
    var asMixin = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var cache2 = appContext.emitsCache;
    var cached = cache2.get(comp);
    if (cached !== void 0) {
      return cached;
    }
    var raw = comp.emits;
    var normalized = {};
    var hasExtends = false;
    if (!isFunction(comp)) {
      var extendEmits = (raw2) => {
        var normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
        if (normalizedFromExtend) {
          hasExtends = true;
          extend(normalized, normalizedFromExtend);
        }
      };
      if (!asMixin && appContext.mixins.length) {
        appContext.mixins.forEach(extendEmits);
      }
      if (comp.extends) {
        extendEmits(comp.extends);
      }
      if (comp.mixins) {
        comp.mixins.forEach(extendEmits);
      }
    }
    if (!raw && !hasExtends) {
      if (isObject$2(comp)) {
        cache2.set(comp, null);
      }
      return null;
    }
    if (isArray(raw)) {
      raw.forEach((key2) => normalized[key2] = null);
    } else {
      extend(normalized, raw);
    }
    if (isObject$2(comp)) {
      cache2.set(comp, normalized);
    }
    return normalized;
  }
  function isEmitListener(options, key2) {
    if (!options || !isOn(key2)) {
      return false;
    }
    key2 = key2.slice(2).replace(/Once$/, "");
    return hasOwn$1(options, key2[0].toLowerCase() + key2.slice(1)) || hasOwn$1(options, hyphenate(key2)) || hasOwn$1(options, key2);
  }
  var currentRenderingInstance = null;
  var currentScopeId = null;
  function setCurrentRenderingInstance(instance) {
    var prev = currentRenderingInstance;
    currentRenderingInstance = instance;
    currentScopeId = instance && instance.type.__scopeId || null;
    return prev;
  }
  function withCtx(fn) {
    var ctx2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : currentRenderingInstance;
    if (!ctx2)
      return fn;
    if (fn._n) {
      return fn;
    }
    var renderFnWithContext = function() {
      if (renderFnWithContext._d) {
        setBlockTracking(-1);
      }
      var prevInstance = setCurrentRenderingInstance(ctx2);
      var res;
      try {
        res = fn(...arguments);
      } finally {
        setCurrentRenderingInstance(prevInstance);
        if (renderFnWithContext._d) {
          setBlockTracking(1);
        }
      }
      return res;
    };
    renderFnWithContext._n = true;
    renderFnWithContext._c = true;
    renderFnWithContext._d = true;
    return renderFnWithContext;
  }
  function markAttrsAccessed() {
  }
  function renderComponentRoot(instance) {
    var {
      type: Component,
      vnode,
      proxy,
      withProxy,
      props: props2,
      propsOptions: [propsOptions],
      slots,
      attrs: attrs2,
      emit: emit2,
      render: render2,
      renderCache,
      data,
      setupState,
      ctx: ctx2,
      inheritAttrs
    } = instance;
    var result;
    var fallthroughAttrs;
    var prev = setCurrentRenderingInstance(instance);
    try {
      if (vnode.shapeFlag & 4) {
        var proxyToUse = withProxy || proxy;
        var thisProxy = false ? new Proxy(proxyToUse, {
          get(target, key2, receiver) {
            warn$1("Property '".concat(String(key2), "' was accessed via 'this'. Avoid using 'this' in templates."));
            return Reflect.get(target, key2, receiver);
          }
        }) : proxyToUse;
        result = normalizeVNode(render2.call(thisProxy, proxyToUse, renderCache, props2, setupState, data, ctx2));
        fallthroughAttrs = attrs2;
      } else {
        var render22 = Component;
        if (false)
          ;
        result = normalizeVNode(render22.length > 1 ? render22(props2, false ? {
          get attrs() {
            markAttrsAccessed();
            return attrs2;
          },
          slots,
          emit: emit2
        } : {
          attrs: attrs2,
          slots,
          emit: emit2
        }) : render22(
          props2,
          null
          /* we know it doesn't need it */
        ));
        fallthroughAttrs = Component.props ? attrs2 : getFunctionalFallthrough(attrs2);
      }
    } catch (err2) {
      handleError(err2, instance, 1);
      result = createVNode(Comment);
    }
    var root = result;
    if (fallthroughAttrs && inheritAttrs !== false) {
      var keys = Object.keys(fallthroughAttrs);
      var {
        shapeFlag
      } = root;
      if (keys.length) {
        if (shapeFlag & (1 | 6)) {
          if (propsOptions && keys.some(isModelListener)) {
            fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);
          }
          root = cloneVNode(root, fallthroughAttrs);
        }
      }
    }
    if (vnode.dirs) {
      root = cloneVNode(root);
      root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
    }
    if (vnode.transition) {
      root.transition = vnode.transition;
    }
    {
      result = root;
    }
    setCurrentRenderingInstance(prev);
    return result;
  }
  var getFunctionalFallthrough = (attrs2) => {
    var res;
    for (var key2 in attrs2) {
      if (key2 === "class" || key2 === "style" || isOn(key2)) {
        (res || (res = {}))[key2] = attrs2[key2];
      }
    }
    return res;
  };
  var filterModelListeners = (attrs2, props2) => {
    var res = {};
    for (var key2 in attrs2) {
      if (!isModelListener(key2) || !(key2.slice(9) in props2)) {
        res[key2] = attrs2[key2];
      }
    }
    return res;
  };
  function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
    var {
      props: prevProps,
      children: prevChildren,
      component
    } = prevVNode;
    var {
      props: nextProps,
      children: nextChildren,
      patchFlag
    } = nextVNode;
    var emits = component.emitsOptions;
    if (nextVNode.dirs || nextVNode.transition) {
      return true;
    }
    if (optimized && patchFlag >= 0) {
      if (patchFlag & 1024) {
        return true;
      }
      if (patchFlag & 16) {
        if (!prevProps) {
          return !!nextProps;
        }
        return hasPropsChanged(prevProps, nextProps, emits);
      } else if (patchFlag & 8) {
        var dynamicProps = nextVNode.dynamicProps;
        for (var i2 = 0; i2 < dynamicProps.length; i2++) {
          var key2 = dynamicProps[i2];
          if (nextProps[key2] !== prevProps[key2] && !isEmitListener(emits, key2)) {
            return true;
          }
        }
      }
    } else {
      if (prevChildren || nextChildren) {
        if (!nextChildren || !nextChildren.$stable) {
          return true;
        }
      }
      if (prevProps === nextProps) {
        return false;
      }
      if (!prevProps) {
        return !!nextProps;
      }
      if (!nextProps) {
        return true;
      }
      return hasPropsChanged(prevProps, nextProps, emits);
    }
    return false;
  }
  function hasPropsChanged(prevProps, nextProps, emitsOptions) {
    var nextKeys = Object.keys(nextProps);
    if (nextKeys.length !== Object.keys(prevProps).length) {
      return true;
    }
    for (var i2 = 0; i2 < nextKeys.length; i2++) {
      var key2 = nextKeys[i2];
      if (nextProps[key2] !== prevProps[key2] && !isEmitListener(emitsOptions, key2)) {
        return true;
      }
    }
    return false;
  }
  function updateHOCHostEl(_ref4, el) {
    var {
      vnode,
      parent
    } = _ref4;
    while (parent) {
      var root = parent.subTree;
      if (root.suspense && root.suspense.activeBranch === vnode) {
        root.el = vnode.el;
      }
      if (root === vnode) {
        (vnode = parent.vnode).el = el;
        parent = parent.parent;
      } else {
        break;
      }
    }
  }
  var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
  var isSuspense = (type) => type.__isSuspense;
  function queueEffectWithSuspense(fn, suspense) {
    if (suspense && suspense.pendingBranch) {
      if (isArray(fn)) {
        suspense.effects.push(...fn);
      } else {
        suspense.effects.push(fn);
      }
    } else {
      queuePostFlushCb(fn);
    }
  }
  var ssrContextKey = Symbol.for("v-scx");
  var useSSRContext = () => {
    {
      var ctx2 = inject(ssrContextKey);
      return ctx2;
    }
  };
  function watchEffect(effect2, options) {
    return doWatch(effect2, null, options);
  }
  var INITIAL_WATCHER_VALUE = {};
  function watch(source, cb, options) {
    return doWatch(source, cb, options);
  }
  function doWatch(source, cb) {
    var {
      immediate,
      deep,
      flush,
      once: once2,
      onTrack,
      onTrigger
    } = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : EMPTY_OBJ;
    if (cb && once2) {
      var _cb = cb;
      cb = function() {
        _cb(...arguments);
        unwatch();
      };
    }
    var instance = currentInstance;
    var reactiveGetter = (source2) => deep === true ? source2 : (
      // for deep: false, only traverse root-level properties
      traverse(source2, deep === false ? 1 : void 0)
    );
    var getter;
    var forceTrigger = false;
    var isMultiSource = false;
    if (isRef(source)) {
      getter = () => source.value;
      forceTrigger = isShallow(source);
    } else if (isReactive(source)) {
      getter = () => reactiveGetter(source);
      forceTrigger = true;
    } else if (isArray(source)) {
      isMultiSource = true;
      forceTrigger = source.some((s) => isReactive(s) || isShallow(s));
      getter = () => source.map((s) => {
        if (isRef(s)) {
          return s.value;
        } else if (isReactive(s)) {
          return reactiveGetter(s);
        } else if (isFunction(s)) {
          return callWithErrorHandling(s, instance, 2);
        } else
          ;
      });
    } else if (isFunction(source)) {
      if (cb) {
        getter = () => callWithErrorHandling(source, instance, 2);
      } else {
        getter = () => {
          if (cleanup) {
            cleanup();
          }
          return callWithAsyncErrorHandling(source, instance, 3, [onCleanup]);
        };
      }
    } else {
      getter = NOOP;
    }
    if (cb && deep) {
      var baseGetter = getter;
      getter = () => traverse(baseGetter());
    }
    var cleanup;
    var onCleanup = (fn) => {
      cleanup = effect2.onStop = () => {
        callWithErrorHandling(fn, instance, 4);
        cleanup = effect2.onStop = void 0;
      };
    };
    var ssrCleanup;
    if (isInSSRComponentSetup) {
      onCleanup = NOOP;
      if (!cb) {
        getter();
      } else if (immediate) {
        callWithAsyncErrorHandling(cb, instance, 3, [getter(), isMultiSource ? [] : void 0, onCleanup]);
      }
      if (flush === "sync") {
        var ctx2 = useSSRContext();
        ssrCleanup = ctx2.__watcherHandles || (ctx2.__watcherHandles = []);
      } else {
        return NOOP;
      }
    }
    var oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
    var job = () => {
      if (!effect2.active || !effect2.dirty) {
        return;
      }
      if (cb) {
        var newValue = effect2.run();
        if (deep || forceTrigger || (isMultiSource ? newValue.some((v2, i2) => hasChanged(v2, oldValue[i2])) : hasChanged(newValue, oldValue)) || false) {
          if (cleanup) {
            cleanup();
          }
          callWithAsyncErrorHandling(cb, instance, 3, [
            newValue,
            // pass undefined as the old value when it's changed for the first time
            oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
            onCleanup
          ]);
          oldValue = newValue;
        }
      } else {
        effect2.run();
      }
    };
    job.allowRecurse = !!cb;
    var scheduler;
    if (flush === "sync") {
      scheduler = job;
    } else if (flush === "post") {
      scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
    } else {
      job.pre = true;
      if (instance)
        job.id = instance.uid;
      scheduler = () => queueJob(job);
    }
    var effect2 = new ReactiveEffect(getter, NOOP, scheduler);
    var scope = getCurrentScope();
    var unwatch = () => {
      effect2.stop();
      if (scope) {
        remove(scope.effects, effect2);
      }
    };
    if (cb) {
      if (immediate) {
        job();
      } else {
        oldValue = effect2.run();
      }
    } else if (flush === "post") {
      queuePostRenderEffect(effect2.run.bind(effect2), instance && instance.suspense);
    } else {
      effect2.run();
    }
    if (ssrCleanup)
      ssrCleanup.push(unwatch);
    return unwatch;
  }
  function instanceWatch(source, value, options) {
    var publicThis = this.proxy;
    var getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
    var cb;
    if (isFunction(value)) {
      cb = value;
    } else {
      cb = value.handler;
      options = value;
    }
    var reset = setCurrentInstance(this);
    var res = doWatch(getter, cb.bind(publicThis), options);
    reset();
    return res;
  }
  function createPathGetter(ctx2, path) {
    var segments = path.split(".");
    return () => {
      var cur = ctx2;
      for (var i2 = 0; i2 < segments.length && cur; i2++) {
        cur = cur[segments[i2]];
      }
      return cur;
    };
  }
  function traverse(value, depth) {
    var currentDepth = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
    var seen = arguments.length > 3 ? arguments[3] : void 0;
    if (!isObject$2(value) || value["__v_skip"]) {
      return value;
    }
    if (depth && depth > 0) {
      if (currentDepth >= depth) {
        return value;
      }
      currentDepth++;
    }
    seen = seen || /* @__PURE__ */ new Set();
    if (seen.has(value)) {
      return value;
    }
    seen.add(value);
    if (isRef(value)) {
      traverse(value.value, depth, currentDepth, seen);
    } else if (isArray(value)) {
      for (var i2 = 0; i2 < value.length; i2++) {
        traverse(value[i2], depth, currentDepth, seen);
      }
    } else if (isSet(value) || isMap(value)) {
      value.forEach((v2) => {
        traverse(v2, depth, currentDepth, seen);
      });
    } else if (isPlainObject(value)) {
      for (var key2 in value) {
        traverse(value[key2], depth, currentDepth, seen);
      }
    }
    return value;
  }
  function withDirectives(vnode, directives) {
    if (currentRenderingInstance === null) {
      return vnode;
    }
    var instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;
    var bindings = vnode.dirs || (vnode.dirs = []);
    for (var i2 = 0; i2 < directives.length; i2++) {
      var [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i2];
      if (dir) {
        if (isFunction(dir)) {
          dir = {
            mounted: dir,
            updated: dir
          };
        }
        if (dir.deep) {
          traverse(value);
        }
        bindings.push({
          dir,
          instance,
          value,
          oldValue: void 0,
          arg,
          modifiers
        });
      }
    }
    return vnode;
  }
  function invokeDirectiveHook(vnode, prevVNode, instance, name) {
    var bindings = vnode.dirs;
    var oldBindings = prevVNode && prevVNode.dirs;
    for (var i2 = 0; i2 < bindings.length; i2++) {
      var binding = bindings[i2];
      if (oldBindings) {
        binding.oldValue = oldBindings[i2].value;
      }
      var hook = binding.dir[name];
      if (hook) {
        pauseTracking();
        callWithAsyncErrorHandling(hook, instance, 8, [vnode.el, binding, vnode, prevVNode]);
        resetTracking();
      }
    }
  }
  /*! #__NO_SIDE_EFFECTS__ */
  // @__NO_SIDE_EFFECTS__
  function defineComponent(options, extraOptions) {
    return isFunction(options) ? (
      // #8326: extend call and options.name access are considered side-effects
      // by Rollup, so we have to wrap it in a pure-annotated IIFE.
      /* @__PURE__ */ (() => extend({
        name: options.name
      }, extraOptions, {
        setup: options
      }))()
    ) : options;
  }
  var isAsyncWrapper = (i2) => !!i2.type.__asyncLoader;
  var isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
  function onActivated(hook, target) {
    registerKeepAliveHook(hook, "a", target);
  }
  function onDeactivated(hook, target) {
    registerKeepAliveHook(hook, "da", target);
  }
  function registerKeepAliveHook(hook, type) {
    var target = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : currentInstance;
    var wrappedHook = hook.__wdc || (hook.__wdc = () => {
      var current2 = target;
      while (current2) {
        if (current2.isDeactivated) {
          return;
        }
        current2 = current2.parent;
      }
      return hook();
    });
    injectHook(type, wrappedHook, target);
    if (target) {
      var current = target.parent;
      while (current && current.parent) {
        if (isKeepAlive(current.parent.vnode)) {
          injectToKeepAliveRoot(wrappedHook, type, target, current);
        }
        current = current.parent;
      }
    }
  }
  function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
    var injected = injectHook(
      type,
      hook,
      keepAliveRoot,
      true
      /* prepend */
    );
    onUnmounted(() => {
      remove(keepAliveRoot[type], injected);
    }, target);
  }
  function injectHook(type, hook) {
    var target = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : currentInstance;
    var prepend = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
    if (target) {
      var hooks = target[type] || (target[type] = []);
      var wrappedHook = hook.__weh || (hook.__weh = function() {
        if (target.isUnmounted) {
          return;
        }
        pauseTracking();
        var reset = setCurrentInstance(target);
        for (var _len7 = arguments.length, args = new Array(_len7), _key8 = 0; _key8 < _len7; _key8++) {
          args[_key8] = arguments[_key8];
        }
        var res = callWithAsyncErrorHandling(hook, target, type, args);
        reset();
        resetTracking();
        return res;
      });
      if (prepend) {
        hooks.unshift(wrappedHook);
      } else {
        hooks.push(wrappedHook);
      }
      return wrappedHook;
    }
  }
  var createHook = (lifecycle) => function(hook) {
    var target = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : currentInstance;
    return (
      // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
      (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, function() {
        return hook(...arguments);
      }, target)
    );
  };
  var onBeforeMount = createHook("bm");
  var onMounted = createHook("m");
  var onBeforeUpdate = createHook("bu");
  var onUpdated = createHook("u");
  var onBeforeUnmount = createHook("bum");
  var onUnmounted = createHook("um");
  var onServerPrefetch = createHook("sp");
  var onRenderTriggered = createHook("rtg");
  var onRenderTracked = createHook("rtc");
  function onErrorCaptured(hook) {
    var target = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : currentInstance;
    injectHook("ec", hook, target);
  }
  function renderList(source, renderItem, cache2, index2) {
    var ret;
    var cached = cache2;
    if (isArray(source) || isString(source)) {
      ret = new Array(source.length);
      for (var i2 = 0, l = source.length; i2 < l; i2++) {
        ret[i2] = renderItem(source[i2], i2, void 0, cached);
      }
    } else {
      ret = new Array(source);
      for (var _i2 = 0; _i2 < source; _i2++) {
        ret[_i2] = renderItem(_i2 + 1, _i2, void 0, cached);
      }
    }
    return ret;
  }
  var getPublicInstance = (i2) => {
    if (!i2)
      return null;
    if (isStatefulComponent(i2))
      return getExposeProxy(i2) || i2.proxy;
    return getPublicInstance(i2.parent);
  };
  var publicPropertiesMap = (
    // Move PURE marker to new line to workaround compiler discarding it
    // due to type annotation
    /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
      $: (i2) => i2,
      $el: (i2) => i2.vnode.el,
      $data: (i2) => i2.data,
      $props: (i2) => i2.props,
      $attrs: (i2) => i2.attrs,
      $slots: (i2) => i2.slots,
      $refs: (i2) => i2.refs,
      $parent: (i2) => getPublicInstance(i2.parent),
      $root: (i2) => getPublicInstance(i2.root),
      $emit: (i2) => i2.emit,
      $options: (i2) => resolveMergedOptions(i2),
      $forceUpdate: (i2) => i2.f || (i2.f = () => {
        i2.effect.dirty = true;
        queueJob(i2.update);
      }),
      $nextTick: (i2) => i2.n || (i2.n = nextTick.bind(i2.proxy)),
      $watch: (i2) => instanceWatch.bind(i2)
    })
  );
  var hasSetupBinding = (state, key2) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn$1(state, key2);
  var PublicInstanceProxyHandlers = {
    get(_ref9, key2) {
      var {
        _: instance
      } = _ref9;
      var {
        ctx: ctx2,
        setupState,
        data,
        props: props2,
        accessCache,
        type,
        appContext
      } = instance;
      var normalizedProps;
      if (key2[0] !== "$") {
        var n = accessCache[key2];
        if (n !== void 0) {
          switch (n) {
            case 1:
              return setupState[key2];
            case 2:
              return data[key2];
            case 4:
              return ctx2[key2];
            case 3:
              return props2[key2];
          }
        } else if (hasSetupBinding(setupState, key2)) {
          accessCache[key2] = 1;
          return setupState[key2];
        } else if (data !== EMPTY_OBJ && hasOwn$1(data, key2)) {
          accessCache[key2] = 2;
          return data[key2];
        } else if (
          // only cache other properties when instance has declared (thus stable)
          // props
          (normalizedProps = instance.propsOptions[0]) && hasOwn$1(normalizedProps, key2)
        ) {
          accessCache[key2] = 3;
          return props2[key2];
        } else if (ctx2 !== EMPTY_OBJ && hasOwn$1(ctx2, key2)) {
          accessCache[key2] = 4;
          return ctx2[key2];
        } else if (shouldCacheAccess) {
          accessCache[key2] = 0;
        }
      }
      var publicGetter = publicPropertiesMap[key2];
      var cssModule, globalProperties;
      if (publicGetter) {
        if (key2 === "$attrs") {
          track(instance, "get", key2);
        }
        return publicGetter(instance);
      } else if (
        // css module (injected by vue-loader)
        (cssModule = type.__cssModules) && (cssModule = cssModule[key2])
      ) {
        return cssModule;
      } else if (ctx2 !== EMPTY_OBJ && hasOwn$1(ctx2, key2)) {
        accessCache[key2] = 4;
        return ctx2[key2];
      } else if (
        // global properties
        globalProperties = appContext.config.globalProperties, hasOwn$1(globalProperties, key2)
      ) {
        {
          return globalProperties[key2];
        }
      } else
        ;
    },
    set(_ref10, key2, value) {
      var {
        _: instance
      } = _ref10;
      var {
        data,
        setupState,
        ctx: ctx2
      } = instance;
      if (hasSetupBinding(setupState, key2)) {
        setupState[key2] = value;
        return true;
      } else if (data !== EMPTY_OBJ && hasOwn$1(data, key2)) {
        data[key2] = value;
        return true;
      } else if (hasOwn$1(instance.props, key2)) {
        return false;
      }
      if (key2[0] === "$" && key2.slice(1) in instance) {
        return false;
      } else {
        {
          ctx2[key2] = value;
        }
      }
      return true;
    },
    has(_ref11, key2) {
      var {
        _: {
          data,
          setupState,
          accessCache,
          ctx: ctx2,
          appContext,
          propsOptions
        }
      } = _ref11;
      var normalizedProps;
      return !!accessCache[key2] || data !== EMPTY_OBJ && hasOwn$1(data, key2) || hasSetupBinding(setupState, key2) || (normalizedProps = propsOptions[0]) && hasOwn$1(normalizedProps, key2) || hasOwn$1(ctx2, key2) || hasOwn$1(publicPropertiesMap, key2) || hasOwn$1(appContext.config.globalProperties, key2);
    },
    defineProperty(target, key2, descriptor2) {
      if (descriptor2.get != null) {
        target._.accessCache[key2] = 0;
      } else if (hasOwn$1(descriptor2, "value")) {
        this.set(target, key2, descriptor2.value, null);
      }
      return Reflect.defineProperty(target, key2, descriptor2);
    }
  };
  function normalizePropsOrEmits(props2) {
    return isArray(props2) ? props2.reduce((normalized, p2) => (normalized[p2] = null, normalized), {}) : props2;
  }
  var shouldCacheAccess = true;
  function applyOptions(instance) {
    var options = resolveMergedOptions(instance);
    var publicThis = instance.proxy;
    var ctx2 = instance.ctx;
    shouldCacheAccess = false;
    if (options.beforeCreate) {
      callHook$1(options.beforeCreate, instance, "bc");
    }
    var {
      // state
      data: dataOptions,
      computed: computedOptions,
      methods,
      watch: watchOptions,
      provide: provideOptions,
      inject: injectOptions,
      // lifecycle
      created,
      beforeMount,
      mounted,
      beforeUpdate,
      updated,
      activated,
      deactivated,
      beforeDestroy,
      beforeUnmount,
      destroyed,
      unmounted,
      render: render2,
      renderTracked,
      renderTriggered,
      errorCaptured,
      serverPrefetch,
      // public API
      expose,
      inheritAttrs,
      // assets
      components,
      directives,
      filters
    } = options;
    if (injectOptions) {
      resolveInjections(injectOptions, ctx2);
    }
    if (methods) {
      for (var _key9 in methods) {
        var methodHandler = methods[_key9];
        if (isFunction(methodHandler)) {
          {
            ctx2[_key9] = methodHandler.bind(publicThis);
          }
        }
      }
    }
    if (dataOptions) {
      (function() {
        var data = dataOptions.call(publicThis, publicThis);
        if (!isObject$2(data))
          ;
        else {
          instance.data = reactive(data);
        }
      })();
    }
    shouldCacheAccess = true;
    if (computedOptions) {
      var _loop4 = function(_key112) {
        var opt = computedOptions[_key112];
        var get2 = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
        var set2 = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
        var c2 = computed({
          get: get2,
          set: set2
        });
        Object.defineProperty(ctx2, _key112, {
          enumerable: true,
          configurable: true,
          get: () => c2.value,
          set: (v2) => c2.value = v2
        });
      };
      for (var _key11 in computedOptions) {
        _loop4(_key11);
      }
    }
    if (watchOptions) {
      for (var _key12 in watchOptions) {
        createWatcher(watchOptions[_key12], ctx2, publicThis, _key12);
      }
    }
    if (provideOptions) {
      var provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
      Reflect.ownKeys(provides).forEach((key2) => {
        provide(key2, provides[key2]);
      });
    }
    if (created) {
      callHook$1(created, instance, "c");
    }
    function registerLifecycleHook(register2, hook) {
      if (isArray(hook)) {
        hook.forEach((_hook) => register2(_hook.bind(publicThis)));
      } else if (hook) {
        register2(hook.bind(publicThis));
      }
    }
    registerLifecycleHook(onBeforeMount, beforeMount);
    registerLifecycleHook(onMounted, mounted);
    registerLifecycleHook(onBeforeUpdate, beforeUpdate);
    registerLifecycleHook(onUpdated, updated);
    registerLifecycleHook(onActivated, activated);
    registerLifecycleHook(onDeactivated, deactivated);
    registerLifecycleHook(onErrorCaptured, errorCaptured);
    registerLifecycleHook(onRenderTracked, renderTracked);
    registerLifecycleHook(onRenderTriggered, renderTriggered);
    registerLifecycleHook(onBeforeUnmount, beforeUnmount);
    registerLifecycleHook(onUnmounted, unmounted);
    registerLifecycleHook(onServerPrefetch, serverPrefetch);
    if (isArray(expose)) {
      if (expose.length) {
        var exposed = instance.exposed || (instance.exposed = {});
        expose.forEach((key2) => {
          Object.defineProperty(exposed, key2, {
            get: () => publicThis[key2],
            set: (val) => publicThis[key2] = val
          });
        });
      } else if (!instance.exposed) {
        instance.exposed = {};
      }
    }
    if (render2 && instance.render === NOOP) {
      instance.render = render2;
    }
    if (inheritAttrs != null) {
      instance.inheritAttrs = inheritAttrs;
    }
    if (components)
      instance.components = components;
    if (directives)
      instance.directives = directives;
  }
  function resolveInjections(injectOptions, ctx2) {
    if (isArray(injectOptions)) {
      injectOptions = normalizeInject(injectOptions);
    }
    var _loop5 = function(key3) {
      var opt = injectOptions[key3];
      var injected = void 0;
      if (isObject$2(opt)) {
        if ("default" in opt) {
          injected = inject(opt.from || key3, opt.default, true);
        } else {
          injected = inject(opt.from || key3);
        }
      } else {
        injected = inject(opt);
      }
      if (isRef(injected)) {
        Object.defineProperty(ctx2, key3, {
          enumerable: true,
          configurable: true,
          get: () => injected.value,
          set: (v2) => injected.value = v2
        });
      } else {
        ctx2[key3] = injected;
      }
    };
    for (var key2 in injectOptions) {
      _loop5(key2);
    }
  }
  function callHook$1(hook, instance, type) {
    callWithAsyncErrorHandling(isArray(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy), instance, type);
  }
  function createWatcher(raw, ctx2, publicThis, key2) {
    var getter = key2.includes(".") ? createPathGetter(publicThis, key2) : () => publicThis[key2];
    if (isString(raw)) {
      var handler = ctx2[raw];
      if (isFunction(handler)) {
        watch(getter, handler);
      }
    } else if (isFunction(raw)) {
      watch(getter, raw.bind(publicThis));
    } else if (isObject$2(raw)) {
      if (isArray(raw)) {
        raw.forEach((r) => createWatcher(r, ctx2, publicThis, key2));
      } else {
        var _handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx2[raw.handler];
        if (isFunction(_handler)) {
          watch(getter, _handler, raw);
        }
      }
    } else
      ;
  }
  function resolveMergedOptions(instance) {
    var base = instance.type;
    var {
      mixins,
      extends: extendsOptions
    } = base;
    var {
      mixins: globalMixins,
      optionsCache: cache2,
      config: {
        optionMergeStrategies
      }
    } = instance.appContext;
    var cached = cache2.get(base);
    var resolved;
    if (cached) {
      resolved = cached;
    } else if (!globalMixins.length && !mixins && !extendsOptions) {
      {
        resolved = base;
      }
    } else {
      resolved = {};
      if (globalMixins.length) {
        globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
      }
      mergeOptions(resolved, base, optionMergeStrategies);
    }
    if (isObject$2(base)) {
      cache2.set(base, resolved);
    }
    return resolved;
  }
  function mergeOptions(to, from, strats) {
    var asMixin = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
    var {
      mixins,
      extends: extendsOptions
    } = from;
    if (extendsOptions) {
      mergeOptions(to, extendsOptions, strats, true);
    }
    if (mixins) {
      mixins.forEach((m) => mergeOptions(to, m, strats, true));
    }
    for (var key2 in from) {
      if (asMixin && key2 === "expose")
        ;
      else {
        var strat = internalOptionMergeStrats[key2] || strats && strats[key2];
        to[key2] = strat ? strat(to[key2], from[key2]) : from[key2];
      }
    }
    return to;
  }
  var internalOptionMergeStrats = {
    data: mergeDataFn,
    props: mergeEmitsOrPropsOptions,
    emits: mergeEmitsOrPropsOptions,
    // objects
    methods: mergeObjectOptions,
    computed: mergeObjectOptions,
    // lifecycle
    beforeCreate: mergeAsArray,
    created: mergeAsArray,
    beforeMount: mergeAsArray,
    mounted: mergeAsArray,
    beforeUpdate: mergeAsArray,
    updated: mergeAsArray,
    beforeDestroy: mergeAsArray,
    beforeUnmount: mergeAsArray,
    destroyed: mergeAsArray,
    unmounted: mergeAsArray,
    activated: mergeAsArray,
    deactivated: mergeAsArray,
    errorCaptured: mergeAsArray,
    serverPrefetch: mergeAsArray,
    // assets
    components: mergeObjectOptions,
    directives: mergeObjectOptions,
    // watch
    watch: mergeWatchOptions,
    // provide / inject
    provide: mergeDataFn,
    inject: mergeInject
  };
  function mergeDataFn(to, from) {
    if (!from) {
      return to;
    }
    if (!to) {
      return from;
    }
    return function mergedDataFn() {
      return extend(isFunction(to) ? to.call(this, this) : to, isFunction(from) ? from.call(this, this) : from);
    };
  }
  function mergeInject(to, from) {
    return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
  }
  function normalizeInject(raw) {
    if (isArray(raw)) {
      var res = {};
      for (var i2 = 0; i2 < raw.length; i2++) {
        res[raw[i2]] = raw[i2];
      }
      return res;
    }
    return raw;
  }
  function mergeAsArray(to, from) {
    return to ? [...new Set([].concat(to, from))] : from;
  }
  function mergeObjectOptions(to, from) {
    return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;
  }
  function mergeEmitsOrPropsOptions(to, from) {
    if (to) {
      if (isArray(to) && isArray(from)) {
        return [.../* @__PURE__ */ new Set([...to, ...from])];
      }
      return extend(/* @__PURE__ */ Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from != null ? from : {}));
    } else {
      return from;
    }
  }
  function mergeWatchOptions(to, from) {
    if (!to)
      return from;
    if (!from)
      return to;
    var merged = extend(/* @__PURE__ */ Object.create(null), to);
    for (var key2 in from) {
      merged[key2] = mergeAsArray(to[key2], from[key2]);
    }
    return merged;
  }
  function createAppContext() {
    return {
      app: null,
      config: {
        isNativeTag: NO,
        performance: false,
        globalProperties: {},
        optionMergeStrategies: {},
        errorHandler: void 0,
        warnHandler: void 0,
        compilerOptions: {}
      },
      mixins: [],
      components: {},
      directives: {},
      provides: /* @__PURE__ */ Object.create(null),
      optionsCache: /* @__PURE__ */ new WeakMap(),
      propsCache: /* @__PURE__ */ new WeakMap(),
      emitsCache: /* @__PURE__ */ new WeakMap()
    };
  }
  var uid$1 = 0;
  function createAppAPI(render2, hydrate2) {
    return function createApp2(rootComponent) {
      var rootProps = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
      if (!isFunction(rootComponent)) {
        rootComponent = extend({}, rootComponent);
      }
      if (rootProps != null && !isObject$2(rootProps)) {
        rootProps = null;
      }
      var context = createAppContext();
      var installedPlugins = /* @__PURE__ */ new WeakSet();
      var isMounted = false;
      var app = context.app = {
        _uid: uid$1++,
        _component: rootComponent,
        _props: rootProps,
        _container: null,
        _context: context,
        _instance: null,
        version,
        get config() {
          return context.config;
        },
        set config(v2) {
        },
        use(plugin) {
          for (var _len8 = arguments.length, options = new Array(_len8 > 1 ? _len8 - 1 : 0), _key13 = 1; _key13 < _len8; _key13++) {
            options[_key13 - 1] = arguments[_key13];
          }
          if (installedPlugins.has(plugin))
            ;
          else if (plugin && isFunction(plugin.install)) {
            installedPlugins.add(plugin);
            plugin.install(app, ...options);
          } else if (isFunction(plugin)) {
            installedPlugins.add(plugin);
            plugin(app, ...options);
          } else
            ;
          return app;
        },
        mixin(mixin) {
          {
            if (!context.mixins.includes(mixin)) {
              context.mixins.push(mixin);
            }
          }
          return app;
        },
        component(name, component) {
          if (!component) {
            return context.components[name];
          }
          context.components[name] = component;
          return app;
        },
        directive(name, directive) {
          if (!directive) {
            return context.directives[name];
          }
          context.directives[name] = directive;
          return app;
        },
        mount(rootContainer, isHydrate, namespace) {
          if (!isMounted) {
            var vnode = createVNode(rootComponent, rootProps);
            vnode.appContext = context;
            if (namespace === true) {
              namespace = "svg";
            } else if (namespace === false) {
              namespace = void 0;
            }
            if (isHydrate && hydrate2) {
              hydrate2(vnode, rootContainer);
            } else {
              render2(vnode, rootContainer, namespace);
            }
            isMounted = true;
            app._container = rootContainer;
            rootContainer.__vue_app__ = app;
            return getExposeProxy(vnode.component) || vnode.component.proxy;
          }
        },
        unmount() {
          if (isMounted) {
            render2(null, app._container);
            delete app._container.__vue_app__;
          }
        },
        provide(key2, value) {
          context.provides[key2] = value;
          return app;
        },
        runWithContext(fn) {
          var lastApp = currentApp;
          currentApp = app;
          try {
            return fn();
          } finally {
            currentApp = lastApp;
          }
        }
      };
      return app;
    };
  }
  var currentApp = null;
  function provide(key2, value) {
    if (!currentInstance)
      ;
    else {
      var provides = currentInstance.provides;
      var parentProvides = currentInstance.parent && currentInstance.parent.provides;
      if (parentProvides === provides) {
        provides = currentInstance.provides = Object.create(parentProvides);
      }
      provides[key2] = value;
    }
  }
  function inject(key2, defaultValue) {
    var treatDefaultAsFactory = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var instance = currentInstance || currentRenderingInstance;
    if (instance || currentApp) {
      var provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;
      if (provides && key2 in provides) {
        return provides[key2];
      } else if (arguments.length > 1) {
        return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;
      } else
        ;
    }
  }
  function initProps(instance, rawProps, isStateful) {
    var isSSR = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
    var props2 = {};
    var attrs2 = {};
    def(attrs2, InternalObjectKey, 1);
    instance.propsDefaults = /* @__PURE__ */ Object.create(null);
    setFullProps(instance, rawProps, props2, attrs2);
    for (var key2 in instance.propsOptions[0]) {
      if (!(key2 in props2)) {
        props2[key2] = void 0;
      }
    }
    if (isStateful) {
      instance.props = isSSR ? props2 : shallowReactive(props2);
    } else {
      if (!instance.type.props) {
        instance.props = attrs2;
      } else {
        instance.props = props2;
      }
    }
    instance.attrs = attrs2;
  }
  function updateProps(instance, rawProps, rawPrevProps, optimized) {
    var {
      props: props2,
      attrs: attrs2,
      vnode: {
        patchFlag
      }
    } = instance;
    var rawCurrentProps = toRaw(props2);
    var [options] = instance.propsOptions;
    var hasAttrsChanged = false;
    if (
      // always force full diff in dev
      // - #1942 if hmr is enabled with sfc component
      // - vite#872 non-sfc component used by sfc component
      (optimized || patchFlag > 0) && !(patchFlag & 16)
    ) {
      if (patchFlag & 8) {
        var propsToUpdate = instance.vnode.dynamicProps;
        for (var i2 = 0; i2 < propsToUpdate.length; i2++) {
          var key2 = propsToUpdate[i2];
          if (isEmitListener(instance.emitsOptions, key2)) {
            continue;
          }
          var value = rawProps[key2];
          if (options) {
            if (hasOwn$1(attrs2, key2)) {
              if (value !== attrs2[key2]) {
                attrs2[key2] = value;
                hasAttrsChanged = true;
              }
            } else {
              var camelizedKey = camelize(key2);
              props2[camelizedKey] = resolvePropValue(options, rawCurrentProps, camelizedKey, value, instance, false);
            }
          } else {
            if (value !== attrs2[key2]) {
              attrs2[key2] = value;
              hasAttrsChanged = true;
            }
          }
        }
      }
    } else {
      if (setFullProps(instance, rawProps, props2, attrs2)) {
        hasAttrsChanged = true;
      }
      var kebabKey;
      for (var _key14 in rawCurrentProps) {
        if (!rawProps || // for camelCase
        !hasOwn$1(rawProps, _key14) && // it's possible the original props was passed in as kebab-case
        // and converted to camelCase (#955)
        ((kebabKey = hyphenate(_key14)) === _key14 || !hasOwn$1(rawProps, kebabKey))) {
          if (options) {
            if (rawPrevProps && // for camelCase
            (rawPrevProps[_key14] !== void 0 || // for kebab-case
            rawPrevProps[kebabKey] !== void 0)) {
              props2[_key14] = resolvePropValue(options, rawCurrentProps, _key14, void 0, instance, true);
            }
          } else {
            delete props2[_key14];
          }
        }
      }
      if (attrs2 !== rawCurrentProps) {
        for (var _key15 in attrs2) {
          if (!rawProps || !hasOwn$1(rawProps, _key15) && true) {
            delete attrs2[_key15];
            hasAttrsChanged = true;
          }
        }
      }
    }
    if (hasAttrsChanged) {
      trigger(instance, "set", "$attrs");
    }
  }
  function setFullProps(instance, rawProps, props2, attrs2) {
    var [options, needCastKeys] = instance.propsOptions;
    var hasAttrsChanged = false;
    var rawCastValues;
    if (rawProps) {
      for (var key2 in rawProps) {
        if (isReservedProp(key2)) {
          continue;
        }
        var value = rawProps[key2];
        var camelKey = void 0;
        if (options && hasOwn$1(options, camelKey = camelize(key2))) {
          if (!needCastKeys || !needCastKeys.includes(camelKey)) {
            props2[camelKey] = value;
          } else {
            (rawCastValues || (rawCastValues = {}))[camelKey] = value;
          }
        } else if (!isEmitListener(instance.emitsOptions, key2)) {
          if (!(key2 in attrs2) || value !== attrs2[key2]) {
            attrs2[key2] = value;
            hasAttrsChanged = true;
          }
        }
      }
    }
    if (needCastKeys) {
      var rawCurrentProps = toRaw(props2);
      var castValues = rawCastValues || EMPTY_OBJ;
      for (var i2 = 0; i2 < needCastKeys.length; i2++) {
        var _key16 = needCastKeys[i2];
        props2[_key16] = resolvePropValue(options, rawCurrentProps, _key16, castValues[_key16], instance, !hasOwn$1(castValues, _key16));
      }
    }
    return hasAttrsChanged;
  }
  function resolvePropValue(options, props2, key2, value, instance, isAbsent) {
    var opt = options[key2];
    if (opt != null) {
      var hasDefault = hasOwn$1(opt, "default");
      if (hasDefault && value === void 0) {
        var defaultValue = opt.default;
        if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {
          var {
            propsDefaults
          } = instance;
          if (key2 in propsDefaults) {
            value = propsDefaults[key2];
          } else {
            var reset = setCurrentInstance(instance);
            value = propsDefaults[key2] = defaultValue.call(null, props2);
            reset();
          }
        } else {
          value = defaultValue;
        }
      }
      if (opt[
        0
        /* shouldCast */
      ]) {
        if (isAbsent && !hasDefault) {
          value = false;
        } else if (opt[
          1
          /* shouldCastTrue */
        ] && (value === "" || value === hyphenate(key2))) {
          value = true;
        }
      }
    }
    return value;
  }
  function normalizePropsOptions(comp, appContext) {
    var asMixin = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var cache2 = appContext.propsCache;
    var cached = cache2.get(comp);
    if (cached) {
      return cached;
    }
    var raw = comp.props;
    var normalized = {};
    var needCastKeys = [];
    var hasExtends = false;
    if (!isFunction(comp)) {
      var extendProps = (raw2) => {
        hasExtends = true;
        var [props2, keys] = normalizePropsOptions(raw2, appContext, true);
        extend(normalized, props2);
        if (keys)
          needCastKeys.push(...keys);
      };
      if (!asMixin && appContext.mixins.length) {
        appContext.mixins.forEach(extendProps);
      }
      if (comp.extends) {
        extendProps(comp.extends);
      }
      if (comp.mixins) {
        comp.mixins.forEach(extendProps);
      }
    }
    if (!raw && !hasExtends) {
      if (isObject$2(comp)) {
        cache2.set(comp, EMPTY_ARR);
      }
      return EMPTY_ARR;
    }
    if (isArray(raw)) {
      for (var i2 = 0; i2 < raw.length; i2++) {
        var normalizedKey = camelize(raw[i2]);
        if (validatePropName(normalizedKey)) {
          normalized[normalizedKey] = EMPTY_OBJ;
        }
      }
    } else if (raw) {
      for (var key2 in raw) {
        var _normalizedKey = camelize(key2);
        if (validatePropName(_normalizedKey)) {
          var opt = raw[key2];
          var prop = normalized[_normalizedKey] = isArray(opt) || isFunction(opt) ? {
            type: opt
          } : extend({}, opt);
          if (prop) {
            var booleanIndex = getTypeIndex(Boolean, prop.type);
            var stringIndex = getTypeIndex(String, prop.type);
            prop[
              0
              /* shouldCast */
            ] = booleanIndex > -1;
            prop[
              1
              /* shouldCastTrue */
            ] = stringIndex < 0 || booleanIndex < stringIndex;
            if (booleanIndex > -1 || hasOwn$1(prop, "default")) {
              needCastKeys.push(_normalizedKey);
            }
          }
        }
      }
    }
    var res = [normalized, needCastKeys];
    if (isObject$2(comp)) {
      cache2.set(comp, res);
    }
    return res;
  }
  function validatePropName(key2) {
    if (key2[0] !== "$" && !isReservedProp(key2)) {
      return true;
    }
    return false;
  }
  function getType(ctor) {
    if (ctor === null) {
      return "null";
    }
    if (typeof ctor === "function") {
      return ctor.name || "";
    } else if (typeof ctor === "object") {
      var name = ctor.constructor && ctor.constructor.name;
      return name || "";
    }
    return "";
  }
  function isSameType(a2, b) {
    return getType(a2) === getType(b);
  }
  function getTypeIndex(type, expectedTypes) {
    if (isArray(expectedTypes)) {
      return expectedTypes.findIndex((t2) => isSameType(t2, type));
    } else if (isFunction(expectedTypes)) {
      return isSameType(expectedTypes, type) ? 0 : -1;
    }
    return -1;
  }
  var isInternalKey = (key2) => key2[0] === "_" || key2 === "$stable";
  var normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
  var normalizeSlot = (key2, rawSlot, ctx2) => {
    if (rawSlot._n) {
      return rawSlot;
    }
    var normalized = withCtx(function() {
      if (false)
        ;
      return normalizeSlotValue(rawSlot(...arguments));
    }, ctx2);
    normalized._c = false;
    return normalized;
  };
  var normalizeObjectSlots = (rawSlots, slots, instance) => {
    var ctx2 = rawSlots._ctx;
    for (var key2 in rawSlots) {
      if (isInternalKey(key2))
        continue;
      var value = rawSlots[key2];
      if (isFunction(value)) {
        slots[key2] = normalizeSlot(key2, value, ctx2);
      } else if (value != null) {
        (function() {
          var normalized = normalizeSlotValue(value);
          slots[key2] = () => normalized;
        })();
      }
    }
  };
  var normalizeVNodeSlots = (instance, children) => {
    var normalized = normalizeSlotValue(children);
    instance.slots.default = () => normalized;
  };
  var initSlots = (instance, children) => {
    if (instance.vnode.shapeFlag & 32) {
      var type = children._;
      if (type) {
        instance.slots = toRaw(children);
        def(children, "_", type);
      } else {
        normalizeObjectSlots(children, instance.slots = {});
      }
    } else {
      instance.slots = {};
      if (children) {
        normalizeVNodeSlots(instance, children);
      }
    }
    def(instance.slots, InternalObjectKey, 1);
  };
  var updateSlots = (instance, children, optimized) => {
    var {
      vnode,
      slots
    } = instance;
    var needDeletionCheck = true;
    var deletionComparisonTarget = EMPTY_OBJ;
    if (vnode.shapeFlag & 32) {
      var type = children._;
      if (type) {
        if (optimized && type === 1) {
          needDeletionCheck = false;
        } else {
          extend(slots, children);
          if (!optimized && type === 1) {
            delete slots._;
          }
        }
      } else {
        needDeletionCheck = !children.$stable;
        normalizeObjectSlots(children, slots);
      }
      deletionComparisonTarget = children;
    } else if (children) {
      normalizeVNodeSlots(instance, children);
      deletionComparisonTarget = {
        default: 1
      };
    }
    if (needDeletionCheck) {
      for (var key2 in slots) {
        if (!isInternalKey(key2) && deletionComparisonTarget[key2] == null) {
          delete slots[key2];
        }
      }
    }
  };
  function setRef(rawRef, oldRawRef, parentSuspense, vnode) {
    var isUnmount = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
    if (isArray(rawRef)) {
      rawRef.forEach((r, i2) => setRef(r, oldRawRef && (isArray(oldRawRef) ? oldRawRef[i2] : oldRawRef), parentSuspense, vnode, isUnmount));
      return;
    }
    if (isAsyncWrapper(vnode) && !isUnmount) {
      return;
    }
    var refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;
    var value = isUnmount ? null : refValue;
    var {
      i: owner,
      r: ref2
    } = rawRef;
    var oldRef = oldRawRef && oldRawRef.r;
    var refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
    var setupState = owner.setupState;
    if (oldRef != null && oldRef !== ref2) {
      if (isString(oldRef)) {
        refs[oldRef] = null;
        if (hasOwn$1(setupState, oldRef)) {
          setupState[oldRef] = null;
        }
      } else if (isRef(oldRef)) {
        oldRef.value = null;
      }
    }
    if (isFunction(ref2)) {
      callWithErrorHandling(ref2, owner, 12, [value, refs]);
    } else {
      var _isString = isString(ref2);
      var _isRef = isRef(ref2);
      if (_isString || _isRef) {
        var doSet = () => {
          if (rawRef.f) {
            var existing = _isString ? hasOwn$1(setupState, ref2) ? setupState[ref2] : refs[ref2] : ref2.value;
            if (isUnmount) {
              isArray(existing) && remove(existing, refValue);
            } else {
              if (!isArray(existing)) {
                if (_isString) {
                  refs[ref2] = [refValue];
                  if (hasOwn$1(setupState, ref2)) {
                    setupState[ref2] = refs[ref2];
                  }
                } else {
                  ref2.value = [refValue];
                  if (rawRef.k)
                    refs[rawRef.k] = ref2.value;
                }
              } else if (!existing.includes(refValue)) {
                existing.push(refValue);
              }
            }
          } else if (_isString) {
            refs[ref2] = value;
            if (hasOwn$1(setupState, ref2)) {
              setupState[ref2] = value;
            }
          } else if (_isRef) {
            ref2.value = value;
            if (rawRef.k)
              refs[rawRef.k] = value;
          } else
            ;
        };
        if (value) {
          doSet.id = -1;
          queuePostRenderEffect(doSet, parentSuspense);
        } else {
          doSet();
        }
      }
    }
  }
  var queuePostRenderEffect = queueEffectWithSuspense;
  function createRenderer(options) {
    return baseCreateRenderer(options);
  }
  function baseCreateRenderer(options, createHydrationFns) {
    var target = getGlobalThis();
    target.__VUE__ = true;
    var {
      insert: hostInsert,
      remove: hostRemove,
      patchProp: hostPatchProp,
      createElement: hostCreateElement,
      createText: hostCreateText,
      createComment: hostCreateComment,
      setText: hostSetText,
      setElementText: hostSetElementText,
      parentNode: hostParentNode,
      nextSibling: hostNextSibling,
      setScopeId: hostSetScopeId = NOOP,
      insertStaticContent: hostInsertStaticContent
    } = options;
    var patch = function(n1, n2, container) {
      var anchor = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
      var parentComponent = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : null;
      var parentSuspense = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : null;
      var namespace = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : void 0;
      var slotScopeIds = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : null;
      var optimized = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : !!n2.dynamicChildren;
      if (n1 === n2) {
        return;
      }
      if (n1 && !isSameVNodeType(n1, n2)) {
        anchor = getNextHostNode(n1);
        unmount(n1, parentComponent, parentSuspense, true);
        n1 = null;
      }
      if (n2.patchFlag === -2) {
        optimized = false;
        n2.dynamicChildren = null;
      }
      var {
        type,
        ref: ref2,
        shapeFlag
      } = n2;
      switch (type) {
        case Text:
          processText(n1, n2, container, anchor);
          break;
        case Comment:
          processCommentNode(n1, n2, container, anchor);
          break;
        case Static:
          if (n1 == null) {
            mountStaticNode(n2, container, anchor, namespace);
          }
          break;
        case Fragment:
          processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          break;
        default:
          if (shapeFlag & 1) {
            processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          } else if (shapeFlag & 6) {
            processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          } else if (shapeFlag & 64) {
            type.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
          } else if (shapeFlag & 128) {
            type.process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals);
          } else
            ;
      }
      if (ref2 != null && parentComponent) {
        setRef(ref2, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
      }
    };
    var processText = (n1, n2, container, anchor) => {
      if (n1 == null) {
        hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
      } else {
        var el = n2.el = n1.el;
        if (n2.children !== n1.children) {
          hostSetText(el, n2.children);
        }
      }
    };
    var processCommentNode = (n1, n2, container, anchor) => {
      if (n1 == null) {
        hostInsert(n2.el = hostCreateComment(n2.children || ""), container, anchor);
      } else {
        n2.el = n1.el;
      }
    };
    var mountStaticNode = (n2, container, anchor, namespace) => {
      [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, namespace, n2.el, n2.anchor);
    };
    var moveStaticNode = (_ref12, container, nextSibling) => {
      var {
        el,
        anchor
      } = _ref12;
      var next;
      while (el && el !== anchor) {
        next = hostNextSibling(el);
        hostInsert(el, container, nextSibling);
        el = next;
      }
      hostInsert(anchor, container, nextSibling);
    };
    var removeStaticNode = (_ref13) => {
      var {
        el,
        anchor
      } = _ref13;
      var next;
      while (el && el !== anchor) {
        next = hostNextSibling(el);
        hostRemove(el);
        el = next;
      }
      hostRemove(anchor);
    };
    var processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      if (n2.type === "svg") {
        namespace = "svg";
      } else if (n2.type === "math") {
        namespace = "mathml";
      }
      if (n1 == null) {
        mountElement(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
      } else {
        patchElement(n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
      }
    };
    var mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      var el;
      var vnodeHook;
      var {
        props: props2,
        shapeFlag,
        transition,
        dirs
      } = vnode;
      el = vnode.el = hostCreateElement(vnode.type, namespace, props2 && props2.is, props2);
      if (shapeFlag & 8) {
        hostSetElementText(el, vnode.children);
      } else if (shapeFlag & 16) {
        mountChildren(vnode.children, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(vnode, namespace), slotScopeIds, optimized);
      }
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "created");
      }
      setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
      if (props2) {
        for (var key2 in props2) {
          if (key2 !== "value" && !isReservedProp(key2)) {
            hostPatchProp(el, key2, null, props2[key2], namespace, vnode.children, parentComponent, parentSuspense, unmountChildren);
          }
        }
        if ("value" in props2) {
          hostPatchProp(el, "value", null, props2.value, namespace);
        }
        if (vnodeHook = props2.onVnodeBeforeMount) {
          invokeVNodeHook(vnodeHook, parentComponent, vnode);
        }
      }
      Object.defineProperty(el, "__vueParentComponent", {
        value: parentComponent,
        enumerable: false
      });
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
      }
      var needCallTransitionHooks = needTransition(parentSuspense, transition);
      if (needCallTransitionHooks) {
        transition.beforeEnter(el);
      }
      hostInsert(el, container, anchor);
      if ((vnodeHook = props2 && props2.onVnodeMounted) || needCallTransitionHooks || dirs) {
        queuePostRenderEffect(() => {
          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
          needCallTransitionHooks && transition.enter(el);
          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
        }, parentSuspense);
      }
    };
    var setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
      if (scopeId) {
        hostSetScopeId(el, scopeId);
      }
      if (slotScopeIds) {
        for (var i2 = 0; i2 < slotScopeIds.length; i2++) {
          hostSetScopeId(el, slotScopeIds[i2]);
        }
      }
      if (parentComponent) {
        var subTree = parentComponent.subTree;
        if (vnode === subTree) {
          var parentVNode = parentComponent.vnode;
          setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);
        }
      }
    };
    var mountChildren = function(children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) {
      var start = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : 0;
      for (var i2 = start; i2 < children.length; i2++) {
        var child = children[i2] = optimized ? cloneIfMounted(children[i2]) : normalizeVNode(children[i2]);
        patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
      }
    };
    var patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      var el = n2.el = n1.el;
      var {
        patchFlag,
        dynamicChildren,
        dirs
      } = n2;
      patchFlag |= n1.patchFlag & 16;
      var oldProps = n1.props || EMPTY_OBJ;
      var newProps = n2.props || EMPTY_OBJ;
      var vnodeHook;
      parentComponent && toggleRecurse(parentComponent, false);
      if (vnodeHook = newProps.onVnodeBeforeUpdate) {
        invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
      }
      if (dirs) {
        invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
      }
      parentComponent && toggleRecurse(parentComponent, true);
      if (dynamicChildren) {
        patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds);
      } else if (!optimized) {
        patchChildren(n1, n2, el, null, parentComponent, parentSuspense, resolveChildrenNamespace(n2, namespace), slotScopeIds, false);
      }
      if (patchFlag > 0) {
        if (patchFlag & 16) {
          patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, namespace);
        } else {
          if (patchFlag & 2) {
            if (oldProps.class !== newProps.class) {
              hostPatchProp(el, "class", null, newProps.class, namespace);
            }
          }
          if (patchFlag & 4) {
            hostPatchProp(el, "style", oldProps.style, newProps.style, namespace);
          }
          if (patchFlag & 8) {
            var propsToUpdate = n2.dynamicProps;
            for (var i2 = 0; i2 < propsToUpdate.length; i2++) {
              var key2 = propsToUpdate[i2];
              var prev = oldProps[key2];
              var next = newProps[key2];
              if (next !== prev || key2 === "value") {
                hostPatchProp(el, key2, prev, next, namespace, n1.children, parentComponent, parentSuspense, unmountChildren);
              }
            }
          }
        }
        if (patchFlag & 1) {
          if (n1.children !== n2.children) {
            hostSetElementText(el, n2.children);
          }
        }
      } else if (!optimized && dynamicChildren == null) {
        patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, namespace);
      }
      if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
        queuePostRenderEffect(() => {
          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
          dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
        }, parentSuspense);
      }
    };
    var patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {
      for (var i2 = 0; i2 < newChildren.length; i2++) {
        var oldVNode = oldChildren[i2];
        var newVNode = newChildren[i2];
        var container = (
          // oldVNode may be an errored async setup() component inside Suspense
          // which will not have a mounted element
          oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
          // of the Fragment itself so it can move its children.
          (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
          // which also requires the correct parent container
          !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
          oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
            // In other cases, the parent container is not actually used so we
            // just pass the block element here to avoid a DOM parentNode call.
            fallbackContainer
          )
        );
        patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
      }
    };
    var patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, namespace) => {
      if (oldProps !== newProps) {
        if (oldProps !== EMPTY_OBJ) {
          for (var key2 in oldProps) {
            if (!isReservedProp(key2) && !(key2 in newProps)) {
              hostPatchProp(el, key2, oldProps[key2], null, namespace, vnode.children, parentComponent, parentSuspense, unmountChildren);
            }
          }
        }
        for (var _key18 in newProps) {
          if (isReservedProp(_key18))
            continue;
          var next = newProps[_key18];
          var prev = oldProps[_key18];
          if (next !== prev && _key18 !== "value") {
            hostPatchProp(el, _key18, prev, next, namespace, vnode.children, parentComponent, parentSuspense, unmountChildren);
          }
        }
        if ("value" in newProps) {
          hostPatchProp(el, "value", oldProps.value, newProps.value, namespace);
        }
      }
    };
    var processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      var fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
      var fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
      var {
        patchFlag,
        dynamicChildren,
        slotScopeIds: fragmentSlotScopeIds
      } = n2;
      if (fragmentSlotScopeIds) {
        slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
      }
      if (n1 == null) {
        hostInsert(fragmentStartAnchor, container, anchor);
        hostInsert(fragmentEndAnchor, container, anchor);
        mountChildren(
          // #10007
          // such fragment like `<></>` will be compiled into
          // a fragment which doesn't have a children.
          // In this case fallback to an empty array
          n2.children || [],
          container,
          fragmentEndAnchor,
          parentComponent,
          parentSuspense,
          namespace,
          slotScopeIds,
          optimized
        );
      } else {
        if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
        // of renderSlot() with no valid children
        n1.dynamicChildren) {
          patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, namespace, slotScopeIds);
          if (
            // #2080 if the stable fragment has a key, it's a <template v-for> that may
            //  get moved around. Make sure all root level vnodes inherit el.
            // #2134 or if it's a component root, it may also get moved around
            // as the component is being moved.
            n2.key != null || parentComponent && n2 === parentComponent.subTree
          ) {
            traverseStaticChildren(
              n1,
              n2,
              true
              /* shallow */
            );
          }
        } else {
          patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
        }
      }
    };
    var processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      n2.slotScopeIds = slotScopeIds;
      if (n1 == null) {
        if (n2.shapeFlag & 512) {
          parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
        } else {
          mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
        }
      } else {
        updateComponent(n1, n2, optimized);
      }
    };
    var mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
      var instance = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);
      if (isKeepAlive(initialVNode)) {
        instance.ctx.renderer = internals;
      }
      {
        setupComponent(instance);
      }
      if (instance.asyncDep) {
        parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);
        if (!initialVNode.el) {
          var placeholder = instance.subTree = createVNode(Comment);
          processCommentNode(null, placeholder, container, anchor);
        }
      } else {
        setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, namespace, optimized);
      }
    };
    var updateComponent = (n1, n2, optimized) => {
      var instance = n2.component = n1.component;
      if (shouldUpdateComponent(n1, n2, optimized)) {
        if (instance.asyncDep && !instance.asyncResolved) {
          updateComponentPreRender(instance, n2, optimized);
          return;
        } else {
          instance.next = n2;
          invalidateJob(instance.update);
          instance.effect.dirty = true;
          instance.update();
        }
      } else {
        n2.el = n1.el;
        instance.vnode = n2;
      }
    };
    var setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {
      var componentUpdateFn = () => {
        if (!instance.isMounted) {
          var vnodeHook;
          var {
            el,
            props: props2
          } = initialVNode;
          var {
            bm,
            m,
            parent
          } = instance;
          var isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
          toggleRecurse(instance, false);
          if (bm) {
            invokeArrayFns(bm);
          }
          if (!isAsyncWrapperVNode && (vnodeHook = props2 && props2.onVnodeBeforeMount)) {
            invokeVNodeHook(vnodeHook, parent, initialVNode);
          }
          toggleRecurse(instance, true);
          if (el && hydrateNode) {
            var hydrateSubTree = () => {
              instance.subTree = renderComponentRoot(instance);
              hydrateNode(el, instance.subTree, instance, parentSuspense, null);
            };
            if (isAsyncWrapperVNode) {
              initialVNode.type.__asyncLoader().then(
                // note: we are moving the render call into an async callback,
                // which means it won't track dependencies - but it's ok because
                // a server-rendered async wrapper is already in resolved state
                // and it will never need to change.
                () => !instance.isUnmounted && hydrateSubTree()
              );
            } else {
              hydrateSubTree();
            }
          } else {
            var subTree = instance.subTree = renderComponentRoot(instance);
            patch(null, subTree, container, anchor, instance, parentSuspense, namespace);
            initialVNode.el = subTree.el;
          }
          if (m) {
            queuePostRenderEffect(m, parentSuspense);
          }
          if (!isAsyncWrapperVNode && (vnodeHook = props2 && props2.onVnodeMounted)) {
            var scopedInitialVNode = initialVNode;
            queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);
          }
          if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
            instance.a && queuePostRenderEffect(instance.a, parentSuspense);
          }
          instance.isMounted = true;
          initialVNode = container = anchor = null;
        } else {
          var {
            next,
            bu,
            u,
            parent: _parent,
            vnode
          } = instance;
          {
            var nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
            if (nonHydratedAsyncRoot) {
              if (next) {
                next.el = vnode.el;
                updateComponentPreRender(instance, next, optimized);
              }
              nonHydratedAsyncRoot.asyncDep.then(() => {
                if (!instance.isUnmounted) {
                  componentUpdateFn();
                }
              });
              return;
            }
          }
          var originNext = next;
          var _vnodeHook;
          toggleRecurse(instance, false);
          if (next) {
            next.el = vnode.el;
            updateComponentPreRender(instance, next, optimized);
          } else {
            next = vnode;
          }
          if (bu) {
            invokeArrayFns(bu);
          }
          if (_vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
            invokeVNodeHook(_vnodeHook, _parent, next, vnode);
          }
          toggleRecurse(instance, true);
          var nextTree = renderComponentRoot(instance);
          var prevTree = instance.subTree;
          instance.subTree = nextTree;
          patch(
            prevTree,
            nextTree,
            // parent may have changed if it's in a teleport
            hostParentNode(prevTree.el),
            // anchor may have changed if it's in a fragment
            getNextHostNode(prevTree),
            instance,
            parentSuspense,
            namespace
          );
          next.el = nextTree.el;
          if (originNext === null) {
            updateHOCHostEl(instance, nextTree.el);
          }
          if (u) {
            queuePostRenderEffect(u, parentSuspense);
          }
          if (_vnodeHook = next.props && next.props.onVnodeUpdated) {
            queuePostRenderEffect(() => invokeVNodeHook(_vnodeHook, _parent, next, vnode), parentSuspense);
          }
        }
      };
      var effect2 = instance.effect = new ReactiveEffect(
        componentUpdateFn,
        NOOP,
        () => queueJob(update),
        instance.scope
        // track it in component's effect scope
      );
      var update = instance.update = () => {
        if (effect2.dirty) {
          effect2.run();
        }
      };
      update.id = instance.uid;
      toggleRecurse(instance, true);
      update();
    };
    var updateComponentPreRender = (instance, nextVNode, optimized) => {
      nextVNode.component = instance;
      var prevProps = instance.vnode.props;
      instance.vnode = nextVNode;
      instance.next = null;
      updateProps(instance, nextVNode.props, prevProps, optimized);
      updateSlots(instance, nextVNode.children, optimized);
      pauseTracking();
      flushPreFlushCbs(instance);
      resetTracking();
    };
    var patchChildren = function(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds) {
      var optimized = arguments.length > 8 && arguments[8] !== void 0 ? arguments[8] : false;
      var c1 = n1 && n1.children;
      var prevShapeFlag = n1 ? n1.shapeFlag : 0;
      var c2 = n2.children;
      var {
        patchFlag,
        shapeFlag
      } = n2;
      if (patchFlag > 0) {
        if (patchFlag & 128) {
          patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          return;
        } else if (patchFlag & 256) {
          patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          return;
        }
      }
      if (shapeFlag & 8) {
        if (prevShapeFlag & 16) {
          unmountChildren(c1, parentComponent, parentSuspense);
        }
        if (c2 !== c1) {
          hostSetElementText(container, c2);
        }
      } else {
        if (prevShapeFlag & 16) {
          if (shapeFlag & 16) {
            patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          } else {
            unmountChildren(c1, parentComponent, parentSuspense, true);
          }
        } else {
          if (prevShapeFlag & 8) {
            hostSetElementText(container, "");
          }
          if (shapeFlag & 16) {
            mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          }
        }
      }
    };
    var patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      c1 = c1 || EMPTY_ARR;
      c2 = c2 || EMPTY_ARR;
      var oldLength = c1.length;
      var newLength = c2.length;
      var commonLength = Math.min(oldLength, newLength);
      var i2;
      for (i2 = 0; i2 < commonLength; i2++) {
        var nextChild = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]);
        patch(c1[i2], nextChild, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
      }
      if (oldLength > newLength) {
        unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);
      } else {
        mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, commonLength);
      }
    };
    var patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
      var i2 = 0;
      var l2 = c2.length;
      var e1 = c1.length - 1;
      var e2 = l2 - 1;
      while (i2 <= e1 && i2 <= e2) {
        var n1 = c1[i2];
        var n2 = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]);
        if (isSameVNodeType(n1, n2)) {
          patch(n1, n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
        } else {
          break;
        }
        i2++;
      }
      while (i2 <= e1 && i2 <= e2) {
        var _n = c1[e1];
        var _n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
        if (isSameVNodeType(_n, _n2)) {
          patch(_n, _n2, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
        } else {
          break;
        }
        e1--;
        e2--;
      }
      if (i2 > e1) {
        if (i2 <= e2) {
          var nextPos = e2 + 1;
          var anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
          while (i2 <= e2) {
            patch(null, c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
            i2++;
          }
        }
      } else if (i2 > e2) {
        while (i2 <= e1) {
          unmount(c1[i2], parentComponent, parentSuspense, true);
          i2++;
        }
      } else {
        var s1 = i2;
        var s2 = i2;
        var keyToNewIndexMap = /* @__PURE__ */ new Map();
        for (i2 = s2; i2 <= e2; i2++) {
          var nextChild = c2[i2] = optimized ? cloneIfMounted(c2[i2]) : normalizeVNode(c2[i2]);
          if (nextChild.key != null) {
            keyToNewIndexMap.set(nextChild.key, i2);
          }
        }
        var j;
        var patched = 0;
        var toBePatched = e2 - s2 + 1;
        var moved = false;
        var maxNewIndexSoFar = 0;
        var newIndexToOldIndexMap = new Array(toBePatched);
        for (i2 = 0; i2 < toBePatched; i2++) {
          newIndexToOldIndexMap[i2] = 0;
        }
        for (i2 = s1; i2 <= e1; i2++) {
          var prevChild = c1[i2];
          if (patched >= toBePatched) {
            unmount(prevChild, parentComponent, parentSuspense, true);
            continue;
          }
          var newIndex = void 0;
          if (prevChild.key != null) {
            newIndex = keyToNewIndexMap.get(prevChild.key);
          } else {
            for (j = s2; j <= e2; j++) {
              if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
                newIndex = j;
                break;
              }
            }
          }
          if (newIndex === void 0) {
            unmount(prevChild, parentComponent, parentSuspense, true);
          } else {
            newIndexToOldIndexMap[newIndex - s2] = i2 + 1;
            if (newIndex >= maxNewIndexSoFar) {
              maxNewIndexSoFar = newIndex;
            } else {
              moved = true;
            }
            patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
            patched++;
          }
        }
        var increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
        j = increasingNewIndexSequence.length - 1;
        for (i2 = toBePatched - 1; i2 >= 0; i2--) {
          var nextIndex = s2 + i2;
          var _nextChild = c2[nextIndex];
          var _anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
          if (newIndexToOldIndexMap[i2] === 0) {
            patch(null, _nextChild, container, _anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
          } else if (moved) {
            if (j < 0 || i2 !== increasingNewIndexSequence[j]) {
              move(_nextChild, container, _anchor, 2);
            } else {
              j--;
            }
          }
        }
      }
    };
    var move = function(vnode, container, anchor, moveType) {
      var parentSuspense = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : null;
      var {
        el,
        type,
        transition,
        children,
        shapeFlag
      } = vnode;
      if (shapeFlag & 6) {
        move(vnode.component.subTree, container, anchor, moveType);
        return;
      }
      if (shapeFlag & 128) {
        vnode.suspense.move(container, anchor, moveType);
        return;
      }
      if (shapeFlag & 64) {
        type.move(vnode, container, anchor, internals);
        return;
      }
      if (type === Fragment) {
        hostInsert(el, container, anchor);
        for (var i2 = 0; i2 < children.length; i2++) {
          move(children[i2], container, anchor, moveType);
        }
        hostInsert(vnode.anchor, container, anchor);
        return;
      }
      if (type === Static) {
        moveStaticNode(vnode, container, anchor);
        return;
      }
      var needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;
      if (needTransition2) {
        if (moveType === 0) {
          transition.beforeEnter(el);
          hostInsert(el, container, anchor);
          queuePostRenderEffect(() => transition.enter(el), parentSuspense);
        } else {
          var {
            leave,
            delayLeave,
            afterLeave
          } = transition;
          var remove22 = () => hostInsert(el, container, anchor);
          var performLeave = () => {
            leave(el, () => {
              remove22();
              afterLeave && afterLeave();
            });
          };
          if (delayLeave) {
            delayLeave(el, remove22, performLeave);
          } else {
            performLeave();
          }
        }
      } else {
        hostInsert(el, container, anchor);
      }
    };
    var unmount = function(vnode, parentComponent, parentSuspense) {
      var doRemove = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
      var optimized = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
      var {
        type,
        props: props2,
        ref: ref2,
        children,
        dynamicChildren,
        shapeFlag,
        patchFlag,
        dirs
      } = vnode;
      if (ref2 != null) {
        setRef(ref2, null, parentSuspense, vnode, true);
      }
      if (shapeFlag & 256) {
        parentComponent.ctx.deactivate(vnode);
        return;
      }
      var shouldInvokeDirs = shapeFlag & 1 && dirs;
      var shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
      var vnodeHook;
      if (shouldInvokeVnodeHook && (vnodeHook = props2 && props2.onVnodeBeforeUnmount)) {
        invokeVNodeHook(vnodeHook, parentComponent, vnode);
      }
      if (shapeFlag & 6) {
        unmountComponent(vnode.component, parentSuspense, doRemove);
      } else {
        if (shapeFlag & 128) {
          vnode.suspense.unmount(parentSuspense, doRemove);
          return;
        }
        if (shouldInvokeDirs) {
          invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
        }
        if (shapeFlag & 64) {
          vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);
        } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments
        (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {
          unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
        } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
          unmountChildren(children, parentComponent, parentSuspense);
        }
        if (doRemove) {
          remove2(vnode);
        }
      }
      if (shouldInvokeVnodeHook && (vnodeHook = props2 && props2.onVnodeUnmounted) || shouldInvokeDirs) {
        queuePostRenderEffect(() => {
          vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
          shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
        }, parentSuspense);
      }
    };
    var remove2 = (vnode) => {
      var {
        type,
        el,
        anchor,
        transition
      } = vnode;
      if (type === Fragment) {
        {
          removeFragment(el, anchor);
        }
        return;
      }
      if (type === Static) {
        removeStaticNode(vnode);
        return;
      }
      var performRemove = () => {
        hostRemove(el);
        if (transition && !transition.persisted && transition.afterLeave) {
          transition.afterLeave();
        }
      };
      if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
        var {
          leave,
          delayLeave
        } = transition;
        var performLeave = () => leave(el, performRemove);
        if (delayLeave) {
          delayLeave(vnode.el, performRemove, performLeave);
        } else {
          performLeave();
        }
      } else {
        performRemove();
      }
    };
    var removeFragment = (cur, end) => {
      var next;
      while (cur !== end) {
        next = hostNextSibling(cur);
        hostRemove(cur);
        cur = next;
      }
      hostRemove(end);
    };
    var unmountComponent = (instance, parentSuspense, doRemove) => {
      var {
        bum,
        scope,
        update,
        subTree,
        um
      } = instance;
      if (bum) {
        invokeArrayFns(bum);
      }
      scope.stop();
      if (update) {
        update.active = false;
        unmount(subTree, instance, parentSuspense, doRemove);
      }
      if (um) {
        queuePostRenderEffect(um, parentSuspense);
      }
      queuePostRenderEffect(() => {
        instance.isUnmounted = true;
      }, parentSuspense);
      if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
        parentSuspense.deps--;
        if (parentSuspense.deps === 0) {
          parentSuspense.resolve();
        }
      }
    };
    var unmountChildren = function(children, parentComponent, parentSuspense) {
      var doRemove = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
      var optimized = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
      var start = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 0;
      for (var i2 = start; i2 < children.length; i2++) {
        unmount(children[i2], parentComponent, parentSuspense, doRemove, optimized);
      }
    };
    var getNextHostNode = (vnode) => {
      if (vnode.shapeFlag & 6) {
        return getNextHostNode(vnode.component.subTree);
      }
      if (vnode.shapeFlag & 128) {
        return vnode.suspense.next();
      }
      return hostNextSibling(vnode.anchor || vnode.el);
    };
    var isFlushing2 = false;
    var render2 = (vnode, container, namespace) => {
      if (vnode == null) {
        if (container._vnode) {
          unmount(container._vnode, null, null, true);
        }
      } else {
        var p2 = container.__vueParent;
        patch(container._vnode || null, vnode, container, null, p2, null, namespace);
      }
      if (!isFlushing2) {
        isFlushing2 = true;
        flushPreFlushCbs();
        isFlushing2 = false;
      }
      container._vnode = vnode;
    };
    var internals = {
      p: patch,
      um: unmount,
      m: move,
      r: remove2,
      mt: mountComponent,
      mc: mountChildren,
      pc: patchChildren,
      pbc: patchBlockChildren,
      n: getNextHostNode,
      o: options
    };
    var hydrate2;
    var hydrateNode;
    return {
      render: render2,
      hydrate: hydrate2,
      createApp: createAppAPI(render2, hydrate2)
    };
  }
  function resolveChildrenNamespace(_ref14, currentNamespace) {
    var {
      type,
      props: props2
    } = _ref14;
    return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props2 && props2.encoding && props2.encoding.includes("html") ? void 0 : currentNamespace;
  }
  function toggleRecurse(_ref15, allowed) {
    var {
      effect: effect2,
      update
    } = _ref15;
    effect2.allowRecurse = update.allowRecurse = allowed;
  }
  function needTransition(parentSuspense, transition) {
    return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
  }
  function traverseStaticChildren(n1, n2) {
    var shallow = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var ch1 = n1.children;
    var ch2 = n2.children;
    if (isArray(ch1) && isArray(ch2)) {
      for (var i2 = 0; i2 < ch1.length; i2++) {
        var c1 = ch1[i2];
        var c2 = ch2[i2];
        if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
          if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
            c2 = ch2[i2] = cloneIfMounted(ch2[i2]);
            c2.el = c1.el;
          }
          if (!shallow)
            traverseStaticChildren(c1, c2);
        }
        if (c2.type === Text) {
          c2.el = c1.el;
        }
      }
    }
  }
  function getSequence(arr) {
    var p2 = arr.slice();
    var result = [0];
    var i2, j, u, v2, c2;
    var len = arr.length;
    for (i2 = 0; i2 < len; i2++) {
      var arrI = arr[i2];
      if (arrI !== 0) {
        j = result[result.length - 1];
        if (arr[j] < arrI) {
          p2[i2] = j;
          result.push(i2);
          continue;
        }
        u = 0;
        v2 = result.length - 1;
        while (u < v2) {
          c2 = u + v2 >> 1;
          if (arr[result[c2]] < arrI) {
            u = c2 + 1;
          } else {
            v2 = c2;
          }
        }
        if (arrI < arr[result[u]]) {
          if (u > 0) {
            p2[i2] = result[u - 1];
          }
          result[u] = i2;
        }
      }
    }
    u = result.length;
    v2 = result[u - 1];
    while (u-- > 0) {
      result[u] = v2;
      v2 = p2[v2];
    }
    return result;
  }
  function locateNonHydratedAsyncRoot(instance) {
    var subComponent = instance.subTree.component;
    if (subComponent) {
      if (subComponent.asyncDep && !subComponent.asyncResolved) {
        return subComponent;
      } else {
        return locateNonHydratedAsyncRoot(subComponent);
      }
    }
  }
  var isTeleport = (type) => type.__isTeleport;
  var Fragment = Symbol.for("v-fgt");
  var Text = Symbol.for("v-txt");
  var Comment = Symbol.for("v-cmt");
  var Static = Symbol.for("v-stc");
  var currentBlock = null;
  var isBlockTreeEnabled = 1;
  function setBlockTracking(value) {
    isBlockTreeEnabled += value;
  }
  function isVNode(value) {
    return value ? value.__v_isVNode === true : false;
  }
  function isSameVNodeType(n1, n2) {
    return n1.type === n2.type && n1.key === n2.key;
  }
  var InternalObjectKey = "__vInternal";
  var normalizeKey = (_ref19) => {
    var {
      key: key2
    } = _ref19;
    return key2 != null ? key2 : null;
  };
  var normalizeRef = (_ref20) => {
    var {
      ref: ref2,
      ref_key,
      ref_for
    } = _ref20;
    if (typeof ref2 === "number") {
      ref2 = "" + ref2;
    }
    return ref2 != null ? isString(ref2) || isRef(ref2) || isFunction(ref2) ? {
      i: currentRenderingInstance,
      r: ref2,
      k: ref_key,
      f: !!ref_for
    } : ref2 : null;
  };
  function createBaseVNode(type) {
    var props2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
    var children = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
    var patchFlag = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
    var dynamicProps = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : null;
    var shapeFlag = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : type === Fragment ? 0 : 1;
    var isBlockNode = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : false;
    var needFullChildrenNormalization = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : false;
    var vnode = {
      __v_isVNode: true,
      __v_skip: true,
      type,
      props: props2,
      key: props2 && normalizeKey(props2),
      ref: props2 && normalizeRef(props2),
      scopeId: currentScopeId,
      slotScopeIds: null,
      children,
      component: null,
      suspense: null,
      ssContent: null,
      ssFallback: null,
      dirs: null,
      transition: null,
      el: null,
      anchor: null,
      target: null,
      targetAnchor: null,
      staticCount: 0,
      shapeFlag,
      patchFlag,
      dynamicProps,
      dynamicChildren: null,
      appContext: null,
      ctx: currentRenderingInstance
    };
    if (needFullChildrenNormalization) {
      normalizeChildren(vnode, children);
      if (shapeFlag & 128) {
        type.normalize(vnode);
      }
    } else if (children) {
      vnode.shapeFlag |= isString(children) ? 8 : 16;
    }
    if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
    !isBlockNode && // has current parent block
    currentBlock && // presence of a patch flag indicates this node needs patching on updates.
    // component nodes also should always be patched, because even if the
    // component doesn't need to update, it needs to persist the instance on to
    // the next vnode so that it can be properly unmounted later.
    (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
    // vnode should not be considered dynamic due to handler caching.
    vnode.patchFlag !== 32) {
      currentBlock.push(vnode);
    }
    return vnode;
  }
  var createVNode = _createVNode;
  function _createVNode(type) {
    var props2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
    var children = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null;
    var patchFlag = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0;
    var dynamicProps = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : null;
    var isBlockNode = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : false;
    if (!type || type === NULL_DYNAMIC_COMPONENT) {
      type = Comment;
    }
    if (isVNode(type)) {
      var cloned = cloneVNode(
        type,
        props2,
        true
        /* mergeRef: true */
      );
      if (children) {
        normalizeChildren(cloned, children);
      }
      if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
        if (cloned.shapeFlag & 6) {
          currentBlock[currentBlock.indexOf(type)] = cloned;
        } else {
          currentBlock.push(cloned);
        }
      }
      cloned.patchFlag |= -2;
      return cloned;
    }
    if (isClassComponent(type)) {
      type = type.__vccOpts;
    }
    if (props2) {
      props2 = guardReactiveProps(props2);
      var {
        class: klass,
        style
      } = props2;
      if (klass && !isString(klass)) {
        props2.class = normalizeClass(klass);
      }
      if (isObject$2(style)) {
        if (isProxy(style) && !isArray(style)) {
          style = extend({}, style);
        }
        props2.style = normalizeStyle(style);
      }
    }
    var shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$2(type) ? 4 : isFunction(type) ? 2 : 0;
    return createBaseVNode(type, props2, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);
  }
  function guardReactiveProps(props2) {
    if (!props2)
      return null;
    return isProxy(props2) || InternalObjectKey in props2 ? extend({}, props2) : props2;
  }
  function cloneVNode(vnode, extraProps) {
    var mergeRef = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var {
      props: props2,
      ref: ref2,
      patchFlag,
      children
    } = vnode;
    var mergedProps = extraProps ? mergeProps(props2 || {}, extraProps) : props2;
    var cloned = {
      __v_isVNode: true,
      __v_skip: true,
      type: vnode.type,
      props: mergedProps,
      key: mergedProps && normalizeKey(mergedProps),
      ref: extraProps && extraProps.ref ? (
        // #2078 in the case of <component :is="vnode" ref="extra"/>
        // if the vnode itself already has a ref, cloneVNode will need to merge
        // the refs so the single vnode can be set on multiple refs
        mergeRef && ref2 ? isArray(ref2) ? ref2.concat(normalizeRef(extraProps)) : [ref2, normalizeRef(extraProps)] : normalizeRef(extraProps)
      ) : ref2,
      scopeId: vnode.scopeId,
      slotScopeIds: vnode.slotScopeIds,
      children,
      target: vnode.target,
      targetAnchor: vnode.targetAnchor,
      staticCount: vnode.staticCount,
      shapeFlag: vnode.shapeFlag,
      // if the vnode is cloned with extra props, we can no longer assume its
      // existing patch flag to be reliable and need to add the FULL_PROPS flag.
      // note: preserve flag for fragments since they use the flag for children
      // fast paths only.
      patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
      dynamicProps: vnode.dynamicProps,
      dynamicChildren: vnode.dynamicChildren,
      appContext: vnode.appContext,
      dirs: vnode.dirs,
      transition: vnode.transition,
      // These should technically only be non-null on mounted VNodes. However,
      // they *should* be copied for kept-alive vnodes. So we just always copy
      // them since them being non-null during a mount doesn't affect the logic as
      // they will simply be overwritten.
      component: vnode.component,
      suspense: vnode.suspense,
      ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
      ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
      el: vnode.el,
      anchor: vnode.anchor,
      ctx: vnode.ctx,
      ce: vnode.ce
    };
    return cloned;
  }
  function createTextVNode() {
    var text2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : " ";
    var flag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
    return createVNode(Text, null, text2, flag);
  }
  function normalizeVNode(child) {
    if (child == null || typeof child === "boolean") {
      return createVNode(Comment);
    } else if (isArray(child)) {
      return createVNode(
        Fragment,
        null,
        // #3666, avoid reference pollution when reusing vnode
        child.slice()
      );
    } else if (typeof child === "object") {
      return cloneIfMounted(child);
    } else {
      return createVNode(Text, null, String(child));
    }
  }
  function cloneIfMounted(child) {
    return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
  }
  function normalizeChildren(vnode, children) {
    var type = 0;
    var {
      shapeFlag
    } = vnode;
    if (children == null) {
      children = null;
    } else if (isArray(children)) {
      type = 16;
    } else if (typeof children === "object") {
      if (shapeFlag & (1 | 64)) {
        var slot = children.default;
        if (slot) {
          slot._c && (slot._d = false);
          normalizeChildren(vnode, slot());
          slot._c && (slot._d = true);
        }
        return;
      } else {
        type = 32;
        var slotFlag = children._;
        if (!slotFlag && !(InternalObjectKey in children)) {
          children._ctx = currentRenderingInstance;
        } else if (slotFlag === 3 && currentRenderingInstance) {
          if (currentRenderingInstance.slots._ === 1) {
            children._ = 1;
          } else {
            children._ = 2;
            vnode.patchFlag |= 1024;
          }
        }
      }
    } else if (isFunction(children)) {
      children = {
        default: children,
        _ctx: currentRenderingInstance
      };
      type = 32;
    } else {
      children = String(children);
      if (shapeFlag & 64) {
        type = 16;
        children = [createTextVNode(children)];
      } else {
        type = 8;
      }
    }
    vnode.children = children;
    vnode.shapeFlag |= type;
  }
  function mergeProps() {
    var ret = {};
    for (var i2 = 0; i2 < arguments.length; i2++) {
      var toMerge = i2 < 0 || arguments.length <= i2 ? void 0 : arguments[i2];
      for (var key2 in toMerge) {
        if (key2 === "class") {
          if (ret.class !== toMerge.class) {
            ret.class = normalizeClass([ret.class, toMerge.class]);
          }
        } else if (key2 === "style") {
          ret.style = normalizeStyle([ret.style, toMerge.style]);
        } else if (isOn(key2)) {
          var existing = ret[key2];
          var incoming = toMerge[key2];
          if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {
            ret[key2] = existing ? [].concat(existing, incoming) : incoming;
          }
        } else if (key2 !== "") {
          ret[key2] = toMerge[key2];
        }
      }
    }
    return ret;
  }
  function invokeVNodeHook(hook, instance, vnode) {
    var prevVNode = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
    callWithAsyncErrorHandling(hook, instance, 7, [vnode, prevVNode]);
  }
  var emptyAppContext = createAppContext();
  var uid = 0;
  function createComponentInstance(vnode, parent, suspense) {
    var type = vnode.type;
    var appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
    var instance = {
      uid: uid++,
      vnode,
      type,
      parent,
      appContext,
      root: null,
      // to be immediately set
      next: null,
      subTree: null,
      // will be set synchronously right after creation
      effect: null,
      update: null,
      // will be set synchronously right after creation
      scope: new EffectScope(
        true
        /* detached */
      ),
      render: null,
      proxy: null,
      exposed: null,
      exposeProxy: null,
      withProxy: null,
      provides: parent ? parent.provides : Object.create(appContext.provides),
      accessCache: null,
      renderCache: [],
      // local resolved assets
      components: null,
      directives: null,
      // resolved props and emits options
      propsOptions: normalizePropsOptions(type, appContext),
      emitsOptions: normalizeEmitsOptions(type, appContext),
      // emit
      emit: null,
      // to be set immediately
      emitted: null,
      // props default value
      propsDefaults: EMPTY_OBJ,
      // inheritAttrs
      inheritAttrs: type.inheritAttrs,
      // state
      ctx: EMPTY_OBJ,
      data: EMPTY_OBJ,
      props: EMPTY_OBJ,
      attrs: EMPTY_OBJ,
      slots: EMPTY_OBJ,
      refs: EMPTY_OBJ,
      setupState: EMPTY_OBJ,
      setupContext: null,
      attrsProxy: null,
      slotsProxy: null,
      // suspense related
      suspense,
      suspenseId: suspense ? suspense.pendingId : 0,
      asyncDep: null,
      asyncResolved: false,
      // lifecycle hooks
      // not using enums here because it results in computed properties
      isMounted: false,
      isUnmounted: false,
      isDeactivated: false,
      bc: null,
      c: null,
      bm: null,
      m: null,
      bu: null,
      u: null,
      um: null,
      bum: null,
      da: null,
      a: null,
      rtg: null,
      rtc: null,
      ec: null,
      sp: null
    };
    {
      instance.ctx = {
        _: instance
      };
    }
    instance.root = parent ? parent.root : instance;
    instance.emit = emit$2.bind(null, instance);
    if (vnode.ce) {
      vnode.ce(instance);
    }
    return instance;
  }
  var currentInstance = null;
  var getCurrentInstance = () => currentInstance || currentRenderingInstance;
  var internalSetCurrentInstance;
  var setInSSRSetupState;
  {
    var g$1 = getGlobalThis();
    var registerGlobalSetter = (key2, setter) => {
      var setters;
      if (!(setters = g$1[key2]))
        setters = g$1[key2] = [];
      setters.push(setter);
      return (v2) => {
        if (setters.length > 1)
          setters.forEach((set2) => set2(v2));
        else
          setters[0](v2);
      };
    };
    internalSetCurrentInstance = registerGlobalSetter("__VUE_INSTANCE_SETTERS__", (v2) => currentInstance = v2);
    setInSSRSetupState = registerGlobalSetter("__VUE_SSR_SETTERS__", (v2) => isInSSRComponentSetup = v2);
  }
  var setCurrentInstance = (instance) => {
    var prev = currentInstance;
    internalSetCurrentInstance(instance);
    instance.scope.on();
    return () => {
      instance.scope.off();
      internalSetCurrentInstance(prev);
    };
  };
  var unsetCurrentInstance = () => {
    currentInstance && currentInstance.scope.off();
    internalSetCurrentInstance(null);
  };
  function isStatefulComponent(instance) {
    return instance.vnode.shapeFlag & 4;
  }
  var isInSSRComponentSetup = false;
  function setupComponent(instance) {
    var isSSR = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
    isSSR && setInSSRSetupState(isSSR);
    var {
      props: props2,
      children
    } = instance.vnode;
    var isStateful = isStatefulComponent(instance);
    initProps(instance, props2, isStateful, isSSR);
    initSlots(instance, children);
    var setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
    isSSR && setInSSRSetupState(false);
    return setupResult;
  }
  function setupStatefulComponent(instance, isSSR) {
    var Component = instance.type;
    instance.accessCache = /* @__PURE__ */ Object.create(null);
    instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
    var {
      setup
    } = Component;
    if (setup) {
      var setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
      var reset = setCurrentInstance(instance);
      pauseTracking();
      var setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
      resetTracking();
      reset();
      if (isPromise(setupResult)) {
        setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
        if (isSSR) {
          return setupResult.then((resolvedResult) => {
            handleSetupResult(instance, resolvedResult, isSSR);
          }).catch((e2) => {
            handleError(e2, instance, 0);
          });
        } else {
          instance.asyncDep = setupResult;
        }
      } else {
        handleSetupResult(instance, setupResult, isSSR);
      }
    } else {
      finishComponentSetup(instance, isSSR);
    }
  }
  function handleSetupResult(instance, setupResult, isSSR) {
    if (isFunction(setupResult)) {
      if (instance.type.__ssrInlineRender) {
        instance.ssrRender = setupResult;
      } else {
        instance.render = setupResult;
      }
    } else if (isObject$2(setupResult)) {
      instance.setupState = proxyRefs(setupResult);
    } else
      ;
    finishComponentSetup(instance, isSSR);
  }
  var compile;
  function finishComponentSetup(instance, isSSR, skipOptions) {
    var Component = instance.type;
    if (!instance.render) {
      if (!isSSR && compile && !Component.render) {
        var template = Component.template || resolveMergedOptions(instance).template;
        if (template) {
          var {
            isCustomElement,
            compilerOptions
          } = instance.appContext.config;
          var {
            delimiters,
            compilerOptions: componentCompilerOptions
          } = Component;
          var finalCompilerOptions = extend(extend({
            isCustomElement,
            delimiters
          }, compilerOptions), componentCompilerOptions);
          Component.render = compile(template, finalCompilerOptions);
        }
      }
      instance.render = Component.render || NOOP;
    }
    {
      var reset = setCurrentInstance(instance);
      pauseTracking();
      try {
        applyOptions(instance);
      } finally {
        resetTracking();
        reset();
      }
    }
  }
  function getAttrsProxy(instance) {
    return instance.attrsProxy || (instance.attrsProxy = new Proxy(instance.attrs, {
      get(target, key2) {
        track(instance, "get", "$attrs");
        return target[key2];
      }
    }));
  }
  function createSetupContext(instance) {
    var expose = (exposed) => {
      instance.exposed = exposed || {};
    };
    {
      return {
        get attrs() {
          return getAttrsProxy(instance);
        },
        slots: instance.slots,
        emit: instance.emit,
        expose
      };
    }
  }
  function getExposeProxy(instance) {
    if (instance.exposed) {
      return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
        get(target, key2) {
          if (key2 in target) {
            return target[key2];
          } else if (key2 in publicPropertiesMap) {
            return publicPropertiesMap[key2](instance);
          }
        },
        has(target, key2) {
          return key2 in target || key2 in publicPropertiesMap;
        }
      }));
    }
  }
  var classifyRE = /(?:^|[-_])(\w)/g;
  var classify = (str) => str.replace(classifyRE, (c2) => c2.toUpperCase()).replace(/[-_]/g, "");
  function getComponentName(Component) {
    var includeInferred = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
    return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
  }
  function formatComponentName(instance, Component) {
    var isRoot = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
    var name = getComponentName(Component);
    if (!name && Component.__file) {
      var match = Component.__file.match(/([^/\\]+)\.\w+$/);
      if (match) {
        name = match[1];
      }
    }
    if (!name && instance && instance.parent) {
      var inferFromRegistry = (registry) => {
        for (var key2 in registry) {
          if (registry[key2] === Component) {
            return key2;
          }
        }
      };
      name = inferFromRegistry(instance.components || instance.parent.type.components) || inferFromRegistry(instance.appContext.components);
    }
    return name ? classify(name) : isRoot ? "App" : "Anonymous";
  }
  function isClassComponent(value) {
    return isFunction(value) && "__vccOpts" in value;
  }
  var computed = (getterOrOptions, debugOptions) => {
    var c2 = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
    return c2;
  };
  function h(type, propsOrChildren, children) {
    var l = arguments.length;
    if (l === 2) {
      if (isObject$2(propsOrChildren) && !isArray(propsOrChildren)) {
        if (isVNode(propsOrChildren)) {
          return createVNode(type, null, [propsOrChildren]);
        }
        return createVNode(type, propsOrChildren);
      } else {
        return createVNode(type, null, propsOrChildren);
      }
    } else {
      if (l > 3) {
        children = Array.prototype.slice.call(arguments, 2);
      } else if (l === 3 && isVNode(children)) {
        children = [children];
      }
      return createVNode(type, propsOrChildren, children);
    }
  }
  var version = "3.4.21";
  var svgNS = "http://www.w3.org/2000/svg";
  var mathmlNS = "http://www.w3.org/1998/Math/MathML";
  var doc = typeof document !== "undefined" ? document : null;
  var templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
  var nodeOps = {
    insert: (child, parent, anchor) => {
      parent.insertBefore(child, anchor || null);
    },
    remove: (child) => {
      var parent = child.parentNode;
      if (parent) {
        parent.removeChild(child);
      }
    },
    createElement: (tag, namespace, is, props2) => {
      var el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : doc.createElement(tag, is ? {
        is
      } : void 0);
      if (tag === "select" && props2 && props2.multiple != null) {
        el.setAttribute("multiple", props2.multiple);
      }
      return el;
    },
    createText: (text2) => doc.createTextNode(text2),
    createComment: (text2) => doc.createComment(text2),
    setText: (node, text2) => {
      node.nodeValue = text2;
    },
    setElementText: (el, text2) => {
      el.textContent = text2;
    },
    parentNode: (node) => node.parentNode,
    nextSibling: (node) => node.nextSibling,
    querySelector: (selector) => doc.querySelector(selector),
    setScopeId(el, id2) {
      el.setAttribute(id2, "");
    },
    // __UNSAFE__
    // Reason: innerHTML.
    // Static content here can only come from compiled templates.
    // As long as the user only uses trusted templates, this is safe.
    insertStaticContent(content, parent, anchor, namespace, start, end) {
      var before = anchor ? anchor.previousSibling : parent.lastChild;
      if (start && (start === end || start.nextSibling)) {
        while (true) {
          parent.insertBefore(start.cloneNode(true), anchor);
          if (start === end || !(start = start.nextSibling))
            break;
        }
      } else {
        templateContainer.innerHTML = namespace === "svg" ? "<svg>".concat(content, "</svg>") : namespace === "mathml" ? "<math>".concat(content, "</math>") : content;
        var template = templateContainer.content;
        if (namespace === "svg" || namespace === "mathml") {
          var wrapper2 = template.firstChild;
          while (wrapper2.firstChild) {
            template.appendChild(wrapper2.firstChild);
          }
          template.removeChild(wrapper2);
        }
        parent.insertBefore(template, anchor);
      }
      return [
        // first
        before ? before.nextSibling : parent.firstChild,
        // last
        anchor ? anchor.previousSibling : parent.lastChild
      ];
    }
  };
  var vtcKey = Symbol("_vtc");
  function patchClass$1(el, value, isSVG) {
    var transitionClasses = el[vtcKey];
    if (transitionClasses) {
      value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
    }
    if (value == null) {
      el.removeAttribute("class");
    } else if (isSVG) {
      el.setAttribute("class", value);
    } else {
      el.className = value;
    }
  }
  var vShowOriginalDisplay = Symbol("_vod");
  var vShowHidden = Symbol("_vsh");
  var vShow = {
    beforeMount(el, _ref23, _ref24) {
      var {
        value
      } = _ref23;
      var {
        transition
      } = _ref24;
      el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
      if (transition && value) {
        transition.beforeEnter(el);
      } else {
        setDisplay(el, value);
      }
    },
    mounted(el, _ref25, _ref26) {
      var {
        value
      } = _ref25;
      var {
        transition
      } = _ref26;
      if (transition && value) {
        transition.enter(el);
      }
    },
    updated(el, _ref27, _ref28) {
      var {
        value,
        oldValue
      } = _ref27;
      var {
        transition
      } = _ref28;
      if (!value === !oldValue)
        return;
      if (transition) {
        if (value) {
          transition.beforeEnter(el);
          setDisplay(el, true);
          transition.enter(el);
        } else {
          transition.leave(el, () => {
            setDisplay(el, false);
          });
        }
      } else {
        setDisplay(el, value);
      }
    },
    beforeUnmount(el, _ref29) {
      var {
        value
      } = _ref29;
      setDisplay(el, value);
    }
  };
  function setDisplay(el, value) {
    el.style.display = value ? el[vShowOriginalDisplay] : "none";
    el[vShowHidden] = !value;
  }
  var CSS_VAR_TEXT = Symbol("");
  var displayRE = /(^|;)\s*display\s*:/;
  function patchStyle$1(el, prev, next) {
    var style = el.style;
    var isCssString = isString(next);
    var hasControlledDisplay = false;
    if (next && !isCssString) {
      if (prev) {
        if (!isString(prev)) {
          for (var key2 in prev) {
            if (next[key2] == null) {
              setStyle$1(style, key2, "");
            }
          }
        } else {
          for (var prevStyle of prev.split(";")) {
            var _key21 = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
            if (next[_key21] == null) {
              setStyle$1(style, _key21, "");
            }
          }
        }
      }
      for (var _key22 in next) {
        if (_key22 === "display") {
          hasControlledDisplay = true;
        }
        setStyle$1(style, _key22, next[_key22]);
      }
    } else {
      if (isCssString) {
        if (prev !== next) {
          var cssVarText = style[CSS_VAR_TEXT];
          if (cssVarText) {
            next += ";" + cssVarText;
          }
          style.cssText = normalizeStyleValue(next);
          hasControlledDisplay = displayRE.test(next);
        }
      } else if (prev) {
        el.removeAttribute("style");
      }
    }
    if (vShowOriginalDisplay in el) {
      el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
      if (el[vShowHidden]) {
        style.display = "none";
      }
    }
  }
  var importantRE$1 = /\s*!important$/;
  function setStyle$1(style, name, val) {
    if (isArray(val)) {
      val.forEach((v2) => setStyle$1(style, name, v2));
    } else {
      if (val == null)
        val = "";
      val = normalizeStyleValue(val);
      if (name.startsWith("--")) {
        style.setProperty(name, val);
      } else {
        var prefixed = normalizeStyleName(style, name);
        if (importantRE$1.test(val)) {
          style.setProperty(hyphenate(prefixed), val.replace(importantRE$1, ""), "important");
        } else {
          style[prefixed] = val;
        }
      }
    }
  }
  var xlinkNS = "http://www.w3.org/1999/xlink";
  function patchAttr(el, key2, value, isSVG, instance) {
    if (isSVG && key2.startsWith("xlink:")) {
      if (value == null) {
        el.removeAttributeNS(xlinkNS, key2.slice(6, key2.length));
      } else {
        el.setAttributeNS(xlinkNS, key2, value);
      }
    } else {
      var isBoolean2 = isSpecialBooleanAttr(key2);
      if (value == null || isBoolean2 && !includeBooleanAttr(value)) {
        el.removeAttribute(key2);
      } else {
        el.setAttribute(key2, isBoolean2 ? "" : value);
      }
    }
  }
  function patchDOMProp(el, key2, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
    if (key2 === "innerHTML" || key2 === "textContent") {
      if (prevChildren) {
        unmountChildren(prevChildren, parentComponent, parentSuspense);
      }
      el[key2] = value == null ? "" : value;
      return;
    }
    var tag = el.tagName;
    if (key2 === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
    !tag.includes("-")) {
      var oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
      var newValue = value == null ? "" : value;
      if (oldValue !== newValue || !("_value" in el)) {
        el.value = newValue;
      }
      if (value == null) {
        el.removeAttribute(key2);
      }
      el._value = value;
      return;
    }
    var needRemove = false;
    if (value === "" || value == null) {
      var type = typeof el[key2];
      if (type === "boolean") {
        value = includeBooleanAttr(value);
      } else if (value == null && type === "string") {
        value = "";
        needRemove = true;
      } else if (type === "number") {
        value = 0;
        needRemove = true;
      }
    }
    try {
      el[key2] = value;
    } catch (e2) {
    }
    needRemove && el.removeAttribute(key2);
  }
  function addEventListener(el, event, handler, options) {
    el.addEventListener(event, handler, options);
  }
  function removeEventListener$1(el, event, handler, options) {
    el.removeEventListener(event, handler, options);
  }
  var veiKey = Symbol("_vei");
  function patchEvent$1(el, rawName, prevValue, nextValue) {
    var instance = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : null;
    var invokers = el[veiKey] || (el[veiKey] = {});
    var existingInvoker = invokers[rawName];
    if (nextValue && existingInvoker) {
      existingInvoker.value = nextValue;
    } else {
      var [name, options] = parseName(rawName);
      if (nextValue) {
        var invoker = invokers[rawName] = createInvoker$1(nextValue, instance);
        addEventListener(el, name, invoker, options);
      } else if (existingInvoker) {
        removeEventListener$1(el, name, existingInvoker, options);
        invokers[rawName] = void 0;
      }
    }
  }
  var optionsModifierRE = /(?:Once|Passive|Capture)$/;
  function parseName(name) {
    var options;
    if (optionsModifierRE.test(name)) {
      options = {};
      var m;
      while (m = name.match(optionsModifierRE)) {
        name = name.slice(0, name.length - m[0].length);
        options[m[0].toLowerCase()] = true;
      }
    }
    var event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
    return [event, options];
  }
  var cachedNow = 0;
  var p$1 = /* @__PURE__ */ Promise.resolve();
  var getNow = () => cachedNow || (p$1.then(() => cachedNow = 0), cachedNow = Date.now());
  function createInvoker$1(initialValue, instance) {
    var invoker = (e2) => {
      if (!e2._vts) {
        e2._vts = Date.now();
      } else if (e2._vts <= invoker.attached) {
        return;
      }
      callWithAsyncErrorHandling(patchStopImmediatePropagation(e2, invoker.value), instance, 5, [e2]);
    };
    invoker.value = initialValue;
    invoker.attached = getNow();
    return invoker;
  }
  function patchStopImmediatePropagation(e2, value) {
    if (isArray(value)) {
      var originalStop = e2.stopImmediatePropagation;
      e2.stopImmediatePropagation = () => {
        originalStop.call(e2);
        e2._stopped = true;
      };
      return value.map((fn) => (e22) => !e22._stopped && fn && fn(e22));
    } else {
      return value;
    }
  }
  var isNativeOn = (key2) => key2.charCodeAt(0) === 111 && key2.charCodeAt(1) === 110 && // lowercase letter
  key2.charCodeAt(2) > 96 && key2.charCodeAt(2) < 123;
  var patchProp = (el, key2, prevValue, nextValue, namespace, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
    var isSVG = namespace === "svg";
    if (key2 === "class") {
      patchClass$1(el, nextValue, isSVG);
    } else if (key2 === "style") {
      patchStyle$1(el, prevValue, nextValue);
    } else if (isOn(key2)) {
      if (!isModelListener(key2)) {
        patchEvent$1(el, key2, prevValue, nextValue, parentComponent);
      }
    } else if (key2[0] === "." ? (key2 = key2.slice(1), true) : key2[0] === "^" ? (key2 = key2.slice(1), false) : shouldSetAsProp(el, key2, nextValue, isSVG)) {
      patchDOMProp(el, key2, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);
    } else {
      if (key2 === "true-value") {
        el._trueValue = nextValue;
      } else if (key2 === "false-value") {
        el._falseValue = nextValue;
      }
      patchAttr(el, key2, nextValue, isSVG);
    }
  };
  function shouldSetAsProp(el, key2, value, isSVG) {
    if (isSVG) {
      if (key2 === "innerHTML" || key2 === "textContent") {
        return true;
      }
      if (key2 in el && isNativeOn(key2) && isFunction(value)) {
        return true;
      }
      return false;
    }
    if (key2 === "spellcheck" || key2 === "draggable" || key2 === "translate") {
      return false;
    }
    if (key2 === "form") {
      return false;
    }
    if (key2 === "list" && el.tagName === "INPUT") {
      return false;
    }
    if (key2 === "type" && el.tagName === "TEXTAREA") {
      return false;
    }
    if (key2 === "width" || key2 === "height") {
      var tag = el.tagName;
      if (tag === "IMG" || tag === "VIDEO" || tag === "CANVAS" || tag === "SOURCE") {
        return false;
      }
    }
    if (isNativeOn(key2) && isString(value)) {
      return false;
    }
    return key2 in el;
  }
  var systemModifiers = ["ctrl", "shift", "alt", "meta"];
  var modifierGuards = {
    stop: (e2) => e2.stopPropagation(),
    prevent: (e2) => e2.preventDefault(),
    self: (e2) => e2.target !== e2.currentTarget,
    ctrl: (e2) => !e2.ctrlKey,
    shift: (e2) => !e2.shiftKey,
    alt: (e2) => !e2.altKey,
    meta: (e2) => !e2.metaKey,
    left: (e2) => "button" in e2 && e2.button !== 0,
    middle: (e2) => "button" in e2 && e2.button !== 1,
    right: (e2) => "button" in e2 && e2.button !== 2,
    exact: (e2, modifiers) => systemModifiers.some((m) => e2["".concat(m, "Key")] && !modifiers.includes(m))
  };
  var withModifiers = (fn, modifiers) => {
    var cache2 = fn._withMods || (fn._withMods = {});
    var cacheKey = modifiers.join(".");
    return cache2[cacheKey] || (cache2[cacheKey] = function(event) {
      for (var i2 = 0; i2 < modifiers.length; i2++) {
        var guard = modifierGuards[modifiers[i2]];
        if (guard && guard(event, modifiers))
          return;
      }
      for (var _len13 = arguments.length, args = new Array(_len13 > 1 ? _len13 - 1 : 0), _key25 = 1; _key25 < _len13; _key25++) {
        args[_key25 - 1] = arguments[_key25];
      }
      return fn(event, ...args);
    });
  };
  var rendererOptions = /* @__PURE__ */ extend({
    patchProp
  }, nodeOps);
  var renderer;
  function ensureRenderer() {
    return renderer || (renderer = createRenderer(rendererOptions));
  }
  var createApp = function() {
    var app = ensureRenderer().createApp(...arguments);
    var {
      mount
    } = app;
    app.mount = (containerOrSelector) => {
      var container = normalizeContainer(containerOrSelector);
      if (!container)
        return;
      var component = app._component;
      if (!isFunction(component) && !component.render && !component.template) {
        component.template = container.innerHTML;
      }
      container.innerHTML = "";
      var proxy = mount(container, false, resolveRootNamespace(container));
      if (container instanceof Element) {
        container.removeAttribute("v-cloak");
        container.setAttribute("data-v-app", "");
      }
      return proxy;
    };
    return app;
  };
  function resolveRootNamespace(container) {
    if (container instanceof SVGElement) {
      return "svg";
    }
    if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
      return "mathml";
    }
  }
  function normalizeContainer(container) {
    if (isString(container)) {
      var res = document.querySelector(container);
      return res;
    }
    return container;
  }
  var attrs = ["top", "left", "right", "bottom"];
  var inited$1;
  var elementComputedStyle = {};
  var support;
  function getSupport() {
    if (!("CSS" in window) || typeof CSS.supports != "function") {
      support = "";
    } else if (CSS.supports("top: env(safe-area-inset-top)")) {
      support = "env";
    } else if (CSS.supports("top: constant(safe-area-inset-top)")) {
      support = "constant";
    } else {
      support = "";
    }
    return support;
  }
  function init() {
    support = typeof support === "string" ? support : getSupport();
    if (!support) {
      attrs.forEach(function(attr2) {
        elementComputedStyle[attr2] = 0;
      });
      return;
    }
    function setStyle2(el, style) {
      var elStyle = el.style;
      Object.keys(style).forEach(function(key2) {
        var val = style[key2];
        elStyle[key2] = val;
      });
    }
    var cbs = [];
    function parentReady(callback) {
      if (callback) {
        cbs.push(callback);
      } else {
        cbs.forEach(function(cb) {
          cb();
        });
      }
    }
    var passiveEvents = false;
    try {
      var opts = Object.defineProperty({}, "passive", {
        get: function() {
          passiveEvents = {
            passive: true
          };
        }
      });
      window.addEventListener("test", null, opts);
    } catch (e2) {
    }
    function addChild(parent, attr2) {
      var a1 = document.createElement("div");
      var a2 = document.createElement("div");
      var a1Children = document.createElement("div");
      var a2Children = document.createElement("div");
      var W = 100;
      var MAX = 1e4;
      var aStyle = {
        position: "absolute",
        width: W + "px",
        height: "200px",
        boxSizing: "border-box",
        overflow: "hidden",
        paddingBottom: support + "(safe-area-inset-" + attr2 + ")"
      };
      setStyle2(a1, aStyle);
      setStyle2(a2, aStyle);
      setStyle2(a1Children, {
        transition: "0s",
        animation: "none",
        width: "400px",
        height: "400px"
      });
      setStyle2(a2Children, {
        transition: "0s",
        animation: "none",
        width: "250%",
        height: "250%"
      });
      a1.appendChild(a1Children);
      a2.appendChild(a2Children);
      parent.appendChild(a1);
      parent.appendChild(a2);
      parentReady(function() {
        a1.scrollTop = a2.scrollTop = MAX;
        var a1LastScrollTop = a1.scrollTop;
        var a2LastScrollTop = a2.scrollTop;
        function onScroll() {
          if (this.scrollTop === (this === a1 ? a1LastScrollTop : a2LastScrollTop)) {
            return;
          }
          a1.scrollTop = a2.scrollTop = MAX;
          a1LastScrollTop = a1.scrollTop;
          a2LastScrollTop = a2.scrollTop;
          attrChange(attr2);
        }
        a1.addEventListener("scroll", onScroll, passiveEvents);
        a2.addEventListener("scroll", onScroll, passiveEvents);
      });
      var computedStyle = getComputedStyle(a1);
      Object.defineProperty(elementComputedStyle, attr2, {
        configurable: true,
        get: function() {
          return parseFloat(computedStyle.paddingBottom);
        }
      });
    }
    var parentDiv = document.createElement("div");
    setStyle2(parentDiv, {
      position: "absolute",
      left: "0",
      top: "0",
      width: "0",
      height: "0",
      zIndex: "-1",
      overflow: "hidden",
      visibility: "hidden"
    });
    attrs.forEach(function(key2) {
      addChild(parentDiv, key2);
    });
    document.body.appendChild(parentDiv);
    parentReady();
    inited$1 = true;
  }
  function getAttr(attr2) {
    if (!inited$1) {
      init();
    }
    return elementComputedStyle[attr2];
  }
  var changeAttrs = [];
  function attrChange(attr2) {
    if (!changeAttrs.length) {
      setTimeout(function() {
        var style = {};
        changeAttrs.forEach(function(attr3) {
          style[attr3] = elementComputedStyle[attr3];
        });
        changeAttrs.length = 0;
        callbacks.forEach(function(callback) {
          callback(style);
        });
      }, 0);
    }
    changeAttrs.push(attr2);
  }
  var callbacks = [];
  function onChange(callback) {
    if (!getSupport()) {
      return;
    }
    if (!inited$1) {
      init();
    }
    if (typeof callback === "function") {
      callbacks.push(callback);
    }
  }
  function offChange(callback) {
    var index2 = callbacks.indexOf(callback);
    if (index2 >= 0) {
      callbacks.splice(index2, 1);
    }
  }
  var safeAreaInsets = {
    get support() {
      return (typeof support === "string" ? support : getSupport()).length != 0;
    },
    get top() {
      return getAttr("top");
    },
    get left() {
      return getAttr("left");
    },
    get right() {
      return getAttr("right");
    },
    get bottom() {
      return getAttr("bottom");
    },
    onChange,
    offChange
  };
  var out = safeAreaInsets;
  const safeAreaInsets$1 = /* @__PURE__ */ getDefaultExportFromCjs(out);
  var onEventPrevent = /* @__PURE__ */ withModifiers(() => {
  }, ["prevent"]);
  function getWindowOffsetCssVar(style, name) {
    return parseInt((style.getPropertyValue(name).match(/\d+/) || ["0"])[0]);
  }
  function getWindowTop() {
    var style = document.documentElement.style;
    var top = getWindowOffsetCssVar(style, "--window-top");
    return top ? top + safeAreaInsets$1.top : 0;
  }
  function getWindowOffset() {
    var style = document.documentElement.style;
    var top = getWindowTop();
    var bottom = getWindowOffsetCssVar(style, "--window-bottom");
    var left = getWindowOffsetCssVar(style, "--window-left");
    var right = getWindowOffsetCssVar(style, "--window-right");
    var topWindowHeight = getWindowOffsetCssVar(style, "--top-window-height");
    return {
      top,
      bottom: bottom ? bottom + safeAreaInsets$1.bottom : 0,
      left: left ? left + safeAreaInsets$1.left : 0,
      right: right ? right + safeAreaInsets$1.right : 0,
      topWindowHeight: topWindowHeight || 0
    };
  }
  function updateCssVar(cssVars) {
    var style = document.documentElement.style;
    Object.keys(cssVars).forEach((name) => {
      style.setProperty(name, cssVars[name]);
    });
  }
  function PolySymbol(name) {
    return Symbol(name);
  }
  function hasRpx(str) {
    str = str + "";
    return str.indexOf("rpx") !== -1 || str.indexOf("upx") !== -1;
  }
  function rpx2px(str) {
    var replace = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
    if (replace) {
      return rpx2pxWithReplace(str);
    }
    if (isString(str)) {
      var res = parseInt(str) || 0;
      if (hasRpx(str)) {
        return uni.upx2px(res);
      }
      return res;
    }
    return str;
  }
  function rpx2pxWithReplace(str) {
    if (!hasRpx(str)) {
      return str;
    }
    return str.replace(/(\d+(\.\d+)?)[ru]px/g, (_a, b) => {
      return uni.upx2px(parseFloat(b)) + "px";
    });
  }
  var ICON_PATH_CANCEL = "M20.928 10.176l-4.928 4.928-4.928-4.928-0.896 0.896 4.928 4.928-4.928 4.928 0.896 0.896 4.928-4.928 4.928 4.928 0.896-0.896-4.928-4.928 4.928-4.928-0.896-0.896zM16 2.080q-3.776 0-7.040 1.888-3.136 1.856-4.992 4.992-1.888 3.264-1.888 7.040t1.888 7.040q1.856 3.136 4.992 4.992 3.264 1.888 7.040 1.888t7.040-1.888q3.136-1.856 4.992-4.992 1.888-3.264 1.888-7.040t-1.888-7.040q-1.856-3.136-4.992-4.992-3.264-1.888-7.040-1.888zM16 28.64q-3.424 0-6.4-1.728-2.848-1.664-4.512-4.512-1.728-2.976-1.728-6.4t1.728-6.4q1.664-2.848 4.512-4.512 2.976-1.728 6.4-1.728t6.4 1.728q2.848 1.664 4.512 4.512 1.728 2.976 1.728 6.4t-1.728 6.4q-1.664 2.848-4.512 4.512-2.976 1.728-6.4 1.728z";
  var ICON_PATH_CLEAR = "M16 0q-4.352 0-8.064 2.176-3.616 2.144-5.76 5.76-2.176 3.712-2.176 8.064t2.176 8.064q2.144 3.616 5.76 5.76 3.712 2.176 8.064 2.176t8.064-2.176q3.616-2.144 5.76-5.76 2.176-3.712 2.176-8.064t-2.176-8.064q-2.144-3.616-5.76-5.76-3.712-2.176-8.064-2.176zM22.688 21.408q0.32 0.32 0.304 0.752t-0.336 0.736-0.752 0.304-0.752-0.32l-5.184-5.376-5.376 5.184q-0.32 0.32-0.752 0.304t-0.736-0.336-0.304-0.752 0.32-0.752l5.376-5.184-5.184-5.376q-0.32-0.32-0.304-0.752t0.336-0.752 0.752-0.304 0.752 0.336l5.184 5.376 5.376-5.184q0.32-0.32 0.752-0.304t0.752 0.336 0.304 0.752-0.336 0.752l-5.376 5.184 5.184 5.376z";
  var ICON_PATH_DOWNLOAD = "M15.808 1.696q-3.776 0-7.072 1.984-3.2 1.888-5.088 5.152-1.952 3.392-1.952 7.36 0 3.776 1.952 7.072 1.888 3.2 5.088 5.088 3.296 1.952 7.072 1.952 3.968 0 7.36-1.952 3.264-1.888 5.152-5.088 1.984-3.296 1.984-7.072 0-4-1.984-7.36-1.888-3.264-5.152-5.152-3.36-1.984-7.36-1.984zM20.864 18.592l-3.776 4.928q-0.448 0.576-1.088 0.576t-1.088-0.576l-3.776-4.928q-0.448-0.576-0.24-0.992t0.944-0.416h2.976v-8.928q0-0.256 0.176-0.432t0.4-0.176h1.216q0.224 0 0.4 0.176t0.176 0.432v8.928h2.976q0.736 0 0.944 0.416t-0.24 0.992z";
  var ICON_PATH_INFO = "M15.808 0.128q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.176 3.776-2.176 8.16 0 4.224 2.176 7.872 2.080 3.552 5.632 5.632 3.648 2.176 7.872 2.176 4.384 0 8.16-2.176 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.416-2.176-8.16-2.112-3.616-5.728-5.728-3.744-2.176-8.16-2.176zM16.864 23.776q0 0.064-0.064 0.064h-1.568q-0.096 0-0.096-0.064l-0.256-11.328q0-0.064 0.064-0.064h2.112q0.096 0 0.064 0.064l-0.256 11.328zM16 10.88q-0.576 0-0.976-0.4t-0.4-0.96 0.4-0.96 0.976-0.4 0.976 0.4 0.4 0.96-0.4 0.96-0.976 0.4z";
  var ICON_PATH_SEARCH = "M20.928 22.688q-1.696 1.376-3.744 2.112-2.112 0.768-4.384 0.768-3.488 0-6.464-1.728-2.88-1.696-4.576-4.608-1.76-2.976-1.76-6.464t1.76-6.464q1.696-2.88 4.576-4.576 2.976-1.76 6.464-1.76t6.464 1.76q2.912 1.696 4.608 4.576 1.728 2.976 1.728 6.464 0 2.272-0.768 4.384-0.736 2.048-2.112 3.744l9.312 9.28-1.824 1.824-9.28-9.312zM12.8 23.008q2.784 0 5.184-1.376 2.304-1.376 3.68-3.68 1.376-2.4 1.376-5.184t-1.376-5.152q-1.376-2.336-3.68-3.68-2.4-1.408-5.184-1.408t-5.152 1.408q-2.336 1.344-3.68 3.68-1.408 2.368-1.408 5.152t1.408 5.184q1.344 2.304 3.68 3.68 2.368 1.376 5.152 1.376zM12.8 23.008v0z";
  var ICON_PATH_SUCCESS_NO_CIRCLE = "M1.952 18.080q-0.32-0.352-0.416-0.88t0.128-0.976l0.16-0.352q0.224-0.416 0.64-0.528t0.8 0.176l6.496 4.704q0.384 0.288 0.912 0.272t0.88-0.336l17.312-14.272q0.352-0.288 0.848-0.256t0.848 0.352l-0.416-0.416q0.32 0.352 0.32 0.816t-0.32 0.816l-18.656 18.912q-0.32 0.352-0.8 0.352t-0.8-0.32l-7.936-8.064z";
  var ICON_PATH_SUCCESS = "M15.808 0.16q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM24.832 11.328l-11.264 11.104q-0.032 0.032-0.112 0.032t-0.112-0.032l-5.216-5.376q-0.096-0.128 0-0.288l0.704-0.96q0.032-0.064 0.112-0.064t0.112 0.032l4.256 3.264q0.064 0.032 0.144 0.032t0.112-0.032l10.336-8.608q0.064-0.064 0.144-0.064t0.112 0.064l0.672 0.672q0.128 0.128 0 0.224z";
  var ICON_PATH_WAITING = "M15.84 0.096q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM23.008 21.92l-0.512 0.896q-0.096 0.128-0.224 0.064l-8-3.808q-0.096-0.064-0.16-0.128-0.128-0.096-0.128-0.288l0.512-12.096q0-0.064 0.048-0.112t0.112-0.048h1.376q0.064 0 0.112 0.048t0.048 0.112l0.448 10.848 6.304 4.256q0.064 0.064 0.080 0.128t-0.016 0.128z";
  var ICON_PATH_WARN = "M15.808 0.16q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM15.136 8.672h1.728q0.128 0 0.224 0.096t0.096 0.256l-0.384 10.24q0 0.064-0.048 0.112t-0.112 0.048h-1.248q-0.096 0-0.144-0.048t-0.048-0.112l-0.384-10.24q0-0.16 0.096-0.256t0.224-0.096zM16 23.328q-0.48 0-0.832-0.352t-0.352-0.848 0.352-0.848 0.832-0.352 0.832 0.352 0.352 0.848-0.352 0.848-0.832 0.352z";
  var ICON_PATH_BACK = "M21.781 7.844l-9.063 8.594 9.063 8.594q0.25 0.25 0.25 0.609t-0.25 0.578q-0.25 0.25-0.578 0.25t-0.578-0.25l-9.625-9.125q-0.156-0.125-0.203-0.297t-0.047-0.359q0-0.156 0.047-0.328t0.203-0.297l9.625-9.125q0.25-0.25 0.578-0.25t0.578 0.25q0.25 0.219 0.25 0.578t-0.25 0.578z";
  var ICON_PATH_CLOSE = "M17.25 16.156l7.375-7.313q0.281-0.281 0.281-0.641t-0.281-0.641q-0.25-0.25-0.625-0.25t-0.625 0.25l-7.375 7.344-7.313-7.344q-0.25-0.25-0.625-0.25t-0.625 0.25q-0.281 0.25-0.281 0.625t0.281 0.625l7.313 7.344-7.375 7.344q-0.281 0.25-0.281 0.625t0.281 0.625q0.125 0.125 0.281 0.188t0.344 0.063q0.156 0 0.328-0.063t0.297-0.188l7.375-7.344 7.375 7.406q0.125 0.156 0.297 0.219t0.328 0.063q0.188 0 0.344-0.078t0.281-0.203q0.281-0.25 0.281-0.609t-0.281-0.641l-7.375-7.406z";
  var ICON_PATH_CONFIRM = "M31.562 4.9966666659375q0.435 0.399 0.435 0.87 0.036 0.58-0.399 0.98l-18.61 19.917q-0.145 0.145-0.327 0.217-0.073 0.037-0.145 0.11-0.254 0.035-0.472 0.035-0.29 0-0.544-0.036l-0.145-0.072q-0.109-0.073-0.217-0.182l-0.11-0.072L0.363 16.2786666659375q-0.327-0.399-0.363-0.907 0-0.544 0.363-1.016 0.435-0.326 0.961-0.362 0.527-0.036 0.962 0.362l9.722 9.542L29.712 5.0326666659375q0.399-0.363 0.943-0.363 0.544-0.036 0.907 0.327z";
  function createSvgIconVNode(path) {
    var color = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "#000";
    var size2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 27;
    return createVNode("svg", {
      width: size2,
      height: size2,
      viewBox: "0 0 32 32"
    }, [createVNode("path", {
      d: path,
      fill: color
    }, null, 8, ["d", "fill"])], 8, ["width", "height"]);
  }
  function useCurrentPageId() {
    {
      return getCurrentPageId();
    }
  }
  function getCurrentPage() {
    {
      return window.__PAGE_INFO__;
    }
  }
  function getCurrentPageId() {
    {
      if (!window.__id__) {
        window.__id__ = plus.webview.currentWebview().id;
      }
      return parseInt(window.__id__);
    }
  }
  function disableScrollListener(evt) {
    evt.preventDefault();
  }
  var testReachBottomTimer;
  var lastScrollHeight = 0;
  function createScrollListener(_ref) {
    var {
      onPageScroll,
      onReachBottom,
      onReachBottomDistance
    } = _ref;
    var ticking = false;
    var hasReachBottom = false;
    var reachBottomLocking = true;
    var isReachBottom = () => {
      var {
        scrollHeight
      } = document.documentElement;
      var windowHeight = window.innerHeight;
      var scrollY = window.scrollY;
      var isBottom = scrollY > 0 && scrollHeight > windowHeight && scrollY + windowHeight + onReachBottomDistance >= scrollHeight;
      var heightChanged = Math.abs(scrollHeight - lastScrollHeight) > onReachBottomDistance;
      if (isBottom && (!hasReachBottom || heightChanged)) {
        lastScrollHeight = scrollHeight;
        hasReachBottom = true;
        return true;
      }
      if (!isBottom && hasReachBottom) {
        hasReachBottom = false;
      }
      return false;
    };
    var trigger2 = () => {
      onPageScroll && onPageScroll(window.pageYOffset);
      function testReachBottom() {
        if (isReachBottom()) {
          onReachBottom && onReachBottom();
          reachBottomLocking = false;
          setTimeout(function() {
            reachBottomLocking = true;
          }, 350);
          return true;
        }
      }
      if (onReachBottom && reachBottomLocking) {
        if (testReachBottom())
          ;
        else {
          testReachBottomTimer = setTimeout(testReachBottom, 300);
        }
      }
      ticking = false;
    };
    return function onScroll() {
      clearTimeout(testReachBottomTimer);
      if (!ticking) {
        requestAnimationFrame(trigger2);
      }
      ticking = true;
    };
  }
  function getRealRoute(fromRoute, toRoute) {
    if (toRoute.indexOf("/") === 0) {
      return toRoute;
    }
    if (toRoute.indexOf("./") === 0) {
      return getRealRoute(fromRoute, toRoute.slice(2));
    }
    var toRouteArray = toRoute.split("/");
    var toRouteLength = toRouteArray.length;
    var i2 = 0;
    for (; i2 < toRouteLength && toRouteArray[i2] === ".."; i2++) {
    }
    toRouteArray.splice(0, i2);
    toRoute = toRouteArray.join("/");
    var fromRouteArray = fromRoute.length > 0 ? fromRoute.split("/") : [];
    fromRouteArray.splice(fromRouteArray.length - i2 - 1, i2 + 1);
    return addLeadingSlash(fromRouteArray.concat(toRouteArray).join("/"));
  }
  class ComponentDescriptor {
    constructor(vm) {
      this.$bindClass = false;
      this.$bindStyle = false;
      this.$vm = vm;
      {
        this.$el = vm.$el;
      }
      if (this.$el.getAttribute) {
        this.$bindClass = !!this.$el.getAttribute("class");
        this.$bindStyle = !!this.$el.getAttribute("style");
      }
    }
    selectComponent(selector) {
      if (!this.$el || !selector) {
        return;
      }
      var wxsVm = getWxsVm(this.$el.querySelector(selector));
      if (!wxsVm) {
        return;
      }
      return createComponentDescriptor(wxsVm);
    }
    selectAllComponents(selector) {
      if (!this.$el || !selector) {
        return [];
      }
      var descriptors = [];
      var els = this.$el.querySelectorAll(selector);
      for (var i2 = 0; i2 < els.length; i2++) {
        var wxsVm = getWxsVm(els[i2]);
        if (wxsVm) {
          descriptors.push(createComponentDescriptor(wxsVm));
        }
      }
      return descriptors;
    }
    forceUpdate(type) {
      if (type === "class") {
        if (this.$bindClass) {
          this.$el.__wxsClassChanged = true;
          this.$vm.$forceUpdate();
        } else {
          this.updateWxsClass();
        }
      } else if (type === "style") {
        if (this.$bindStyle) {
          this.$el.__wxsStyleChanged = true;
          this.$vm.$forceUpdate();
        } else {
          this.updateWxsStyle();
        }
      }
    }
    updateWxsClass() {
      var {
        __wxsAddClass
      } = this.$el;
      if (__wxsAddClass.length) {
        this.$el.className = __wxsAddClass.join(" ");
      }
    }
    updateWxsStyle() {
      var {
        __wxsStyle
      } = this.$el;
      if (__wxsStyle) {
        this.$el.setAttribute("style", stringifyStyle(__wxsStyle));
      }
    }
    setStyle(style) {
      if (!this.$el || !style) {
        return this;
      }
      if (isString(style)) {
        style = parseStringStyle(style);
      }
      if (isPlainObject(style)) {
        this.$el.__wxsStyle = style;
        this.forceUpdate("style");
      }
      return this;
    }
    addClass(clazz) {
      if (!this.$el || !clazz) {
        return this;
      }
      var __wxsAddClass = this.$el.__wxsAddClass || (this.$el.__wxsAddClass = []);
      if (__wxsAddClass.indexOf(clazz) === -1) {
        __wxsAddClass.push(clazz);
        this.forceUpdate("class");
      }
      return this;
    }
    removeClass(clazz) {
      if (!this.$el || !clazz) {
        return this;
      }
      var {
        __wxsAddClass
      } = this.$el;
      if (__wxsAddClass) {
        var index2 = __wxsAddClass.indexOf(clazz);
        if (index2 > -1) {
          __wxsAddClass.splice(index2, 1);
        }
      }
      var __wxsRemoveClass = this.$el.__wxsRemoveClass || (this.$el.__wxsRemoveClass = []);
      if (__wxsRemoveClass.indexOf(clazz) === -1) {
        __wxsRemoveClass.push(clazz);
        this.forceUpdate("class");
      }
      return this;
    }
    hasClass(cls) {
      return this.$el && this.$el.classList.contains(cls);
    }
    getDataset() {
      return this.$el && this.$el.dataset;
    }
    callMethod(funcName) {
      var args = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
      var func = this.$vm[funcName];
      if (isFunction(func)) {
        func(JSON.parse(JSON.stringify(args)));
      } else if (this.$vm.ownerId) {
        UniViewJSBridge.publishHandler(ON_WXS_INVOKE_CALL_METHOD, {
          nodeId: this.$el.__id,
          ownerId: this.$vm.ownerId,
          method: funcName,
          args
        });
      }
    }
    requestAnimationFrame(callback) {
      return window.requestAnimationFrame(callback);
    }
    getState() {
      return this.$el && (this.$el.__wxsState || (this.$el.__wxsState = {}));
    }
    triggerEvent(eventName) {
      var detail = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
      return this.$vm.$emit(eventName, detail), this;
    }
    getComputedStyle(names) {
      if (this.$el) {
        var styles = window.getComputedStyle(this.$el);
        if (names && names.length) {
          return names.reduce((res, n) => {
            res[n] = styles[n];
            return res;
          }, {});
        }
        return styles;
      }
      return {};
    }
    setTimeout(handler, timeout) {
      return window.setTimeout(handler, timeout);
    }
    clearTimeout(handle) {
      return window.clearTimeout(handle);
    }
    getBoundingClientRect() {
      return this.$el.getBoundingClientRect();
    }
  }
  function createComponentDescriptor(vm) {
    if (vm && vm.$el) {
      if (!vm.$el.__wxsComponentDescriptor) {
        vm.$el.__wxsComponentDescriptor = new ComponentDescriptor(vm);
      }
      return vm.$el.__wxsComponentDescriptor;
    }
  }
  function getComponentDescriptor(instance, isOwnerInstance) {
    return createComponentDescriptor(instance);
  }
  function getWxsVm(el) {
    if (!el) {
      return;
    }
    {
      return createComponentDescriptorVm(el);
    }
  }
  function createComponentDescriptorVm(el) {
    return el.__wxsVm || (el.__wxsVm = {
      ownerId: el.__ownerId,
      $el: el,
      $emit() {
      },
      $forceUpdate() {
        var {
          __wxsStyle,
          __wxsAddClass,
          __wxsRemoveClass,
          __wxsStyleChanged,
          __wxsClassChanged
        } = el;
        var updateClass;
        var updateStyle;
        if (__wxsStyleChanged) {
          el.__wxsStyleChanged = false;
          __wxsStyle && (updateStyle = () => {
            Object.keys(__wxsStyle).forEach((n) => {
              el.style[n] = __wxsStyle[n];
            });
          });
        }
        if (__wxsClassChanged) {
          el.__wxsClassChanged = false;
          updateClass = () => {
            __wxsRemoveClass && __wxsRemoveClass.forEach((clazz) => {
              el.classList.remove(clazz);
            });
            __wxsAddClass && __wxsAddClass.forEach((clazz) => {
              el.classList.add(clazz);
            });
          };
        }
        requestAnimationFrame(() => {
          updateClass && updateClass();
          updateStyle && updateStyle();
        });
      }
    });
  }
  var isKeyboardEvent = (val) => !val.type.indexOf("key") && val instanceof KeyboardEvent;
  var isClickEvent = (val) => val.type === "click";
  var isMouseEvent = (val) => val.type.indexOf("mouse") === 0 || ["contextmenu"].includes(val.type);
  var isTouchEvent = (val) => typeof TouchEvent !== "undefined" && val instanceof TouchEvent || val.type.indexOf("touch") === 0 || ["longpress"].indexOf(val.type) >= 0;
  function $nne(evt, eventValue, instance) {
    var {
      currentTarget
    } = evt;
    if (!(evt instanceof Event) || !(currentTarget instanceof HTMLElement)) {
      return [evt];
    }
    var isHTMLTarget = currentTarget.tagName.indexOf("UNI-") !== 0;
    var res = createNativeEvent(evt, isHTMLTarget);
    if (isClickEvent(evt)) {
      normalizeClickEvent(res, evt);
    } else if (isMouseEvent(evt)) {
      normalizeMouseEvent(res, evt);
    } else if (isTouchEvent(evt)) {
      var top = getWindowTop();
      res.touches = normalizeTouchEvent(evt.touches, top);
      res.changedTouches = normalizeTouchEvent(evt.changedTouches, top);
    } else if (isKeyboardEvent(evt)) {
      var proxyKeys = ["key", "code"];
      proxyKeys.forEach((key2) => {
        Object.defineProperty(res, key2, {
          get() {
            return evt[key2];
          }
        });
      });
    }
    return [res];
  }
  function findUniTarget(target) {
    while (target && target.tagName.indexOf("UNI-") !== 0) {
      target = target.parentElement;
    }
    return target;
  }
  function createNativeEvent(evt) {
    var htmlElement = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
    var {
      type,
      timeStamp,
      target,
      currentTarget
    } = evt;
    var realTarget, realCurrentTarget;
    realTarget = normalizeTarget(htmlElement ? target : findUniTarget(target));
    realCurrentTarget = normalizeTarget(currentTarget);
    var event = {
      type,
      timeStamp,
      target: realTarget,
      detail: {},
      currentTarget: realCurrentTarget
    };
    if (evt._stopped) {
      event._stopped = true;
    }
    if (evt.type.startsWith("touch")) {
      event.touches = evt.touches;
      event.changedTouches = evt.changedTouches;
    }
    return event;
  }
  function normalizeClickEvent(evt, mouseEvt) {
    var {
      x,
      y
    } = mouseEvt;
    var top = getWindowTop();
    evt.detail = {
      x,
      y: y - top
    };
    evt.touches = evt.changedTouches = [createTouchEvent(mouseEvt, top)];
  }
  function normalizeMouseEvent(evt, mouseEvt) {
    var top = getWindowTop();
    evt.pageX = mouseEvt.pageX;
    evt.pageY = mouseEvt.pageY - top;
    evt.clientX = mouseEvt.clientX;
    evt.clientY = mouseEvt.clientY - top;
    evt.touches = evt.changedTouches = [createTouchEvent(mouseEvt, top)];
  }
  function createTouchEvent(evt, top) {
    return {
      force: 1,
      identifier: 0,
      clientX: evt.clientX,
      clientY: evt.clientY - top,
      pageX: evt.pageX,
      pageY: evt.pageY - top
    };
  }
  function normalizeTouchEvent(touches, top) {
    var res = [];
    for (var i2 = 0; i2 < touches.length; i2++) {
      var {
        identifier,
        pageX,
        pageY,
        clientX,
        clientY,
        force
      } = touches[i2];
      res.push({
        identifier,
        pageX,
        pageY: pageY - top,
        clientX,
        clientY: clientY - top,
        force: force || 0
      });
    }
    return res;
  }
  function formatAppLog(type, filename) {
    for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
      args[_key - 2] = arguments[_key];
    }
    if (uni.__log__) {
      uni.__log__(type, filename, ...args);
    } else {
      console[type].apply(console, [...args, filename]);
    }
  }
  var VD_SYNC = "vdSync";
  var APP_SERVICE_ID = "__uniapp__service";
  var ON_WEBVIEW_READY = "onWebviewReady";
  var ACTION_TYPE_DICT = 0;
  var WEBVIEW_INSERTED = "webviewInserted";
  var WEBVIEW_REMOVED = "webviewRemoved";
  var API_SET_LOCALE = "setLocale";
  var UniViewJSBridge$1 = /* @__PURE__ */ extend(ViewJSBridge, {
    publishHandler
  });
  function publishHandler(event) {
    var args = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    var pageId = getCurrentPageId() + "";
    var webview2 = plus.webview;
    webview2.postMessageToUniNView({
      type: "subscribeHandler",
      args: {
        type: event,
        data: args,
        pageId
      }
    }, APP_SERVICE_ID);
  }
  function formatApiArgs(args, options) {
    args[0];
    {
      return;
    }
  }
  function beforeInvokeApi(name, args, protocol, options) {
    var errMsg = formatApiArgs(args);
    if (errMsg) {
      return errMsg;
    }
  }
  function wrapperSyncApi(name, fn, protocol, options) {
    return function() {
      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }
      var errMsg = beforeInvokeApi(name, args);
      if (errMsg) {
        throw new Error(errMsg);
      }
      return fn.apply(null, args);
    };
  }
  function defineSyncApi(name, fn, protocol, options) {
    return wrapperSyncApi(name, fn);
  }
  function getBaseSystemInfo() {
    if (typeof __SYSTEM_INFO__ !== "undefined") {
      return window.__SYSTEM_INFO__;
    }
    return {
      platform: "harmonyos",
      pixelRatio: vp2px(1),
      windowWidth: lpx2px(720)
      // TODO designWidth可配置
    };
  }
  var common = {};
  (function(exports) {
    var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined";
    function _has2(obj, key2) {
      return Object.prototype.hasOwnProperty.call(obj, key2);
    }
    exports.assign = function(obj) {
      var sources = Array.prototype.slice.call(arguments, 1);
      while (sources.length) {
        var source = sources.shift();
        if (!source) {
          continue;
        }
        if (typeof source !== "object") {
          throw new TypeError(source + "must be non-object");
        }
        for (var p2 in source) {
          if (_has2(source, p2)) {
            obj[p2] = source[p2];
          }
        }
      }
      return obj;
    };
    exports.shrinkBuf = function(buf, size2) {
      if (buf.length === size2) {
        return buf;
      }
      if (buf.subarray) {
        return buf.subarray(0, size2);
      }
      buf.length = size2;
      return buf;
    };
    var fnTyped = {
      arraySet: function(dest, src, src_offs, len, dest_offs) {
        if (src.subarray && dest.subarray) {
          dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
          return;
        }
        for (var i2 = 0; i2 < len; i2++) {
          dest[dest_offs + i2] = src[src_offs + i2];
        }
      },
      // Join array of chunks to single array.
      flattenChunks: function(chunks) {
        var i2, l, len, pos, chunk, result;
        len = 0;
        for (i2 = 0, l = chunks.length; i2 < l; i2++) {
          len += chunks[i2].length;
        }
        result = new Uint8Array(len);
        pos = 0;
        for (i2 = 0, l = chunks.length; i2 < l; i2++) {
          chunk = chunks[i2];
          result.set(chunk, pos);
          pos += chunk.length;
        }
        return result;
      }
    };
    var fnUntyped = {
      arraySet: function(dest, src, src_offs, len, dest_offs) {
        for (var i2 = 0; i2 < len; i2++) {
          dest[dest_offs + i2] = src[src_offs + i2];
        }
      },
      // Join array of chunks to single array.
      flattenChunks: function(chunks) {
        return [].concat.apply([], chunks);
      }
    };
    exports.setTyped = function(on) {
      if (on) {
        exports.Buf8 = Uint8Array;
        exports.Buf16 = Uint16Array;
        exports.Buf32 = Int32Array;
        exports.assign(exports, fnTyped);
      } else {
        exports.Buf8 = Array;
        exports.Buf16 = Array;
        exports.Buf32 = Array;
        exports.assign(exports, fnUntyped);
      }
    };
    exports.setTyped(TYPED_OK);
  })(common);
  var deflate$4 = {};
  var deflate$3 = {};
  var trees$1 = {};
  var utils$6 = common;
  var Z_FIXED$1 = 4;
  var Z_BINARY = 0;
  var Z_TEXT = 1;
  var Z_UNKNOWN$1 = 2;
  function zero$1(buf) {
    var len = buf.length;
    while (--len >= 0) {
      buf[len] = 0;
    }
  }
  var STORED_BLOCK = 0;
  var STATIC_TREES = 1;
  var DYN_TREES = 2;
  var MIN_MATCH$1 = 3;
  var MAX_MATCH$1 = 258;
  var LENGTH_CODES$1 = 29;
  var LITERALS$1 = 256;
  var L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;
  var D_CODES$1 = 30;
  var BL_CODES$1 = 19;
  var HEAP_SIZE$1 = 2 * L_CODES$1 + 1;
  var MAX_BITS$1 = 15;
  var Buf_size = 16;
  var MAX_BL_BITS = 7;
  var END_BLOCK = 256;
  var REP_3_6 = 16;
  var REPZ_3_10 = 17;
  var REPZ_11_138 = 18;
  var extra_lbits = (
    /* extra bits for each length code */
    [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]
  );
  var extra_dbits = (
    /* extra bits for each distance code */
    [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]
  );
  var extra_blbits = (
    /* extra bits for each bit length code */
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
  );
  var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
  var DIST_CODE_LEN = 512;
  var static_ltree = new Array((L_CODES$1 + 2) * 2);
  zero$1(static_ltree);
  var static_dtree = new Array(D_CODES$1 * 2);
  zero$1(static_dtree);
  var _dist_code = new Array(DIST_CODE_LEN);
  zero$1(_dist_code);
  var _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1);
  zero$1(_length_code);
  var base_length = new Array(LENGTH_CODES$1);
  zero$1(base_length);
  var base_dist = new Array(D_CODES$1);
  zero$1(base_dist);
  function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
    this.static_tree = static_tree;
    this.extra_bits = extra_bits;
    this.extra_base = extra_base;
    this.elems = elems;
    this.max_length = max_length;
    this.has_stree = static_tree && static_tree.length;
  }
  var static_l_desc;
  var static_d_desc;
  var static_bl_desc;
  function TreeDesc(dyn_tree, stat_desc) {
    this.dyn_tree = dyn_tree;
    this.max_code = 0;
    this.stat_desc = stat_desc;
  }
  function d_code(dist) {
    return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
  }
  function put_short(s, w) {
    s.pending_buf[s.pending++] = w & 255;
    s.pending_buf[s.pending++] = w >>> 8 & 255;
  }
  function send_bits(s, value, length) {
    if (s.bi_valid > Buf_size - length) {
      s.bi_buf |= value << s.bi_valid & 65535;
      put_short(s, s.bi_buf);
      s.bi_buf = value >> Buf_size - s.bi_valid;
      s.bi_valid += length - Buf_size;
    } else {
      s.bi_buf |= value << s.bi_valid & 65535;
      s.bi_valid += length;
    }
  }
  function send_code(s, c2, tree) {
    send_bits(
      s,
      tree[c2 * 2],
      tree[c2 * 2 + 1]
      /*.Len*/
    );
  }
  function bi_reverse(code, len) {
    var res = 0;
    do {
      res |= code & 1;
      code >>>= 1;
      res <<= 1;
    } while (--len > 0);
    return res >>> 1;
  }
  function bi_flush(s) {
    if (s.bi_valid === 16) {
      put_short(s, s.bi_buf);
      s.bi_buf = 0;
      s.bi_valid = 0;
    } else if (s.bi_valid >= 8) {
      s.pending_buf[s.pending++] = s.bi_buf & 255;
      s.bi_buf >>= 8;
      s.bi_valid -= 8;
    }
  }
  function gen_bitlen(s, desc) {
    var tree = desc.dyn_tree;
    var max_code = desc.max_code;
    var stree = desc.stat_desc.static_tree;
    var has_stree = desc.stat_desc.has_stree;
    var extra = desc.stat_desc.extra_bits;
    var base = desc.stat_desc.extra_base;
    var max_length = desc.stat_desc.max_length;
    var h2;
    var n, m;
    var bits;
    var xbits;
    var f2;
    var overflow = 0;
    for (bits = 0; bits <= MAX_BITS$1; bits++) {
      s.bl_count[bits] = 0;
    }
    tree[s.heap[s.heap_max] * 2 + 1] = 0;
    for (h2 = s.heap_max + 1; h2 < HEAP_SIZE$1; h2++) {
      n = s.heap[h2];
      bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
      if (bits > max_length) {
        bits = max_length;
        overflow++;
      }
      tree[n * 2 + 1] = bits;
      if (n > max_code) {
        continue;
      }
      s.bl_count[bits]++;
      xbits = 0;
      if (n >= base) {
        xbits = extra[n - base];
      }
      f2 = tree[n * 2];
      s.opt_len += f2 * (bits + xbits);
      if (has_stree) {
        s.static_len += f2 * (stree[n * 2 + 1] + xbits);
      }
    }
    if (overflow === 0) {
      return;
    }
    do {
      bits = max_length - 1;
      while (s.bl_count[bits] === 0) {
        bits--;
      }
      s.bl_count[bits]--;
      s.bl_count[bits + 1] += 2;
      s.bl_count[max_length]--;
      overflow -= 2;
    } while (overflow > 0);
    for (bits = max_length; bits !== 0; bits--) {
      n = s.bl_count[bits];
      while (n !== 0) {
        m = s.heap[--h2];
        if (m > max_code) {
          continue;
        }
        if (tree[m * 2 + 1] !== bits) {
          s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
          tree[m * 2 + 1] = bits;
        }
        n--;
      }
    }
  }
  function gen_codes(tree, max_code, bl_count) {
    var next_code = new Array(MAX_BITS$1 + 1);
    var code = 0;
    var bits;
    var n;
    for (bits = 1; bits <= MAX_BITS$1; bits++) {
      next_code[bits] = code = code + bl_count[bits - 1] << 1;
    }
    for (n = 0; n <= max_code; n++) {
      var len = tree[n * 2 + 1];
      if (len === 0) {
        continue;
      }
      tree[n * 2] = bi_reverse(next_code[len]++, len);
    }
  }
  function tr_static_init() {
    var n;
    var bits;
    var length;
    var code;
    var dist;
    var bl_count = new Array(MAX_BITS$1 + 1);
    length = 0;
    for (code = 0; code < LENGTH_CODES$1 - 1; code++) {
      base_length[code] = length;
      for (n = 0; n < 1 << extra_lbits[code]; n++) {
        _length_code[length++] = code;
      }
    }
    _length_code[length - 1] = code;
    dist = 0;
    for (code = 0; code < 16; code++) {
      base_dist[code] = dist;
      for (n = 0; n < 1 << extra_dbits[code]; n++) {
        _dist_code[dist++] = code;
      }
    }
    dist >>= 7;
    for (; code < D_CODES$1; code++) {
      base_dist[code] = dist << 7;
      for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
        _dist_code[256 + dist++] = code;
      }
    }
    for (bits = 0; bits <= MAX_BITS$1; bits++) {
      bl_count[bits] = 0;
    }
    n = 0;
    while (n <= 143) {
      static_ltree[n * 2 + 1] = 8;
      n++;
      bl_count[8]++;
    }
    while (n <= 255) {
      static_ltree[n * 2 + 1] = 9;
      n++;
      bl_count[9]++;
    }
    while (n <= 279) {
      static_ltree[n * 2 + 1] = 7;
      n++;
      bl_count[7]++;
    }
    while (n <= 287) {
      static_ltree[n * 2 + 1] = 8;
      n++;
      bl_count[8]++;
    }
    gen_codes(static_ltree, L_CODES$1 + 1, bl_count);
    for (n = 0; n < D_CODES$1; n++) {
      static_dtree[n * 2 + 1] = 5;
      static_dtree[n * 2] = bi_reverse(n, 5);
    }
    static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1);
    static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1);
    static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS);
  }
  function init_block(s) {
    var n;
    for (n = 0; n < L_CODES$1; n++) {
      s.dyn_ltree[n * 2] = 0;
    }
    for (n = 0; n < D_CODES$1; n++) {
      s.dyn_dtree[n * 2] = 0;
    }
    for (n = 0; n < BL_CODES$1; n++) {
      s.bl_tree[n * 2] = 0;
    }
    s.dyn_ltree[END_BLOCK * 2] = 1;
    s.opt_len = s.static_len = 0;
    s.last_lit = s.matches = 0;
  }
  function bi_windup(s) {
    if (s.bi_valid > 8) {
      put_short(s, s.bi_buf);
    } else if (s.bi_valid > 0) {
      s.pending_buf[s.pending++] = s.bi_buf;
    }
    s.bi_buf = 0;
    s.bi_valid = 0;
  }
  function copy_block(s, buf, len, header) {
    bi_windup(s);
    {
      put_short(s, len);
      put_short(s, ~len);
    }
    utils$6.arraySet(s.pending_buf, s.window, buf, len, s.pending);
    s.pending += len;
  }
  function smaller(tree, n, m, depth) {
    var _n2 = n * 2;
    var _m2 = m * 2;
    return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
  }
  function pqdownheap(s, tree, k) {
    var v2 = s.heap[k];
    var j = k << 1;
    while (j <= s.heap_len) {
      if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
        j++;
      }
      if (smaller(tree, v2, s.heap[j], s.depth)) {
        break;
      }
      s.heap[k] = s.heap[j];
      k = j;
      j <<= 1;
    }
    s.heap[k] = v2;
  }
  function compress_block(s, ltree, dtree) {
    var dist;
    var lc;
    var lx = 0;
    var code;
    var extra;
    if (s.last_lit !== 0) {
      do {
        dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];
        lc = s.pending_buf[s.l_buf + lx];
        lx++;
        if (dist === 0) {
          send_code(s, lc, ltree);
        } else {
          code = _length_code[lc];
          send_code(s, code + LITERALS$1 + 1, ltree);
          extra = extra_lbits[code];
          if (extra !== 0) {
            lc -= base_length[code];
            send_bits(s, lc, extra);
          }
          dist--;
          code = d_code(dist);
          send_code(s, code, dtree);
          extra = extra_dbits[code];
          if (extra !== 0) {
            dist -= base_dist[code];
            send_bits(s, dist, extra);
          }
        }
      } while (lx < s.last_lit);
    }
    send_code(s, END_BLOCK, ltree);
  }
  function build_tree(s, desc) {
    var tree = desc.dyn_tree;
    var stree = desc.stat_desc.static_tree;
    var has_stree = desc.stat_desc.has_stree;
    var elems = desc.stat_desc.elems;
    var n, m;
    var max_code = -1;
    var node;
    s.heap_len = 0;
    s.heap_max = HEAP_SIZE$1;
    for (n = 0; n < elems; n++) {
      if (tree[n * 2] !== 0) {
        s.heap[++s.heap_len] = max_code = n;
        s.depth[n] = 0;
      } else {
        tree[n * 2 + 1] = 0;
      }
    }
    while (s.heap_len < 2) {
      node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
      tree[node * 2] = 1;
      s.depth[node] = 0;
      s.opt_len--;
      if (has_stree) {
        s.static_len -= stree[node * 2 + 1];
      }
    }
    desc.max_code = max_code;
    for (n = s.heap_len >> 1; n >= 1; n--) {
      pqdownheap(s, tree, n);
    }
    node = elems;
    do {
      n = s.heap[
        1
        /*SMALLEST*/
      ];
      s.heap[
        1
        /*SMALLEST*/
      ] = s.heap[s.heap_len--];
      pqdownheap(
        s,
        tree,
        1
        /*SMALLEST*/
      );
      m = s.heap[
        1
        /*SMALLEST*/
      ];
      s.heap[--s.heap_max] = n;
      s.heap[--s.heap_max] = m;
      tree[node * 2] = tree[n * 2] + tree[m * 2];
      s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
      tree[n * 2 + 1] = tree[m * 2 + 1] = node;
      s.heap[
        1
        /*SMALLEST*/
      ] = node++;
      pqdownheap(
        s,
        tree,
        1
        /*SMALLEST*/
      );
    } while (s.heap_len >= 2);
    s.heap[--s.heap_max] = s.heap[
      1
      /*SMALLEST*/
    ];
    gen_bitlen(s, desc);
    gen_codes(tree, max_code, s.bl_count);
  }
  function scan_tree(s, tree, max_code) {
    var n;
    var prevlen = -1;
    var curlen;
    var nextlen = tree[0 * 2 + 1];
    var count = 0;
    var max_count = 7;
    var min_count = 4;
    if (nextlen === 0) {
      max_count = 138;
      min_count = 3;
    }
    tree[(max_code + 1) * 2 + 1] = 65535;
    for (n = 0; n <= max_code; n++) {
      curlen = nextlen;
      nextlen = tree[(n + 1) * 2 + 1];
      if (++count < max_count && curlen === nextlen) {
        continue;
      } else if (count < min_count) {
        s.bl_tree[curlen * 2] += count;
      } else if (curlen !== 0) {
        if (curlen !== prevlen) {
          s.bl_tree[curlen * 2]++;
        }
        s.bl_tree[REP_3_6 * 2]++;
      } else if (count <= 10) {
        s.bl_tree[REPZ_3_10 * 2]++;
      } else {
        s.bl_tree[REPZ_11_138 * 2]++;
      }
      count = 0;
      prevlen = curlen;
      if (nextlen === 0) {
        max_count = 138;
        min_count = 3;
      } else if (curlen === nextlen) {
        max_count = 6;
        min_count = 3;
      } else {
        max_count = 7;
        min_count = 4;
      }
    }
  }
  function send_tree(s, tree, max_code) {
    var n;
    var prevlen = -1;
    var curlen;
    var nextlen = tree[0 * 2 + 1];
    var count = 0;
    var max_count = 7;
    var min_count = 4;
    if (nextlen === 0) {
      max_count = 138;
      min_count = 3;
    }
    for (n = 0; n <= max_code; n++) {
      curlen = nextlen;
      nextlen = tree[(n + 1) * 2 + 1];
      if (++count < max_count && curlen === nextlen) {
        continue;
      } else if (count < min_count) {
        do {
          send_code(s, curlen, s.bl_tree);
        } while (--count !== 0);
      } else if (curlen !== 0) {
        if (curlen !== prevlen) {
          send_code(s, curlen, s.bl_tree);
          count--;
        }
        send_code(s, REP_3_6, s.bl_tree);
        send_bits(s, count - 3, 2);
      } else if (count <= 10) {
        send_code(s, REPZ_3_10, s.bl_tree);
        send_bits(s, count - 3, 3);
      } else {
        send_code(s, REPZ_11_138, s.bl_tree);
        send_bits(s, count - 11, 7);
      }
      count = 0;
      prevlen = curlen;
      if (nextlen === 0) {
        max_count = 138;
        min_count = 3;
      } else if (curlen === nextlen) {
        max_count = 6;
        min_count = 3;
      } else {
        max_count = 7;
        min_count = 4;
      }
    }
  }
  function build_bl_tree(s) {
    var max_blindex;
    scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
    scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
    build_tree(s, s.bl_desc);
    for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) {
      if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) {
        break;
      }
    }
    s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
    return max_blindex;
  }
  function send_all_trees(s, lcodes, dcodes, blcodes) {
    var rank2;
    send_bits(s, lcodes - 257, 5);
    send_bits(s, dcodes - 1, 5);
    send_bits(s, blcodes - 4, 4);
    for (rank2 = 0; rank2 < blcodes; rank2++) {
      send_bits(s, s.bl_tree[bl_order[rank2] * 2 + 1], 3);
    }
    send_tree(s, s.dyn_ltree, lcodes - 1);
    send_tree(s, s.dyn_dtree, dcodes - 1);
  }
  function detect_data_type(s) {
    var black_mask = 4093624447;
    var n;
    for (n = 0; n <= 31; n++, black_mask >>>= 1) {
      if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) {
        return Z_BINARY;
      }
    }
    if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) {
      return Z_TEXT;
    }
    for (n = 32; n < LITERALS$1; n++) {
      if (s.dyn_ltree[n * 2] !== 0) {
        return Z_TEXT;
      }
    }
    return Z_BINARY;
  }
  var static_init_done = false;
  function _tr_init(s) {
    if (!static_init_done) {
      tr_static_init();
      static_init_done = true;
    }
    s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
    s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
    s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
    s.bi_buf = 0;
    s.bi_valid = 0;
    init_block(s);
  }
  function _tr_stored_block(s, buf, stored_len, last) {
    send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
    copy_block(s, buf, stored_len);
  }
  function _tr_align(s) {
    send_bits(s, STATIC_TREES << 1, 3);
    send_code(s, END_BLOCK, static_ltree);
    bi_flush(s);
  }
  function _tr_flush_block(s, buf, stored_len, last) {
    var opt_lenb, static_lenb;
    var max_blindex = 0;
    if (s.level > 0) {
      if (s.strm.data_type === Z_UNKNOWN$1) {
        s.strm.data_type = detect_data_type(s);
      }
      build_tree(s, s.l_desc);
      build_tree(s, s.d_desc);
      max_blindex = build_bl_tree(s);
      opt_lenb = s.opt_len + 3 + 7 >>> 3;
      static_lenb = s.static_len + 3 + 7 >>> 3;
      if (static_lenb <= opt_lenb) {
        opt_lenb = static_lenb;
      }
    } else {
      opt_lenb = static_lenb = stored_len + 5;
    }
    if (stored_len + 4 <= opt_lenb && buf !== -1) {
      _tr_stored_block(s, buf, stored_len, last);
    } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) {
      send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
      compress_block(s, static_ltree, static_dtree);
    } else {
      send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
      send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
      compress_block(s, s.dyn_ltree, s.dyn_dtree);
    }
    init_block(s);
    if (last) {
      bi_windup(s);
    }
  }
  function _tr_tally(s, dist, lc) {
    s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255;
    s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255;
    s.pending_buf[s.l_buf + s.last_lit] = lc & 255;
    s.last_lit++;
    if (dist === 0) {
      s.dyn_ltree[lc * 2]++;
    } else {
      s.matches++;
      dist--;
      s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]++;
      s.dyn_dtree[d_code(dist) * 2]++;
    }
    return s.last_lit === s.lit_bufsize - 1;
  }
  trees$1._tr_init = _tr_init;
  trees$1._tr_stored_block = _tr_stored_block;
  trees$1._tr_flush_block = _tr_flush_block;
  trees$1._tr_tally = _tr_tally;
  trees$1._tr_align = _tr_align;
  function adler32$2(adler, buf, len, pos) {
    var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
    while (len !== 0) {
      n = len > 2e3 ? 2e3 : len;
      len -= n;
      do {
        s1 = s1 + buf[pos++] | 0;
        s2 = s2 + s1 | 0;
      } while (--n);
      s1 %= 65521;
      s2 %= 65521;
    }
    return s1 | s2 << 16 | 0;
  }
  var adler32_1 = adler32$2;
  function makeTable() {
    var c2, table = [];
    for (var n = 0; n < 256; n++) {
      c2 = n;
      for (var k = 0; k < 8; k++) {
        c2 = c2 & 1 ? 3988292384 ^ c2 >>> 1 : c2 >>> 1;
      }
      table[n] = c2;
    }
    return table;
  }
  var crcTable = makeTable();
  function crc32$2(crc, buf, len, pos) {
    var t2 = crcTable, end = pos + len;
    crc ^= -1;
    for (var i2 = pos; i2 < end; i2++) {
      crc = crc >>> 8 ^ t2[(crc ^ buf[i2]) & 255];
    }
    return crc ^ -1;
  }
  var crc32_1 = crc32$2;
  var messages = {
    2: "need dictionary",
    /* Z_NEED_DICT       2  */
    1: "stream end",
    /* Z_STREAM_END      1  */
    0: "",
    /* Z_OK              0  */
    "-1": "file error",
    /* Z_ERRNO         (-1) */
    "-2": "stream error",
    /* Z_STREAM_ERROR  (-2) */
    "-3": "data error",
    /* Z_DATA_ERROR    (-3) */
    "-4": "insufficient memory",
    /* Z_MEM_ERROR     (-4) */
    "-5": "buffer error",
    /* Z_BUF_ERROR     (-5) */
    "-6": "incompatible version"
    /* Z_VERSION_ERROR (-6) */
  };
  var utils$5 = common;
  var trees = trees$1;
  var adler32$1 = adler32_1;
  var crc32$1 = crc32_1;
  var msg$2 = messages;
  var Z_NO_FLUSH$1 = 0;
  var Z_PARTIAL_FLUSH = 1;
  var Z_FULL_FLUSH = 3;
  var Z_FINISH$2 = 4;
  var Z_BLOCK$1 = 5;
  var Z_OK$2 = 0;
  var Z_STREAM_END$2 = 1;
  var Z_STREAM_ERROR$1 = -2;
  var Z_DATA_ERROR$1 = -3;
  var Z_BUF_ERROR$1 = -5;
  var Z_DEFAULT_COMPRESSION$1 = -1;
  var Z_FILTERED = 1;
  var Z_HUFFMAN_ONLY = 2;
  var Z_RLE = 3;
  var Z_FIXED = 4;
  var Z_DEFAULT_STRATEGY$1 = 0;
  var Z_UNKNOWN = 2;
  var Z_DEFLATED$2 = 8;
  var MAX_MEM_LEVEL = 9;
  var MAX_WBITS$1 = 15;
  var DEF_MEM_LEVEL = 8;
  var LENGTH_CODES = 29;
  var LITERALS = 256;
  var L_CODES = LITERALS + 1 + LENGTH_CODES;
  var D_CODES = 30;
  var BL_CODES = 19;
  var HEAP_SIZE = 2 * L_CODES + 1;
  var MAX_BITS = 15;
  var MIN_MATCH = 3;
  var MAX_MATCH = 258;
  var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
  var PRESET_DICT = 32;
  var INIT_STATE = 42;
  var EXTRA_STATE = 69;
  var NAME_STATE = 73;
  var COMMENT_STATE = 91;
  var HCRC_STATE = 103;
  var BUSY_STATE = 113;
  var FINISH_STATE = 666;
  var BS_NEED_MORE = 1;
  var BS_BLOCK_DONE = 2;
  var BS_FINISH_STARTED = 3;
  var BS_FINISH_DONE = 4;
  var OS_CODE = 3;
  function err(strm, errorCode) {
    strm.msg = msg$2[errorCode];
    return errorCode;
  }
  function rank(f2) {
    return (f2 << 1) - (f2 > 4 ? 9 : 0);
  }
  function zero(buf) {
    var len = buf.length;
    while (--len >= 0) {
      buf[len] = 0;
    }
  }
  function flush_pending(strm) {
    var s = strm.state;
    var len = s.pending;
    if (len > strm.avail_out) {
      len = strm.avail_out;
    }
    if (len === 0) {
      return;
    }
    utils$5.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
    strm.next_out += len;
    s.pending_out += len;
    strm.total_out += len;
    strm.avail_out -= len;
    s.pending -= len;
    if (s.pending === 0) {
      s.pending_out = 0;
    }
  }
  function flush_block_only(s, last) {
    trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
    s.block_start = s.strstart;
    flush_pending(s.strm);
  }
  function put_byte(s, b) {
    s.pending_buf[s.pending++] = b;
  }
  function putShortMSB(s, b) {
    s.pending_buf[s.pending++] = b >>> 8 & 255;
    s.pending_buf[s.pending++] = b & 255;
  }
  function read_buf(strm, buf, start, size2) {
    var len = strm.avail_in;
    if (len > size2) {
      len = size2;
    }
    if (len === 0) {
      return 0;
    }
    strm.avail_in -= len;
    utils$5.arraySet(buf, strm.input, strm.next_in, len, start);
    if (strm.state.wrap === 1) {
      strm.adler = adler32$1(strm.adler, buf, len, start);
    } else if (strm.state.wrap === 2) {
      strm.adler = crc32$1(strm.adler, buf, len, start);
    }
    strm.next_in += len;
    strm.total_in += len;
    return len;
  }
  function longest_match(s, cur_match) {
    var chain_length = s.max_chain_length;
    var scan = s.strstart;
    var match;
    var len;
    var best_len = s.prev_length;
    var nice_match = s.nice_match;
    var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
    var _win = s.window;
    var wmask = s.w_mask;
    var prev = s.prev;
    var strend = s.strstart + MAX_MATCH;
    var scan_end1 = _win[scan + best_len - 1];
    var scan_end = _win[scan + best_len];
    if (s.prev_length >= s.good_match) {
      chain_length >>= 2;
    }
    if (nice_match > s.lookahead) {
      nice_match = s.lookahead;
    }
    do {
      match = cur_match;
      if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {
        continue;
      }
      scan += 2;
      match++;
      do {
      } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);
      len = MAX_MATCH - (strend - scan);
      scan = strend - MAX_MATCH;
      if (len > best_len) {
        s.match_start = cur_match;
        best_len = len;
        if (len >= nice_match) {
          break;
        }
        scan_end1 = _win[scan + best_len - 1];
        scan_end = _win[scan + best_len];
      }
    } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
    if (best_len <= s.lookahead) {
      return best_len;
    }
    return s.lookahead;
  }
  function fill_window(s) {
    var _w_size = s.w_size;
    var p2, n, m, more, str;
    do {
      more = s.window_size - s.lookahead - s.strstart;
      if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
        utils$5.arraySet(s.window, s.window, _w_size, _w_size, 0);
        s.match_start -= _w_size;
        s.strstart -= _w_size;
        s.block_start -= _w_size;
        n = s.hash_size;
        p2 = n;
        do {
          m = s.head[--p2];
          s.head[p2] = m >= _w_size ? m - _w_size : 0;
        } while (--n);
        n = _w_size;
        p2 = n;
        do {
          m = s.prev[--p2];
          s.prev[p2] = m >= _w_size ? m - _w_size : 0;
        } while (--n);
        more += _w_size;
      }
      if (s.strm.avail_in === 0) {
        break;
      }
      n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
      s.lookahead += n;
      if (s.lookahead + s.insert >= MIN_MATCH) {
        str = s.strstart - s.insert;
        s.ins_h = s.window[str];
        s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask;
        while (s.insert) {
          s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
          s.prev[str & s.w_mask] = s.head[s.ins_h];
          s.head[s.ins_h] = str;
          str++;
          s.insert--;
          if (s.lookahead + s.insert < MIN_MATCH) {
            break;
          }
        }
      }
    } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
  }
  function deflate_stored(s, flush) {
    var max_block_size = 65535;
    if (max_block_size > s.pending_buf_size - 5) {
      max_block_size = s.pending_buf_size - 5;
    }
    for (; ; ) {
      if (s.lookahead <= 1) {
        fill_window(s);
        if (s.lookahead === 0 && flush === Z_NO_FLUSH$1) {
          return BS_NEED_MORE;
        }
        if (s.lookahead === 0) {
          break;
        }
      }
      s.strstart += s.lookahead;
      s.lookahead = 0;
      var max_start = s.block_start + max_block_size;
      if (s.strstart === 0 || s.strstart >= max_start) {
        s.lookahead = s.strstart - max_start;
        s.strstart = max_start;
        flush_block_only(s, false);
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      }
      if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {
        flush_block_only(s, false);
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      }
    }
    s.insert = 0;
    if (flush === Z_FINISH$2) {
      flush_block_only(s, true);
      if (s.strm.avail_out === 0) {
        return BS_FINISH_STARTED;
      }
      return BS_FINISH_DONE;
    }
    if (s.strstart > s.block_start) {
      flush_block_only(s, false);
      if (s.strm.avail_out === 0) {
        return BS_NEED_MORE;
      }
    }
    return BS_NEED_MORE;
  }
  function deflate_fast(s, flush) {
    var hash_head;
    var bflush;
    for (; ; ) {
      if (s.lookahead < MIN_LOOKAHEAD) {
        fill_window(s);
        if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {
          return BS_NEED_MORE;
        }
        if (s.lookahead === 0) {
          break;
        }
      }
      hash_head = 0;
      if (s.lookahead >= MIN_MATCH) {
        s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
        hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
        s.head[s.ins_h] = s.strstart;
      }
      if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
        s.match_length = longest_match(s, hash_head);
      }
      if (s.match_length >= MIN_MATCH) {
        bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
        s.lookahead -= s.match_length;
        if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
          s.match_length--;
          do {
            s.strstart++;
            s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
            hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
            s.head[s.ins_h] = s.strstart;
          } while (--s.match_length !== 0);
          s.strstart++;
        } else {
          s.strstart += s.match_length;
          s.match_length = 0;
          s.ins_h = s.window[s.strstart];
          s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask;
        }
      } else {
        bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
        s.lookahead--;
        s.strstart++;
      }
      if (bflush) {
        flush_block_only(s, false);
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      }
    }
    s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
    if (flush === Z_FINISH$2) {
      flush_block_only(s, true);
      if (s.strm.avail_out === 0) {
        return BS_FINISH_STARTED;
      }
      return BS_FINISH_DONE;
    }
    if (s.last_lit) {
      flush_block_only(s, false);
      if (s.strm.avail_out === 0) {
        return BS_NEED_MORE;
      }
    }
    return BS_BLOCK_DONE;
  }
  function deflate_slow(s, flush) {
    var hash_head;
    var bflush;
    var max_insert;
    for (; ; ) {
      if (s.lookahead < MIN_LOOKAHEAD) {
        fill_window(s);
        if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$1) {
          return BS_NEED_MORE;
        }
        if (s.lookahead === 0) {
          break;
        }
      }
      hash_head = 0;
      if (s.lookahead >= MIN_MATCH) {
        s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
        hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
        s.head[s.ins_h] = s.strstart;
      }
      s.prev_length = s.match_length;
      s.prev_match = s.match_start;
      s.match_length = MIN_MATCH - 1;
      if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
        s.match_length = longest_match(s, hash_head);
        if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) {
          s.match_length = MIN_MATCH - 1;
        }
      }
      if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
        max_insert = s.strstart + s.lookahead - MIN_MATCH;
        bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
        s.lookahead -= s.prev_length - 1;
        s.prev_length -= 2;
        do {
          if (++s.strstart <= max_insert) {
            s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
            hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
            s.head[s.ins_h] = s.strstart;
          }
        } while (--s.prev_length !== 0);
        s.match_available = 0;
        s.match_length = MIN_MATCH - 1;
        s.strstart++;
        if (bflush) {
          flush_block_only(s, false);
          if (s.strm.avail_out === 0) {
            return BS_NEED_MORE;
          }
        }
      } else if (s.match_available) {
        bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
        if (bflush) {
          flush_block_only(s, false);
        }
        s.strstart++;
        s.lookahead--;
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      } else {
        s.match_available = 1;
        s.strstart++;
        s.lookahead--;
      }
    }
    if (s.match_available) {
      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
      s.match_available = 0;
    }
    s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
    if (flush === Z_FINISH$2) {
      flush_block_only(s, true);
      if (s.strm.avail_out === 0) {
        return BS_FINISH_STARTED;
      }
      return BS_FINISH_DONE;
    }
    if (s.last_lit) {
      flush_block_only(s, false);
      if (s.strm.avail_out === 0) {
        return BS_NEED_MORE;
      }
    }
    return BS_BLOCK_DONE;
  }
  function deflate_rle(s, flush) {
    var bflush;
    var prev;
    var scan, strend;
    var _win = s.window;
    for (; ; ) {
      if (s.lookahead <= MAX_MATCH) {
        fill_window(s);
        if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$1) {
          return BS_NEED_MORE;
        }
        if (s.lookahead === 0) {
          break;
        }
      }
      s.match_length = 0;
      if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
        scan = s.strstart - 1;
        prev = _win[scan];
        if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
          strend = s.strstart + MAX_MATCH;
          do {
          } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);
          s.match_length = MAX_MATCH - (strend - scan);
          if (s.match_length > s.lookahead) {
            s.match_length = s.lookahead;
          }
        }
      }
      if (s.match_length >= MIN_MATCH) {
        bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
        s.lookahead -= s.match_length;
        s.strstart += s.match_length;
        s.match_length = 0;
      } else {
        bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
        s.lookahead--;
        s.strstart++;
      }
      if (bflush) {
        flush_block_only(s, false);
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      }
    }
    s.insert = 0;
    if (flush === Z_FINISH$2) {
      flush_block_only(s, true);
      if (s.strm.avail_out === 0) {
        return BS_FINISH_STARTED;
      }
      return BS_FINISH_DONE;
    }
    if (s.last_lit) {
      flush_block_only(s, false);
      if (s.strm.avail_out === 0) {
        return BS_NEED_MORE;
      }
    }
    return BS_BLOCK_DONE;
  }
  function deflate_huff(s, flush) {
    var bflush;
    for (; ; ) {
      if (s.lookahead === 0) {
        fill_window(s);
        if (s.lookahead === 0) {
          if (flush === Z_NO_FLUSH$1) {
            return BS_NEED_MORE;
          }
          break;
        }
      }
      s.match_length = 0;
      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
      s.lookahead--;
      s.strstart++;
      if (bflush) {
        flush_block_only(s, false);
        if (s.strm.avail_out === 0) {
          return BS_NEED_MORE;
        }
      }
    }
    s.insert = 0;
    if (flush === Z_FINISH$2) {
      flush_block_only(s, true);
      if (s.strm.avail_out === 0) {
        return BS_FINISH_STARTED;
      }
      return BS_FINISH_DONE;
    }
    if (s.last_lit) {
      flush_block_only(s, false);
      if (s.strm.avail_out === 0) {
        return BS_NEED_MORE;
      }
    }
    return BS_BLOCK_DONE;
  }
  function Config(good_length, max_lazy, nice_length, max_chain, func) {
    this.good_length = good_length;
    this.max_lazy = max_lazy;
    this.nice_length = nice_length;
    this.max_chain = max_chain;
    this.func = func;
  }
  var configuration_table;
  configuration_table = [
    /*      good lazy nice chain */
    new Config(0, 0, 0, 0, deflate_stored),
    /* 0 store only */
    new Config(4, 4, 8, 4, deflate_fast),
    /* 1 max speed, no lazy matches */
    new Config(4, 5, 16, 8, deflate_fast),
    /* 2 */
    new Config(4, 6, 32, 32, deflate_fast),
    /* 3 */
    new Config(4, 4, 16, 16, deflate_slow),
    /* 4 lazy matches */
    new Config(8, 16, 32, 32, deflate_slow),
    /* 5 */
    new Config(8, 16, 128, 128, deflate_slow),
    /* 6 */
    new Config(8, 32, 128, 256, deflate_slow),
    /* 7 */
    new Config(32, 128, 258, 1024, deflate_slow),
    /* 8 */
    new Config(32, 258, 258, 4096, deflate_slow)
    /* 9 max compression */
  ];
  function lm_init(s) {
    s.window_size = 2 * s.w_size;
    zero(s.head);
    s.max_lazy_match = configuration_table[s.level].max_lazy;
    s.good_match = configuration_table[s.level].good_length;
    s.nice_match = configuration_table[s.level].nice_length;
    s.max_chain_length = configuration_table[s.level].max_chain;
    s.strstart = 0;
    s.block_start = 0;
    s.lookahead = 0;
    s.insert = 0;
    s.match_length = s.prev_length = MIN_MATCH - 1;
    s.match_available = 0;
    s.ins_h = 0;
  }
  function DeflateState() {
    this.strm = null;
    this.status = 0;
    this.pending_buf = null;
    this.pending_buf_size = 0;
    this.pending_out = 0;
    this.pending = 0;
    this.wrap = 0;
    this.gzhead = null;
    this.gzindex = 0;
    this.method = Z_DEFLATED$2;
    this.last_flush = -1;
    this.w_size = 0;
    this.w_bits = 0;
    this.w_mask = 0;
    this.window = null;
    this.window_size = 0;
    this.prev = null;
    this.head = null;
    this.ins_h = 0;
    this.hash_size = 0;
    this.hash_bits = 0;
    this.hash_mask = 0;
    this.hash_shift = 0;
    this.block_start = 0;
    this.match_length = 0;
    this.prev_match = 0;
    this.match_available = 0;
    this.strstart = 0;
    this.match_start = 0;
    this.lookahead = 0;
    this.prev_length = 0;
    this.max_chain_length = 0;
    this.max_lazy_match = 0;
    this.level = 0;
    this.strategy = 0;
    this.good_match = 0;
    this.nice_match = 0;
    this.dyn_ltree = new utils$5.Buf16(HEAP_SIZE * 2);
    this.dyn_dtree = new utils$5.Buf16((2 * D_CODES + 1) * 2);
    this.bl_tree = new utils$5.Buf16((2 * BL_CODES + 1) * 2);
    zero(this.dyn_ltree);
    zero(this.dyn_dtree);
    zero(this.bl_tree);
    this.l_desc = null;
    this.d_desc = null;
    this.bl_desc = null;
    this.bl_count = new utils$5.Buf16(MAX_BITS + 1);
    this.heap = new utils$5.Buf16(2 * L_CODES + 1);
    zero(this.heap);
    this.heap_len = 0;
    this.heap_max = 0;
    this.depth = new utils$5.Buf16(2 * L_CODES + 1);
    zero(this.depth);
    this.l_buf = 0;
    this.lit_bufsize = 0;
    this.last_lit = 0;
    this.d_buf = 0;
    this.opt_len = 0;
    this.static_len = 0;
    this.matches = 0;
    this.insert = 0;
    this.bi_buf = 0;
    this.bi_valid = 0;
  }
  function deflateResetKeep(strm) {
    var s;
    if (!strm || !strm.state) {
      return err(strm, Z_STREAM_ERROR$1);
    }
    strm.total_in = strm.total_out = 0;
    strm.data_type = Z_UNKNOWN;
    s = strm.state;
    s.pending = 0;
    s.pending_out = 0;
    if (s.wrap < 0) {
      s.wrap = -s.wrap;
    }
    s.status = s.wrap ? INIT_STATE : BUSY_STATE;
    strm.adler = s.wrap === 2 ? 0 : 1;
    s.last_flush = Z_NO_FLUSH$1;
    trees._tr_init(s);
    return Z_OK$2;
  }
  function deflateReset(strm) {
    var ret = deflateResetKeep(strm);
    if (ret === Z_OK$2) {
      lm_init(strm.state);
    }
    return ret;
  }
  function deflateSetHeader(strm, head) {
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR$1;
    }
    if (strm.state.wrap !== 2) {
      return Z_STREAM_ERROR$1;
    }
    strm.state.gzhead = head;
    return Z_OK$2;
  }
  function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
    if (!strm) {
      return Z_STREAM_ERROR$1;
    }
    var wrap = 1;
    if (level === Z_DEFAULT_COMPRESSION$1) {
      level = 6;
    }
    if (windowBits < 0) {
      wrap = 0;
      windowBits = -windowBits;
    } else if (windowBits > 15) {
      wrap = 2;
      windowBits -= 16;
    }
    if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
      return err(strm, Z_STREAM_ERROR$1);
    }
    if (windowBits === 8) {
      windowBits = 9;
    }
    var s = new DeflateState();
    strm.state = s;
    s.strm = strm;
    s.wrap = wrap;
    s.gzhead = null;
    s.w_bits = windowBits;
    s.w_size = 1 << s.w_bits;
    s.w_mask = s.w_size - 1;
    s.hash_bits = memLevel + 7;
    s.hash_size = 1 << s.hash_bits;
    s.hash_mask = s.hash_size - 1;
    s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
    s.window = new utils$5.Buf8(s.w_size * 2);
    s.head = new utils$5.Buf16(s.hash_size);
    s.prev = new utils$5.Buf16(s.w_size);
    s.lit_bufsize = 1 << memLevel + 6;
    s.pending_buf_size = s.lit_bufsize * 4;
    s.pending_buf = new utils$5.Buf8(s.pending_buf_size);
    s.d_buf = 1 * s.lit_bufsize;
    s.l_buf = (1 + 2) * s.lit_bufsize;
    s.level = level;
    s.strategy = strategy;
    s.method = method;
    return deflateReset(strm);
  }
  function deflateInit(strm, level) {
    return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1);
  }
  function deflate$2(strm, flush) {
    var old_flush, s;
    var beg, val;
    if (!strm || !strm.state || flush > Z_BLOCK$1 || flush < 0) {
      return strm ? err(strm, Z_STREAM_ERROR$1) : Z_STREAM_ERROR$1;
    }
    s = strm.state;
    if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH$2) {
      return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$1);
    }
    s.strm = strm;
    old_flush = s.last_flush;
    s.last_flush = flush;
    if (s.status === INIT_STATE) {
      if (s.wrap === 2) {
        strm.adler = 0;
        put_byte(s, 31);
        put_byte(s, 139);
        put_byte(s, 8);
        if (!s.gzhead) {
          put_byte(s, 0);
          put_byte(s, 0);
          put_byte(s, 0);
          put_byte(s, 0);
          put_byte(s, 0);
          put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
          put_byte(s, OS_CODE);
          s.status = BUSY_STATE;
        } else {
          put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));
          put_byte(s, s.gzhead.time & 255);
          put_byte(s, s.gzhead.time >> 8 & 255);
          put_byte(s, s.gzhead.time >> 16 & 255);
          put_byte(s, s.gzhead.time >> 24 & 255);
          put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
          put_byte(s, s.gzhead.os & 255);
          if (s.gzhead.extra && s.gzhead.extra.length) {
            put_byte(s, s.gzhead.extra.length & 255);
            put_byte(s, s.gzhead.extra.length >> 8 & 255);
          }
          if (s.gzhead.hcrc) {
            strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending, 0);
          }
          s.gzindex = 0;
          s.status = EXTRA_STATE;
        }
      } else {
        var header = Z_DEFLATED$2 + (s.w_bits - 8 << 4) << 8;
        var level_flags = -1;
        if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
          level_flags = 0;
        } else if (s.level < 6) {
          level_flags = 1;
        } else if (s.level === 6) {
          level_flags = 2;
        } else {
          level_flags = 3;
        }
        header |= level_flags << 6;
        if (s.strstart !== 0) {
          header |= PRESET_DICT;
        }
        header += 31 - header % 31;
        s.status = BUSY_STATE;
        putShortMSB(s, header);
        if (s.strstart !== 0) {
          putShortMSB(s, strm.adler >>> 16);
          putShortMSB(s, strm.adler & 65535);
        }
        strm.adler = 1;
      }
    }
    if (s.status === EXTRA_STATE) {
      if (s.gzhead.extra) {
        beg = s.pending;
        while (s.gzindex < (s.gzhead.extra.length & 65535)) {
          if (s.pending === s.pending_buf_size) {
            if (s.gzhead.hcrc && s.pending > beg) {
              strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
            }
            flush_pending(strm);
            beg = s.pending;
            if (s.pending === s.pending_buf_size) {
              break;
            }
          }
          put_byte(s, s.gzhead.extra[s.gzindex] & 255);
          s.gzindex++;
        }
        if (s.gzhead.hcrc && s.pending > beg) {
          strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
        }
        if (s.gzindex === s.gzhead.extra.length) {
          s.gzindex = 0;
          s.status = NAME_STATE;
        }
      } else {
        s.status = NAME_STATE;
      }
    }
    if (s.status === NAME_STATE) {
      if (s.gzhead.name) {
        beg = s.pending;
        do {
          if (s.pending === s.pending_buf_size) {
            if (s.gzhead.hcrc && s.pending > beg) {
              strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
            }
            flush_pending(strm);
            beg = s.pending;
            if (s.pending === s.pending_buf_size) {
              val = 1;
              break;
            }
          }
          if (s.gzindex < s.gzhead.name.length) {
            val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
          } else {
            val = 0;
          }
          put_byte(s, val);
        } while (val !== 0);
        if (s.gzhead.hcrc && s.pending > beg) {
          strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
        }
        if (val === 0) {
          s.gzindex = 0;
          s.status = COMMENT_STATE;
        }
      } else {
        s.status = COMMENT_STATE;
      }
    }
    if (s.status === COMMENT_STATE) {
      if (s.gzhead.comment) {
        beg = s.pending;
        do {
          if (s.pending === s.pending_buf_size) {
            if (s.gzhead.hcrc && s.pending > beg) {
              strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
            }
            flush_pending(strm);
            beg = s.pending;
            if (s.pending === s.pending_buf_size) {
              val = 1;
              break;
            }
          }
          if (s.gzindex < s.gzhead.comment.length) {
            val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
          } else {
            val = 0;
          }
          put_byte(s, val);
        } while (val !== 0);
        if (s.gzhead.hcrc && s.pending > beg) {
          strm.adler = crc32$1(strm.adler, s.pending_buf, s.pending - beg, beg);
        }
        if (val === 0) {
          s.status = HCRC_STATE;
        }
      } else {
        s.status = HCRC_STATE;
      }
    }
    if (s.status === HCRC_STATE) {
      if (s.gzhead.hcrc) {
        if (s.pending + 2 > s.pending_buf_size) {
          flush_pending(strm);
        }
        if (s.pending + 2 <= s.pending_buf_size) {
          put_byte(s, strm.adler & 255);
          put_byte(s, strm.adler >> 8 & 255);
          strm.adler = 0;
          s.status = BUSY_STATE;
        }
      } else {
        s.status = BUSY_STATE;
      }
    }
    if (s.pending !== 0) {
      flush_pending(strm);
      if (strm.avail_out === 0) {
        s.last_flush = -1;
        return Z_OK$2;
      }
    } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH$2) {
      return err(strm, Z_BUF_ERROR$1);
    }
    if (s.status === FINISH_STATE && strm.avail_in !== 0) {
      return err(strm, Z_BUF_ERROR$1);
    }
    if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH$1 && s.status !== FINISH_STATE) {
      var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);
      if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
        s.status = FINISH_STATE;
      }
      if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
        if (strm.avail_out === 0) {
          s.last_flush = -1;
        }
        return Z_OK$2;
      }
      if (bstate === BS_BLOCK_DONE) {
        if (flush === Z_PARTIAL_FLUSH) {
          trees._tr_align(s);
        } else if (flush !== Z_BLOCK$1) {
          trees._tr_stored_block(s, 0, 0, false);
          if (flush === Z_FULL_FLUSH) {
            zero(s.head);
            if (s.lookahead === 0) {
              s.strstart = 0;
              s.block_start = 0;
              s.insert = 0;
            }
          }
        }
        flush_pending(strm);
        if (strm.avail_out === 0) {
          s.last_flush = -1;
          return Z_OK$2;
        }
      }
    }
    if (flush !== Z_FINISH$2) {
      return Z_OK$2;
    }
    if (s.wrap <= 0) {
      return Z_STREAM_END$2;
    }
    if (s.wrap === 2) {
      put_byte(s, strm.adler & 255);
      put_byte(s, strm.adler >> 8 & 255);
      put_byte(s, strm.adler >> 16 & 255);
      put_byte(s, strm.adler >> 24 & 255);
      put_byte(s, strm.total_in & 255);
      put_byte(s, strm.total_in >> 8 & 255);
      put_byte(s, strm.total_in >> 16 & 255);
      put_byte(s, strm.total_in >> 24 & 255);
    } else {
      putShortMSB(s, strm.adler >>> 16);
      putShortMSB(s, strm.adler & 65535);
    }
    flush_pending(strm);
    if (s.wrap > 0) {
      s.wrap = -s.wrap;
    }
    return s.pending !== 0 ? Z_OK$2 : Z_STREAM_END$2;
  }
  function deflateEnd(strm) {
    var status;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR$1;
    }
    status = strm.state.status;
    if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {
      return err(strm, Z_STREAM_ERROR$1);
    }
    strm.state = null;
    return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$1) : Z_OK$2;
  }
  function deflateSetDictionary(strm, dictionary) {
    var dictLength = dictionary.length;
    var s;
    var str, n;
    var wrap;
    var avail;
    var next;
    var input;
    var tmpDict;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR$1;
    }
    s = strm.state;
    wrap = s.wrap;
    if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {
      return Z_STREAM_ERROR$1;
    }
    if (wrap === 1) {
      strm.adler = adler32$1(strm.adler, dictionary, dictLength, 0);
    }
    s.wrap = 0;
    if (dictLength >= s.w_size) {
      if (wrap === 0) {
        zero(s.head);
        s.strstart = 0;
        s.block_start = 0;
        s.insert = 0;
      }
      tmpDict = new utils$5.Buf8(s.w_size);
      utils$5.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
      dictionary = tmpDict;
      dictLength = s.w_size;
    }
    avail = strm.avail_in;
    next = strm.next_in;
    input = strm.input;
    strm.avail_in = dictLength;
    strm.next_in = 0;
    strm.input = dictionary;
    fill_window(s);
    while (s.lookahead >= MIN_MATCH) {
      str = s.strstart;
      n = s.lookahead - (MIN_MATCH - 1);
      do {
        s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
        s.prev[str & s.w_mask] = s.head[s.ins_h];
        s.head[s.ins_h] = str;
        str++;
      } while (--n);
      s.strstart = str;
      s.lookahead = MIN_MATCH - 1;
      fill_window(s);
    }
    s.strstart += s.lookahead;
    s.block_start = s.strstart;
    s.insert = s.lookahead;
    s.lookahead = 0;
    s.match_length = s.prev_length = MIN_MATCH - 1;
    s.match_available = 0;
    strm.next_in = next;
    strm.input = input;
    strm.avail_in = avail;
    s.wrap = wrap;
    return Z_OK$2;
  }
  deflate$3.deflateInit = deflateInit;
  deflate$3.deflateInit2 = deflateInit2;
  deflate$3.deflateReset = deflateReset;
  deflate$3.deflateResetKeep = deflateResetKeep;
  deflate$3.deflateSetHeader = deflateSetHeader;
  deflate$3.deflate = deflate$2;
  deflate$3.deflateEnd = deflateEnd;
  deflate$3.deflateSetDictionary = deflateSetDictionary;
  deflate$3.deflateInfo = "pako deflate (from Nodeca project)";
  var strings$2 = {};
  var utils$4 = common;
  var STR_APPLY_OK = true;
  var STR_APPLY_UIA_OK = true;
  try {
    String.fromCharCode.apply(null, [0]);
  } catch (__) {
    STR_APPLY_OK = false;
  }
  try {
    String.fromCharCode.apply(null, new Uint8Array(1));
  } catch (__) {
    STR_APPLY_UIA_OK = false;
  }
  var _utf8len = new utils$4.Buf8(256);
  for (var q = 0; q < 256; q++) {
    _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
  }
  _utf8len[254] = _utf8len[254] = 1;
  strings$2.string2buf = function(str) {
    var buf, c2, c22, m_pos, i2, str_len = str.length, buf_len = 0;
    for (m_pos = 0; m_pos < str_len; m_pos++) {
      c2 = str.charCodeAt(m_pos);
      if ((c2 & 64512) === 55296 && m_pos + 1 < str_len) {
        c22 = str.charCodeAt(m_pos + 1);
        if ((c22 & 64512) === 56320) {
          c2 = 65536 + (c2 - 55296 << 10) + (c22 - 56320);
          m_pos++;
        }
      }
      buf_len += c2 < 128 ? 1 : c2 < 2048 ? 2 : c2 < 65536 ? 3 : 4;
    }
    buf = new utils$4.Buf8(buf_len);
    for (i2 = 0, m_pos = 0; i2 < buf_len; m_pos++) {
      c2 = str.charCodeAt(m_pos);
      if ((c2 & 64512) === 55296 && m_pos + 1 < str_len) {
        c22 = str.charCodeAt(m_pos + 1);
        if ((c22 & 64512) === 56320) {
          c2 = 65536 + (c2 - 55296 << 10) + (c22 - 56320);
          m_pos++;
        }
      }
      if (c2 < 128) {
        buf[i2++] = c2;
      } else if (c2 < 2048) {
        buf[i2++] = 192 | c2 >>> 6;
        buf[i2++] = 128 | c2 & 63;
      } else if (c2 < 65536) {
        buf[i2++] = 224 | c2 >>> 12;
        buf[i2++] = 128 | c2 >>> 6 & 63;
        buf[i2++] = 128 | c2 & 63;
      } else {
        buf[i2++] = 240 | c2 >>> 18;
        buf[i2++] = 128 | c2 >>> 12 & 63;
        buf[i2++] = 128 | c2 >>> 6 & 63;
        buf[i2++] = 128 | c2 & 63;
      }
    }
    return buf;
  };
  function buf2binstring(buf, len) {
    if (len < 65534) {
      if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) {
        return String.fromCharCode.apply(null, utils$4.shrinkBuf(buf, len));
      }
    }
    var result = "";
    for (var i2 = 0; i2 < len; i2++) {
      result += String.fromCharCode(buf[i2]);
    }
    return result;
  }
  strings$2.buf2binstring = function(buf) {
    return buf2binstring(buf, buf.length);
  };
  strings$2.binstring2buf = function(str) {
    var buf = new utils$4.Buf8(str.length);
    for (var i2 = 0, len = buf.length; i2 < len; i2++) {
      buf[i2] = str.charCodeAt(i2);
    }
    return buf;
  };
  strings$2.buf2string = function(buf, max2) {
    var i2, out2, c2, c_len;
    var len = max2 || buf.length;
    var utf16buf = new Array(len * 2);
    for (out2 = 0, i2 = 0; i2 < len; ) {
      c2 = buf[i2++];
      if (c2 < 128) {
        utf16buf[out2++] = c2;
        continue;
      }
      c_len = _utf8len[c2];
      if (c_len > 4) {
        utf16buf[out2++] = 65533;
        i2 += c_len - 1;
        continue;
      }
      c2 &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
      while (c_len > 1 && i2 < len) {
        c2 = c2 << 6 | buf[i2++] & 63;
        c_len--;
      }
      if (c_len > 1) {
        utf16buf[out2++] = 65533;
        continue;
      }
      if (c2 < 65536) {
        utf16buf[out2++] = c2;
      } else {
        c2 -= 65536;
        utf16buf[out2++] = 55296 | c2 >> 10 & 1023;
        utf16buf[out2++] = 56320 | c2 & 1023;
      }
    }
    return buf2binstring(utf16buf, out2);
  };
  strings$2.utf8border = function(buf, max2) {
    var pos;
    max2 = max2 || buf.length;
    if (max2 > buf.length) {
      max2 = buf.length;
    }
    pos = max2 - 1;
    while (pos >= 0 && (buf[pos] & 192) === 128) {
      pos--;
    }
    if (pos < 0) {
      return max2;
    }
    if (pos === 0) {
      return max2;
    }
    return pos + _utf8len[buf[pos]] > max2 ? pos : max2;
  };
  function ZStream$2() {
    this.input = null;
    this.next_in = 0;
    this.avail_in = 0;
    this.total_in = 0;
    this.output = null;
    this.next_out = 0;
    this.avail_out = 0;
    this.total_out = 0;
    this.msg = "";
    this.state = null;
    this.data_type = 2;
    this.adler = 0;
  }
  var zstream = ZStream$2;
  var zlib_deflate = deflate$3;
  var utils$3 = common;
  var strings$1 = strings$2;
  var msg$1 = messages;
  var ZStream$1 = zstream;
  var toString$1 = Object.prototype.toString;
  var Z_NO_FLUSH = 0;
  var Z_FINISH$1 = 4;
  var Z_OK$1 = 0;
  var Z_STREAM_END$1 = 1;
  var Z_SYNC_FLUSH = 2;
  var Z_DEFAULT_COMPRESSION = -1;
  var Z_DEFAULT_STRATEGY = 0;
  var Z_DEFLATED$1 = 8;
  function Deflate(options) {
    if (!(this instanceof Deflate))
      return new Deflate(options);
    this.options = utils$3.assign({
      level: Z_DEFAULT_COMPRESSION,
      method: Z_DEFLATED$1,
      chunkSize: 16384,
      windowBits: 15,
      memLevel: 8,
      strategy: Z_DEFAULT_STRATEGY,
      to: ""
    }, options || {});
    var opt = this.options;
    if (opt.raw && opt.windowBits > 0) {
      opt.windowBits = -opt.windowBits;
    } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) {
      opt.windowBits += 16;
    }
    this.err = 0;
    this.msg = "";
    this.ended = false;
    this.chunks = [];
    this.strm = new ZStream$1();
    this.strm.avail_out = 0;
    var status = zlib_deflate.deflateInit2(this.strm, opt.level, opt.method, opt.windowBits, opt.memLevel, opt.strategy);
    if (status !== Z_OK$1) {
      throw new Error(msg$1[status]);
    }
    if (opt.header) {
      zlib_deflate.deflateSetHeader(this.strm, opt.header);
    }
    if (opt.dictionary) {
      var dict;
      if (typeof opt.dictionary === "string") {
        dict = strings$1.string2buf(opt.dictionary);
      } else if (toString$1.call(opt.dictionary) === "[object ArrayBuffer]") {
        dict = new Uint8Array(opt.dictionary);
      } else {
        dict = opt.dictionary;
      }
      status = zlib_deflate.deflateSetDictionary(this.strm, dict);
      if (status !== Z_OK$1) {
        throw new Error(msg$1[status]);
      }
      this._dict_set = true;
    }
  }
  Deflate.prototype.push = function(data, mode2) {
    var strm = this.strm;
    var chunkSize = this.options.chunkSize;
    var status, _mode;
    if (this.ended) {
      return false;
    }
    _mode = mode2 === ~~mode2 ? mode2 : mode2 === true ? Z_FINISH$1 : Z_NO_FLUSH;
    if (typeof data === "string") {
      strm.input = strings$1.string2buf(data);
    } else if (toString$1.call(data) === "[object ArrayBuffer]") {
      strm.input = new Uint8Array(data);
    } else {
      strm.input = data;
    }
    strm.next_in = 0;
    strm.avail_in = strm.input.length;
    do {
      if (strm.avail_out === 0) {
        strm.output = new utils$3.Buf8(chunkSize);
        strm.next_out = 0;
        strm.avail_out = chunkSize;
      }
      status = zlib_deflate.deflate(strm, _mode);
      if (status !== Z_STREAM_END$1 && status !== Z_OK$1) {
        this.onEnd(status);
        this.ended = true;
        return false;
      }
      if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH$1 || _mode === Z_SYNC_FLUSH)) {
        if (this.options.to === "string") {
          this.onData(strings$1.buf2binstring(utils$3.shrinkBuf(strm.output, strm.next_out)));
        } else {
          this.onData(utils$3.shrinkBuf(strm.output, strm.next_out));
        }
      }
    } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END$1);
    if (_mode === Z_FINISH$1) {
      status = zlib_deflate.deflateEnd(this.strm);
      this.onEnd(status);
      this.ended = true;
      return status === Z_OK$1;
    }
    if (_mode === Z_SYNC_FLUSH) {
      this.onEnd(Z_OK$1);
      strm.avail_out = 0;
      return true;
    }
    return true;
  };
  Deflate.prototype.onData = function(chunk) {
    this.chunks.push(chunk);
  };
  Deflate.prototype.onEnd = function(status) {
    if (status === Z_OK$1) {
      if (this.options.to === "string") {
        this.result = this.chunks.join("");
      } else {
        this.result = utils$3.flattenChunks(this.chunks);
      }
    }
    this.chunks = [];
    this.err = status;
    this.msg = this.strm.msg;
  };
  function deflate$1(input, options) {
    var deflator = new Deflate(options);
    deflator.push(input, true);
    if (deflator.err) {
      throw deflator.msg || msg$1[deflator.err];
    }
    return deflator.result;
  }
  function deflateRaw(input, options) {
    options = options || {};
    options.raw = true;
    return deflate$1(input, options);
  }
  function gzip(input, options) {
    options = options || {};
    options.gzip = true;
    return deflate$1(input, options);
  }
  deflate$4.Deflate = Deflate;
  deflate$4.deflate = deflate$1;
  deflate$4.deflateRaw = deflateRaw;
  deflate$4.gzip = gzip;
  var inflate$4 = {};
  var inflate$3 = {};
  var BAD$1 = 30;
  var TYPE$1 = 12;
  var inffast = function inflate_fast2(strm, start) {
    var state;
    var _in;
    var last;
    var _out;
    var beg;
    var end;
    var dmax;
    var wsize;
    var whave;
    var wnext;
    var s_window;
    var hold;
    var bits;
    var lcode;
    var dcode;
    var lmask;
    var dmask;
    var here;
    var op;
    var len;
    var dist;
    var from;
    var from_source;
    var input, output;
    state = strm.state;
    _in = strm.next_in;
    input = strm.input;
    last = _in + (strm.avail_in - 5);
    _out = strm.next_out;
    output = strm.output;
    beg = _out - (start - strm.avail_out);
    end = _out + (strm.avail_out - 257);
    dmax = state.dmax;
    wsize = state.wsize;
    whave = state.whave;
    wnext = state.wnext;
    s_window = state.window;
    hold = state.hold;
    bits = state.bits;
    lcode = state.lencode;
    dcode = state.distcode;
    lmask = (1 << state.lenbits) - 1;
    dmask = (1 << state.distbits) - 1;
    top:
      do {
        if (bits < 15) {
          hold += input[_in++] << bits;
          bits += 8;
          hold += input[_in++] << bits;
          bits += 8;
        }
        here = lcode[hold & lmask];
        dolen:
          for (; ; ) {
            op = here >>> 24;
            hold >>>= op;
            bits -= op;
            op = here >>> 16 & 255;
            if (op === 0) {
              output[_out++] = here & 65535;
            } else if (op & 16) {
              len = here & 65535;
              op &= 15;
              if (op) {
                if (bits < op) {
                  hold += input[_in++] << bits;
                  bits += 8;
                }
                len += hold & (1 << op) - 1;
                hold >>>= op;
                bits -= op;
              }
              if (bits < 15) {
                hold += input[_in++] << bits;
                bits += 8;
                hold += input[_in++] << bits;
                bits += 8;
              }
              here = dcode[hold & dmask];
              dodist:
                for (; ; ) {
                  op = here >>> 24;
                  hold >>>= op;
                  bits -= op;
                  op = here >>> 16 & 255;
                  if (op & 16) {
                    dist = here & 65535;
                    op &= 15;
                    if (bits < op) {
                      hold += input[_in++] << bits;
                      bits += 8;
                      if (bits < op) {
                        hold += input[_in++] << bits;
                        bits += 8;
                      }
                    }
                    dist += hold & (1 << op) - 1;
                    if (dist > dmax) {
                      strm.msg = "invalid distance too far back";
                      state.mode = BAD$1;
                      break top;
                    }
                    hold >>>= op;
                    bits -= op;
                    op = _out - beg;
                    if (dist > op) {
                      op = dist - op;
                      if (op > whave) {
                        if (state.sane) {
                          strm.msg = "invalid distance too far back";
                          state.mode = BAD$1;
                          break top;
                        }
                      }
                      from = 0;
                      from_source = s_window;
                      if (wnext === 0) {
                        from += wsize - op;
                        if (op < len) {
                          len -= op;
                          do {
                            output[_out++] = s_window[from++];
                          } while (--op);
                          from = _out - dist;
                          from_source = output;
                        }
                      } else if (wnext < op) {
                        from += wsize + wnext - op;
                        op -= wnext;
                        if (op < len) {
                          len -= op;
                          do {
                            output[_out++] = s_window[from++];
                          } while (--op);
                          from = 0;
                          if (wnext < len) {
                            op = wnext;
                            len -= op;
                            do {
                              output[_out++] = s_window[from++];
                            } while (--op);
                            from = _out - dist;
                            from_source = output;
                          }
                        }
                      } else {
                        from += wnext - op;
                        if (op < len) {
                          len -= op;
                          do {
                            output[_out++] = s_window[from++];
                          } while (--op);
                          from = _out - dist;
                          from_source = output;
                        }
                      }
                      while (len > 2) {
                        output[_out++] = from_source[from++];
                        output[_out++] = from_source[from++];
                        output[_out++] = from_source[from++];
                        len -= 3;
                      }
                      if (len) {
                        output[_out++] = from_source[from++];
                        if (len > 1) {
                          output[_out++] = from_source[from++];
                        }
                      }
                    } else {
                      from = _out - dist;
                      do {
                        output[_out++] = output[from++];
                        output[_out++] = output[from++];
                        output[_out++] = output[from++];
                        len -= 3;
                      } while (len > 2);
                      if (len) {
                        output[_out++] = output[from++];
                        if (len > 1) {
                          output[_out++] = output[from++];
                        }
                      }
                    }
                  } else if ((op & 64) === 0) {
                    here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
                    continue dodist;
                  } else {
                    strm.msg = "invalid distance code";
                    state.mode = BAD$1;
                    break top;
                  }
                  break;
                }
            } else if ((op & 64) === 0) {
              here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
              continue dolen;
            } else if (op & 32) {
              state.mode = TYPE$1;
              break top;
            } else {
              strm.msg = "invalid literal/length code";
              state.mode = BAD$1;
              break top;
            }
            break;
          }
      } while (_in < last && _out < end);
    len = bits >> 3;
    _in -= len;
    bits -= len << 3;
    hold &= (1 << bits) - 1;
    strm.next_in = _in;
    strm.next_out = _out;
    strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
    strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
    state.hold = hold;
    state.bits = bits;
    return;
  };
  var utils$2 = common;
  var MAXBITS = 15;
  var ENOUGH_LENS$1 = 852;
  var ENOUGH_DISTS$1 = 592;
  var CODES$1 = 0;
  var LENS$1 = 1;
  var DISTS$1 = 2;
  var lbase = [
    /* Length codes 257..285 base */
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    13,
    15,
    17,
    19,
    23,
    27,
    31,
    35,
    43,
    51,
    59,
    67,
    83,
    99,
    115,
    131,
    163,
    195,
    227,
    258,
    0,
    0
  ];
  var lext = [
    /* Length codes 257..285 extra */
    16,
    16,
    16,
    16,
    16,
    16,
    16,
    16,
    17,
    17,
    17,
    17,
    18,
    18,
    18,
    18,
    19,
    19,
    19,
    19,
    20,
    20,
    20,
    20,
    21,
    21,
    21,
    21,
    16,
    72,
    78
  ];
  var dbase = [
    /* Distance codes 0..29 base */
    1,
    2,
    3,
    4,
    5,
    7,
    9,
    13,
    17,
    25,
    33,
    49,
    65,
    97,
    129,
    193,
    257,
    385,
    513,
    769,
    1025,
    1537,
    2049,
    3073,
    4097,
    6145,
    8193,
    12289,
    16385,
    24577,
    0,
    0
  ];
  var dext = [
    /* Distance codes 0..29 extra */
    16,
    16,
    16,
    16,
    17,
    17,
    18,
    18,
    19,
    19,
    20,
    20,
    21,
    21,
    22,
    22,
    23,
    23,
    24,
    24,
    25,
    25,
    26,
    26,
    27,
    27,
    28,
    28,
    29,
    29,
    64,
    64
  ];
  var inftrees = function inflate_table2(type, lens, lens_index, codes, table, table_index, work, opts) {
    var bits = opts.bits;
    var len = 0;
    var sym = 0;
    var min2 = 0, max2 = 0;
    var root = 0;
    var curr = 0;
    var drop = 0;
    var left = 0;
    var used = 0;
    var huff = 0;
    var incr;
    var fill;
    var low;
    var mask;
    var next;
    var base = null;
    var base_index = 0;
    var end;
    var count = new utils$2.Buf16(MAXBITS + 1);
    var offs = new utils$2.Buf16(MAXBITS + 1);
    var extra = null;
    var extra_index = 0;
    var here_bits, here_op, here_val;
    for (len = 0; len <= MAXBITS; len++) {
      count[len] = 0;
    }
    for (sym = 0; sym < codes; sym++) {
      count[lens[lens_index + sym]]++;
    }
    root = bits;
    for (max2 = MAXBITS; max2 >= 1; max2--) {
      if (count[max2] !== 0) {
        break;
      }
    }
    if (root > max2) {
      root = max2;
    }
    if (max2 === 0) {
      table[table_index++] = 1 << 24 | 64 << 16 | 0;
      table[table_index++] = 1 << 24 | 64 << 16 | 0;
      opts.bits = 1;
      return 0;
    }
    for (min2 = 1; min2 < max2; min2++) {
      if (count[min2] !== 0) {
        break;
      }
    }
    if (root < min2) {
      root = min2;
    }
    left = 1;
    for (len = 1; len <= MAXBITS; len++) {
      left <<= 1;
      left -= count[len];
      if (left < 0) {
        return -1;
      }
    }
    if (left > 0 && (type === CODES$1 || max2 !== 1)) {
      return -1;
    }
    offs[1] = 0;
    for (len = 1; len < MAXBITS; len++) {
      offs[len + 1] = offs[len] + count[len];
    }
    for (sym = 0; sym < codes; sym++) {
      if (lens[lens_index + sym] !== 0) {
        work[offs[lens[lens_index + sym]]++] = sym;
      }
    }
    if (type === CODES$1) {
      base = extra = work;
      end = 19;
    } else if (type === LENS$1) {
      base = lbase;
      base_index -= 257;
      extra = lext;
      extra_index -= 257;
      end = 256;
    } else {
      base = dbase;
      extra = dext;
      end = -1;
    }
    huff = 0;
    sym = 0;
    len = min2;
    next = table_index;
    curr = root;
    drop = 0;
    low = -1;
    used = 1 << root;
    mask = used - 1;
    if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {
      return 1;
    }
    for (; ; ) {
      here_bits = len - drop;
      if (work[sym] < end) {
        here_op = 0;
        here_val = work[sym];
      } else if (work[sym] > end) {
        here_op = extra[extra_index + work[sym]];
        here_val = base[base_index + work[sym]];
      } else {
        here_op = 32 + 64;
        here_val = 0;
      }
      incr = 1 << len - drop;
      fill = 1 << curr;
      min2 = fill;
      do {
        fill -= incr;
        table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
      } while (fill !== 0);
      incr = 1 << len - 1;
      while (huff & incr) {
        incr >>= 1;
      }
      if (incr !== 0) {
        huff &= incr - 1;
        huff += incr;
      } else {
        huff = 0;
      }
      sym++;
      if (--count[len] === 0) {
        if (len === max2) {
          break;
        }
        len = lens[lens_index + work[sym]];
      }
      if (len > root && (huff & mask) !== low) {
        if (drop === 0) {
          drop = root;
        }
        next += min2;
        curr = len - drop;
        left = 1 << curr;
        while (curr + drop < max2) {
          left -= count[curr + drop];
          if (left <= 0) {
            break;
          }
          curr++;
          left <<= 1;
        }
        used += 1 << curr;
        if (type === LENS$1 && used > ENOUGH_LENS$1 || type === DISTS$1 && used > ENOUGH_DISTS$1) {
          return 1;
        }
        low = huff & mask;
        table[low] = root << 24 | curr << 16 | next - table_index | 0;
      }
    }
    if (huff !== 0) {
      table[next + huff] = len - drop << 24 | 64 << 16 | 0;
    }
    opts.bits = root;
    return 0;
  };
  var utils$1 = common;
  var adler32 = adler32_1;
  var crc32 = crc32_1;
  var inflate_fast = inffast;
  var inflate_table = inftrees;
  var CODES = 0;
  var LENS = 1;
  var DISTS = 2;
  var Z_FINISH = 4;
  var Z_BLOCK = 5;
  var Z_TREES = 6;
  var Z_OK = 0;
  var Z_STREAM_END = 1;
  var Z_NEED_DICT = 2;
  var Z_STREAM_ERROR = -2;
  var Z_DATA_ERROR = -3;
  var Z_MEM_ERROR = -4;
  var Z_BUF_ERROR = -5;
  var Z_DEFLATED = 8;
  var HEAD = 1;
  var FLAGS = 2;
  var TIME = 3;
  var OS = 4;
  var EXLEN = 5;
  var EXTRA = 6;
  var NAME = 7;
  var COMMENT = 8;
  var HCRC = 9;
  var DICTID = 10;
  var DICT = 11;
  var TYPE = 12;
  var TYPEDO = 13;
  var STORED = 14;
  var COPY_ = 15;
  var COPY = 16;
  var TABLE = 17;
  var LENLENS = 18;
  var CODELENS = 19;
  var LEN_ = 20;
  var LEN = 21;
  var LENEXT = 22;
  var DIST = 23;
  var DISTEXT = 24;
  var MATCH = 25;
  var LIT = 26;
  var CHECK = 27;
  var LENGTH = 28;
  var DONE = 29;
  var BAD = 30;
  var MEM = 31;
  var SYNC = 32;
  var ENOUGH_LENS = 852;
  var ENOUGH_DISTS = 592;
  var MAX_WBITS = 15;
  var DEF_WBITS = MAX_WBITS;
  function zswap32(q2) {
    return (q2 >>> 24 & 255) + (q2 >>> 8 & 65280) + ((q2 & 65280) << 8) + ((q2 & 255) << 24);
  }
  function InflateState() {
    this.mode = 0;
    this.last = false;
    this.wrap = 0;
    this.havedict = false;
    this.flags = 0;
    this.dmax = 0;
    this.check = 0;
    this.total = 0;
    this.head = null;
    this.wbits = 0;
    this.wsize = 0;
    this.whave = 0;
    this.wnext = 0;
    this.window = null;
    this.hold = 0;
    this.bits = 0;
    this.length = 0;
    this.offset = 0;
    this.extra = 0;
    this.lencode = null;
    this.distcode = null;
    this.lenbits = 0;
    this.distbits = 0;
    this.ncode = 0;
    this.nlen = 0;
    this.ndist = 0;
    this.have = 0;
    this.next = null;
    this.lens = new utils$1.Buf16(320);
    this.work = new utils$1.Buf16(288);
    this.lendyn = null;
    this.distdyn = null;
    this.sane = 0;
    this.back = 0;
    this.was = 0;
  }
  function inflateResetKeep(strm) {
    var state;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    strm.total_in = strm.total_out = state.total = 0;
    strm.msg = "";
    if (state.wrap) {
      strm.adler = state.wrap & 1;
    }
    state.mode = HEAD;
    state.last = 0;
    state.havedict = 0;
    state.dmax = 32768;
    state.head = null;
    state.hold = 0;
    state.bits = 0;
    state.lencode = state.lendyn = new utils$1.Buf32(ENOUGH_LENS);
    state.distcode = state.distdyn = new utils$1.Buf32(ENOUGH_DISTS);
    state.sane = 1;
    state.back = -1;
    return Z_OK;
  }
  function inflateReset(strm) {
    var state;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    state.wsize = 0;
    state.whave = 0;
    state.wnext = 0;
    return inflateResetKeep(strm);
  }
  function inflateReset2(strm, windowBits) {
    var wrap;
    var state;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    if (windowBits < 0) {
      wrap = 0;
      windowBits = -windowBits;
    } else {
      wrap = (windowBits >> 4) + 1;
      if (windowBits < 48) {
        windowBits &= 15;
      }
    }
    if (windowBits && (windowBits < 8 || windowBits > 15)) {
      return Z_STREAM_ERROR;
    }
    if (state.window !== null && state.wbits !== windowBits) {
      state.window = null;
    }
    state.wrap = wrap;
    state.wbits = windowBits;
    return inflateReset(strm);
  }
  function inflateInit2(strm, windowBits) {
    var ret;
    var state;
    if (!strm) {
      return Z_STREAM_ERROR;
    }
    state = new InflateState();
    strm.state = state;
    state.window = null;
    ret = inflateReset2(strm, windowBits);
    if (ret !== Z_OK) {
      strm.state = null;
    }
    return ret;
  }
  function inflateInit(strm) {
    return inflateInit2(strm, DEF_WBITS);
  }
  var virgin = true;
  var lenfix, distfix;
  function fixedtables(state) {
    if (virgin) {
      var sym;
      lenfix = new utils$1.Buf32(512);
      distfix = new utils$1.Buf32(32);
      sym = 0;
      while (sym < 144) {
        state.lens[sym++] = 8;
      }
      while (sym < 256) {
        state.lens[sym++] = 9;
      }
      while (sym < 280) {
        state.lens[sym++] = 7;
      }
      while (sym < 288) {
        state.lens[sym++] = 8;
      }
      inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {
        bits: 9
      });
      sym = 0;
      while (sym < 32) {
        state.lens[sym++] = 5;
      }
      inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {
        bits: 5
      });
      virgin = false;
    }
    state.lencode = lenfix;
    state.lenbits = 9;
    state.distcode = distfix;
    state.distbits = 5;
  }
  function updatewindow(strm, src, end, copy) {
    var dist;
    var state = strm.state;
    if (state.window === null) {
      state.wsize = 1 << state.wbits;
      state.wnext = 0;
      state.whave = 0;
      state.window = new utils$1.Buf8(state.wsize);
    }
    if (copy >= state.wsize) {
      utils$1.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
      state.wnext = 0;
      state.whave = state.wsize;
    } else {
      dist = state.wsize - state.wnext;
      if (dist > copy) {
        dist = copy;
      }
      utils$1.arraySet(state.window, src, end - copy, dist, state.wnext);
      copy -= dist;
      if (copy) {
        utils$1.arraySet(state.window, src, end - copy, copy, 0);
        state.wnext = copy;
        state.whave = state.wsize;
      } else {
        state.wnext += dist;
        if (state.wnext === state.wsize) {
          state.wnext = 0;
        }
        if (state.whave < state.wsize) {
          state.whave += dist;
        }
      }
    }
    return 0;
  }
  function inflate$2(strm, flush) {
    var state;
    var input, output;
    var next;
    var put;
    var have, left;
    var hold;
    var bits;
    var _in, _out;
    var copy;
    var from;
    var from_source;
    var here = 0;
    var here_bits, here_op, here_val;
    var last_bits, last_op, last_val;
    var len;
    var ret;
    var hbuf = new utils$1.Buf8(4);
    var opts;
    var n;
    var order = (
      /* permutation of code lengths */
      [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
    );
    if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    if (state.mode === TYPE) {
      state.mode = TYPEDO;
    }
    put = strm.next_out;
    output = strm.output;
    left = strm.avail_out;
    next = strm.next_in;
    input = strm.input;
    have = strm.avail_in;
    hold = state.hold;
    bits = state.bits;
    _in = have;
    _out = left;
    ret = Z_OK;
    inf_leave:
      for (; ; ) {
        switch (state.mode) {
          case HEAD:
            if (state.wrap === 0) {
              state.mode = TYPEDO;
              break;
            }
            while (bits < 16) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if (state.wrap & 2 && hold === 35615) {
              state.check = 0;
              hbuf[0] = hold & 255;
              hbuf[1] = hold >>> 8 & 255;
              state.check = crc32(state.check, hbuf, 2, 0);
              hold = 0;
              bits = 0;
              state.mode = FLAGS;
              break;
            }
            state.flags = 0;
            if (state.head) {
              state.head.done = false;
            }
            if (!(state.wrap & 1) || /* check if zlib header allowed */
            (((hold & 255) << 8) + (hold >> 8)) % 31) {
              strm.msg = "incorrect header check";
              state.mode = BAD;
              break;
            }
            if ((hold & 15) !== Z_DEFLATED) {
              strm.msg = "unknown compression method";
              state.mode = BAD;
              break;
            }
            hold >>>= 4;
            bits -= 4;
            len = (hold & 15) + 8;
            if (state.wbits === 0) {
              state.wbits = len;
            } else if (len > state.wbits) {
              strm.msg = "invalid window size";
              state.mode = BAD;
              break;
            }
            state.dmax = 1 << len;
            strm.adler = state.check = 1;
            state.mode = hold & 512 ? DICTID : TYPE;
            hold = 0;
            bits = 0;
            break;
          case FLAGS:
            while (bits < 16) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            state.flags = hold;
            if ((state.flags & 255) !== Z_DEFLATED) {
              strm.msg = "unknown compression method";
              state.mode = BAD;
              break;
            }
            if (state.flags & 57344) {
              strm.msg = "unknown header flags set";
              state.mode = BAD;
              break;
            }
            if (state.head) {
              state.head.text = hold >> 8 & 1;
            }
            if (state.flags & 512) {
              hbuf[0] = hold & 255;
              hbuf[1] = hold >>> 8 & 255;
              state.check = crc32(state.check, hbuf, 2, 0);
            }
            hold = 0;
            bits = 0;
            state.mode = TIME;
          case TIME:
            while (bits < 32) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if (state.head) {
              state.head.time = hold;
            }
            if (state.flags & 512) {
              hbuf[0] = hold & 255;
              hbuf[1] = hold >>> 8 & 255;
              hbuf[2] = hold >>> 16 & 255;
              hbuf[3] = hold >>> 24 & 255;
              state.check = crc32(state.check, hbuf, 4, 0);
            }
            hold = 0;
            bits = 0;
            state.mode = OS;
          case OS:
            while (bits < 16) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if (state.head) {
              state.head.xflags = hold & 255;
              state.head.os = hold >> 8;
            }
            if (state.flags & 512) {
              hbuf[0] = hold & 255;
              hbuf[1] = hold >>> 8 & 255;
              state.check = crc32(state.check, hbuf, 2, 0);
            }
            hold = 0;
            bits = 0;
            state.mode = EXLEN;
          case EXLEN:
            if (state.flags & 1024) {
              while (bits < 16) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              state.length = hold;
              if (state.head) {
                state.head.extra_len = hold;
              }
              if (state.flags & 512) {
                hbuf[0] = hold & 255;
                hbuf[1] = hold >>> 8 & 255;
                state.check = crc32(state.check, hbuf, 2, 0);
              }
              hold = 0;
              bits = 0;
            } else if (state.head) {
              state.head.extra = null;
            }
            state.mode = EXTRA;
          case EXTRA:
            if (state.flags & 1024) {
              copy = state.length;
              if (copy > have) {
                copy = have;
              }
              if (copy) {
                if (state.head) {
                  len = state.head.extra_len - state.length;
                  if (!state.head.extra) {
                    state.head.extra = new Array(state.head.extra_len);
                  }
                  utils$1.arraySet(
                    state.head.extra,
                    input,
                    next,
                    // extra field is limited to 65536 bytes
                    // - no need for additional size check
                    copy,
                    /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
                    len
                  );
                }
                if (state.flags & 512) {
                  state.check = crc32(state.check, input, copy, next);
                }
                have -= copy;
                next += copy;
                state.length -= copy;
              }
              if (state.length) {
                break inf_leave;
              }
            }
            state.length = 0;
            state.mode = NAME;
          case NAME:
            if (state.flags & 2048) {
              if (have === 0) {
                break inf_leave;
              }
              copy = 0;
              do {
                len = input[next + copy++];
                if (state.head && len && state.length < 65536) {
                  state.head.name += String.fromCharCode(len);
                }
              } while (len && copy < have);
              if (state.flags & 512) {
                state.check = crc32(state.check, input, copy, next);
              }
              have -= copy;
              next += copy;
              if (len) {
                break inf_leave;
              }
            } else if (state.head) {
              state.head.name = null;
            }
            state.length = 0;
            state.mode = COMMENT;
          case COMMENT:
            if (state.flags & 4096) {
              if (have === 0) {
                break inf_leave;
              }
              copy = 0;
              do {
                len = input[next + copy++];
                if (state.head && len && state.length < 65536) {
                  state.head.comment += String.fromCharCode(len);
                }
              } while (len && copy < have);
              if (state.flags & 512) {
                state.check = crc32(state.check, input, copy, next);
              }
              have -= copy;
              next += copy;
              if (len) {
                break inf_leave;
              }
            } else if (state.head) {
              state.head.comment = null;
            }
            state.mode = HCRC;
          case HCRC:
            if (state.flags & 512) {
              while (bits < 16) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              if (hold !== (state.check & 65535)) {
                strm.msg = "header crc mismatch";
                state.mode = BAD;
                break;
              }
              hold = 0;
              bits = 0;
            }
            if (state.head) {
              state.head.hcrc = state.flags >> 9 & 1;
              state.head.done = true;
            }
            strm.adler = state.check = 0;
            state.mode = TYPE;
            break;
          case DICTID:
            while (bits < 32) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            strm.adler = state.check = zswap32(hold);
            hold = 0;
            bits = 0;
            state.mode = DICT;
          case DICT:
            if (state.havedict === 0) {
              strm.next_out = put;
              strm.avail_out = left;
              strm.next_in = next;
              strm.avail_in = have;
              state.hold = hold;
              state.bits = bits;
              return Z_NEED_DICT;
            }
            strm.adler = state.check = 1;
            state.mode = TYPE;
          case TYPE:
            if (flush === Z_BLOCK || flush === Z_TREES) {
              break inf_leave;
            }
          case TYPEDO:
            if (state.last) {
              hold >>>= bits & 7;
              bits -= bits & 7;
              state.mode = CHECK;
              break;
            }
            while (bits < 3) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            state.last = hold & 1;
            hold >>>= 1;
            bits -= 1;
            switch (hold & 3) {
              case 0:
                state.mode = STORED;
                break;
              case 1:
                fixedtables(state);
                state.mode = LEN_;
                if (flush === Z_TREES) {
                  hold >>>= 2;
                  bits -= 2;
                  break inf_leave;
                }
                break;
              case 2:
                state.mode = TABLE;
                break;
              case 3:
                strm.msg = "invalid block type";
                state.mode = BAD;
            }
            hold >>>= 2;
            bits -= 2;
            break;
          case STORED:
            hold >>>= bits & 7;
            bits -= bits & 7;
            while (bits < 32) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
              strm.msg = "invalid stored block lengths";
              state.mode = BAD;
              break;
            }
            state.length = hold & 65535;
            hold = 0;
            bits = 0;
            state.mode = COPY_;
            if (flush === Z_TREES) {
              break inf_leave;
            }
          case COPY_:
            state.mode = COPY;
          case COPY:
            copy = state.length;
            if (copy) {
              if (copy > have) {
                copy = have;
              }
              if (copy > left) {
                copy = left;
              }
              if (copy === 0) {
                break inf_leave;
              }
              utils$1.arraySet(output, input, next, copy, put);
              have -= copy;
              next += copy;
              left -= copy;
              put += copy;
              state.length -= copy;
              break;
            }
            state.mode = TYPE;
            break;
          case TABLE:
            while (bits < 14) {
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            state.nlen = (hold & 31) + 257;
            hold >>>= 5;
            bits -= 5;
            state.ndist = (hold & 31) + 1;
            hold >>>= 5;
            bits -= 5;
            state.ncode = (hold & 15) + 4;
            hold >>>= 4;
            bits -= 4;
            if (state.nlen > 286 || state.ndist > 30) {
              strm.msg = "too many length or distance symbols";
              state.mode = BAD;
              break;
            }
            state.have = 0;
            state.mode = LENLENS;
          case LENLENS:
            while (state.have < state.ncode) {
              while (bits < 3) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              state.lens[order[state.have++]] = hold & 7;
              hold >>>= 3;
              bits -= 3;
            }
            while (state.have < 19) {
              state.lens[order[state.have++]] = 0;
            }
            state.lencode = state.lendyn;
            state.lenbits = 7;
            opts = {
              bits: state.lenbits
            };
            ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
            state.lenbits = opts.bits;
            if (ret) {
              strm.msg = "invalid code lengths set";
              state.mode = BAD;
              break;
            }
            state.have = 0;
            state.mode = CODELENS;
          case CODELENS:
            while (state.have < state.nlen + state.ndist) {
              for (; ; ) {
                here = state.lencode[hold & (1 << state.lenbits) - 1];
                here_bits = here >>> 24;
                here_op = here >>> 16 & 255;
                here_val = here & 65535;
                if (here_bits <= bits) {
                  break;
                }
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              if (here_val < 16) {
                hold >>>= here_bits;
                bits -= here_bits;
                state.lens[state.have++] = here_val;
              } else {
                if (here_val === 16) {
                  n = here_bits + 2;
                  while (bits < n) {
                    if (have === 0) {
                      break inf_leave;
                    }
                    have--;
                    hold += input[next++] << bits;
                    bits += 8;
                  }
                  hold >>>= here_bits;
                  bits -= here_bits;
                  if (state.have === 0) {
                    strm.msg = "invalid bit length repeat";
                    state.mode = BAD;
                    break;
                  }
                  len = state.lens[state.have - 1];
                  copy = 3 + (hold & 3);
                  hold >>>= 2;
                  bits -= 2;
                } else if (here_val === 17) {
                  n = here_bits + 3;
                  while (bits < n) {
                    if (have === 0) {
                      break inf_leave;
                    }
                    have--;
                    hold += input[next++] << bits;
                    bits += 8;
                  }
                  hold >>>= here_bits;
                  bits -= here_bits;
                  len = 0;
                  copy = 3 + (hold & 7);
                  hold >>>= 3;
                  bits -= 3;
                } else {
                  n = here_bits + 7;
                  while (bits < n) {
                    if (have === 0) {
                      break inf_leave;
                    }
                    have--;
                    hold += input[next++] << bits;
                    bits += 8;
                  }
                  hold >>>= here_bits;
                  bits -= here_bits;
                  len = 0;
                  copy = 11 + (hold & 127);
                  hold >>>= 7;
                  bits -= 7;
                }
                if (state.have + copy > state.nlen + state.ndist) {
                  strm.msg = "invalid bit length repeat";
                  state.mode = BAD;
                  break;
                }
                while (copy--) {
                  state.lens[state.have++] = len;
                }
              }
            }
            if (state.mode === BAD) {
              break;
            }
            if (state.lens[256] === 0) {
              strm.msg = "invalid code -- missing end-of-block";
              state.mode = BAD;
              break;
            }
            state.lenbits = 9;
            opts = {
              bits: state.lenbits
            };
            ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
            state.lenbits = opts.bits;
            if (ret) {
              strm.msg = "invalid literal/lengths set";
              state.mode = BAD;
              break;
            }
            state.distbits = 6;
            state.distcode = state.distdyn;
            opts = {
              bits: state.distbits
            };
            ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
            state.distbits = opts.bits;
            if (ret) {
              strm.msg = "invalid distances set";
              state.mode = BAD;
              break;
            }
            state.mode = LEN_;
            if (flush === Z_TREES) {
              break inf_leave;
            }
          case LEN_:
            state.mode = LEN;
          case LEN:
            if (have >= 6 && left >= 258) {
              strm.next_out = put;
              strm.avail_out = left;
              strm.next_in = next;
              strm.avail_in = have;
              state.hold = hold;
              state.bits = bits;
              inflate_fast(strm, _out);
              put = strm.next_out;
              output = strm.output;
              left = strm.avail_out;
              next = strm.next_in;
              input = strm.input;
              have = strm.avail_in;
              hold = state.hold;
              bits = state.bits;
              if (state.mode === TYPE) {
                state.back = -1;
              }
              break;
            }
            state.back = 0;
            for (; ; ) {
              here = state.lencode[hold & (1 << state.lenbits) - 1];
              here_bits = here >>> 24;
              here_op = here >>> 16 & 255;
              here_val = here & 65535;
              if (here_bits <= bits) {
                break;
              }
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if (here_op && (here_op & 240) === 0) {
              last_bits = here_bits;
              last_op = here_op;
              last_val = here_val;
              for (; ; ) {
                here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
                here_bits = here >>> 24;
                here_op = here >>> 16 & 255;
                here_val = here & 65535;
                if (last_bits + here_bits <= bits) {
                  break;
                }
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              hold >>>= last_bits;
              bits -= last_bits;
              state.back += last_bits;
            }
            hold >>>= here_bits;
            bits -= here_bits;
            state.back += here_bits;
            state.length = here_val;
            if (here_op === 0) {
              state.mode = LIT;
              break;
            }
            if (here_op & 32) {
              state.back = -1;
              state.mode = TYPE;
              break;
            }
            if (here_op & 64) {
              strm.msg = "invalid literal/length code";
              state.mode = BAD;
              break;
            }
            state.extra = here_op & 15;
            state.mode = LENEXT;
          case LENEXT:
            if (state.extra) {
              n = state.extra;
              while (bits < n) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              state.length += hold & (1 << state.extra) - 1;
              hold >>>= state.extra;
              bits -= state.extra;
              state.back += state.extra;
            }
            state.was = state.length;
            state.mode = DIST;
          case DIST:
            for (; ; ) {
              here = state.distcode[hold & (1 << state.distbits) - 1];
              here_bits = here >>> 24;
              here_op = here >>> 16 & 255;
              here_val = here & 65535;
              if (here_bits <= bits) {
                break;
              }
              if (have === 0) {
                break inf_leave;
              }
              have--;
              hold += input[next++] << bits;
              bits += 8;
            }
            if ((here_op & 240) === 0) {
              last_bits = here_bits;
              last_op = here_op;
              last_val = here_val;
              for (; ; ) {
                here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
                here_bits = here >>> 24;
                here_op = here >>> 16 & 255;
                here_val = here & 65535;
                if (last_bits + here_bits <= bits) {
                  break;
                }
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              hold >>>= last_bits;
              bits -= last_bits;
              state.back += last_bits;
            }
            hold >>>= here_bits;
            bits -= here_bits;
            state.back += here_bits;
            if (here_op & 64) {
              strm.msg = "invalid distance code";
              state.mode = BAD;
              break;
            }
            state.offset = here_val;
            state.extra = here_op & 15;
            state.mode = DISTEXT;
          case DISTEXT:
            if (state.extra) {
              n = state.extra;
              while (bits < n) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              state.offset += hold & (1 << state.extra) - 1;
              hold >>>= state.extra;
              bits -= state.extra;
              state.back += state.extra;
            }
            if (state.offset > state.dmax) {
              strm.msg = "invalid distance too far back";
              state.mode = BAD;
              break;
            }
            state.mode = MATCH;
          case MATCH:
            if (left === 0) {
              break inf_leave;
            }
            copy = _out - left;
            if (state.offset > copy) {
              copy = state.offset - copy;
              if (copy > state.whave) {
                if (state.sane) {
                  strm.msg = "invalid distance too far back";
                  state.mode = BAD;
                  break;
                }
              }
              if (copy > state.wnext) {
                copy -= state.wnext;
                from = state.wsize - copy;
              } else {
                from = state.wnext - copy;
              }
              if (copy > state.length) {
                copy = state.length;
              }
              from_source = state.window;
            } else {
              from_source = output;
              from = put - state.offset;
              copy = state.length;
            }
            if (copy > left) {
              copy = left;
            }
            left -= copy;
            state.length -= copy;
            do {
              output[put++] = from_source[from++];
            } while (--copy);
            if (state.length === 0) {
              state.mode = LEN;
            }
            break;
          case LIT:
            if (left === 0) {
              break inf_leave;
            }
            output[put++] = state.length;
            left--;
            state.mode = LEN;
            break;
          case CHECK:
            if (state.wrap) {
              while (bits < 32) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold |= input[next++] << bits;
                bits += 8;
              }
              _out -= left;
              strm.total_out += _out;
              state.total += _out;
              if (_out) {
                strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/
                state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);
              }
              _out = left;
              if ((state.flags ? hold : zswap32(hold)) !== state.check) {
                strm.msg = "incorrect data check";
                state.mode = BAD;
                break;
              }
              hold = 0;
              bits = 0;
            }
            state.mode = LENGTH;
          case LENGTH:
            if (state.wrap && state.flags) {
              while (bits < 32) {
                if (have === 0) {
                  break inf_leave;
                }
                have--;
                hold += input[next++] << bits;
                bits += 8;
              }
              if (hold !== (state.total & 4294967295)) {
                strm.msg = "incorrect length check";
                state.mode = BAD;
                break;
              }
              hold = 0;
              bits = 0;
            }
            state.mode = DONE;
          case DONE:
            ret = Z_STREAM_END;
            break inf_leave;
          case BAD:
            ret = Z_DATA_ERROR;
            break inf_leave;
          case MEM:
            return Z_MEM_ERROR;
          case SYNC:
          default:
            return Z_STREAM_ERROR;
        }
      }
    strm.next_out = put;
    strm.avail_out = left;
    strm.next_in = next;
    strm.avail_in = have;
    state.hold = hold;
    state.bits = bits;
    if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {
      if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out))
        ;
    }
    _in -= strm.avail_in;
    _out -= strm.avail_out;
    strm.total_in += _in;
    strm.total_out += _out;
    state.total += _out;
    if (state.wrap && _out) {
      strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
      state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);
    }
    strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
    if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {
      ret = Z_BUF_ERROR;
    }
    return ret;
  }
  function inflateEnd(strm) {
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    var state = strm.state;
    if (state.window) {
      state.window = null;
    }
    strm.state = null;
    return Z_OK;
  }
  function inflateGetHeader(strm, head) {
    var state;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    if ((state.wrap & 2) === 0) {
      return Z_STREAM_ERROR;
    }
    state.head = head;
    head.done = false;
    return Z_OK;
  }
  function inflateSetDictionary(strm, dictionary) {
    var dictLength = dictionary.length;
    var state;
    var dictid;
    var ret;
    if (!strm || !strm.state) {
      return Z_STREAM_ERROR;
    }
    state = strm.state;
    if (state.wrap !== 0 && state.mode !== DICT) {
      return Z_STREAM_ERROR;
    }
    if (state.mode === DICT) {
      dictid = 1;
      dictid = adler32(dictid, dictionary, dictLength, 0);
      if (dictid !== state.check) {
        return Z_DATA_ERROR;
      }
    }
    ret = updatewindow(strm, dictionary, dictLength, dictLength);
    if (ret) {
      state.mode = MEM;
      return Z_MEM_ERROR;
    }
    state.havedict = 1;
    return Z_OK;
  }
  inflate$3.inflateReset = inflateReset;
  inflate$3.inflateReset2 = inflateReset2;
  inflate$3.inflateResetKeep = inflateResetKeep;
  inflate$3.inflateInit = inflateInit;
  inflate$3.inflateInit2 = inflateInit2;
  inflate$3.inflate = inflate$2;
  inflate$3.inflateEnd = inflateEnd;
  inflate$3.inflateGetHeader = inflateGetHeader;
  inflate$3.inflateSetDictionary = inflateSetDictionary;
  inflate$3.inflateInfo = "pako inflate (from Nodeca project)";
  var constants$1 = {
    /* Allowed flush values; see deflate() and inflate() below for details */
    Z_NO_FLUSH: 0,
    Z_PARTIAL_FLUSH: 1,
    Z_SYNC_FLUSH: 2,
    Z_FULL_FLUSH: 3,
    Z_FINISH: 4,
    Z_BLOCK: 5,
    Z_TREES: 6,
    /* Return codes for the compression/decompression functions. Negative values
    * are errors, positive values are used for special but normal events.
    */
    Z_OK: 0,
    Z_STREAM_END: 1,
    Z_NEED_DICT: 2,
    Z_ERRNO: -1,
    Z_STREAM_ERROR: -2,
    Z_DATA_ERROR: -3,
    //Z_MEM_ERROR:     -4,
    Z_BUF_ERROR: -5,
    //Z_VERSION_ERROR: -6,
    /* compression levels */
    Z_NO_COMPRESSION: 0,
    Z_BEST_SPEED: 1,
    Z_BEST_COMPRESSION: 9,
    Z_DEFAULT_COMPRESSION: -1,
    Z_FILTERED: 1,
    Z_HUFFMAN_ONLY: 2,
    Z_RLE: 3,
    Z_FIXED: 4,
    Z_DEFAULT_STRATEGY: 0,
    /* Possible values of the data_type field (though see inflate()) */
    Z_BINARY: 0,
    Z_TEXT: 1,
    //Z_ASCII:                1, // = Z_TEXT (deprecated)
    Z_UNKNOWN: 2,
    /* The deflate compression method */
    Z_DEFLATED: 8
    //Z_NULL:                 null // Use -1 or null inline, depending on var type
  };
  function GZheader$1() {
    this.text = 0;
    this.time = 0;
    this.xflags = 0;
    this.os = 0;
    this.extra = null;
    this.extra_len = 0;
    this.name = "";
    this.comment = "";
    this.hcrc = 0;
    this.done = false;
  }
  var gzheader = GZheader$1;
  var zlib_inflate = inflate$3;
  var utils = common;
  var strings = strings$2;
  var c = constants$1;
  var msg = messages;
  var ZStream = zstream;
  var GZheader = gzheader;
  var toString = Object.prototype.toString;
  function Inflate(options) {
    if (!(this instanceof Inflate))
      return new Inflate(options);
    this.options = utils.assign({
      chunkSize: 16384,
      windowBits: 0,
      to: ""
    }, options || {});
    var opt = this.options;
    if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
      opt.windowBits = -opt.windowBits;
      if (opt.windowBits === 0) {
        opt.windowBits = -15;
      }
    }
    if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) {
      opt.windowBits += 32;
    }
    if (opt.windowBits > 15 && opt.windowBits < 48) {
      if ((opt.windowBits & 15) === 0) {
        opt.windowBits |= 15;
      }
    }
    this.err = 0;
    this.msg = "";
    this.ended = false;
    this.chunks = [];
    this.strm = new ZStream();
    this.strm.avail_out = 0;
    var status = zlib_inflate.inflateInit2(this.strm, opt.windowBits);
    if (status !== c.Z_OK) {
      throw new Error(msg[status]);
    }
    this.header = new GZheader();
    zlib_inflate.inflateGetHeader(this.strm, this.header);
    if (opt.dictionary) {
      if (typeof opt.dictionary === "string") {
        opt.dictionary = strings.string2buf(opt.dictionary);
      } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") {
        opt.dictionary = new Uint8Array(opt.dictionary);
      }
      if (opt.raw) {
        status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
        if (status !== c.Z_OK) {
          throw new Error(msg[status]);
        }
      }
    }
  }
  Inflate.prototype.push = function(data, mode2) {
    var strm = this.strm;
    var chunkSize = this.options.chunkSize;
    var dictionary = this.options.dictionary;
    var status, _mode;
    var next_out_utf8, tail, utf8str;
    var allowBufError = false;
    if (this.ended) {
      return false;
    }
    _mode = mode2 === ~~mode2 ? mode2 : mode2 === true ? c.Z_FINISH : c.Z_NO_FLUSH;
    if (typeof data === "string") {
      strm.input = strings.binstring2buf(data);
    } else if (toString.call(data) === "[object ArrayBuffer]") {
      strm.input = new Uint8Array(data);
    } else {
      strm.input = data;
    }
    strm.next_in = 0;
    strm.avail_in = strm.input.length;
    do {
      if (strm.avail_out === 0) {
        strm.output = new utils.Buf8(chunkSize);
        strm.next_out = 0;
        strm.avail_out = chunkSize;
      }
      status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);
      if (status === c.Z_NEED_DICT && dictionary) {
        status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);
      }
      if (status === c.Z_BUF_ERROR && allowBufError === true) {
        status = c.Z_OK;
        allowBufError = false;
      }
      if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
        this.onEnd(status);
        this.ended = true;
        return false;
      }
      if (strm.next_out) {
        if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) {
          if (this.options.to === "string") {
            next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
            tail = strm.next_out - next_out_utf8;
            utf8str = strings.buf2string(strm.output, next_out_utf8);
            strm.next_out = tail;
            strm.avail_out = chunkSize - tail;
            if (tail) {
              utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0);
            }
            this.onData(utf8str);
          } else {
            this.onData(utils.shrinkBuf(strm.output, strm.next_out));
          }
        }
      }
      if (strm.avail_in === 0 && strm.avail_out === 0) {
        allowBufError = true;
      }
    } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
    if (status === c.Z_STREAM_END) {
      _mode = c.Z_FINISH;
    }
    if (_mode === c.Z_FINISH) {
      status = zlib_inflate.inflateEnd(this.strm);
      this.onEnd(status);
      this.ended = true;
      return status === c.Z_OK;
    }
    if (_mode === c.Z_SYNC_FLUSH) {
      this.onEnd(c.Z_OK);
      strm.avail_out = 0;
      return true;
    }
    return true;
  };
  Inflate.prototype.onData = function(chunk) {
    this.chunks.push(chunk);
  };
  Inflate.prototype.onEnd = function(status) {
    if (status === c.Z_OK) {
      if (this.options.to === "string") {
        this.result = this.chunks.join("");
      } else {
        this.result = utils.flattenChunks(this.chunks);
      }
    }
    this.chunks = [];
    this.err = status;
    this.msg = this.strm.msg;
  };
  function inflate$1(input, options) {
    var inflator = new Inflate(options);
    inflator.push(input, true);
    if (inflator.err) {
      throw inflator.msg || msg[inflator.err];
    }
    return inflator.result;
  }
  function inflateRaw(input, options) {
    options = options || {};
    options.raw = true;
    return inflate$1(input, options);
  }
  inflate$4.Inflate = Inflate;
  inflate$4.inflate = inflate$1;
  inflate$4.inflateRaw = inflateRaw;
  inflate$4.ungzip = inflate$1;
  var assign = common.assign;
  var deflate = deflate$4;
  var inflate = inflate$4;
  var constants = constants$1;
  var pako = {};
  assign(pako, deflate, inflate, constants);
  var pako_1 = pako;
  function saveImage(dataURL, dirname, callback) {
    UniViewJSBridge.invokeServiceMethod("base64ToTempFilePath", {
      dataURL,
      dirname
    }, (res) => {
      if (res.message) {
        callback(res);
      } else if (res.tempFilePath) {
        callback(null, res.tempFilePath);
      }
    });
  }
  function invokeHarmonyChannel(method, args) {
    return harmonyChannel.invokeSync(method, args ? args.map((arg) => JSON.stringify(arg)) : void 0);
  }
  function getSameOriginUrl(url) {
    return Promise.resolve(invokeHarmonyChannel("getSameOriginUrl", [url]));
  }
  function getRealPath(filepath) {
    if (filepath.indexOf("//") === 0) {
      return "https:" + filepath;
    }
    if (SCHEME_RE.test(filepath) || DATA_RE.test(filepath)) {
      return filepath;
    }
    if (isSystemURL(filepath)) {
      return "file:/" + normalizeLocalPath(filepath);
    }
    var href = location.href;
    var wwwPath = href.substring(0, href.lastIndexOf("/"));
    if (filepath.indexOf("/") === 0) {
      if (filepath.startsWith("/data/storage/")) {
        return "file://" + filepath;
      }
      return wwwPath + filepath;
    }
    if (filepath.indexOf("../") === 0 || filepath.indexOf("./") === 0) {
      if (typeof __id__ === "string") {
        return wwwPath + getRealRoute(addLeadingSlash(__id__), filepath);
      } else {
        var page = getCurrentPage();
        if (page) {
          return wwwPath + getRealRoute(addLeadingSlash(page.route), filepath);
        }
      }
    }
    return filepath;
  }
  var normalizeLocalPath = cacheStringFunction((filepath) => {
    return plus.io.convertLocalFileSystemURL(filepath).replace(/\/$/, "");
  });
  function isSystemURL(filepath) {
    if (filepath.indexOf("_www") === 0 || filepath.indexOf("_doc") === 0 || filepath.indexOf("_documents") === 0 || filepath.indexOf("_downloads") === 0) {
      return true;
    }
    return false;
  }
  var API_UPX2PX = "upx2px";
  var EPS = 1e-4;
  var BASE_DEVICE_WIDTH = 750;
  var isIOS = false;
  var deviceWidth = 0;
  var deviceDPR = 0;
  var maxWidth = 960;
  var baseWidth = 375;
  var includeWidth = 750;
  function checkDeviceWidth() {
    var {
      platform,
      pixelRatio: pixelRatio2,
      windowWidth
    } = getBaseSystemInfo();
    deviceWidth = windowWidth;
    deviceDPR = pixelRatio2;
    isIOS = platform === "ios";
  }
  function checkValue(value, defaultValue) {
    var newValue = Number(value);
    return isNaN(newValue) ? defaultValue : newValue;
  }
  function checkMaxWidth() {
    var config = __uniConfig.globalStyle || {};
    maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
    baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
    includeWidth = checkValue(config.rpxCalcBaseDeviceWidth, 750);
  }
  var upx2px = /* @__PURE__ */ defineSyncApi(API_UPX2PX, (number, newDeviceWidth) => {
    if (deviceWidth === 0) {
      checkDeviceWidth();
      {
        checkMaxWidth();
      }
    }
    number = Number(number);
    if (number === 0) {
      return 0;
    }
    var width = newDeviceWidth || deviceWidth;
    {
      width = number === includeWidth || width <= maxWidth ? width : baseWidth;
    }
    var result = number / BASE_DEVICE_WIDTH * width;
    if (result < 0) {
      result = -result;
    }
    result = Math.floor(result + EPS);
    if (result === 0) {
      if (deviceDPR === 1 || !isIOS) {
        result = 1;
      } else {
        result = 0.5;
      }
    }
    return number < 0 ? -result : result;
  });
  var _objectPie = {};
  _objectPie.f = {}.propertyIsEnumerable;
  var DESCRIPTORS = _descriptors;
  var getKeys = _objectKeys;
  var toIObject = _toIobject;
  var isEnum = _objectPie.f;
  var _objectToArray = function(isEntries) {
    return function(it) {
      var O = toIObject(it);
      var keys = getKeys(O);
      var length = keys.length;
      var i2 = 0;
      var result = [];
      var key2;
      while (length > i2) {
        key2 = keys[i2++];
        if (!DESCRIPTORS || isEnum.call(O, key2)) {
          result.push(isEntries ? [key2, O[key2]] : O[key2]);
        }
      }
      return result;
    };
  };
  var $export$1 = _export;
  var $values = _objectToArray(false);
  $export$1($export$1.S, "Object", {
    values: function values(it) {
      return $values(it);
    }
  });
  var API_SET_PAGE_META = "setPageMeta";
  var API_LOAD_FONT_FACE = "loadFontFace";
  var API_PAGE_SCROLL_TO = "pageScrollTo";
  var initIntersectionObserverPolyfill = function() {
    if (typeof window !== "object") {
      return;
    }
    if ("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype) {
      if (!("isIntersecting" in window.IntersectionObserverEntry.prototype)) {
        Object.defineProperty(window.IntersectionObserverEntry.prototype, "isIntersecting", {
          get: function() {
            return this.intersectionRatio > 0;
          }
        });
      }
      return;
    }
    function getFrameElement(doc2) {
      try {
        return doc2.defaultView && doc2.defaultView.frameElement || null;
      } catch (e2) {
        return null;
      }
    }
    var document2 = function(startDoc) {
      var doc2 = startDoc;
      var frame = getFrameElement(doc2);
      while (frame) {
        doc2 = frame.ownerDocument;
        frame = getFrameElement(doc2);
      }
      return doc2;
    }(window.document);
    var registry = [];
    var crossOriginUpdater = null;
    var crossOriginRect = null;
    function IntersectionObserverEntry(entry) {
      this.time = entry.time;
      this.target = entry.target;
      this.rootBounds = ensureDOMRect(entry.rootBounds);
      this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);
      this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());
      this.isIntersecting = !!entry.intersectionRect;
      var targetRect = this.boundingClientRect;
      var targetArea = targetRect.width * targetRect.height;
      var intersectionRect = this.intersectionRect;
      var intersectionArea = intersectionRect.width * intersectionRect.height;
      if (targetArea) {
        this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));
      } else {
        this.intersectionRatio = this.isIntersecting ? 1 : 0;
      }
    }
    function IntersectionObserver2(callback, opt_options) {
      var options = opt_options || {};
      if (typeof callback != "function") {
        throw new Error("callback must be a function");
      }
      if (options.root && options.root.nodeType != 1 && options.root.nodeType != 9) {
        throw new Error("root must be a Document or Element");
      }
      this._checkForIntersections = throttle2(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);
      this._callback = callback;
      this._observationTargets = [];
      this._queuedEntries = [];
      this._rootMarginValues = this._parseRootMargin(options.rootMargin);
      this.thresholds = this._initThresholds(options.threshold);
      this.root = options.root || null;
      this.rootMargin = this._rootMarginValues.map(function(margin) {
        return margin.value + margin.unit;
      }).join(" ");
      this._monitoringDocuments = [];
      this._monitoringUnsubscribes = [];
    }
    IntersectionObserver2.prototype.THROTTLE_TIMEOUT = 100;
    IntersectionObserver2.prototype.POLL_INTERVAL = null;
    IntersectionObserver2.prototype.USE_MUTATION_OBSERVER = true;
    IntersectionObserver2._setupCrossOriginUpdater = function() {
      if (!crossOriginUpdater) {
        crossOriginUpdater = function(boundingClientRect, intersectionRect) {
          if (!boundingClientRect || !intersectionRect) {
            crossOriginRect = getEmptyRect();
          } else {
            crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);
          }
          registry.forEach(function(observer) {
            observer._checkForIntersections();
          });
        };
      }
      return crossOriginUpdater;
    };
    IntersectionObserver2._resetCrossOriginUpdater = function() {
      crossOriginUpdater = null;
      crossOriginRect = null;
    };
    IntersectionObserver2.prototype.observe = function(target) {
      var isTargetAlreadyObserved = this._observationTargets.some(function(item) {
        return item.element == target;
      });
      if (isTargetAlreadyObserved) {
        return;
      }
      if (!(target && target.nodeType == 1)) {
        throw new Error("target must be an Element");
      }
      this._registerInstance();
      this._observationTargets.push({
        element: target,
        entry: null
      });
      this._monitorIntersections(target.ownerDocument);
      this._checkForIntersections();
    };
    IntersectionObserver2.prototype.unobserve = function(target) {
      this._observationTargets = this._observationTargets.filter(function(item) {
        return item.element != target;
      });
      this._unmonitorIntersections(target.ownerDocument);
      if (this._observationTargets.length == 0) {
        this._unregisterInstance();
      }
    };
    IntersectionObserver2.prototype.disconnect = function() {
      this._observationTargets = [];
      this._unmonitorAllIntersections();
      this._unregisterInstance();
    };
    IntersectionObserver2.prototype.takeRecords = function() {
      var records = this._queuedEntries.slice();
      this._queuedEntries = [];
      return records;
    };
    IntersectionObserver2.prototype._initThresholds = function(opt_threshold) {
      var threshold = opt_threshold || [0];
      if (!Array.isArray(threshold))
        threshold = [threshold];
      return threshold.sort().filter(function(t2, i2, a2) {
        if (typeof t2 != "number" || isNaN(t2) || t2 < 0 || t2 > 1) {
          throw new Error("threshold must be a number between 0 and 1 inclusively");
        }
        return t2 !== a2[i2 - 1];
      });
    };
    IntersectionObserver2.prototype._parseRootMargin = function(opt_rootMargin) {
      var marginString = opt_rootMargin || "0px";
      var margins = marginString.split(/\s+/).map(function(margin) {
        var parts = /^(-?\d*\.?\d+)(px|%)$/.exec(margin);
        if (!parts) {
          throw new Error("rootMargin must be specified in pixels or percent");
        }
        return {
          value: parseFloat(parts[1]),
          unit: parts[2]
        };
      });
      margins[1] = margins[1] || margins[0];
      margins[2] = margins[2] || margins[0];
      margins[3] = margins[3] || margins[1];
      return margins;
    };
    IntersectionObserver2.prototype._monitorIntersections = function(doc2) {
      var win = doc2.defaultView;
      if (!win) {
        return;
      }
      if (this._monitoringDocuments.indexOf(doc2) != -1) {
        return;
      }
      var callback = this._checkForIntersections;
      var monitoringInterval = null;
      var domObserver = null;
      if (this.POLL_INTERVAL) {
        monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);
      } else {
        addEvent(win, "resize", callback, true);
        addEvent(doc2, "scroll", callback, true);
        if (this.USE_MUTATION_OBSERVER && "MutationObserver" in win) {
          domObserver = new win.MutationObserver(callback);
          domObserver.observe(doc2, {
            attributes: true,
            childList: true,
            characterData: true,
            subtree: true
          });
        }
      }
      this._monitoringDocuments.push(doc2);
      this._monitoringUnsubscribes.push(function() {
        var win2 = doc2.defaultView;
        if (win2) {
          if (monitoringInterval) {
            win2.clearInterval(monitoringInterval);
          }
          removeEvent(win2, "resize", callback, true);
        }
        removeEvent(doc2, "scroll", callback, true);
        if (domObserver) {
          domObserver.disconnect();
        }
      });
      var rootDoc = this.root && (this.root.ownerDocument || this.root) || document2;
      if (doc2 != rootDoc) {
        var frame = getFrameElement(doc2);
        if (frame) {
          this._monitorIntersections(frame.ownerDocument);
        }
      }
    };
    IntersectionObserver2.prototype._unmonitorIntersections = function(doc2) {
      var index2 = this._monitoringDocuments.indexOf(doc2);
      if (index2 == -1) {
        return;
      }
      var rootDoc = this.root && (this.root.ownerDocument || this.root) || document2;
      var hasDependentTargets = this._observationTargets.some(function(item) {
        var itemDoc = item.element.ownerDocument;
        if (itemDoc == doc2) {
          return true;
        }
        while (itemDoc && itemDoc != rootDoc) {
          var frame2 = getFrameElement(itemDoc);
          itemDoc = frame2 && frame2.ownerDocument;
          if (itemDoc == doc2) {
            return true;
          }
        }
        return false;
      });
      if (hasDependentTargets) {
        return;
      }
      var unsubscribe = this._monitoringUnsubscribes[index2];
      this._monitoringDocuments.splice(index2, 1);
      this._monitoringUnsubscribes.splice(index2, 1);
      unsubscribe();
      if (doc2 != rootDoc) {
        var frame = getFrameElement(doc2);
        if (frame) {
          this._unmonitorIntersections(frame.ownerDocument);
        }
      }
    };
    IntersectionObserver2.prototype._unmonitorAllIntersections = function() {
      var unsubscribes = this._monitoringUnsubscribes.slice(0);
      this._monitoringDocuments.length = 0;
      this._monitoringUnsubscribes.length = 0;
      for (var i2 = 0; i2 < unsubscribes.length; i2++) {
        unsubscribes[i2]();
      }
    };
    IntersectionObserver2.prototype._checkForIntersections = function() {
      if (!this.root && crossOriginUpdater && !crossOriginRect) {
        return;
      }
      var rootIsInDom = this._rootIsInDom();
      var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();
      this._observationTargets.forEach(function(item) {
        var target = item.element;
        var targetRect = getBoundingClientRect(target);
        var rootContainsTarget = this._rootContainsTarget(target);
        var oldEntry = item.entry;
        var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect);
        var rootBounds = null;
        if (!this._rootContainsTarget(target)) {
          rootBounds = getEmptyRect();
        } else if (!crossOriginUpdater || this.root) {
          rootBounds = rootRect;
        }
        var newEntry = item.entry = new IntersectionObserverEntry({
          time: now(),
          target,
          boundingClientRect: targetRect,
          rootBounds,
          intersectionRect
        });
        if (!oldEntry) {
          this._queuedEntries.push(newEntry);
        } else if (rootIsInDom && rootContainsTarget) {
          if (this._hasCrossedThreshold(oldEntry, newEntry)) {
            this._queuedEntries.push(newEntry);
          }
        } else {
          if (oldEntry && oldEntry.isIntersecting) {
            this._queuedEntries.push(newEntry);
          }
        }
      }, this);
      if (this._queuedEntries.length) {
        this._callback(this.takeRecords(), this);
      }
    };
    IntersectionObserver2.prototype._computeTargetAndRootIntersection = function(target, targetRect, rootRect) {
      if (window.getComputedStyle(target).display == "none")
        return;
      var intersectionRect = targetRect;
      var parent = getParentNode(target);
      var atRoot = false;
      while (!atRoot && parent) {
        var parentRect = null;
        var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {};
        if (parentComputedStyle.display == "none")
          return null;
        if (parent == this.root || parent.nodeType == /* DOCUMENT */
        9) {
          atRoot = true;
          if (parent == this.root || parent == document2) {
            if (crossOriginUpdater && !this.root) {
              if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) {
                parent = null;
                parentRect = null;
                intersectionRect = null;
              } else {
                parentRect = crossOriginRect;
              }
            } else {
              parentRect = rootRect;
            }
          } else {
            var frame = getParentNode(parent);
            var frameRect = frame && getBoundingClientRect(frame);
            var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect);
            if (frameRect && frameIntersect) {
              parent = frame;
              parentRect = convertFromParentRect(frameRect, frameIntersect);
            } else {
              parent = null;
              intersectionRect = null;
            }
          }
        } else {
          var doc2 = parent.ownerDocument;
          if (parent != doc2.body && parent != doc2.documentElement && parentComputedStyle.overflow != "visible") {
            parentRect = getBoundingClientRect(parent);
          }
        }
        if (parentRect) {
          intersectionRect = computeRectIntersection(parentRect, intersectionRect);
        }
        if (!intersectionRect)
          break;
        parent = parent && getParentNode(parent);
      }
      return intersectionRect;
    };
    IntersectionObserver2.prototype._getRootRect = function() {
      var rootRect;
      if (this.root && !isDoc(this.root)) {
        rootRect = getBoundingClientRect(this.root);
      } else {
        var doc2 = isDoc(this.root) ? this.root : document2;
        var html = doc2.documentElement;
        var body = doc2.body;
        rootRect = {
          top: 0,
          left: 0,
          right: html.clientWidth || body.clientWidth,
          width: html.clientWidth || body.clientWidth,
          bottom: html.clientHeight || body.clientHeight,
          height: html.clientHeight || body.clientHeight
        };
      }
      return this._expandRectByRootMargin(rootRect);
    };
    IntersectionObserver2.prototype._expandRectByRootMargin = function(rect) {
      var margins = this._rootMarginValues.map(function(margin, i2) {
        return margin.unit == "px" ? margin.value : margin.value * (i2 % 2 ? rect.width : rect.height) / 100;
      });
      var newRect = {
        top: rect.top - margins[0],
        right: rect.right + margins[1],
        bottom: rect.bottom + margins[2],
        left: rect.left - margins[3]
      };
      newRect.width = newRect.right - newRect.left;
      newRect.height = newRect.bottom - newRect.top;
      return newRect;
    };
    IntersectionObserver2.prototype._hasCrossedThreshold = function(oldEntry, newEntry) {
      var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;
      var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1;
      if (oldRatio === newRatio)
        return;
      for (var i2 = 0; i2 < this.thresholds.length; i2++) {
        var threshold = this.thresholds[i2];
        if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {
          return true;
        }
      }
    };
    IntersectionObserver2.prototype._rootIsInDom = function() {
      return !this.root || containsDeep(document2, this.root);
    };
    IntersectionObserver2.prototype._rootContainsTarget = function(target) {
      var rootDoc = this.root && (this.root.ownerDocument || this.root) || document2;
      return containsDeep(rootDoc, target) && (!this.root || rootDoc == target.ownerDocument);
    };
    IntersectionObserver2.prototype._registerInstance = function() {
      if (registry.indexOf(this) < 0) {
        registry.push(this);
      }
    };
    IntersectionObserver2.prototype._unregisterInstance = function() {
      var index2 = registry.indexOf(this);
      if (index2 != -1)
        registry.splice(index2, 1);
    };
    function now() {
      return window.performance && performance.now && performance.now();
    }
    function throttle2(fn, timeout) {
      var timer = null;
      return function() {
        if (!timer) {
          timer = setTimeout(function() {
            fn();
            timer = null;
          }, timeout);
        }
      };
    }
    function addEvent(node, event, fn, opt_useCapture) {
      if (typeof node.addEventListener == "function") {
        node.addEventListener(event, fn, opt_useCapture);
      } else if (typeof node.attachEvent == "function") {
        node.attachEvent("on" + event, fn);
      }
    }
    function removeEvent(node, event, fn, opt_useCapture) {
      if (typeof node.removeEventListener == "function") {
        node.removeEventListener(event, fn, opt_useCapture);
      } else if (typeof node.detatchEvent == "function") {
        node.detatchEvent("on" + event, fn);
      }
    }
    function computeRectIntersection(rect1, rect2) {
      var top = Math.max(rect1.top, rect2.top);
      var bottom = Math.min(rect1.bottom, rect2.bottom);
      var left = Math.max(rect1.left, rect2.left);
      var right = Math.min(rect1.right, rect2.right);
      var width = right - left;
      var height = bottom - top;
      return width >= 0 && height >= 0 && {
        top,
        bottom,
        left,
        right,
        width,
        height
      } || null;
    }
    function getBoundingClientRect(el) {
      var rect;
      try {
        rect = el.getBoundingClientRect();
      } catch (err2) {
      }
      if (!rect)
        return getEmptyRect();
      if (!(rect.width && rect.height)) {
        rect = {
          top: rect.top,
          right: rect.right,
          bottom: rect.bottom,
          left: rect.left,
          width: rect.right - rect.left,
          height: rect.bottom - rect.top
        };
      }
      return rect;
    }
    function getEmptyRect() {
      return {
        top: 0,
        bottom: 0,
        left: 0,
        right: 0,
        width: 0,
        height: 0
      };
    }
    function ensureDOMRect(rect) {
      if (!rect || "x" in rect) {
        return rect;
      }
      return {
        top: rect.top,
        y: rect.top,
        bottom: rect.bottom,
        left: rect.left,
        x: rect.left,
        right: rect.right,
        width: rect.width,
        height: rect.height
      };
    }
    function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {
      var top = parentIntersectionRect.top - parentBoundingRect.top;
      var left = parentIntersectionRect.left - parentBoundingRect.left;
      return {
        top,
        left,
        height: parentIntersectionRect.height,
        width: parentIntersectionRect.width,
        bottom: top + parentIntersectionRect.height,
        right: left + parentIntersectionRect.width
      };
    }
    function containsDeep(parent, child) {
      var node = child;
      while (node) {
        if (node == parent)
          return true;
        node = getParentNode(node);
      }
      return false;
    }
    function getParentNode(node) {
      var parent = node.parentNode;
      if (node.nodeType == /* DOCUMENT */
      9 && node != document2) {
        return getFrameElement(node);
      }
      if (parent && parent.assignedSlot) {
        parent = parent.assignedSlot.parentNode;
      }
      if (parent && parent.nodeType == 11 && parent.host) {
        return parent.host;
      }
      return parent;
    }
    function isDoc(node) {
      return node && node.nodeType === 9;
    }
    window.IntersectionObserver = IntersectionObserver2;
    window.IntersectionObserverEntry = IntersectionObserverEntry;
  };
  function normalizeRect(rect) {
    var {
      bottom,
      height,
      left,
      right,
      top,
      width
    } = rect || {};
    return {
      bottom,
      height,
      left,
      right,
      top,
      width
    };
  }
  function rectifyIntersectionRatio(entrie) {
    var {
      intersectionRatio,
      boundingClientRect: {
        height: overAllHeight,
        width: overAllWidth
      },
      intersectionRect: {
        height: intersectionHeight,
        width: intersectionWidth
      }
    } = entrie;
    if (intersectionRatio !== 0)
      return intersectionRatio;
    return intersectionHeight === overAllHeight ? intersectionWidth / overAllWidth : intersectionHeight / overAllHeight;
  }
  function requestComponentObserver($el, options, callback) {
    initIntersectionObserverPolyfill();
    var root = options.relativeToSelector ? $el.querySelector(options.relativeToSelector) : null;
    var intersectionObserver = new IntersectionObserver((entries2) => {
      entries2.forEach((entrie) => {
        callback({
          intersectionRatio: rectifyIntersectionRatio(entrie),
          intersectionRect: normalizeRect(entrie.intersectionRect),
          boundingClientRect: normalizeRect(entrie.boundingClientRect),
          relativeRect: normalizeRect(entrie.rootBounds),
          time: Date.now(),
          dataset: getCustomDataset(entrie.target),
          id: entrie.target.id
        });
      });
    }, {
      root,
      rootMargin: options.rootMargin,
      threshold: options.thresholds
    });
    if (options.observeAll) {
      intersectionObserver.USE_MUTATION_OBSERVER = true;
      var nodeList = $el.querySelectorAll(options.selector);
      for (var i2 = 0; i2 < nodeList.length; i2++) {
        intersectionObserver.observe(nodeList[i2]);
      }
    } else {
      intersectionObserver.USE_MUTATION_OBSERVER = false;
      var el = $el.querySelector(options.selector);
      if (!el) {
        console.warn("Node ".concat(options.selector, " is not found. Intersection observer will not trigger."));
      } else {
        intersectionObserver.observe(el);
      }
    }
    return intersectionObserver;
  }
  function navigateTo(args) {
    UniViewJSBridge.invokeServiceMethod("navigateTo", args);
  }
  function navigateBack(args) {
    UniViewJSBridge.invokeServiceMethod("navigateBack", args);
  }
  function reLaunch(args) {
    UniViewJSBridge.invokeServiceMethod("reLaunch", args);
  }
  function redirectTo(args) {
    UniViewJSBridge.invokeServiceMethod("redirectTo", args);
  }
  function switchTab(args) {
    UniViewJSBridge.invokeServiceMethod("switchTab", args);
  }
  const uni$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
    __proto__: null,
    navigateBack,
    navigateTo,
    reLaunch,
    redirectTo,
    switchTab,
    upx2px
  }, Symbol.toStringTag, { value: "Module" }));
  function createGetDict(dict) {
    if (!dict.length) {
      return (v2) => v2;
    }
    var getDict = function(value) {
      var includeValue = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
      if (typeof value === "number") {
        return dict[value];
      }
      var res = {};
      value.forEach((_ref) => {
        var [n, v2] = _ref;
        if (includeValue) {
          res[getDict(n)] = getDict(v2);
        } else {
          res[getDict(n)] = v2;
        }
      });
      return res;
    };
    return getDict;
  }
  function decodeNodeJson(getDict, nodeJson) {
    if (!nodeJson) {
      return;
    }
    if (hasOwn$1(nodeJson, "a")) {
      nodeJson.a = getDict(nodeJson.a);
    }
    if (hasOwn$1(nodeJson, "e")) {
      nodeJson.e = getDict(nodeJson.e, false);
    }
    if (hasOwn$1(nodeJson, "w")) {
      nodeJson.w = getWxsEventDict(nodeJson.w, getDict);
    }
    if (hasOwn$1(nodeJson, "s")) {
      nodeJson.s = getDict(nodeJson.s);
    }
    if (hasOwn$1(nodeJson, "t")) {
      nodeJson.t = getDict(nodeJson.t);
    }
    return nodeJson;
  }
  function getWxsEventDict(w, getDict) {
    var res = {};
    w.forEach((_ref4) => {
      var [name, [wxsEvent, flag]] = _ref4;
      res[getDict(name)] = [getDict(wxsEvent), flag];
    });
    return res;
  }
  var elements = /* @__PURE__ */ new Map();
  function $(id2) {
    return elements.get(id2);
  }
  function getElement(id2) {
    return elements.get(id2);
  }
  function setElement(id2, element) {
    elements.set(id2, element);
  }
  function removeElement(id2) {
    return elements.delete(id2);
  }
  function createActionJob(fn, priority) {
    return fn.priority = priority, fn;
  }
  var postActionJobs = /* @__PURE__ */ new Set();
  var JOB_PRIORITY_UPDATE = 1;
  var JOB_PRIORITY_REBUILD = 2;
  var JOB_PRIORITY_RENDERJS = 3;
  var JOB_PRIORITY_WXS_PROPS = 4;
  function queuePostActionJob(job, priority) {
    postActionJobs.add(createActionJob(job, priority));
  }
  function flushPostActionJobs() {
    try {
      ;
      [...postActionJobs].sort((a2, b) => a2.priority - b.priority).forEach((fn) => fn());
    } finally {
      postActionJobs.clear();
    }
  }
  function getViewModule(moduleId, ownerEl) {
    var __wxsModules = window["__" + WXS_MODULES];
    var module = __wxsModules && __wxsModules[moduleId];
    if (module) {
      return module;
    }
    if (ownerEl && ownerEl.__renderjsInstances) {
      return ownerEl.__renderjsInstances[moduleId];
    }
  }
  var WXS_PROTOCOL_LEN = WXS_PROTOCOL.length;
  function invokeWxs(el, wxsStr, invokerArgs) {
    var [ownerId, moduleId, invoker, args] = parseWxs(wxsStr);
    var ownerEl = resolveOwnerEl(el, ownerId);
    if (isArray(invokerArgs) || isArray(args)) {
      var [moduleName, methodName] = invoker.split(".");
      return invokeWxsMethod(ownerEl, moduleId, moduleName, methodName, args);
    }
    return getWxsProp(ownerEl, moduleId, invoker);
  }
  function invokeWxsEvent(el, wxsStr, event) {
    var [ownerId, moduleId, invoker] = parseWxs(wxsStr);
    var [moduleName, methodName] = invoker.split(".");
    var ownerEl = resolveOwnerEl(el, ownerId);
    return invokeWxsMethod(ownerEl, moduleId, moduleName, methodName, [wrapperWxsEvent(event, el), getComponentDescriptor(createComponentDescriptorVm(ownerEl))]);
  }
  function resolveOwnerEl(el, ownerId) {
    if (el.__ownerId === ownerId) {
      return el;
    }
    var parentElement = el.parentElement;
    while (parentElement) {
      if (parentElement.__ownerId === ownerId) {
        return parentElement;
      }
      parentElement = parentElement.parentElement;
    }
    return el;
  }
  function parseWxs(wxsStr) {
    return JSON.parse(wxsStr.slice(WXS_PROTOCOL_LEN));
  }
  function invokeWxsProps(wxsStr, el, newValue, oldValue) {
    var [ownerId, moduleId, invoker] = parseWxs(wxsStr);
    var ownerEl = resolveOwnerEl(el, ownerId);
    var [moduleName, methodName] = invoker.split(".");
    return invokeWxsMethod(ownerEl, moduleId, moduleName, methodName, [newValue, oldValue, getComponentDescriptor(createComponentDescriptorVm(ownerEl)), getComponentDescriptor(createComponentDescriptorVm(el))]);
  }
  function invokeWxsMethod(ownerEl, moduleId, moduleName, methodName, args) {
    var module = getViewModule(moduleId, ownerEl);
    if (!module) {
      return console.error(formatLog("wxs", "module " + moduleName + " not found"));
    }
    var method = module[methodName];
    if (!isFunction(method)) {
      return console.error(moduleName + "." + methodName + " is not a function");
    }
    return method.apply(module, args);
  }
  function getWxsProp(ownerEl, moduleId, dataPath) {
    var module = getViewModule(moduleId, ownerEl);
    if (!module) {
      return console.error(formatLog("wxs", "module " + dataPath + " not found"));
    }
    return getValueByDataPath(module, dataPath.slice(dataPath.indexOf(".") + 1));
  }
  function createWxsPropsInvoker(node, wxsInvoker, value) {
    var oldValue = value;
    return (newValue) => {
      try {
        invokeWxsProps(wxsInvoker, node.$, newValue, oldValue);
      } catch (e2) {
        console.error(e2);
      }
      oldValue = newValue;
    };
  }
  function wrapperWxsEvent(event, el) {
    var vm = createComponentDescriptorVm(el);
    Object.defineProperty(event, "instance", {
      get() {
        return getComponentDescriptor(vm);
      }
    });
    return event;
  }
  function initRenderjs(node, moduleIds) {
    Object.keys(moduleIds).forEach((name) => {
      initRenderjsModule(node, moduleIds[name]);
    });
  }
  function destroyRenderjs(node) {
    var {
      __renderjsInstances
    } = node.$;
    if (!__renderjsInstances) {
      return;
    }
    Object.keys(__renderjsInstances).forEach((id2) => {
      __renderjsInstances[id2].$.appContext.app.unmount();
    });
  }
  function initRenderjsModule(node, moduleId) {
    var options = getRenderjsModule(moduleId);
    if (!options) {
      return;
    }
    var el = node.$;
    (el.__renderjsInstances || (el.__renderjsInstances = {}))[moduleId] = createRenderjsInstance(el, options);
  }
  function getRenderjsModule(moduleId) {
    var __renderjsModules = window["__" + RENDERJS_MODULES];
    var module = __renderjsModules && __renderjsModules[moduleId];
    if (!module) {
      return console.error(formatLog("renderjs", moduleId + " not found"));
    }
    return module;
  }
  function createRenderjsInstance(el, options) {
    options = options.default || options;
    options.render = () => {
    };
    return createApp(options).mixin({
      mounted() {
        this.$ownerInstance = getComponentDescriptor(createComponentDescriptorVm(el));
      }
    }).mount(document.createElement("div"));
  }
  var JSON_PROTOCOL_LEN = JSON_PROTOCOL.length;
  function decodeAttr(value, el) {
    if (!isString(value)) {
      return value;
    }
    if (value.indexOf(JSON_PROTOCOL) === 0) {
      value = JSON.parse(value.slice(JSON_PROTOCOL_LEN));
    } else if (value.indexOf(WXS_PROTOCOL) === 0) {
      value = invokeWxs(el, value);
    }
    return value;
  }
  function isCssVar(name) {
    return name.indexOf("--") === 0;
  }
  function isUniComponent(el) {
    return !!el.addWxsEvent;
  }
  class UniNode {
    constructor(id2, tag, parentNodeId, element) {
      this.isMounted = false;
      this.isUnmounted = false;
      this.$hasWxsProps = false;
      this.$children = [];
      this.id = id2;
      this.tag = tag;
      this.pid = parentNodeId;
      if (element) {
        this.$ = element;
      }
      this.$wxsProps = /* @__PURE__ */ new Map();
      var parent = this.$parent = getElement(parentNodeId);
      if (parent) {
        parent.appendUniChild(this);
      }
    }
    init(nodeJson) {
      if (hasOwn$1(nodeJson, "t")) {
        this.$.textContent = nodeJson.t;
      }
    }
    setText(text2) {
      this.$.textContent = text2;
      this.updateView();
    }
    insert(parentNodeId, refNodeId, nodeJson) {
      if (nodeJson) {
        this.init(nodeJson, false);
      }
      var node = this.$;
      var parentNode = $(parentNodeId);
      if (refNodeId === -1) {
        parentNode.appendChild(node);
      } else {
        parentNode.insertBefore(node, $(refNodeId).$);
      }
      this.isMounted = true;
    }
    remove() {
      this.removeUniParent();
      var {
        $: $2
      } = this;
      $2.parentNode.removeChild($2);
      this.isUnmounted = true;
      removeElement(this.id);
      destroyRenderjs(this);
      this.removeUniChildren();
      this.updateView();
    }
    appendChild(node) {
      var ref2 = this.$.appendChild(node);
      this.updateView(true);
      return ref2;
    }
    insertBefore(newChild, refChild) {
      var ref2 = this.$.insertBefore(newChild, refChild);
      this.updateView(true);
      return ref2;
    }
    appendUniChild(node) {
      this.$children.push(node);
    }
    removeUniChild(node) {
      var index2 = this.$children.indexOf(node);
      if (index2 >= 0) {
        this.$children.splice(index2, 1);
      }
    }
    removeUniParent() {
      var {
        $parent
      } = this;
      if ($parent) {
        $parent.removeUniChild(this);
        this.$parent = void 0;
      }
    }
    removeUniChildren() {
      this.$children.forEach((node) => node.remove());
      this.$children.length = 0;
    }
    setWxsProps(attrs2) {
      Object.keys(attrs2).forEach((name) => {
        if (name.indexOf(ATTR_CHANGE_PREFIX) === 0) {
          var propName = name.replace(ATTR_CHANGE_PREFIX, "");
          var value = decodeAttr(attrs2[propName]);
          var invoker = createWxsPropsInvoker(this, attrs2[name], value);
          queuePostActionJob(() => invoker(value), JOB_PRIORITY_WXS_PROPS);
          this.$wxsProps.set(name, invoker);
          delete attrs2[name];
          delete attrs2[propName];
          this.$hasWxsProps = true;
        }
      });
    }
    addWxsEvents(events) {
      Object.keys(events).forEach((name) => {
        var [wxsEvent, flag] = events[name];
        this.addWxsEvent(name, wxsEvent, flag);
      });
    }
    addWxsEvent(name, wxsEvent, flag) {
    }
    wxsPropsInvoke(name, value) {
      var isNextTick = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
      var wxsPropsInvoker = this.$hasWxsProps && this.$wxsProps.get(ATTR_CHANGE_PREFIX + name);
      if (wxsPropsInvoker) {
        return (
          // 等待其他属性先更新，因为开发者可能在invoker中获取当前节点的最新属性信息
          // vue组件中的change:props需要nextTick后执行，普通element，队列后执行
          queuePostActionJob(() => isNextTick ? nextTick(() => wxsPropsInvoker(value)) : wxsPropsInvoker(value), JOB_PRIORITY_WXS_PROPS), true
        );
      }
    }
    updateView(isMounted) {
      if (this.isMounted || isMounted) {
        window.dispatchEvent(new CustomEvent("updateview"));
      }
    }
  }
  function patchClass(el, clazz) {
    var {
      __wxsAddClass,
      __wxsRemoveClass
    } = el;
    if (__wxsRemoveClass && __wxsRemoveClass.length) {
      clazz = clazz.split(/\s+/).filter((v2) => __wxsRemoveClass.indexOf(v2) === -1).join(" ");
      __wxsRemoveClass.length = 0;
    }
    if (__wxsAddClass && __wxsAddClass.length) {
      clazz = clazz + " " + __wxsAddClass.join(" ");
    }
    el.className = clazz;
  }
  function normalizeStyleValue$1(val) {
    return normalizeUrl(normalizeRpx(val));
  }
  var urlRE = /url\(\s*'?"?([a-zA-Z0-9\.\-\_\/]+\.(jpg|gif|png))"?'?\s*\)/;
  var normalizeUrl = (val) => {
    if (isString(val) && val.indexOf("url(") !== -1) {
      var matches2 = val.match(urlRE);
      if (matches2 && matches2.length === 3) {
        val = val.replace(matches2[1], getRealPath(matches2[1]));
      }
    }
    return val;
  };
  var {
    unit,
    unitRatio,
    unitPrecision
  } = defaultRpx2Unit;
  var rpx2Unit = createRpx2Unit(unit, unitRatio, unitPrecision);
  var normalizeRpx = (val) => {
    if (isString(val)) {
      return rpx2Unit(val);
    }
    return val;
  };
  var prefixes = [
    "Webkit"
    /*, 'Moz', 'ms'*/
  ];
  var prefixCache = {};
  function normalizeStyleName$1(style, rawName) {
    var cached = prefixCache[rawName];
    if (cached) {
      return cached;
    }
    var name = camelize(rawName);
    if (name !== "filter" && name in style) {
      return prefixCache[rawName] = name;
    }
    name = capitalize(name);
    for (var i2 = 0; i2 < prefixes.length; i2++) {
      var prefixed = prefixes[i2] + name;
      if (prefixed in style) {
        return prefixCache[rawName] = prefixed;
      }
    }
    return rawName;
  }
  function patchStyle(el, value) {
    var style = el.style;
    if (isString(value)) {
      if (value === "") {
        el.removeAttribute("style");
      } else {
        style.cssText = normalizeStyleValue$1(value);
      }
    } else {
      for (var key2 in value) {
        setStyle(style, key2, value[key2]);
      }
    }
    var {
      __wxsStyle
    } = el;
    if (__wxsStyle) {
      for (var _key in __wxsStyle) {
        setStyle(style, _key, __wxsStyle[_key]);
      }
    }
  }
  var importantRE = /\s*!important$/;
  function setStyle(style, name, val) {
    if (isArray(val)) {
      val.forEach((v2) => setStyle(style, name, v2));
    } else {
      val = normalizeStyleValue$1(val);
      if (name.startsWith("--")) {
        style.setProperty(name, val);
      } else {
        var prefixed = normalizeStyleName$1(style, name);
        if (importantRE.test(val)) {
          style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
        } else {
          style[prefixed] = val;
        }
      }
    }
  }
  function removeEventListener(el, type) {
    var listener = el.__listeners[type];
    if (listener) {
      el.removeEventListener(type, listener);
    }
  }
  function isEventListenerExists(el, type) {
    if (el.__listeners[type]) {
      return true;
    }
  }
  function patchEvent(el, name, flag) {
    var [type, options] = parseEventName(name);
    if (flag === -1) {
      removeEventListener(el, type);
    } else {
      if (!isEventListenerExists(el, type)) {
        el.addEventListener(type, el.__listeners[type] = createInvoker(el.__id, flag, options), options);
      }
    }
  }
  function createInvoker(id2, flag, options) {
    var invoker = (evt) => {
      var [event] = $nne(evt);
      event.type = normalizeEventType(evt.type, options);
      UniViewJSBridge.publishHandler(VD_SYNC, [[ACTION_TYPE_EVENT, id2, event]]);
    };
    if (!flag) {
      return invoker;
    }
    return withModifiers(invoker, resolveModifier(flag));
  }
  function resolveModifier(flag) {
    var modifiers = [];
    if (flag & EventModifierFlags.prevent) {
      modifiers.push("prevent");
    }
    if (flag & EventModifierFlags.self) {
      modifiers.push("self");
    }
    if (flag & EventModifierFlags.stop) {
      modifiers.push("stop");
    }
    return modifiers;
  }
  function patchWxsEvent(el, name, wxsEvent, flag) {
    var [type, options] = parseEventName(name);
    if (flag === -1) {
      removeEventListener(el, type);
    } else {
      if (!isEventListenerExists(el, type)) {
        el.addEventListener(type, el.__listeners[type] = createWxsEventInvoker(el, wxsEvent, flag), options);
      }
    }
  }
  function createWxsEventInvoker(el, wxsEvent, flag) {
    var invoker = (evt) => {
      invokeWxsEvent(isUniComponent(el) ? el.$ : el, wxsEvent, $nne(evt)[0]);
    };
    if (!flag) {
      return invoker;
    }
    return withModifiers(invoker, resolveModifier(flag));
  }
  function patchVShow(el, value) {
    el._vod = el.style.display === "none" ? "" : el.style.display;
    el.style.display = value ? el._vod : "none";
  }
  class UniElement extends UniNode {
    constructor(id2, element, parentNodeId, refNodeId, nodeJson) {
      var propNames = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : [];
      super(id2, element.tagName, parentNodeId, element);
      this.$props = reactive({});
      this.$.__id = id2;
      this.$.__listeners = /* @__PURE__ */ Object.create(null);
      this.$propNames = propNames;
      this._update = this.update.bind(this);
      this.init(nodeJson);
      this.insert(parentNodeId, refNodeId);
    }
    init(nodeJson) {
      var isCreate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
      if (hasOwn$1(nodeJson, "a")) {
        this.setAttrs(nodeJson.a);
      }
      if (hasOwn$1(nodeJson, "s")) {
        this.setAttr("style", nodeJson.s);
      }
      if (hasOwn$1(nodeJson, "e")) {
        this.addEvents(nodeJson.e);
      }
      if (hasOwn$1(nodeJson, "w")) {
        this.addWxsEvents(nodeJson.w);
      }
      super.init(nodeJson);
      if (isCreate) {
        watch(this.$props, () => {
          queuePostActionJob(this._update, JOB_PRIORITY_UPDATE);
        }, {
          flush: "sync"
        });
        this.update(true);
      }
    }
    setAttrs(attrs2) {
      this.setWxsProps(attrs2);
      Object.keys(attrs2).forEach((name) => {
        this.setAttr(name, attrs2[name]);
      });
    }
    addEvents(events) {
      Object.keys(events).forEach((name) => {
        this.addEvent(name, events[name]);
      });
    }
    addWxsEvent(name, wxsEvent, flag) {
      patchWxsEvent(this.$, name, wxsEvent, flag);
    }
    addEvent(name, value) {
      patchEvent(this.$, name, value);
    }
    removeEvent(name) {
      patchEvent(this.$, name, -1);
    }
    setAttr(name, value) {
      if (name === ATTR_CLASS) {
        patchClass(this.$, value);
      } else if (name === ATTR_STYLE) {
        patchStyle(this.$, value);
      } else if (name === ATTR_V_SHOW) {
        patchVShow(this.$, value);
      } else if (name === ATTR_V_OWNER_ID) {
        this.$.__ownerId = value;
      } else if (name === ATTR_V_RENDERJS) {
        queuePostActionJob(() => initRenderjs(this, value), JOB_PRIORITY_RENDERJS);
      } else if (name === ATTR_INNER_HTML) {
        this.$.innerHTML = value;
      } else if (name === ATTR_TEXT_CONTENT) {
        this.setText(value);
      } else {
        this.setAttribute(name, value);
      }
      this.updateView();
    }
    removeAttr(name) {
      if (name === ATTR_CLASS) {
        patchClass(this.$, "");
      } else if (name === ATTR_STYLE) {
        patchStyle(this.$, "");
      } else {
        this.removeAttribute(name);
      }
      this.updateView();
    }
    setAttribute(name, value) {
      value = decodeAttr(value, this.$);
      if (this.$propNames.indexOf(name) !== -1) {
        this.$props[name] = value;
      } else if (isCssVar(name)) {
        this.$.style.setProperty(name, normalizeStyleValue$1(value));
      } else {
        if (!this.wxsPropsInvoke(name, value)) {
          this.$.setAttribute(name, value);
        }
      }
    }
    removeAttribute(name) {
      if (this.$propNames.indexOf(name) !== -1) {
        delete this.$props[name];
      } else if (isCssVar(name)) {
        this.$.style.removeProperty(name);
      } else {
        this.$.removeAttribute(name);
      }
    }
    update() {
    }
  }
  function converPx(value) {
    if (/^-?\d+[ur]px$/i.test(value)) {
      return value.replace(/(^-?\d+)[ur]px$/i, (text2, num) => {
        return "".concat(uni.upx2px(parseFloat(num)), "px");
      });
    } else if (/^-?[\d\.]+$/.test(value)) {
      return "".concat(value, "px");
    }
    return value || "";
  }
  function converType(type) {
    return type.replace(/[A-Z]/g, (text2) => {
      return "-".concat(text2.toLowerCase());
    }).replace("webkit", "-webkit");
  }
  function getStyle(action) {
    var animateTypes1 = ["matrix", "matrix3d", "scale", "scale3d", "rotate3d", "skew", "translate", "translate3d"];
    var animateTypes2 = ["scaleX", "scaleY", "scaleZ", "rotate", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "translateX", "translateY", "translateZ"];
    var animateTypes3 = ["opacity", "background-color"];
    var animateTypes4 = ["width", "height", "left", "right", "top", "bottom"];
    var animates = action.animates;
    var option = action.option;
    var transition = option.transition;
    var style = {};
    var transform = [];
    animates.forEach((animate) => {
      var type = animate.type;
      var args = [...animate.args];
      if (animateTypes1.concat(animateTypes2).includes(type)) {
        if (type.startsWith("rotate") || type.startsWith("skew")) {
          args = args.map((value2) => parseFloat(value2) + "deg");
        } else if (type.startsWith("translate")) {
          args = args.map(converPx);
        }
        if (animateTypes2.indexOf(type) >= 0) {
          args.length = 1;
        }
        transform.push("".concat(type, "(").concat(args.join(","), ")"));
      } else if (animateTypes3.concat(animateTypes4).includes(args[0])) {
        type = args[0];
        var value = args[1];
        style[type] = animateTypes4.includes(type) ? converPx(value) : value;
      }
    });
    style.transform = style.webkitTransform = transform.join(" ");
    style.transition = style.webkitTransition = Object.keys(style).map((type) => "".concat(converType(type), " ").concat(transition.duration, "ms ").concat(transition.timingFunction, " ").concat(transition.delay, "ms")).join(",");
    style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;
    return style;
  }
  function startAnimation(context) {
    var animation2 = context.animation;
    if (!animation2 || !animation2.actions || !animation2.actions.length) {
      return;
    }
    var index2 = 0;
    var actions = animation2.actions;
    var length = animation2.actions.length;
    function animate() {
      var action = actions[index2];
      var transition = action.option.transition;
      var style = getStyle(action);
      Object.keys(style).forEach((key2) => {
        context.$el.style[key2] = style[key2];
      });
      index2 += 1;
      if (index2 < length) {
        setTimeout(animate, transition.duration + transition.delay);
      }
    }
    setTimeout(() => {
      animate();
    }, 0);
  }
  const animation = {
    props: ["animation"],
    watch: {
      animation: {
        deep: true,
        handler() {
          startAnimation(this);
        }
      }
    },
    mounted() {
      startAnimation(this);
    }
  };
  var defineBuiltInComponent = (options) => {
    options.__reserved = true;
    var {
      props: props2,
      mixins
    } = options;
    if (!props2 || !props2.animation) {
      (mixins || (options.mixins = [])).push(animation);
    }
    return defineSystemComponent(options);
  };
  var defineSystemComponent = (options) => {
    options.__reserved = true;
    options.compatConfig = {
      MODE: 3
      // 标记为vue3
    };
    return /* @__PURE__ */ defineComponent(options);
  };
  function withWebEvent(fn) {
    return fn.__wwe = true, fn;
  }
  function useCustomEvent(ref2, emit2) {
    return (name, evt, detail) => {
      if (ref2.value) {
        emit2(name, normalizeCustomEvent(name, evt, ref2.value, detail || {}));
      }
    };
  }
  function useNativeEvent(emit2) {
    return (name, evt) => {
      emit2(name, createNativeEvent(evt));
    };
  }
  function normalizeCustomEvent(name, domEvt, el, detail) {
    var target;
    target = normalizeTarget(el);
    return {
      type: detail.type || name,
      timeStamp: domEvt.timeStamp || 0,
      target,
      currentTarget: target,
      detail
    };
  }
  function useHover(props2) {
    var hovering = ref(false);
    var hoverTouch = false;
    var hoverStartTimer;
    var hoverStayTimer;
    function hoverReset() {
      requestAnimationFrame(() => {
        clearTimeout(hoverStayTimer);
        hoverStayTimer = setTimeout(() => {
          hovering.value = false;
        }, parseInt(props2.hoverStayTime));
      });
    }
    function onTouchstartPassive(evt) {
      if (evt.touches.length > 1) {
        return;
      }
      handleHoverStart(evt);
    }
    function onMousedown(evt) {
      if (hoverTouch) {
        return;
      }
      handleHoverStart(evt);
      window.addEventListener("mouseup", handlePCHoverEnd);
    }
    function handleHoverStart(evt) {
      if (evt._hoverPropagationStopped) {
        return;
      }
      if (!props2.hoverClass || props2.hoverClass === "none" || props2.disabled) {
        return;
      }
      if (props2.hoverStopPropagation) {
        evt._hoverPropagationStopped = true;
      }
      hoverTouch = true;
      hoverStartTimer = setTimeout(() => {
        hovering.value = true;
        if (!hoverTouch) {
          hoverReset();
        }
      }, parseInt(props2.hoverStartTime));
    }
    function onTouchend() {
      handleHoverEnd();
    }
    function onMouseup() {
      if (!hoverTouch) {
        return;
      }
      handlePCHoverEnd();
    }
    function handleHoverEnd() {
      hoverTouch = false;
      if (hovering.value) {
        hoverReset();
      }
    }
    function handlePCHoverEnd() {
      handleHoverEnd();
      window.removeEventListener("mouseup", handlePCHoverEnd);
    }
    function onTouchcancel() {
      hoverTouch = false;
      hovering.value = false;
      clearTimeout(hoverStartTimer);
    }
    return {
      hovering,
      binding: {
        onTouchstartPassive: withWebEvent(onTouchstartPassive),
        onMousedown: withWebEvent(onMousedown),
        onTouchend: withWebEvent(onTouchend),
        onMouseup: withWebEvent(onMouseup),
        onTouchcancel: withWebEvent(onTouchcancel)
      }
    };
  }
  function useBooleanAttr(props2, keys) {
    if (isString(keys)) {
      keys = [keys];
    }
    return keys.reduce((res, key2) => {
      if (props2[key2]) {
        res[key2] = true;
      }
      return res;
    }, /* @__PURE__ */ Object.create(null));
  }
  var uniFormKey = PolySymbol("uf");
  const Form = /* @__PURE__ */ defineBuiltInComponent({
    name: "Form",
    emits: ["submit", "reset"],
    setup(_props, _ref) {
      var {
        slots,
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      provideForm(useCustomEvent(rootRef, emit2));
      return () => createVNode("uni-form", {
        "ref": rootRef
      }, [createVNode("span", null, [slots.default && slots.default()])], 512);
    }
  });
  function provideForm(trigger2) {
    var fields2 = [];
    provide(uniFormKey, {
      addField(field) {
        fields2.push(field);
      },
      removeField(field) {
        fields2.splice(fields2.indexOf(field), 1);
      },
      submit(evt) {
        trigger2("submit", evt, {
          value: fields2.reduce((res, field) => {
            if (field.submit) {
              var [name, value] = field.submit();
              name && (res[name] = value);
            }
            return res;
          }, /* @__PURE__ */ Object.create(null))
        });
      },
      reset(evt) {
        fields2.forEach((field) => field.reset && field.reset());
        trigger2("reset", evt);
      }
    });
    return fields2;
  }
  var labelProps = {
    for: {
      type: String,
      default: ""
    }
  };
  var uniLabelKey = PolySymbol("ul");
  function useProvideLabel() {
    var handlers = [];
    provide(uniLabelKey, {
      addHandler(handler) {
        handlers.push(handler);
      },
      removeHandler(handler) {
        handlers.splice(handlers.indexOf(handler), 1);
      }
    });
    return handlers;
  }
  const Label = /* @__PURE__ */ defineBuiltInComponent({
    name: "Label",
    props: labelProps,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var pageId = useCurrentPageId();
      var handlers = useProvideLabel();
      var pointer = computed(() => props2.for || slots.default && slots.default.length);
      var _onClick = withWebEvent(($event) => {
        var EventTarget = $event.target;
        var stopPropagation = /^uni-(checkbox|radio|switch)-/.test(EventTarget.className);
        if (!stopPropagation) {
          stopPropagation = /^uni-(checkbox|radio|switch|button)$|^(svg|path)$/i.test(EventTarget.tagName);
        }
        if (stopPropagation) {
          return;
        }
        if (props2.for) {
          UniViewJSBridge.emit("uni-label-click-" + pageId + "-" + props2.for, $event, true);
        } else {
          handlers.length && handlers[0]($event, true);
        }
      });
      return () => createVNode("uni-label", {
        "ref": rootRef,
        "class": {
          "uni-label-pointer": pointer
        },
        "onClick": _onClick
      }, [slots.default && slots.default()], 10, ["onClick"]);
    }
  });
  function useListeners$1(props2, listeners2) {
    _addListeners(props2.id, listeners2);
    watch(() => props2.id, (newId, oldId) => {
      _removeListeners(oldId, listeners2, true);
      _addListeners(newId, listeners2, true);
    });
    onUnmounted(() => {
      _removeListeners(props2.id, listeners2);
    });
  }
  function _addListeners(id2, listeners2, watch2) {
    var pageId = useCurrentPageId();
    if (watch2 && !id2) {
      return;
    }
    if (!isPlainObject(listeners2)) {
      return;
    }
    Object.keys(listeners2).forEach((name) => {
      if (watch2) {
        if (name.indexOf("@") !== 0 && name.indexOf("uni-") !== 0) {
          UniViewJSBridge.on("uni-".concat(name, "-").concat(pageId, "-").concat(id2), listeners2[name]);
        }
      } else {
        if (name.indexOf("uni-") === 0) {
          UniViewJSBridge.on(name, listeners2[name]);
        } else if (id2) {
          UniViewJSBridge.on("uni-".concat(name, "-").concat(pageId, "-").concat(id2), listeners2[name]);
        }
      }
    });
  }
  function _removeListeners(id2, listeners2, watch2) {
    var pageId = useCurrentPageId();
    if (watch2 && !id2) {
      return;
    }
    if (!isPlainObject(listeners2)) {
      return;
    }
    Object.keys(listeners2).forEach((name) => {
      if (watch2) {
        if (name.indexOf("@") !== 0 && name.indexOf("uni-") !== 0) {
          UniViewJSBridge.off("uni-".concat(name, "-").concat(pageId, "-").concat(id2), listeners2[name]);
        }
      } else {
        if (name.indexOf("uni-") === 0) {
          UniViewJSBridge.off(name, listeners2[name]);
        } else if (id2) {
          UniViewJSBridge.off("uni-".concat(name, "-").concat(pageId, "-").concat(id2), listeners2[name]);
        }
      }
    });
  }
  var buttonProps = {
    id: {
      type: String,
      default: ""
    },
    hoverClass: {
      type: String,
      default: "button-hover"
    },
    hoverStartTime: {
      type: [Number, String],
      default: 20
    },
    hoverStayTime: {
      type: [Number, String],
      default: 70
    },
    hoverStopPropagation: {
      type: Boolean,
      default: false
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    formType: {
      type: String,
      default: ""
    },
    openType: {
      type: String,
      default: ""
    },
    loading: {
      type: [Boolean, String],
      default: false
    },
    plain: {
      type: [Boolean, String],
      default: false
    }
  };
  const Button = /* @__PURE__ */ defineBuiltInComponent({
    name: "Button",
    props: buttonProps,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var uniForm = inject(uniFormKey, false);
      var {
        hovering,
        binding
      } = useHover(props2);
      var onClick = withWebEvent((e2, isLabelClick) => {
        if (props2.disabled) {
          return e2.stopImmediatePropagation();
        }
        if (isLabelClick) {
          rootRef.value.click();
        }
        var formType = props2.formType;
        if (formType) {
          if (!uniForm) {
            return;
          }
          if (formType === "submit") {
            uniForm.submit(e2);
          } else if (formType === "reset") {
            uniForm.reset(e2);
          }
          return;
        }
      });
      var uniLabel = inject(uniLabelKey, false);
      if (uniLabel) {
        uniLabel.addHandler(onClick);
        onBeforeUnmount(() => {
          uniLabel.removeHandler(onClick);
        });
      }
      useListeners$1(props2, {
        "label-click": onClick
      });
      return () => {
        var hoverClass = props2.hoverClass;
        var booleanAttrs = useBooleanAttr(props2, "disabled");
        var loadingAttrs = useBooleanAttr(props2, "loading");
        var plainAttrs = useBooleanAttr(props2, "plain");
        var hasHoverClass = hoverClass && hoverClass !== "none";
        return createVNode("uni-button", mergeProps({
          "ref": rootRef,
          "onClick": onClick,
          "id": props2.id,
          "class": hasHoverClass && hovering.value ? hoverClass : ""
        }, hasHoverClass && binding, booleanAttrs, loadingAttrs, plainAttrs), [slots.default && slots.default()], 16, ["onClick", "id"]);
      };
    }
  });
  const ResizeSensor = /* @__PURE__ */ defineBuiltInComponent({
    name: "ResizeSensor",
    props: {
      initial: {
        type: Boolean,
        default: false
      }
    },
    emits: ["resize"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var reset = useResizeSensorReset(rootRef);
      var update = useResizeSensorUpdate(rootRef, emit2, reset);
      useResizeSensorLifecycle(rootRef, props2, update, reset);
      return () => createVNode("uni-resize-sensor", {
        "ref": rootRef,
        "onAnimationstartOnce": update
      }, [createVNode("div", {
        "onScroll": update
      }, [createVNode("div", null, null)], 40, ["onScroll"]), createVNode("div", {
        "onScroll": update
      }, [createVNode("div", null, null)], 40, ["onScroll"])], 40, ["onAnimationstartOnce"]);
    }
  });
  function useResizeSensorUpdate(rootRef, emit2, reset) {
    var size2 = reactive({
      width: -1,
      height: -1
    });
    watch(() => extend({}, size2), (value) => emit2("resize", value));
    return () => {
      var rootEl = rootRef.value;
      if (!rootEl)
        return;
      size2.width = rootEl.offsetWidth;
      size2.height = rootEl.offsetHeight;
      reset();
    };
  }
  function useResizeSensorReset(rootRef) {
    return () => {
      var {
        firstElementChild,
        lastElementChild
      } = rootRef.value;
      firstElementChild.scrollLeft = 1e5;
      firstElementChild.scrollTop = 1e5;
      lastElementChild.scrollLeft = 1e5;
      lastElementChild.scrollTop = 1e5;
    };
  }
  function useResizeSensorLifecycle(rootRef, props2, update, reset) {
    onActivated(reset);
    onMounted(() => {
      if (props2.initial) {
        nextTick(update);
      }
      var rootEl = rootRef.value;
      if (rootEl.offsetParent !== rootEl.parentElement) {
        rootEl.parentElement.style.position = "relative";
      }
      if (!("AnimationEvent" in window)) {
        reset();
      }
    });
  }
  var pixelRatio = /* @__PURE__ */ function() {
    var canvas = document.createElement("canvas");
    canvas.height = canvas.width = 0;
    var context = canvas.getContext("2d");
    var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;
    return (window.devicePixelRatio || 1) / backingStore;
  }();
  function wrapper(canvas) {
    var hidpi = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
    var pixel_ratio = hidpi ? pixelRatio : 1;
    canvas.width = canvas.offsetWidth * pixel_ratio;
    canvas.height = canvas.offsetHeight * pixel_ratio;
    canvas.getContext("2d").__hidpi__ = hidpi;
  }
  var isHidpi = false;
  function initHidpi() {
    if (isHidpi) {
      return;
    }
    isHidpi = true;
    var forEach = function(obj, func) {
      for (var key2 in obj) {
        if (hasOwn$1(obj, key2)) {
          func(obj[key2], key2);
        }
      }
    };
    var ratioArgs = {
      fillRect: "all",
      clearRect: "all",
      strokeRect: "all",
      moveTo: "all",
      lineTo: "all",
      arc: [0, 1, 2],
      arcTo: "all",
      bezierCurveTo: "all",
      isPointinPath: "all",
      isPointinStroke: "all",
      quadraticCurveTo: "all",
      rect: "all",
      translate: "all",
      createRadialGradient: "all",
      createLinearGradient: "all",
      transform: [4, 5],
      setTransform: [4, 5]
    };
    var proto2 = CanvasRenderingContext2D.prototype;
    proto2.drawImageByCanvas = /* @__PURE__ */ function(_super) {
      return function(canvas, srcx, srcy, srcw, srch, desx, desy, desw, desh, isScale) {
        if (!this.__hidpi__) {
          return _super.apply(this, arguments);
        }
        srcx *= pixelRatio;
        srcy *= pixelRatio;
        srcw *= pixelRatio;
        srch *= pixelRatio;
        desx *= pixelRatio;
        desy *= pixelRatio;
        desw = isScale ? desw * pixelRatio : desw;
        desh = isScale ? desh * pixelRatio : desh;
        _super.call(this, canvas, srcx, srcy, srcw, srch, desx, desy, desw, desh);
      };
    }(proto2.drawImage);
    if (pixelRatio !== 1) {
      forEach(ratioArgs, function(value, key2) {
        proto2[key2] = /* @__PURE__ */ function(_super) {
          return function() {
            if (!this.__hidpi__) {
              return _super.apply(this, arguments);
            }
            var args = Array.prototype.slice.call(arguments);
            if (value === "all") {
              args = args.map(function(a2) {
                return a2 * pixelRatio;
              });
            } else if (Array.isArray(value)) {
              for (var i2 = 0; i2 < value.length; i2++) {
                args[value[i2]] *= pixelRatio;
              }
            }
            return _super.apply(this, args);
          };
        }(proto2[key2]);
      });
      proto2.stroke = /* @__PURE__ */ function(_super) {
        return function() {
          if (!this.__hidpi__) {
            return _super.apply(this, arguments);
          }
          this.lineWidth *= pixelRatio;
          _super.apply(this, arguments);
          this.lineWidth /= pixelRatio;
        };
      }(proto2.stroke);
      proto2.fillText = /* @__PURE__ */ function(_super) {
        return function() {
          if (!this.__hidpi__) {
            return _super.apply(this, arguments);
          }
          var args = Array.prototype.slice.call(arguments);
          args[1] *= pixelRatio;
          args[2] *= pixelRatio;
          if (args[3] && typeof args[3] === "number") {
            args[3] *= pixelRatio;
          }
          var font2 = this.font;
          this.font = font2.replace(/(\d+\.?\d*)(px|em|rem|pt)/g, function(w, m, u) {
            return m * pixelRatio + u;
          });
          _super.apply(this, args);
          this.font = font2;
        };
      }(proto2.fillText);
      proto2.strokeText = /* @__PURE__ */ function(_super) {
        return function() {
          if (!this.__hidpi__) {
            return _super.apply(this, arguments);
          }
          var args = Array.prototype.slice.call(arguments);
          args[1] *= pixelRatio;
          args[2] *= pixelRatio;
          if (args[3] && typeof args[3] === "number") {
            args[3] *= pixelRatio;
          }
          var font2 = this.font;
          this.font = font2.replace(/(\d+\.?\d*)(px|em|rem|pt)/g, function(w, m, u) {
            return m * pixelRatio + u;
          });
          _super.apply(this, args);
          this.font = font2;
        };
      }(proto2.strokeText);
      proto2.drawImage = /* @__PURE__ */ function(_super) {
        return function() {
          if (!this.__hidpi__) {
            return _super.apply(this, arguments);
          }
          this.scale(pixelRatio, pixelRatio);
          _super.apply(this, arguments);
          this.scale(1 / pixelRatio, 1 / pixelRatio);
        };
      }(proto2.drawImage);
    }
  }
  var initHidpiOnce = /* @__PURE__ */ once(() => {
    return initHidpi();
  });
  function $getRealPath(src) {
    return src ? getRealPath(src) : src;
  }
  function resolveColor(color) {
    color = color.slice(0);
    color[3] = color[3] / 255;
    return "rgba(" + color.join(",") + ")";
  }
  function processTouches(rect, touches) {
    Array.from(touches).forEach((touch) => {
      touch.x = touch.clientX - rect.left;
      touch.y = touch.clientY - rect.top;
    });
  }
  var tempCanvas;
  function getTempCanvas() {
    var width = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
    var height = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
    if (!tempCanvas) {
      tempCanvas = document.createElement("canvas");
    }
    tempCanvas.width = width;
    tempCanvas.height = height;
    return tempCanvas;
  }
  var props$u = {
    canvasId: {
      type: String,
      default: ""
    },
    disableScroll: {
      type: [Boolean, String],
      default: false
    },
    hidpi: {
      type: Boolean,
      default: true
    }
  };
  const Canvas = /* @__PURE__ */ defineBuiltInComponent({
    inheritAttrs: false,
    name: "Canvas",
    compatConfig: {
      MODE: 3
    },
    props: props$u,
    computed: {
      id() {
        return this.canvasId;
      }
    },
    setup(props2, _ref) {
      var {
        emit: emit2,
        slots
      } = _ref;
      initHidpiOnce();
      var rootRef = ref(null);
      var canvas = ref(null);
      var sensor = ref(null);
      var actionsWaiting = ref(false);
      var trigger2 = useNativeEvent(emit2);
      var {
        $attrs,
        $excludeAttrs,
        $listeners
      } = useAttrs({
        excludeListeners: true
      });
      var {
        _listeners
      } = useListeners(props2, $listeners, trigger2);
      var {
        _handleSubscribe,
        _resize
      } = useMethods$1(props2, canvas, actionsWaiting);
      useSubscribe(_handleSubscribe, useContextInfo(props2.canvasId));
      onMounted(() => {
        _resize();
      });
      return () => {
        var {
          canvasId,
          disableScroll
        } = props2;
        return createVNode("uni-canvas", mergeProps({
          "ref": rootRef,
          "canvas-id": canvasId,
          "disable-scroll": disableScroll
        }, $attrs.value, $excludeAttrs.value, _listeners.value), [createVNode("canvas", {
          "ref": canvas,
          "class": "uni-canvas-canvas",
          "width": "300",
          "height": "150"
        }, null, 512), createVNode("div", {
          "style": "position: absolute;top: 0;left: 0;width: 100%;height: 100%;overflow: hidden;"
        }, [slots.default && slots.default()]), createVNode(ResizeSensor, {
          "ref": sensor,
          "onResize": _resize
        }, null, 8, ["onResize"])], 16, ["canvas-id", "disable-scroll"]);
      };
    }
  });
  function useListeners(props2, Listeners, trigger2) {
    var _listeners = computed(() => {
      var events = ["onTouchstart", "onTouchmove", "onTouchend"];
      var _$listeners = Listeners.value;
      var $listeners = extend({}, (() => {
        var obj = {};
        for (var key2 in _$listeners) {
          if (hasOwn$1(_$listeners, key2)) {
            var event = _$listeners[key2];
            obj[key2] = event;
          }
        }
        return obj;
      })());
      events.forEach((event) => {
        var existing = $listeners[event];
        var eventHandler = [];
        if (existing) {
          eventHandler.push(withWebEvent(($event) => {
            var rect = $event.currentTarget.getBoundingClientRect();
            processTouches(rect, $event.touches);
            processTouches(rect, $event.changedTouches);
            trigger2(event.replace("on", "").toLocaleLowerCase(), $event);
          }));
        }
        if (props2.disableScroll && event === "onTouchmove") {
          eventHandler.push(onEventPrevent);
        }
        $listeners[event] = eventHandler;
      });
      return $listeners;
    });
    return {
      _listeners
    };
  }
  function useMethods$1(props2, canvasRef, actionsWaiting) {
    var _actionsDefer = [];
    var _images = {};
    var _pixelRatio = computed(() => props2.hidpi ? pixelRatio : 1);
    function _resize(size2) {
      var canvas = canvasRef.value;
      var hasChanged2 = !size2 || canvas.width !== Math.floor(size2.width * _pixelRatio.value) || canvas.height !== Math.floor(size2.height * _pixelRatio.value);
      if (!hasChanged2)
        return;
      if (canvas.width > 0 && canvas.height > 0) {
        var context = canvas.getContext("2d");
        var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
        wrapper(canvas, props2.hidpi);
        context.putImageData(imageData, 0, 0);
      } else {
        wrapper(canvas, props2.hidpi);
      }
    }
    function actionsChanged(_ref2, resolve) {
      var {
        actions,
        reserve
      } = _ref2;
      if (!actions) {
        return;
      }
      if (actionsWaiting.value) {
        _actionsDefer.push([actions, reserve]);
        return;
      }
      var canvas = canvasRef.value;
      var c2d = canvas.getContext("2d");
      if (!reserve) {
        c2d.fillStyle = "#000000";
        c2d.strokeStyle = "#000000";
        c2d.shadowColor = "#000000";
        c2d.shadowBlur = 0;
        c2d.shadowOffsetX = 0;
        c2d.shadowOffsetY = 0;
        c2d.setTransform(1, 0, 0, 1, 0, 0);
        c2d.clearRect(0, 0, canvas.width, canvas.height);
      }
      preloadImage(actions);
      var _loop = function(index3) {
        var action = actions[index3];
        var method = action.method;
        var data = action.data;
        var actionType = data[0];
        if (/^set/.test(method) && method !== "setTransform") {
          var method1 = method[3].toLowerCase() + method.slice(4);
          var color;
          if (method1 === "fillStyle" || method1 === "strokeStyle") {
            if (actionType === "normal") {
              color = resolveColor(data[1]);
            } else if (actionType === "linear") {
              var LinearGradient = c2d.createLinearGradient(...data[1]);
              data[2].forEach(function(data2) {
                var offset = data2[0];
                var color2 = resolveColor(data2[1]);
                LinearGradient.addColorStop(offset, color2);
              });
              color = LinearGradient;
            } else if (actionType === "radial") {
              var _data = data[1];
              var x = _data[0];
              var y = _data[1];
              var r = _data[2];
              var _LinearGradient = c2d.createRadialGradient(x, y, 0, x, y, r);
              data[2].forEach(function(data2) {
                var offset = data2[0];
                var color2 = resolveColor(data2[1]);
                _LinearGradient.addColorStop(offset, color2);
              });
              color = _LinearGradient;
            } else if (actionType === "pattern") {
              var loaded = checkImageLoaded(data[1], actions.slice(index3 + 1), resolve, function(image2) {
                if (image2) {
                  c2d[method1] = c2d.createPattern(image2, data[2]);
                }
              });
              if (!loaded) {
                return "break";
              }
              return "continue";
            }
            c2d[method1] = color;
          } else if (method1 === "globalAlpha") {
            c2d[method1] = Number(actionType) / 255;
          } else if (method1 === "shadow") {
            var shadowArray = ["shadowOffsetX", "shadowOffsetY", "shadowBlur", "shadowColor"];
            data.forEach(function(color_, method_) {
              c2d[shadowArray[method_]] = shadowArray[method_] === "shadowColor" ? resolveColor(color_) : color_;
            });
          } else if (method1 === "fontSize") {
            var font2 = c2d.__font__ || c2d.font;
            c2d.__font__ = c2d.font = font2.replace(/\d+\.?\d*px/, actionType + "px");
          } else if (method1 === "lineDash") {
            c2d.setLineDash(actionType);
            c2d.lineDashOffset = data[1] || 0;
          } else if (method1 === "textBaseline") {
            if (actionType === "normal") {
              data[0] = "alphabetic";
            }
            c2d[method1] = actionType;
          } else if (method1 === "font") {
            c2d.__font__ = c2d.font = actionType;
          } else {
            c2d[method1] = actionType;
          }
        } else if (method === "fillPath" || method === "strokePath") {
          method = method.replace(/Path/, "");
          c2d.beginPath();
          data.forEach(function(data_) {
            c2d[data_.method].apply(c2d, data_.data);
          });
          c2d[method]();
        } else if (method === "fillText") {
          c2d.fillText.apply(c2d, data);
        } else if (method === "drawImage") {
          var drawImage = function() {
            var dataArray = [...data];
            var url = dataArray[0];
            var otherData = dataArray.slice(1);
            _images = _images || {};
            if (!checkImageLoaded(url, actions.slice(index3 + 1), resolve, function(image2) {
              if (image2) {
                c2d.drawImage.apply(
                  c2d,
                  // @ts-expect-error
                  [image2].concat(
                    // @ts-expect-error
                    [...otherData.slice(4, 8)],
                    [...otherData.slice(0, 4)]
                  )
                );
              }
            }))
              return "break";
          }();
          if (drawImage === "break") {
            return "break";
          }
        } else {
          if (method === "clip") {
            data.forEach(function(data_) {
              c2d[data_.method].apply(c2d, data_.data);
            });
            c2d.clip();
          } else {
            c2d[method].apply(c2d, data);
          }
        }
      };
      for (var index2 = 0; index2 < actions.length; index2++) {
        var _ret = _loop(index2);
        if (_ret === "break")
          break;
        if (_ret === "continue")
          continue;
      }
      if (!actionsWaiting.value) {
        resolve({
          errMsg: "drawCanvas:ok"
        });
      }
    }
    function preloadImage(actions) {
      actions.forEach(function(action) {
        var method = action.method;
        var data = action.data;
        var src = "";
        if (method === "drawImage") {
          src = data[0];
          src = $getRealPath(src);
          data[0] = src;
        } else if (method === "setFillStyle" && data[0] === "pattern") {
          src = data[1];
          src = $getRealPath(src);
          data[1] = src;
        }
        if (src && !_images[src]) {
          loadImage();
        }
        function loadImage() {
          var image2 = _images[src] = new Image();
          image2.onload = function() {
            image2.ready = true;
          };
          getSameOriginUrl(src).then((src2) => {
            image2.src = src2;
          }).catch(() => {
            image2.src = src;
          });
        }
      });
    }
    function checkImageLoaded(src, actions, resolve, fn) {
      var image2 = _images[src];
      if (image2.ready) {
        fn(image2);
        return true;
      } else {
        _actionsDefer.unshift([actions, true]);
        actionsWaiting.value = true;
        image2.onload = function() {
          image2.ready = true;
          fn(image2);
          actionsWaiting.value = false;
          var actions2 = _actionsDefer.slice(0);
          _actionsDefer = [];
          for (var action = actions2.shift(); action; ) {
            actionsChanged({
              actions: action[0],
              reserve: action[1]
            }, resolve);
            action = actions2.shift();
          }
        };
        return false;
      }
    }
    function getImageData(_ref3, resolve) {
      var {
        x = 0,
        y = 0,
        width,
        height,
        destWidth,
        destHeight,
        hidpi = true,
        dataType,
        quality = 1,
        type = "png"
      } = _ref3;
      var canvas = canvasRef.value;
      var data;
      var maxWidth2 = canvas.offsetWidth - x;
      width = width ? Math.min(width, maxWidth2) : maxWidth2;
      var maxHeight = canvas.offsetHeight - y;
      height = height ? Math.min(height, maxHeight) : maxHeight;
      if (!hidpi) {
        if (!destWidth && !destHeight) {
          destWidth = Math.round(width * _pixelRatio.value);
          destHeight = Math.round(height * _pixelRatio.value);
        } else if (!destWidth) {
          if (!destHeight) {
            destHeight = Math.round(height * _pixelRatio.value);
          }
          destWidth = Math.round(width / height * destHeight);
        } else if (!destHeight) {
          destHeight = Math.round(height / width * destWidth);
        }
      } else {
        destWidth = width;
        destHeight = height;
      }
      var newCanvas = getTempCanvas(destWidth, destHeight);
      var context = newCanvas.getContext("2d");
      if (type === "jpeg" || type === "jpg") {
        type = "jpeg";
        context.fillStyle = "#fff";
        context.fillRect(0, 0, destWidth, destHeight);
      }
      context.__hidpi__ = true;
      context.drawImageByCanvas(canvas, x, y, width, height, 0, 0, destWidth, destHeight, false);
      var result;
      try {
        var compressed;
        if (dataType === "base64") {
          data = newCanvas.toDataURL("image/".concat(type), quality);
        } else {
          var imgData = context.getImageData(0, 0, destWidth, destHeight);
          if (true) {
            data = pako_1.deflateRaw(imgData.data, {
              to: "string"
            });
            compressed = true;
          }
        }
        result = {
          data,
          compressed,
          width: destWidth,
          height: destHeight
        };
      } catch (error) {
        result = {
          errMsg: "canvasGetImageData:fail ".concat(error)
        };
      }
      newCanvas.height = newCanvas.width = 0;
      context.__hidpi__ = false;
      if (!resolve) {
        return result;
      } else {
        resolve(result);
      }
    }
    function putImageData(_ref4, resolve) {
      var {
        data,
        x,
        y,
        width,
        height,
        compressed
      } = _ref4;
      try {
        if (compressed) {
          data = pako_1.inflateRaw(data);
        }
        if (!height) {
          height = Math.round(data.length / 4 / width);
        }
        var canvas = getTempCanvas(width, height);
        var context = canvas.getContext("2d");
        context.putImageData(new ImageData(new Uint8ClampedArray(data), width, height), 0, 0);
        canvasRef.value.getContext("2d").drawImage(canvas, x, y, width, height);
        canvas.height = canvas.width = 0;
      } catch (error) {
        resolve({
          errMsg: "canvasPutImageData:fail"
        });
        return;
      }
      resolve({
        errMsg: "canvasPutImageData:ok"
      });
    }
    function toTempFilePath(_ref5, resolve) {
      var {
        x = 0,
        y = 0,
        width,
        height,
        destWidth,
        destHeight,
        fileType,
        quality,
        dirname
      } = _ref5;
      var res = getImageData({
        x,
        y,
        width,
        height,
        destWidth,
        destHeight,
        hidpi: false,
        dataType: "base64",
        type: fileType,
        quality
      });
      if (res.errMsg) {
        resolve({
          errMsg: res.errMsg.replace("canvasPutImageData", "toTempFilePath")
        });
        return;
      }
      saveImage(res.data, dirname, (error, tempFilePath) => {
        var errMsg = "toTempFilePath:".concat(error ? "fail" : "ok");
        if (error) {
          errMsg += " ".concat(error.message);
        }
        resolve({
          errMsg,
          tempFilePath
        });
      });
    }
    var methods = {
      actionsChanged,
      getImageData,
      putImageData,
      toTempFilePath
    };
    function _handleSubscribe(type, data, resolve) {
      var method = methods[type];
      if (type.indexOf("_") !== 0 && isFunction(method)) {
        method(data, resolve);
      }
    }
    return extend(methods, {
      _resize,
      _handleSubscribe
    });
  }
  var uniCheckGroupKey = PolySymbol("ucg");
  var props$t = {
    name: {
      type: String,
      default: ""
    }
  };
  const CheckboxGroup = /* @__PURE__ */ defineBuiltInComponent({
    name: "CheckboxGroup",
    props: props$t,
    emits: ["change"],
    setup(props2, _ref) {
      var {
        emit: emit2,
        slots
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      useProvideCheckGroup(props2, trigger2);
      return () => {
        return createVNode("uni-checkbox-group", {
          "ref": rootRef
        }, [slots.default && slots.default()], 512);
      };
    }
  });
  function useProvideCheckGroup(props2, trigger2) {
    var fields2 = [];
    var getFieldsValue = () => fields2.reduce((res, field) => {
      if (field.value.checkboxChecked) {
        res.push(field.value.value);
      }
      return res;
    }, new Array());
    provide(uniCheckGroupKey, {
      addField(field) {
        fields2.push(field);
      },
      removeField(field) {
        fields2.splice(fields2.indexOf(field), 1);
      },
      checkboxChange($event) {
        trigger2("change", $event, {
          value: getFieldsValue()
        });
      }
    });
    var uniForm = inject(uniFormKey, false);
    if (uniForm) {
      uniForm.addField({
        submit: () => {
          var data = ["", null];
          if (props2.name !== "") {
            data[0] = props2.name;
            data[1] = getFieldsValue();
          }
          return data;
        }
      });
    }
    return getFieldsValue;
  }
  var props$s = {
    checked: {
      type: [Boolean, String],
      default: false
    },
    id: {
      type: String,
      default: ""
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    value: {
      type: String,
      default: ""
    },
    color: {
      type: String,
      default: "#007aff"
    },
    backgroundColor: {
      type: String,
      default: ""
    },
    borderColor: {
      type: String,
      default: ""
    },
    activeBackgroundColor: {
      type: String,
      default: ""
    },
    activeBorderColor: {
      type: String,
      default: ""
    },
    iconColor: {
      type: String,
      default: ""
    },
    // 图标颜色,同color,优先级大于iconColor
    foreColor: {
      type: String,
      default: ""
    }
  };
  const Checkbox = /* @__PURE__ */ defineBuiltInComponent({
    name: "Checkbox",
    props: props$s,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var checkboxChecked = ref(props2.checked);
      var checkboxCheckedBool = computed(() => {
        return checkboxChecked.value === "true" || checkboxChecked.value === true;
      });
      var checkboxValue = ref(props2.value);
      function getCheckBoxStyle(checked) {
        if (props2.disabled) {
          return {
            backgroundColor: "#E1E1E1",
            borderColor: "#D1D1D1"
          };
        }
        var style = {};
        if (checked) {
          if (props2.activeBorderColor)
            style.borderColor = props2.activeBorderColor;
          if (props2.activeBackgroundColor)
            style.backgroundColor = props2.activeBackgroundColor;
        } else {
          if (props2.borderColor)
            style.borderColor = props2.borderColor;
          if (props2.backgroundColor)
            style.backgroundColor = props2.backgroundColor;
        }
        return style;
      }
      var checkboxStyle = computed(() => {
        return getCheckBoxStyle(checkboxCheckedBool.value);
      });
      watch([() => props2.checked, () => props2.value], (_ref2) => {
        var [newChecked, newModelValue] = _ref2;
        checkboxChecked.value = newChecked;
        checkboxValue.value = newModelValue;
      });
      var reset = () => {
        checkboxChecked.value = false;
      };
      var {
        uniCheckGroup,
        uniLabel
      } = useCheckboxInject(checkboxChecked, checkboxValue, reset);
      var _onClick = ($event) => {
        if (props2.disabled) {
          return;
        }
        checkboxChecked.value = !checkboxChecked.value;
        uniCheckGroup && uniCheckGroup.checkboxChange($event);
        $event.stopPropagation();
      };
      if (!!uniLabel) {
        uniLabel.addHandler(_onClick);
        onBeforeUnmount(() => {
          uniLabel.removeHandler(_onClick);
        });
      }
      useListeners$1(props2, {
        "label-click": _onClick
      });
      return () => {
        var booleanAttrs = useBooleanAttr(props2, "disabled");
        var realCheckValue;
        realCheckValue = checkboxChecked.value;
        return createVNode("uni-checkbox", mergeProps(booleanAttrs, {
          "id": props2.id,
          "onClick": _onClick,
          "ref": rootRef
        }), [createVNode("div", {
          "class": "uni-checkbox-wrapper",
          "style": {
            "--HOVER-BD-COLOR": props2.activeBorderColor
          }
        }, [createVNode("div", {
          "class": ["uni-checkbox-input", {
            "uni-checkbox-input-disabled": props2.disabled
          }],
          "style": checkboxStyle.value
        }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.disabled ? "#ADADAD" : props2.foreColor || props2.iconColor || props2.color, 22) : ""], 6), slots.default && slots.default()], 4)], 16, ["id", "onClick"]);
      };
    }
  });
  function useCheckboxInject(checkboxChecked, checkboxValue, reset) {
    var field = computed(() => ({
      checkboxChecked: Boolean(checkboxChecked.value),
      value: checkboxValue.value
    }));
    var formField = {
      reset
    };
    var uniCheckGroup = inject(uniCheckGroupKey, false);
    if (!!uniCheckGroup) {
      uniCheckGroup.addField(field);
    }
    var uniForm = inject(uniFormKey, false);
    if (!!uniForm) {
      uniForm.addField(formField);
    }
    var uniLabel = inject(uniLabelKey, false);
    onBeforeUnmount(() => {
      uniCheckGroup && uniCheckGroup.removeField(field);
      uniForm && uniForm.removeField(formField);
    });
    return {
      uniCheckGroup,
      uniForm,
      uniLabel
    };
  }
  var resetTimer;
  var isAndroid;
  var osVersion;
  var keyboardHeight;
  var keyboardChangeCallback;
  var webviewStyle;
  {
    plusReady(() => {
      isAndroid = false;
      osVersion = "";
    });
    document.addEventListener("keyboardchange", function(event) {
      keyboardHeight = event.height;
      keyboardChangeCallback && keyboardChangeCallback();
    }, false);
  }
  function iosHideKeyboard() {
  }
  function setSoftinputTemporary(props2, el, reset) {
    plusReady(() => {
      var MODE_ADJUSTRESIZE = "adjustResize";
      var MODE_ADJUSTPAN = "adjustPan";
      var MODE_NOTHING = "nothing";
      var currentWebview = plus.webview.currentWebview();
      var style = webviewStyle || currentWebview.getStyle() || {};
      var options = {
        mode: reset || style.softinputMode === MODE_ADJUSTRESIZE ? MODE_ADJUSTRESIZE : props2.adjustPosition ? MODE_ADJUSTPAN : MODE_NOTHING,
        position: {
          top: 0,
          height: 0
        }
      };
      if (options.mode === MODE_ADJUSTPAN) {
        var rect = el.getBoundingClientRect();
        options.position.top = rect.top;
        options.position.height = rect.height + (Number(props2.cursorSpacing) || 0);
      }
      currentWebview.setSoftinputTemporary(options);
    });
  }
  function setSoftinputNavBar(props2, state) {
    if (props2.showConfirmBar === "auto") {
      delete state.softinputNavBar;
      return;
    }
    plusReady(() => {
      var currentWebview = plus.webview.currentWebview();
      var {
        softinputNavBar
      } = currentWebview.getStyle() || {};
      var showConfirmBar = softinputNavBar !== "none";
      if (showConfirmBar !== props2.showConfirmBar) {
        state.softinputNavBar = softinputNavBar || "auto";
        currentWebview.setStyle({
          softinputNavBar: props2.showConfirmBar ? "auto" : "none"
        });
      } else {
        delete state.softinputNavBar;
      }
    });
  }
  function resetSoftinputNavBar(state) {
    var softinputNavBar = state.softinputNavBar;
    if (softinputNavBar) {
      plusReady(() => {
        var currentWebview = plus.webview.currentWebview();
        currentWebview.setStyle({
          softinputNavBar
        });
      });
    }
  }
  var props$r = {
    cursorSpacing: {
      type: [Number, String],
      default: 0
    },
    showConfirmBar: {
      type: [Boolean, String],
      default: "auto"
    },
    adjustPosition: {
      type: [Boolean, String],
      default: true
    },
    autoBlur: {
      type: [Boolean, String],
      default: false
    }
  };
  var emit$1 = ["keyboardheightchange"];
  function useKeyboard(props2, elRef, trigger2) {
    var state = {};
    function initKeyboard(el) {
      var focus;
      var isApple = computed(() => String(navigator.vendor).indexOf("Apple") === 0);
      var keyboardChange = () => {
        trigger2("keyboardheightchange", {}, {
          height: keyboardHeight,
          duration: 0.25
        });
        if (focus && keyboardHeight === 0) {
          setSoftinputTemporary(props2, el);
        }
        if (props2.autoBlur && focus && keyboardHeight === 0 && (isAndroid || parseInt(osVersion) >= 13)) {
          document.activeElement.blur();
        }
      };
      el.addEventListener("focus", () => {
        focus = true;
        clearTimeout(resetTimer);
        document.addEventListener("click", iosHideKeyboard, false);
        {
          keyboardChangeCallback = keyboardChange;
          if (keyboardHeight) {
            trigger2("keyboardheightchange", {}, {
              height: keyboardHeight,
              duration: 0
            });
          }
          setSoftinputNavBar(props2, state);
          setSoftinputTemporary(props2, el);
        }
      });
      {
        if (isAndroid) {
          el.addEventListener("click", () => {
            if (!props2.disabled && !props2.readOnly && focus && keyboardHeight === 0) {
              setSoftinputTemporary(props2, el);
            }
          });
        }
        if (!isAndroid) {
          if (parseInt(osVersion) < 12) {
            el.addEventListener("touchstart", () => {
              if (!props2.disabled && !props2.readOnly && !focus) {
                setSoftinputTemporary(props2, el);
              }
            });
          }
          if (parseFloat(osVersion) >= 14.6 && !webviewStyle) {
            plusReady(() => {
              var currentWebview = plus.webview.currentWebview();
              webviewStyle = currentWebview.getStyle() || {};
            });
          }
        }
      }
      var onKeyboardHide = () => {
        document.removeEventListener("click", iosHideKeyboard, false);
        {
          keyboardChangeCallback = null;
          if (keyboardHeight) {
            trigger2("keyboardheightchange", {}, {
              height: 0,
              duration: 0
            });
          }
          resetSoftinputNavBar(state);
          if (isAndroid) {
            resetTimer = setTimeout(() => {
              setSoftinputTemporary(props2, el, true);
            }, 300);
          }
        }
        if (isApple.value) {
          document.documentElement.scrollTo(document.documentElement.scrollLeft, document.documentElement.scrollTop);
        }
      };
      el.addEventListener("blur", () => {
        if (isApple.value) {
          el.blur();
        }
        focus = false;
        onKeyboardHide();
      });
    }
    watch(() => elRef.value, (el) => el && initKeyboard(el));
  }
  var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;
  var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/;
  var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
  var empty = /* @__PURE__ */ makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");
  var block = /* @__PURE__ */ makeMap("a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");
  var inline = /* @__PURE__ */ makeMap("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
  var closeSelf = /* @__PURE__ */ makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
  var fillAttrs = /* @__PURE__ */ makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");
  var special = /* @__PURE__ */ makeMap("script,style");
  function HTMLParser(html, handler) {
    var index2;
    var chars;
    var match;
    var stack2 = [];
    var last = html;
    stack2.last = function() {
      return this[this.length - 1];
    };
    while (html) {
      chars = true;
      if (!stack2.last() || !special[stack2.last()]) {
        if (html.indexOf("<!--") == 0) {
          index2 = html.indexOf("-->");
          if (index2 >= 0) {
            if (handler.comment) {
              handler.comment(html.substring(4, index2));
            }
            html = html.substring(index2 + 3);
            chars = false;
          }
        } else if (html.indexOf("</") == 0) {
          match = html.match(endTag);
          if (match) {
            html = html.substring(match[0].length);
            match[0].replace(endTag, parseEndTag);
            chars = false;
          }
        } else if (html.indexOf("<") == 0) {
          match = html.match(startTag);
          if (match) {
            html = html.substring(match[0].length);
            match[0].replace(startTag, parseStartTag);
            chars = false;
          }
        }
        if (chars) {
          index2 = html.indexOf("<");
          var text2 = index2 < 0 ? html : html.substring(0, index2);
          html = index2 < 0 ? "" : html.substring(index2);
          if (handler.chars) {
            handler.chars(text2);
          }
        }
      } else {
        html = html.replace(new RegExp("([\\s\\S]*?)</" + stack2.last() + "[^>]*>"), function(all, text3) {
          text3 = text3.replace(/<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g, "$1$2");
          if (handler.chars) {
            handler.chars(text3);
          }
          return "";
        });
        parseEndTag("", stack2.last());
      }
      if (html == last) {
        throw "Parse Error: " + html;
      }
      last = html;
    }
    parseEndTag();
    function parseStartTag(tag, tagName, rest, unary) {
      tagName = tagName.toLowerCase();
      if (block[tagName]) {
        while (stack2.last() && inline[stack2.last()]) {
          parseEndTag("", stack2.last());
        }
      }
      if (closeSelf[tagName] && stack2.last() == tagName) {
        parseEndTag("", tagName);
      }
      unary = empty[tagName] || !!unary;
      if (!unary) {
        stack2.push(tagName);
      }
      if (handler.start) {
        var attrs2 = [];
        rest.replace(attr, function(match2, name) {
          var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : "";
          attrs2.push({
            name,
            value,
            escaped: value.replace(/(^|[^\\])"/g, '$1\\"')
            // "
          });
        });
        if (handler.start) {
          handler.start(tagName, attrs2, unary);
        }
      }
    }
    function parseEndTag(tag, tagName) {
      if (!tagName) {
        var pos = 0;
      } else {
        for (var pos = stack2.length - 1; pos >= 0; pos--) {
          if (stack2[pos] == tagName) {
            break;
          }
        }
      }
      if (pos >= 0) {
        for (var i2 = stack2.length - 1; i2 >= pos; i2--) {
          if (handler.end) {
            handler.end(stack2[i2]);
          }
        }
        stack2.length = pos;
      }
    }
  }
  function makeMap(str) {
    var obj = {};
    var items = str.split(",");
    for (var i2 = 0; i2 < items.length; i2++) {
      obj[items[i2]] = true;
    }
    return obj;
  }
  var scripts = {};
  function loadScript(globalName, src, callback) {
    var globalObject = isString(globalName) ? window[globalName] : globalName;
    if (globalObject) {
      callback();
      return;
    }
    var callbacks2 = scripts[src];
    if (!callbacks2) {
      callbacks2 = scripts[src] = [];
      var script = document.createElement("script");
      script.src = src;
      document.body.appendChild(script);
      script.onload = function() {
        callbacks2.forEach((callback2) => callback2());
        delete scripts[src];
      };
    }
    callbacks2.push(callback);
  }
  function divider(Quill) {
    var BlockEmbed = Quill.import("blots/block/embed");
    class Divider extends BlockEmbed {
    }
    Divider.blotName = "divider";
    Divider.tagName = "HR";
    return {
      "formats/divider": Divider
    };
  }
  function ins(Quill) {
    var Inline = Quill.import("blots/inline");
    class Ins extends Inline {
    }
    Ins.blotName = "ins";
    Ins.tagName = "INS";
    return {
      "formats/ins": Ins
    };
  }
  function align(Quill) {
    var {
      Scope,
      Attributor
    } = Quill.import("parchment");
    var config = {
      scope: Scope.BLOCK,
      whitelist: ["left", "right", "center", "justify"]
    };
    var AlignStyle = new Attributor.Style("align", "text-align", config);
    return {
      "formats/align": AlignStyle
    };
  }
  function direction(Quill) {
    var {
      Scope,
      Attributor
    } = Quill.import("parchment");
    var config = {
      scope: Scope.BLOCK,
      whitelist: ["rtl"]
    };
    var DirectionStyle = new Attributor.Style("direction", "direction", config);
    return {
      "formats/direction": DirectionStyle
    };
  }
  function list(Quill) {
    var Parchment = Quill.import("parchment");
    var Container = Quill.import("blots/container");
    var ListItem = Quill.import("formats/list/item");
    class List extends Container {
      static create(value) {
        var tagName = value === "ordered" ? "OL" : "UL";
        var node = super.create(tagName);
        if (value === "checked" || value === "unchecked") {
          node.setAttribute("data-checked", value === "checked");
        }
        return node;
      }
      static formats(domNode) {
        if (domNode.tagName === "OL")
          return "ordered";
        if (domNode.tagName === "UL") {
          if (domNode.hasAttribute("data-checked")) {
            return domNode.getAttribute("data-checked") === "true" ? "checked" : "unchecked";
          } else {
            return "bullet";
          }
        }
        return void 0;
      }
      constructor(domNode) {
        super(domNode);
        var listEventHandler = (e2) => {
          if (e2.target.parentNode !== domNode)
            return;
          var format = this.statics.formats(domNode);
          var blot = Parchment.find(e2.target);
          if (format === "checked") {
            blot.format("list", "unchecked");
          } else if (format === "unchecked") {
            blot.format("list", "checked");
          }
        };
        domNode.addEventListener("click", listEventHandler);
      }
      format(name, value) {
        if (this.children.length > 0) {
          this.children.tail.format(name, value);
        }
      }
      formats() {
        return {
          [this.statics.blotName]: this.statics.formats(this.domNode)
        };
      }
      insertBefore(blot, ref2) {
        if (blot instanceof ListItem) {
          super.insertBefore(blot, ref2);
        } else {
          var index2 = ref2 == null ? this.length() : ref2.offset(this);
          var after = this.split(index2);
          after.parent.insertBefore(blot, after);
        }
      }
      optimize(context) {
        super.optimize(context);
        var next = this.next;
        if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute("data-checked") === this.domNode.getAttribute("data-checked")) {
          next.moveChildren(this);
          next.remove();
        }
      }
      replace(target) {
        if (target.statics.blotName !== this.statics.blotName) {
          var item = Parchment.create(this.statics.defaultChild);
          target.moveChildren(item);
          this.appendChild(item);
        }
        super.replace(target);
      }
    }
    List.blotName = "list";
    List.scope = Parchment.Scope.BLOCK_BLOT;
    List.tagName = ["OL", "UL"];
    List.defaultChild = "list-item";
    List.allowedChildren = [ListItem];
    return {
      "formats/list": List
    };
  }
  function background(Quill) {
    var {
      Scope
    } = Quill.import("parchment");
    var BackgroundStyle = Quill.import("formats/background");
    var BackgroundColorStyle = new BackgroundStyle.constructor("backgroundColor", "background-color", {
      scope: Scope.INLINE
    });
    return {
      "formats/backgroundColor": BackgroundColorStyle
    };
  }
  function box(Quill) {
    var {
      Scope,
      Attributor
    } = Quill.import("parchment");
    var config = {
      scope: Scope.BLOCK
    };
    var margin = ["margin", "marginTop", "marginBottom", "marginLeft", "marginRight"];
    var padding = ["padding", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight"];
    var result = {};
    margin.concat(padding).forEach((name) => {
      result["formats/".concat(name)] = new Attributor.Style(name, hyphenate(name), config);
    });
    return result;
  }
  function font(Quill) {
    var {
      Scope,
      Attributor
    } = Quill.import("parchment");
    var config = {
      scope: Scope.INLINE
    };
    var font2 = ["font", "fontSize", "fontStyle", "fontVariant", "fontWeight", "fontFamily"];
    var result = {};
    font2.forEach((name) => {
      result["formats/".concat(name)] = new Attributor.Style(name, hyphenate(name), config);
    });
    return result;
  }
  function text(Quill) {
    var {
      Scope,
      Attributor
    } = Quill.import("parchment");
    var text2 = [{
      name: "lineHeight",
      scope: Scope.BLOCK
    }, {
      name: "letterSpacing",
      scope: Scope.INLINE
    }, {
      name: "textDecoration",
      scope: Scope.INLINE
    }, {
      name: "textIndent",
      scope: Scope.BLOCK
    }];
    var result = {};
    text2.forEach((_ref) => {
      var {
        name,
        scope
      } = _ref;
      result["formats/".concat(name)] = new Attributor.Style(name, hyphenate(name), {
        scope
      });
    });
    return result;
  }
  function image(Quill) {
    var Image2 = Quill.import("formats/image");
    var ATTRIBUTES = ["alt", "height", "width", "data-custom", "class", "data-local"];
    Image2.sanitize = (url) => url ? getRealPath(url) : url;
    Image2.formats = function formats(domNode) {
      return ATTRIBUTES.reduce(function(formats2, attribute) {
        if (domNode.hasAttribute(attribute)) {
          formats2[attribute] = domNode.getAttribute(attribute);
        }
        return formats2;
      }, {});
    };
    var format = Image2.prototype.format;
    Image2.prototype.format = function(name, value) {
      if (ATTRIBUTES.indexOf(name) > -1) {
        if (value) {
          this.domNode.setAttribute(name, value);
        } else {
          this.domNode.removeAttribute(name);
        }
      } else {
        format.call(this, name, value);
      }
    };
  }
  function link(Quill) {
    var Link = Quill.import("formats/link");
    Link.sanitize = (url) => {
      var anchor = document.createElement("a");
      anchor.href = url;
      var protocol = anchor.href.slice(0, anchor.href.indexOf(":"));
      return Link.PROTOCOL_WHITELIST.concat("file").indexOf(protocol) > -1 ? url : Link.SANITIZED_URL;
    };
  }
  function register(Quill) {
    var formats = {
      divider,
      ins,
      align,
      direction,
      list,
      background,
      box,
      font,
      text,
      image,
      link
    };
    var options = {};
    Object.values(formats).forEach((value) => extend(options, value(Quill)));
    Quill.register(options, true);
  }
  function useQuill(props2, rootRef, trigger2) {
    var quillReady;
    var skipMatcher;
    var quill;
    watch(() => props2.readOnly, (value) => {
      if (quillReady) {
        quill.enable(!value);
        if (!value) {
          quill.blur();
        }
      }
    });
    watch(() => props2.placeholder, (value) => {
      if (quillReady) {
        setPlaceHolder(value);
      }
    });
    function html2delta(html) {
      var tags = ["span", "strong", "b", "ins", "em", "i", "u", "a", "del", "s", "sub", "sup", "img", "div", "p", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ol", "ul", "li", "br"];
      var content = "";
      var disable;
      HTMLParser(html, {
        start: function(tag, attrs2, unary) {
          if (!tags.includes(tag)) {
            disable = !unary;
            return;
          }
          disable = false;
          var arrts = attrs2.map((_ref) => {
            var {
              name,
              value
            } = _ref;
            return "".concat(name, '="').concat(value, '"');
          }).join(" ");
          var start = "<".concat(tag, " ").concat(arrts, " ").concat(unary ? "/" : "", ">");
          content += start;
        },
        end: function(tag) {
          if (!disable) {
            content += "</".concat(tag, ">");
          }
        },
        chars: function(text2) {
          if (!disable) {
            content += text2;
          }
        }
      });
      skipMatcher = true;
      var delta = quill.clipboard.convert(content);
      skipMatcher = false;
      return delta;
    }
    function getContents() {
      var html = quill.root.innerHTML;
      var text2 = quill.getText();
      var delta = quill.getContents();
      return {
        html,
        text: text2,
        delta
      };
    }
    function setPlaceHolder(placeholder) {
      var placeHolderAttrName = "data-placeholder";
      var QuillRoot = quill.root;
      QuillRoot.getAttribute(placeHolderAttrName) !== placeholder && QuillRoot.setAttribute(placeHolderAttrName, placeholder);
    }
    var oldStatus = {};
    function updateStatus(range) {
      var status = range ? quill.getFormat(range) : {};
      var keys = Object.keys(status);
      if (keys.length !== Object.keys(oldStatus).length || keys.find((key2) => status[key2] !== oldStatus[key2])) {
        oldStatus = status;
        trigger2("statuschange", {}, status);
      }
    }
    function textChangeHandler() {
      trigger2("input", {}, getContents());
    }
    function initQuill(imageResizeModules) {
      var Quill = window.Quill;
      register(Quill);
      var options = {
        toolbar: false,
        readOnly: props2.readOnly,
        placeholder: props2.placeholder
      };
      if (imageResizeModules.length) {
        Quill.register("modules/ImageResize", window.ImageResize.default);
        options.modules = {
          ImageResize: {
            modules: imageResizeModules
          }
        };
      }
      var rootEl = rootRef.value;
      quill = new Quill(rootEl, options);
      var $el = quill.root;
      var events = ["focus", "blur", "input"];
      events.forEach((name) => {
        $el.addEventListener(name, ($event) => {
          var contents = getContents();
          if (name === "input") {
            if (getBaseSystemInfo().platform === "ios") {
              var regExpContent = (contents.html.match(/<span [\s\S]*>([\s\S]*)<\/span>/) || [])[1];
              var placeholder = regExpContent && regExpContent.replace(/\s/g, "") ? "" : props2.placeholder;
              setPlaceHolder(placeholder);
            }
            $event.stopPropagation();
          } else {
            trigger2(name, $event, contents);
          }
        });
      });
      quill.on("text-change", textChangeHandler);
      quill.on("selection-change", updateStatus);
      quill.on("scroll-optimize", () => {
        var range = quill.selection.getRange()[0];
        updateStatus(range);
      });
      quill.clipboard.addMatcher(Node.ELEMENT_NODE, (node, delta) => {
        if (skipMatcher) {
          return delta;
        }
        if (delta.ops) {
          delta.ops = delta.ops.filter((_ref2) => {
            var {
              insert
            } = _ref2;
            return isString(insert);
          }).map((_ref3) => {
            var {
              insert
            } = _ref3;
            return {
              insert
            };
          });
        }
        return delta;
      });
      quillReady = true;
      trigger2("ready", {}, {});
    }
    var id2 = useContextInfo();
    useSubscribe((type, data, resolve) => {
      var {
        options,
        callbackId
      } = data;
      var res;
      var range;
      var errMsg;
      if (quillReady) {
        var Quill = window.Quill;
        switch (type) {
          case "format":
            {
              var {
                name = "",
                value = false
              } = options;
              range = quill.getSelection(true);
              var format = quill.getFormat(range)[name] || false;
              if (["bold", "italic", "underline", "strike", "ins"].includes(name)) {
                value = !format;
              } else if (name === "direction") {
                value = value === "rtl" && format ? false : value;
                var align2 = quill.getFormat(range).align;
                if (value === "rtl" && !align2) {
                  quill.format("align", "right", "user");
                } else if (!value && align2 === "right") {
                  quill.format("align", false, "user");
                }
              } else if (name === "indent") {
                var rtl = quill.getFormat(range).direction === "rtl";
                value = value === "+1";
                if (rtl) {
                  value = !value;
                }
                value = value ? "+1" : "-1";
              } else {
                if (name === "list") {
                  value = value === "check" ? "unchecked" : value;
                  format = format === "checked" ? "unchecked" : format;
                }
                value = format && format !== (value || false) || !format && value ? value : !format;
              }
              quill.format(name, value, "user");
            }
            break;
          case "insertDivider":
            range = quill.getSelection(true);
            quill.insertText(range.index, LINEFEED, "user");
            quill.insertEmbed(range.index + 1, "divider", true, "user");
            quill.setSelection(range.index + 2, 0, "silent");
            break;
          case "insertImage":
            {
              range = quill.getSelection(true);
              var {
                src = "",
                alt = "",
                width = "",
                height = "",
                extClass = "",
                data: data2 = {}
              } = options;
              var path = getRealPath(src);
              quill.insertEmbed(range.index, "image", path, "silent");
              var local = /^(file|blob):/.test(path) ? path : false;
              quill.formatText(range.index, 1, "data-local", local, "silent");
              quill.formatText(range.index, 1, "alt", alt, "silent");
              quill.formatText(range.index, 1, "width", width, "silent");
              quill.formatText(range.index, 1, "height", height, "silent");
              quill.formatText(range.index, 1, "class", extClass, "silent");
              quill.formatText(range.index, 1, "data-custom", Object.keys(data2).map((key2) => "".concat(key2, "=").concat(data2[key2])).join("&"), "silent");
              quill.setSelection(range.index + 1, 0, "silent");
              quill.scrollIntoView();
              setTimeout(() => {
                textChangeHandler();
              }, 1e3);
            }
            break;
          case "insertText":
            {
              range = quill.getSelection(true);
              var {
                text: text2 = ""
              } = options;
              quill.insertText(range.index, text2, "user");
              quill.setSelection(range.index + text2.length, 0, "silent");
            }
            break;
          case "setContents":
            {
              var {
                delta,
                html
              } = options;
              if (typeof delta === "object") {
                quill.setContents(delta, "silent");
              } else if (isString(html)) {
                quill.setContents(html2delta(html), "silent");
              } else {
                errMsg = "contents is missing";
              }
            }
            break;
          case "getContents":
            res = getContents();
            break;
          case "clear":
            quill.setText("");
            break;
          case "removeFormat":
            {
              range = quill.getSelection(true);
              var parchment = Quill.import("parchment");
              if (range.length) {
                quill.removeFormat(range.index, range.length, "user");
              } else {
                Object.keys(quill.getFormat(range)).forEach((key2) => {
                  if (parchment.query(key2, parchment.Scope.INLINE)) {
                    quill.format(key2, false);
                  }
                });
              }
            }
            break;
          case "undo":
            quill.history.undo();
            break;
          case "redo":
            quill.history.redo();
            break;
          case "blur":
            quill.blur();
            break;
          case "getSelectionText":
            range = quill.selection.savedRange;
            res = {
              text: ""
            };
            if (range && range.length !== 0) {
              res.text = quill.getText(range.index, range.length);
            }
            break;
          case "scrollIntoView":
            quill.scrollIntoView();
            break;
        }
        updateStatus(range);
      } else {
        errMsg = "not ready";
      }
      if (callbackId) {
        resolve({
          callbackId,
          data: extend({}, res, {
            errMsg: "".concat(type, ":").concat(errMsg ? "fail " + errMsg : "ok")
          })
        });
      }
    }, id2);
    onMounted(() => {
      var imageResizeModules = [];
      if (props2.showImgSize) {
        imageResizeModules.push("DisplaySize");
      }
      if (props2.showImgToolbar) {
        imageResizeModules.push("Toolbar");
      }
      if (props2.showImgResize) {
        imageResizeModules.push("Resize");
      }
      var quillSrc = "./__uniappquill.js";
      loadScript(window.Quill, quillSrc, () => {
        if (imageResizeModules.length) {
          var imageResizeSrc = "./__uniappquillimageresize.js";
          loadScript(window.ImageResize, imageResizeSrc, () => {
            initQuill(imageResizeModules);
          });
        } else {
          initQuill(imageResizeModules);
        }
      });
    });
  }
  var props$q = /* @__PURE__ */ extend({}, props$r, {
    id: {
      type: String,
      default: ""
    },
    readOnly: {
      type: [Boolean, String],
      default: false
    },
    placeholder: {
      type: String,
      default: ""
    },
    showImgSize: {
      type: [Boolean, String],
      default: false
    },
    showImgToolbar: {
      type: [Boolean, String],
      default: false
    },
    showImgResize: {
      type: [Boolean, String],
      default: false
    }
  });
  const Editor = /* @__PURE__ */ defineBuiltInComponent({
    name: "Editor",
    props: props$q,
    emit: ["ready", "focus", "blur", "input", "statuschange", ...emit$1],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      useQuill(props2, rootRef, trigger2);
      useKeyboard(props2, rootRef, trigger2);
      return () => {
        return createVNode("uni-editor", {
          "ref": rootRef,
          "id": props2.id,
          "class": "ql-container"
        }, null, 8, ["id"]);
      };
    }
  });
  var INFO_COLOR = "#10aeff";
  var WARN_COLOR = "#f76260";
  var GREY_COLOR = "#b2b2b2";
  var CANCEL_COLOR = "#f43530";
  var ICONS = {
    success: {
      d: ICON_PATH_SUCCESS,
      c: PRIMARY_COLOR
    },
    success_no_circle: {
      d: ICON_PATH_SUCCESS_NO_CIRCLE,
      c: PRIMARY_COLOR
    },
    info: {
      d: ICON_PATH_INFO,
      c: INFO_COLOR
    },
    warn: {
      d: ICON_PATH_WARN,
      c: WARN_COLOR
    },
    waiting: {
      d: ICON_PATH_WAITING,
      c: INFO_COLOR
    },
    cancel: {
      d: ICON_PATH_CANCEL,
      c: CANCEL_COLOR
    },
    download: {
      d: ICON_PATH_DOWNLOAD,
      c: PRIMARY_COLOR
    },
    search: {
      d: ICON_PATH_SEARCH,
      c: GREY_COLOR
    },
    clear: {
      d: ICON_PATH_CLEAR,
      c: GREY_COLOR
    }
  };
  const Icon = /* @__PURE__ */ defineBuiltInComponent({
    name: "Icon",
    props: {
      type: {
        type: String,
        required: true,
        default: ""
      },
      size: {
        type: [String, Number],
        default: 23
      },
      color: {
        type: String,
        default: ""
      }
    },
    setup(props2) {
      var rootRef = ref(null);
      var path = computed(() => ICONS[props2.type]);
      return () => {
        var {
          value
        } = path;
        return createVNode("uni-icon", {
          "ref": rootRef
        }, [value && value.d && createSvgIconVNode(value.d, props2.color || value.c, rpx2px(props2.size))], 512);
      };
    }
  });
  var props$p = {
    src: {
      type: String,
      default: ""
    },
    mode: {
      type: String,
      default: "scaleToFill"
    },
    lazyLoad: {
      type: [Boolean, String],
      default: false
    },
    draggable: {
      type: Boolean,
      default: false
    }
  };
  var FIX_MODES = {
    widthFix: ["offsetWidth", "height", (value, ratio) => value / ratio],
    heightFix: ["offsetHeight", "width", (value, ratio) => value * ratio]
  };
  var IMAGE_MODES = {
    aspectFit: ["center center", "contain"],
    aspectFill: ["center center", "cover"],
    widthFix: [, "100% 100%"],
    heightFix: [, "100% 100%"],
    top: ["center top"],
    bottom: ["center bottom"],
    center: ["center center"],
    left: ["left center"],
    right: ["right center"],
    "top left": ["left top"],
    "top right": ["right top"],
    "bottom left": ["left bottom"],
    "bottom right": ["right bottom"]
  };
  const Image$1 = /* @__PURE__ */ defineBuiltInComponent({
    name: "Image",
    props: props$p,
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var state = useImageState(rootRef, props2);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var {
        fixSize
      } = useImageSize(rootRef, props2, state);
      useImageLoader(state, props2, rootRef, fixSize, trigger2);
      return () => {
        return createVNode("uni-image", {
          "ref": rootRef
        }, [createVNode("div", {
          "style": state.modeStyle
        }, null, 4), FIX_MODES[props2.mode] ? createVNode(ResizeSensor, {
          "onResize": fixSize
        }, null, 8, ["onResize"]) : createVNode("span", null, null)], 512);
      };
    }
  });
  function useImageState(rootRef, props2) {
    var imgSrc = ref("");
    var modeStyleRef = computed(() => {
      var size2 = "auto";
      var position = "";
      var opts = IMAGE_MODES[props2.mode];
      if (!opts) {
        position = "0% 0%";
        size2 = "100% 100%";
      } else {
        opts[0] && (position = opts[0]);
        opts[1] && (size2 = opts[1]);
      }
      return "background-image:".concat(imgSrc.value ? 'url("' + imgSrc.value + '")' : "none", ";background-position:").concat(position, ";background-size:").concat(size2, ";");
    });
    var state = reactive({
      rootEl: rootRef,
      src: computed(() => props2.src ? getRealPath(props2.src) : ""),
      origWidth: 0,
      origHeight: 0,
      origStyle: {
        width: "",
        height: ""
      },
      modeStyle: modeStyleRef,
      imgSrc
    });
    onMounted(() => {
      var rootEl = rootRef.value;
      state.origWidth = rootEl.clientWidth || 0;
      state.origHeight = rootEl.clientHeight || 0;
    });
    return state;
  }
  function useImageLoader(state, props2, rootRef, fixSize, trigger2) {
    var img;
    var draggableImg;
    var setState = function() {
      var width = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
      var height = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
      var imgSrc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "";
      state.origWidth = width;
      state.origHeight = height;
      state.imgSrc = imgSrc;
    };
    var loadImage = (src) => {
      if (!src) {
        resetImage();
        setState();
        return;
      }
      img = img || new Image();
      img.onload = (evt) => {
        var {
          width,
          height
        } = img;
        setState(width, height, src);
        nextTick(() => {
          fixSize();
        });
        img.draggable = props2.draggable;
        if (draggableImg) {
          draggableImg.remove();
        }
        draggableImg = img;
        rootRef.value.appendChild(img);
        resetImage();
        trigger2("load", evt, {
          width,
          height
        });
      };
      img.onerror = (evt) => {
        setState();
        resetImage();
        trigger2("error", evt, {
          errMsg: "GET ".concat(state.src, " 404 (Not Found)")
        });
      };
      img.src = src;
    };
    var resetImage = () => {
      if (img) {
        img.onload = null;
        img.onerror = null;
        img = null;
      }
    };
    watch(() => state.src, (value) => loadImage(value));
    watch(() => state.imgSrc, (value) => {
      if (!value && draggableImg) {
        draggableImg.remove();
        draggableImg = null;
      }
    });
    onMounted(() => loadImage(state.src));
    onBeforeUnmount(() => resetImage());
  }
  var isChrome = navigator.vendor === "Google Inc.";
  function fixNumber(num) {
    if (isChrome && num > 10) {
      num = Math.round(num / 2) * 2;
    }
    return num;
  }
  function useImageSize(rootRef, props2, state) {
    var fixSize = () => {
      var {
        mode: mode2
      } = props2;
      var names = FIX_MODES[mode2];
      if (!names) {
        return;
      }
      var {
        origWidth,
        origHeight
      } = state;
      var ratio = origWidth && origHeight ? origWidth / origHeight : 0;
      if (!ratio) {
        return;
      }
      var rootEl = rootRef.value;
      var value = rootEl[names[0]];
      if (value) {
        rootEl.style[names[1]] = fixNumber(names[2](value, ratio)) + "px";
      }
      {
        window.dispatchEvent(new CustomEvent("updateview"));
      }
    };
    var resetSize = () => {
      var {
        style
      } = rootRef.value;
      var {
        origStyle: {
          width,
          height
        }
      } = state;
      style.width = width;
      style.height = height;
    };
    watch(() => props2.mode, (value, oldValue) => {
      if (FIX_MODES[oldValue]) {
        resetSize();
      }
      if (FIX_MODES[value]) {
        fixSize();
      }
    });
    return {
      fixSize,
      resetSize
    };
  }
  function throttle(fn, wait) {
    var last = 0;
    var timeout;
    var waitCallback;
    var newFn = function() {
      for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
        arg[_key] = arguments[_key];
      }
      var now = Date.now();
      clearTimeout(timeout);
      waitCallback = () => {
        waitCallback = null;
        last = now;
        fn.apply(this, arg);
      };
      if (now - last < wait) {
        timeout = setTimeout(waitCallback, wait - (now - last));
        return;
      }
      waitCallback();
    };
    newFn.cancel = function() {
      clearTimeout(timeout);
      waitCallback = null;
    };
    newFn.flush = function() {
      clearTimeout(timeout);
      waitCallback && waitCallback();
    };
    return newFn;
  }
  var passiveOptions$1 = /* @__PURE__ */ passive(true);
  var states = [];
  var userInteract = 0;
  var inited = false;
  var setUserAction = (userAction) => states.forEach((vm) => vm.userAction = userAction);
  function addInteractListener() {
    var vm = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
      userAction: false
    };
    if (!inited) {
      var eventNames = ["touchstart", "touchmove", "touchend", "mousedown", "mouseup"];
      eventNames.forEach((eventName) => {
        document.addEventListener(eventName, function() {
          !userInteract && setUserAction(true);
          userInteract++;
          setTimeout(() => {
            !--userInteract && setUserAction(false);
          }, 0);
        }, passiveOptions$1);
      });
      inited = true;
    }
    states.push(vm);
  }
  function removeInteractListener(vm) {
    var index2 = states.indexOf(vm);
    if (index2 >= 0) {
      states.splice(index2, 1);
    }
  }
  function useUserAction() {
    var state = reactive({
      /**
       * 是否用户激活
       */
      userAction: false
    });
    onMounted(() => {
      addInteractListener(state);
    });
    onBeforeUnmount(() => {
      removeInteractListener(state);
    });
    return {
      state
    };
  }
  function useScopedAttrs() {
    var state = reactive({
      attrs: {}
    });
    onMounted(() => {
      var instance = getCurrentInstance();
      while (instance) {
        var scopeId = instance.type.__scopeId;
        if (scopeId) {
          state.attrs[scopeId] = "";
        }
        instance = instance.proxy && instance.proxy.$mpType === "page" ? null : instance.parent;
      }
    });
    return {
      state
    };
  }
  function useFormField(nameKey, value) {
    var uniForm = inject(
      uniFormKey,
      false
      // remove warning
    );
    if (!uniForm) {
      return;
    }
    var instance = getCurrentInstance();
    var ctx2 = {
      submit() {
        var proxy = instance.proxy;
        return [proxy[nameKey], isString(value) ? proxy[value] : value.value];
      },
      reset() {
        if (isString(value)) {
          instance.proxy[value] = "";
        } else {
          value.value = "";
        }
      }
    };
    uniForm.addField(ctx2);
    onBeforeUnmount(() => {
      uniForm.removeField(ctx2);
    });
  }
  function getSelectedTextRange(_, resolve) {
    var activeElement = document.activeElement;
    if (!activeElement) {
      return resolve({});
    }
    var data = {};
    if (["input", "textarea"].includes(activeElement.tagName.toLowerCase())) {
      data.start = activeElement.selectionStart;
      data.end = activeElement.selectionEnd;
    }
    resolve(data);
  }
  var UniViewJSBridgeSubscribe = function() {
    registerViewMethod(getCurrentPageId(), "getSelectedTextRange", getSelectedTextRange);
  };
  var FOCUS_DELAY = 200;
  var startTime;
  function getValueString(value, type, maxlength) {
    if (type === "number" && isNaN(Number(value))) {
      value = "";
    }
    var valueStr = value === null || value === void 0 ? "" : String(value);
    {
      return valueStr;
    }
  }
  var INPUT_MODES = ["none", "text", "decimal", "numeric", "tel", "search", "email", "url"];
  var props$o = /* @__PURE__ */ extend({}, {
    name: {
      type: String,
      default: ""
    },
    modelValue: {
      type: [String, Number]
    },
    value: {
      type: [String, Number]
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    /**
     * 已废弃属性，用于历史兼容
     */
    autoFocus: {
      type: [Boolean, String],
      default: false
    },
    focus: {
      type: [Boolean, String],
      default: false
    },
    cursor: {
      type: [Number, String],
      default: -1
    },
    selectionStart: {
      type: [Number, String],
      default: -1
    },
    selectionEnd: {
      type: [Number, String],
      default: -1
    },
    type: {
      type: String,
      default: "text"
    },
    password: {
      type: [Boolean, String],
      default: false
    },
    placeholder: {
      type: String,
      default: ""
    },
    placeholderStyle: {
      type: String,
      default: ""
    },
    placeholderClass: {
      type: String,
      default: ""
    },
    maxlength: {
      type: [Number, String],
      default: 140
    },
    confirmType: {
      type: String,
      default: "done"
    },
    confirmHold: {
      type: Boolean,
      default: false
    },
    ignoreCompositionEvent: {
      type: Boolean,
      default: true
    },
    step: {
      type: String,
      default: "0.000000000000000001"
    },
    inputmode: {
      type: String,
      default: void 0,
      validator: (value) => !!~INPUT_MODES.indexOf(value)
    },
    cursorColor: {
      type: String,
      default: ""
    }
  }, props$r);
  var emit = ["input", "focus", "blur", "update:value", "update:modelValue", "update:focus", "compositionstart", "compositionupdate", "compositionend", ...emit$1];
  function useBase(props2, rootRef, emit2) {
    var fieldRef = ref(null);
    var trigger2 = useCustomEvent(rootRef, emit2);
    var selectionStart = computed(() => {
      var selectionStart2 = Number(props2.selectionStart);
      return isNaN(selectionStart2) ? -1 : selectionStart2;
    });
    var selectionEnd = computed(() => {
      var selectionEnd2 = Number(props2.selectionEnd);
      return isNaN(selectionEnd2) ? -1 : selectionEnd2;
    });
    var cursor = computed(() => {
      var cursor2 = Number(props2.cursor);
      return isNaN(cursor2) ? -1 : cursor2;
    });
    var maxlength = computed(() => {
      var maxlength2 = Number(props2.maxlength);
      {
        return isNaN(maxlength2) ? 140 : maxlength2;
      }
    });
    var value = "";
    {
      value = getValueString(props2.modelValue, props2.type) || getValueString(props2.value, props2.type);
    }
    var state = reactive({
      value,
      valueOrigin: value,
      maxlength,
      focus: props2.focus,
      composing: false,
      selectionStart,
      selectionEnd,
      cursor
    });
    watch(() => state.focus, (val) => emit2("update:focus", val));
    watch(() => state.maxlength, (val) => state.value = state.value.slice(0, val), {
      immediate: false
    });
    return {
      fieldRef,
      state,
      trigger: trigger2
    };
  }
  function useValueSync(props2, state, emit2, trigger2) {
    var valueChangeFn = null;
    {
      valueChangeFn = debounce((val) => {
        state.value = getValueString(val, props2.type);
      }, 100, {
        setTimeout,
        clearTimeout
      });
    }
    watch(() => props2.modelValue, valueChangeFn);
    watch(() => props2.value, valueChangeFn);
    var triggerInputFn = throttle((event, detail) => {
      valueChangeFn.cancel();
      emit2("update:modelValue", detail.value);
      emit2("update:value", detail.value);
      trigger2("input", event, detail);
    }, 100);
    var triggerInput = (event, detail, force) => {
      valueChangeFn.cancel();
      triggerInputFn(event, detail);
      if (force) {
        triggerInputFn.flush();
      }
    };
    onBeforeMount(() => {
      valueChangeFn.cancel();
      triggerInputFn.cancel();
    });
    return {
      trigger: trigger2,
      triggerInput
    };
  }
  function useAutoFocus(props2, fieldRef) {
    var {
      state: userActionState
    } = useUserAction();
    var needFocus = computed(() => props2.autoFocus || props2.focus);
    function focus() {
      if (!needFocus.value) {
        return;
      }
      var field = fieldRef.value;
      if (!field || !("plus" in window)) {
        setTimeout(focus, 100);
        return;
      }
      {
        var timeout = FOCUS_DELAY - (Date.now() - startTime);
        if (timeout > 0) {
          setTimeout(focus, timeout);
          return;
        }
        {
          if (!userActionState.userAction) {
            plus.key.showSoftKeybord();
            setTimeout(() => {
              field.focus();
            }, 100);
          } else {
            field.focus();
          }
        }
      }
    }
    function blur() {
      var field = fieldRef.value;
      if (field) {
        field.blur();
      }
    }
    watch(() => props2.focus, (value) => {
      if (value) {
        focus();
      } else {
        blur();
      }
    });
    onMounted(() => {
      startTime = startTime || Date.now();
      if (needFocus.value) {
        nextTick(focus);
      }
    });
  }
  function useEvent(fieldRef, state, props2, trigger2, triggerInput, beforeInput) {
    function checkSelection() {
      var field = fieldRef.value;
      if (field && state.focus && state.selectionStart > -1 && state.selectionEnd > -1 && field.type !== "number") {
        field.selectionStart = state.selectionStart;
        field.selectionEnd = state.selectionEnd;
      }
    }
    function checkCursor() {
      var field = fieldRef.value;
      if (field && state.focus && state.selectionStart < 0 && state.selectionEnd < 0 && state.cursor > -1 && field.type !== "number") {
        field.selectionEnd = field.selectionStart = state.cursor;
      }
    }
    function getFieldSelectionEnd(field) {
      if (field.type === "number") {
        return null;
      } else {
        return field.selectionEnd;
      }
    }
    function initField() {
      var field = fieldRef.value;
      if (!field)
        return;
      var onFocus = function(event) {
        state.focus = true;
        trigger2("focus", event, {
          value: state.value
        });
        checkSelection();
        checkCursor();
      };
      var onInput = function(event, force) {
        event.stopPropagation();
        if (isFunction(beforeInput) && beforeInput(event, state) === false) {
          return;
        }
        state.value = field.value;
        if (!state.composing || !props2.ignoreCompositionEvent) {
          triggerInput(event, {
            value: field.value,
            cursor: getFieldSelectionEnd(field)
          }, force);
        }
      };
      var onBlur = function(event) {
        if (state.composing) {
          state.composing = false;
          onInput(event, true);
        }
        state.focus = false;
        trigger2("blur", event, {
          value: state.value,
          cursor: getFieldSelectionEnd(event.target)
        });
      };
      field.addEventListener("change", (event) => event.stopPropagation());
      field.addEventListener("focus", onFocus);
      field.addEventListener("blur", onBlur);
      field.addEventListener("input", onInput);
      field.addEventListener("compositionstart", (event) => {
        event.stopPropagation();
        state.composing = true;
        _onComposition(event);
      });
      field.addEventListener("compositionend", (event) => {
        event.stopPropagation();
        if (state.composing) {
          state.composing = false;
          onInput(event);
        }
        _onComposition(event);
      });
      field.addEventListener("compositionupdate", _onComposition);
      function _onComposition(event) {
        if (!props2.ignoreCompositionEvent) {
          trigger2(event.type, event, {
            value: event.data
          });
        }
      }
    }
    watch([() => state.selectionStart, () => state.selectionEnd], checkSelection);
    watch(() => state.cursor, checkCursor);
    watch(() => fieldRef.value, initField);
  }
  function useField(props2, rootRef, emit2, beforeInput) {
    UniViewJSBridgeSubscribe();
    var {
      fieldRef,
      state,
      trigger: trigger2
    } = useBase(props2, rootRef, emit2);
    var {
      triggerInput
    } = useValueSync(props2, state, emit2, trigger2);
    useAutoFocus(props2, fieldRef);
    useKeyboard(props2, fieldRef, trigger2);
    var {
      state: scopedAttrsState
    } = useScopedAttrs();
    useFormField("name", state);
    useEvent(fieldRef, state, props2, trigger2, triggerInput, beforeInput);
    var fixDisabledColor = String(navigator.vendor).indexOf("Apple") === 0 && CSS.supports("image-orientation:from-image");
    return {
      fieldRef,
      state,
      scopedAttrsState,
      fixDisabledColor,
      trigger: trigger2
    };
  }
  var props$n = /* @__PURE__ */ extend({}, props$o, {
    placeholderClass: {
      type: String,
      default: "input-placeholder"
    },
    textContentType: {
      type: String,
      default: ""
    }
  });
  var resolveDigitDecimalPointDeleteContentBackward = once(() => {
    {
      return false;
    }
  });
  function resolveDigitDecimalPoint(event, cache2, state, input, resetCache) {
    if (cache2.value) {
      if (event.data === ".") {
        if (cache2.value.slice(-1) === ".") {
          state.value = input.value = cache2.value = cache2.value.slice(0, -1);
          return false;
        }
        if (cache2.value && !cache2.value.includes(".")) {
          cache2.value += ".";
          if (resetCache) {
            resetCache.fn = () => {
              state.value = input.value = cache2.value = cache2.value.slice(0, -1);
              input.removeEventListener("blur", resetCache.fn);
            };
            input.addEventListener("blur", resetCache.fn);
          }
          return false;
        }
      } else if (event.inputType === "deleteContentBackward") {
        if (resolveDigitDecimalPointDeleteContentBackward()) {
          if (cache2.value.slice(-2, -1) === ".") {
            cache2.value = state.value = input.value = cache2.value.slice(0, -2);
            return true;
          }
        }
      }
    }
  }
  function useCache(props2, type) {
    if (type.value === "number") {
      var value = typeof props2.modelValue === "undefined" ? props2.value : props2.modelValue;
      var cache2 = ref(typeof value !== "undefined" && value !== null ? value.toLocaleString() : "");
      watch(() => props2.modelValue, (value2) => {
        cache2.value = typeof value2 !== "undefined" && value2 !== null ? value2.toLocaleString() : "";
      });
      watch(() => props2.value, (value2) => {
        cache2.value = typeof value2 !== "undefined" && value2 !== null ? value2.toLocaleString() : "";
      });
      return cache2;
    } else {
      return ref("");
    }
  }
  const Input = /* @__PURE__ */ defineBuiltInComponent({
    name: "Input",
    props: props$n,
    emits: ["confirm", ...emit],
    setup(props2, _ref) {
      var {
        emit: emit2,
        expose
      } = _ref;
      var INPUT_TYPES = ["text", "number", "idcard", "digit", "password", "tel"];
      var AUTOCOMPLETES = ["off", "one-time-code"];
      var type = computed(() => {
        var type2 = "";
        switch (props2.type) {
          case "text":
            type2 = "text";
            if (props2.confirmType === "search") {
              type2 = "search";
            }
            break;
          case "idcard":
            type2 = "text";
            break;
          case "digit":
            type2 = "number";
            break;
          default:
            type2 = INPUT_TYPES.includes(props2.type) ? props2.type : "text";
            break;
        }
        return props2.password ? "password" : type2;
      });
      var autocomplete = computed(() => {
        var camelizeIndex = AUTOCOMPLETES.indexOf(props2.textContentType);
        var kebabCaseIndex = AUTOCOMPLETES.indexOf(hyphenate(props2.textContentType));
        var index2 = camelizeIndex !== -1 ? camelizeIndex : kebabCaseIndex !== -1 ? kebabCaseIndex : 0;
        return AUTOCOMPLETES[index2];
      });
      var cache2 = useCache(props2, type);
      var resetCache = {
        fn: null
      };
      var rootRef = ref(null);
      var {
        fieldRef,
        state,
        scopedAttrsState,
        fixDisabledColor,
        trigger: trigger2
      } = useField(props2, rootRef, emit2, (event, state2) => {
        var input = event.target;
        if (type.value === "number") {
          if (resetCache.fn) {
            input.removeEventListener("blur", resetCache.fn);
            resetCache.fn = null;
          }
          if (input.validity && !input.validity.valid) {
            if ((!cache2.value || !input.value) && event.data === "-" || cache2.value[0] === "-" && event.inputType === "deleteContentBackward") {
              cache2.value = "-";
              state2.value = "";
              resetCache.fn = () => {
                cache2.value = input.value = "";
              };
              input.addEventListener("blur", resetCache.fn);
              return false;
            }
            var res = resolveDigitDecimalPoint(event, cache2, state2, input, resetCache);
            if (typeof res === "boolean")
              return res;
            cache2.value = state2.value = input.value = cache2.value === "-" ? "" : cache2.value;
            return false;
          } else {
            var _res = resolveDigitDecimalPoint(event, cache2, state2, input, resetCache);
            if (typeof _res === "boolean")
              return _res;
            cache2.value = input.value;
          }
          var maxlength = state2.maxlength;
          if (maxlength > 0 && input.value.length > maxlength) {
            input.value = input.value.slice(0, maxlength);
            state2.value = input.value;
            var modelValue = props2.modelValue !== void 0 && props2.modelValue !== null ? props2.modelValue.toString() : "";
            return modelValue !== input.value;
          }
        }
      });
      watch(() => state.value, (value) => {
        if (props2.type === "number" && !(cache2.value === "-" && value === "")) {
          cache2.value = value.toString();
        }
      });
      var NUMBER_TYPES = ["number", "digit"];
      var step2 = computed(() => NUMBER_TYPES.includes(props2.type) ? props2.step : "");
      function onKeyUpEnter(event) {
        if (event.key !== "Enter") {
          return;
        }
        var input = event.target;
        event.stopPropagation();
        trigger2("confirm", event, {
          value: input.value
        });
        !props2.confirmHold && input.blur();
      }
      expose({
        $triggerInput: (detail) => {
          emit2("update:modelValue", detail.value);
          emit2("update:value", detail.value);
          state.value = detail.value;
        }
      });
      return () => {
        var inputNode = props2.disabled && fixDisabledColor ? createVNode("input", {
          "key": "disabled-input",
          "ref": fieldRef,
          "value": state.value,
          "tabindex": "-1",
          "readonly": !!props2.disabled,
          "type": type.value,
          "maxlength": state.maxlength,
          "step": step2.value,
          "class": "uni-input-input",
          "style": props2.cursorColor ? {
            caretColor: props2.cursorColor
          } : {},
          "onFocus": (event) => event.target.blur()
        }, null, 44, ["value", "readonly", "type", "maxlength", "step", "onFocus"]) : createVNode("input", {
          "key": "input",
          "ref": fieldRef,
          "value": state.value,
          "onInput": (event) => {
            state.value = event.target.value.toString();
          },
          "disabled": !!props2.disabled,
          "type": type.value,
          "maxlength": state.maxlength,
          "step": step2.value,
          "enterkeyhint": props2.confirmType,
          "pattern": props2.type === "number" ? "[0-9]*" : void 0,
          "class": "uni-input-input",
          "style": props2.cursorColor ? {
            caretColor: props2.cursorColor
          } : {},
          "autocomplete": autocomplete.value,
          "onKeyup": onKeyUpEnter,
          "inputmode": props2.inputmode
        }, null, 44, ["value", "onInput", "disabled", "type", "maxlength", "step", "enterkeyhint", "pattern", "autocomplete", "onKeyup", "inputmode"]);
        return createVNode("uni-input", {
          "ref": rootRef
        }, [createVNode("div", {
          "class": "uni-input-wrapper"
        }, [withDirectives(createVNode("div", mergeProps(scopedAttrsState.attrs, {
          "style": props2.placeholderStyle,
          "class": ["uni-input-placeholder", props2.placeholderClass]
        }), [props2.placeholder], 16), [[vShow, !(state.value.length || cache2.value === "-" || cache2.value.includes("."))]]), props2.confirmType === "search" ? createVNode("form", {
          "action": "",
          "onSubmit": (event) => event.preventDefault(),
          "class": "uni-input-form"
        }, [inputNode], 40, ["onSubmit"]) : inputNode])], 512);
      };
    }
  });
  function entries(obj) {
    return Object.keys(obj).map((key2) => [key2, obj[key2]]);
  }
  var DEFAULT_EXCLUDE_KEYS = ["class", "style"];
  var LISTENER_PREFIX = /^on[A-Z]+/;
  var useAttrs = function() {
    var params = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    var {
      excludeListeners = false,
      excludeKeys = []
    } = params;
    var instance = getCurrentInstance();
    var attrs2 = shallowRef({});
    var listeners2 = shallowRef({});
    var excludeAttrs = shallowRef({});
    var allExcludeKeys = excludeKeys.concat(DEFAULT_EXCLUDE_KEYS);
    instance.attrs = reactive(instance.attrs);
    watchEffect(() => {
      var res = entries(instance.attrs).reduce((acc, _ref) => {
        var [key2, val] = _ref;
        if (allExcludeKeys.includes(key2)) {
          acc.exclude[key2] = val;
        } else if (LISTENER_PREFIX.test(key2)) {
          if (!excludeListeners) {
            acc.attrs[key2] = val;
          }
          acc.listeners[key2] = val;
        } else {
          acc.attrs[key2] = val;
        }
        return acc;
      }, {
        exclude: {},
        attrs: {},
        listeners: {}
      });
      attrs2.value = res.attrs;
      listeners2.value = res.listeners;
      excludeAttrs.value = res.exclude;
    });
    return {
      $attrs: attrs2,
      $listeners: listeners2,
      $excludeAttrs: excludeAttrs
    };
  };
  var webview;
  var pullToRefreshStyle;
  function initScrollBounce() {
    {
      plusReady(() => {
        if (!webview) {
          webview = plus.webview.currentWebview();
        }
        if (!pullToRefreshStyle) {
          pullToRefreshStyle = (webview.getStyle() || {}).pullToRefresh || {};
        }
      });
    }
  }
  function disableScrollBounce(_ref) {
    var {
      disable
    } = _ref;
    {
      if (pullToRefreshStyle && pullToRefreshStyle.support) {
        webview.setPullToRefresh(Object.assign({}, pullToRefreshStyle, {
          support: !disable
        }));
      }
    }
  }
  function useRebuild(callback) {
    var instance = getCurrentInstance();
    instance.rebuild = callback;
  }
  var movableAreaProps = {
    scaleArea: {
      type: Boolean,
      default: false
    }
  };
  const MovableArea = /* @__PURE__ */ defineBuiltInComponent({
    inheritAttrs: false,
    name: "MovableArea",
    props: movableAreaProps,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var _isMounted = ref(false);
      var {
        setContexts,
        events: movableAreaEvents
      } = useMovableAreaState(props2, rootRef);
      var {
        $listeners,
        $attrs,
        $excludeAttrs
      } = useAttrs();
      var _listeners = $listeners.value;
      var events = ["onTouchstart", "onTouchmove", "onTouchend"];
      events.forEach((event) => {
        var existing = _listeners[event];
        var ours = movableAreaEvents["_".concat(event)];
        _listeners[event] = existing ? [].concat(existing, ours) : ours;
      });
      onMounted(() => {
        movableAreaEvents._resize();
        initScrollBounce();
        _isMounted.value = true;
      });
      var movableViewItems = [];
      var originMovableViewContexts = [];
      function updateMovableViewContexts() {
        var contexts = [];
        var _loop = function(index3) {
          var movableViewItem = movableViewItems[index3];
          if (!(movableViewItem instanceof Element)) {
            movableViewItem = movableViewItem.el;
          }
          var movableViewContext = originMovableViewContexts.find((context) => movableViewItem === context.rootRef.value);
          if (movableViewContext) {
            contexts.push(markRaw(movableViewContext));
          }
        };
        for (var index2 = 0; index2 < movableViewItems.length; index2++) {
          _loop(index2);
        }
        setContexts(contexts);
      }
      {
        useRebuild(() => {
          movableViewItems = rootRef.value.children;
          updateMovableViewContexts();
        });
      }
      var addMovableViewContext = (movableViewContext) => {
        originMovableViewContexts.push(movableViewContext);
        updateMovableViewContexts();
      };
      var removeMovableViewContext = (movableViewContext) => {
        var index2 = originMovableViewContexts.indexOf(movableViewContext);
        if (index2 >= 0) {
          originMovableViewContexts.splice(index2, 1);
          updateMovableViewContexts();
        }
      };
      provide("_isMounted", _isMounted);
      provide("movableAreaRootRef", rootRef);
      provide("addMovableViewContext", addMovableViewContext);
      provide("removeMovableViewContext", removeMovableViewContext);
      return () => {
        slots.default && slots.default();
        return createVNode("uni-movable-area", mergeProps({
          "ref": rootRef
        }, $attrs.value, $excludeAttrs.value, _listeners), [createVNode(ResizeSensor, {
          "onResize": movableAreaEvents._resize
        }, null, 8, ["onResize"]), movableViewItems], 16);
      };
    }
  });
  function calc(e2) {
    return Math.sqrt(e2.x * e2.x + e2.y * e2.y);
  }
  function useMovableAreaState(props2, rootRef) {
    var width = ref(0);
    var height = ref(0);
    var gapV = reactive({
      x: null,
      y: null
    });
    var pinchStartLen = ref(null);
    var _scaleMovableView = null;
    var movableViewContexts = [];
    function _updateScale(e2) {
      if (e2 && e2 !== 1) {
        if (props2.scaleArea) {
          movableViewContexts.forEach(function(item) {
            item._setScale(e2);
          });
        } else {
          if (_scaleMovableView) {
            _scaleMovableView._setScale(e2);
          }
        }
      }
    }
    function _find(target) {
      var items = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : movableViewContexts;
      var root = rootRef.value;
      function get2(node) {
        for (var i2 = 0; i2 < items.length; i2++) {
          var item = items[i2];
          if (node === item.rootRef.value) {
            return item;
          }
        }
        if (node === root || node === document.body || node === document) {
          return null;
        }
        return get2(node.parentNode);
      }
      return get2(target);
    }
    var _onTouchstart = withWebEvent((t2) => {
      disableScrollBounce({
        disable: true
      });
      var i2 = t2.touches;
      if (i2) {
        if (i2.length > 1) {
          var r = {
            x: i2[1].pageX - i2[0].pageX,
            y: i2[1].pageY - i2[0].pageY
          };
          pinchStartLen.value = calc(r);
          gapV.x = r.x;
          gapV.y = r.y;
          if (!props2.scaleArea) {
            var touch0 = _find(i2[0].target);
            var touch1 = _find(i2[1].target);
            _scaleMovableView = touch0 && touch0 === touch1 ? touch0 : null;
          }
        }
      }
    });
    var _onTouchmove = withWebEvent((t2) => {
      var n = t2.touches;
      if (n) {
        if (n.length > 1) {
          t2.preventDefault();
          var i2 = {
            x: n[1].pageX - n[0].pageX,
            y: n[1].pageY - n[0].pageY
          };
          if (gapV.x !== null && pinchStartLen.value && pinchStartLen.value > 0) {
            var r = calc(i2) / pinchStartLen.value;
            _updateScale(r);
          }
          gapV.x = i2.x;
          gapV.y = i2.y;
        }
      }
    });
    var _onTouchend = withWebEvent((e2) => {
      disableScrollBounce({
        disable: false
      });
      var t2 = e2.touches;
      if (!(t2 && t2.length)) {
        if (e2.changedTouches) {
          gapV.x = 0;
          gapV.y = 0;
          pinchStartLen.value = null;
          if (props2.scaleArea) {
            movableViewContexts.forEach(function(item) {
              item._endScale();
            });
          } else {
            if (_scaleMovableView) {
              _scaleMovableView._endScale();
            }
          }
        }
      }
    });
    function _resize() {
      _getWH();
      movableViewContexts.forEach(function(item, index2) {
        item.setParent();
      });
    }
    function _getWH() {
      var style = window.getComputedStyle(rootRef.value);
      var rect = rootRef.value.getBoundingClientRect();
      width.value = rect.width - ["Left", "Right"].reduce(function(all, item) {
        var LEFT = "border" + item + "Width";
        var RIGHT = "padding" + item;
        return all + parseFloat(style[LEFT]) + parseFloat(style[RIGHT]);
      }, 0);
      height.value = rect.height - ["Top", "Bottom"].reduce(function(all, item) {
        var TOP = "border" + item + "Width";
        var BOTTOM = "padding" + item;
        return all + parseFloat(style[TOP]) + parseFloat(style[BOTTOM]);
      }, 0);
    }
    provide("movableAreaWidth", width);
    provide("movableAreaHeight", height);
    return {
      setContexts(contexts) {
        movableViewContexts = contexts;
      },
      events: {
        _onTouchstart,
        _onTouchmove,
        _onTouchend,
        _resize
      }
    };
  }
  var addListenerToElement = function(element, type, callback, capture) {
    element.addEventListener(type, ($event) => {
      if (isFunction(callback)) {
        if (callback($event) === false) {
          if (typeof $event.cancelable !== "undefined" ? $event.cancelable : true) {
            $event.preventDefault();
          }
          $event.stopPropagation();
        }
      }
    }, {
      passive: false
    });
  };
  var __mouseMoveEventListener;
  var __mouseUpEventListener;
  function useTouchtrack(element, method, useCancel) {
    onBeforeUnmount(() => {
      document.removeEventListener("mousemove", __mouseMoveEventListener);
      document.removeEventListener("mouseup", __mouseUpEventListener);
    });
    var x0 = 0;
    var y0 = 0;
    var x1 = 0;
    var y1 = 0;
    var fn = function($event, state, x, y) {
      if (method({
        // @ts-expect-error
        cancelable: $event.cancelable,
        target: $event.target,
        currentTarget: $event.currentTarget,
        preventDefault: $event.preventDefault.bind($event),
        stopPropagation: $event.stopPropagation.bind($event),
        touches: $event.touches,
        changedTouches: $event.changedTouches,
        detail: {
          state,
          x,
          y,
          dx: x - x0,
          dy: y - y0,
          ddx: x - x1,
          ddy: y - y1,
          timeStamp: $event.timeStamp
        }
      }) === false) {
        return false;
      }
    };
    var $eventOld = null;
    var hasTouchStart;
    var hasMouseDown;
    addListenerToElement(element, "touchstart", function($event) {
      hasTouchStart = true;
      if ($event.touches.length === 1 && !$eventOld) {
        $eventOld = $event;
        x0 = x1 = $event.touches[0].pageX;
        y0 = y1 = $event.touches[0].pageY;
        return fn($event, "start", x0, y0);
      }
    });
    addListenerToElement(element, "mousedown", function($event) {
      hasMouseDown = true;
      if (!hasTouchStart && !$eventOld) {
        $eventOld = $event;
        x0 = x1 = $event.pageX;
        y0 = y1 = $event.pageY;
        return fn($event, "start", x0, y0);
      }
    });
    addListenerToElement(element, "touchmove", function($event) {
      if ($event.touches.length === 1 && $eventOld) {
        var res = fn($event, "move", $event.touches[0].pageX, $event.touches[0].pageY);
        x1 = $event.touches[0].pageX;
        y1 = $event.touches[0].pageY;
        return res;
      }
    });
    var mouseMoveEventListener = __mouseMoveEventListener = function($event) {
      if (!hasTouchStart && hasMouseDown && $eventOld) {
        var res = fn($event, "move", $event.pageX, $event.pageY);
        x1 = $event.pageX;
        y1 = $event.pageY;
        return res;
      }
    };
    document.addEventListener("mousemove", mouseMoveEventListener);
    addListenerToElement(element, "touchend", function($event) {
      if ($event.touches.length === 0 && $eventOld) {
        hasTouchStart = false;
        $eventOld = null;
        return fn($event, "end", $event.changedTouches[0].pageX, $event.changedTouches[0].pageY);
      }
    });
    var mouseUpEventListener = __mouseUpEventListener = function($event) {
      hasMouseDown = false;
      if (!hasTouchStart && $eventOld) {
        $eventOld = null;
        return fn($event, "end", $event.pageX, $event.pageY);
      }
    };
    document.addEventListener("mouseup", mouseUpEventListener);
    addListenerToElement(element, "touchcancel", function($event) {
      if ($eventOld) {
        hasTouchStart = false;
        var $eventTemp = $eventOld;
        $eventOld = null;
        return fn($event, useCancel ? "cancel" : "end", $eventTemp.touches[0].pageX, $eventTemp.touches[0].pageY);
      }
    });
  }
  function e(e2, t2, n) {
    return e2 > t2 - n && e2 < t2 + n;
  }
  function t(t2, n) {
    return e(t2, 0, n);
  }
  function Decline() {
  }
  Decline.prototype.x = function(e2) {
    return Math.sqrt(e2);
  };
  function Friction$1(e2, t2) {
    this._m = e2;
    this._f = 1e3 * t2;
    this._startTime = 0;
    this._v = 0;
  }
  Friction$1.prototype.setV = function(x, y) {
    var n = Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5);
    this._x_v = x;
    this._y_v = y;
    this._x_a = -this._f * this._x_v / n;
    this._y_a = -this._f * this._y_v / n;
    this._t = Math.abs(x / this._x_a) || Math.abs(y / this._y_a);
    this._lastDt = null;
    this._startTime = (/* @__PURE__ */ new Date()).getTime();
  };
  Friction$1.prototype.setS = function(x, y) {
    this._x_s = x;
    this._y_s = y;
  };
  Friction$1.prototype.s = function(t2) {
    if (void 0 === t2) {
      t2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
    }
    if (t2 > this._t) {
      t2 = this._t;
      this._lastDt = t2;
    }
    var x = this._x_v * t2 + 0.5 * this._x_a * Math.pow(t2, 2) + this._x_s;
    var y = this._y_v * t2 + 0.5 * this._y_a * Math.pow(t2, 2) + this._y_s;
    if (this._x_a > 0 && x < this._endPositionX || this._x_a < 0 && x > this._endPositionX) {
      x = this._endPositionX;
    }
    if (this._y_a > 0 && y < this._endPositionY || this._y_a < 0 && y > this._endPositionY) {
      y = this._endPositionY;
    }
    return {
      x,
      y
    };
  };
  Friction$1.prototype.ds = function(t2) {
    if (void 0 === t2) {
      t2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
    }
    if (t2 > this._t) {
      t2 = this._t;
    }
    return {
      dx: this._x_v + this._x_a * t2,
      dy: this._y_v + this._y_a * t2
    };
  };
  Friction$1.prototype.delta = function() {
    return {
      x: -1.5 * Math.pow(this._x_v, 2) / this._x_a || 0,
      y: -1.5 * Math.pow(this._y_v, 2) / this._y_a || 0
    };
  };
  Friction$1.prototype.dt = function() {
    return -this._x_v / this._x_a;
  };
  Friction$1.prototype.done = function() {
    var t2 = e(this.s().x, this._endPositionX) || e(this.s().y, this._endPositionY) || this._lastDt === this._t;
    this._lastDt = null;
    return t2;
  };
  Friction$1.prototype.setEnd = function(x, y) {
    this._endPositionX = x;
    this._endPositionY = y;
  };
  Friction$1.prototype.reconfigure = function(m, f2) {
    this._m = m;
    this._f = 1e3 * f2;
  };
  function Spring$1(m, k, c2) {
    this._m = m;
    this._k = k;
    this._c = c2;
    this._solution = null;
    this._endPosition = 0;
    this._startTime = 0;
  }
  Spring$1.prototype._solve = function(e2, t2) {
    var n = this._c;
    var i2 = this._m;
    var r = this._k;
    var o2 = n * n - 4 * i2 * r;
    if (o2 === 0) {
      var a2 = -n / (2 * i2);
      var s = e2;
      var l = t2 / (a2 * e2);
      return {
        x: function(e3) {
          return (s + l * e3) * Math.pow(Math.E, a2 * e3);
        },
        dx: function(e3) {
          var t3 = Math.pow(Math.E, a2 * e3);
          return a2 * (s + l * e3) * t3 + l * t3;
        }
      };
    }
    if (o2 > 0) {
      var c2 = (-n - Math.sqrt(o2)) / (2 * i2);
      var u = (-n + Math.sqrt(o2)) / (2 * i2);
      var d = (t2 - c2 * e2) / (u - c2);
      var h2 = e2 - d;
      return {
        x: function(e3) {
          var t3;
          var n2;
          if (e3 === this._t) {
            t3 = this._powER1T;
            n2 = this._powER2T;
          }
          this._t = e3;
          if (!t3) {
            t3 = this._powER1T = Math.pow(Math.E, c2 * e3);
          }
          if (!n2) {
            n2 = this._powER2T = Math.pow(Math.E, u * e3);
          }
          return h2 * t3 + d * n2;
        },
        dx: function(e3) {
          var t3;
          var n2;
          if (e3 === this._t) {
            t3 = this._powER1T;
            n2 = this._powER2T;
          }
          this._t = e3;
          if (!t3) {
            t3 = this._powER1T = Math.pow(Math.E, c2 * e3);
          }
          if (!n2) {
            n2 = this._powER2T = Math.pow(Math.E, u * e3);
          }
          return h2 * c2 * t3 + d * u * n2;
        }
      };
    }
    var p2 = Math.sqrt(4 * i2 * r - n * n) / (2 * i2);
    var f2 = -n / 2 * i2;
    var v2 = e2;
    var g2 = (t2 - f2 * e2) / p2;
    return {
      x: function(e3) {
        return Math.pow(Math.E, f2 * e3) * (v2 * Math.cos(p2 * e3) + g2 * Math.sin(p2 * e3));
      },
      dx: function(e3) {
        var t3 = Math.pow(Math.E, f2 * e3);
        var n2 = Math.cos(p2 * e3);
        var i3 = Math.sin(p2 * e3);
        return t3 * (g2 * p2 * n2 - v2 * p2 * i3) + f2 * t3 * (g2 * i3 + v2 * n2);
      }
    };
  };
  Spring$1.prototype.x = function(e2) {
    if (void 0 === e2) {
      e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
    }
    return this._solution ? this._endPosition + this._solution.x(e2) : 0;
  };
  Spring$1.prototype.dx = function(e2) {
    if (void 0 === e2) {
      e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
    }
    return this._solution ? this._solution.dx(e2) : 0;
  };
  Spring$1.prototype.setEnd = function(e2, n, i2) {
    if (!i2) {
      i2 = (/* @__PURE__ */ new Date()).getTime();
    }
    if (e2 !== this._endPosition || !t(n, 0.1)) {
      n = n || 0;
      var r = this._endPosition;
      if (this._solution) {
        if (t(n, 0.1)) {
          n = this._solution.dx((i2 - this._startTime) / 1e3);
        }
        r = this._solution.x((i2 - this._startTime) / 1e3);
        if (t(n, 0.1)) {
          n = 0;
        }
        if (t(r, 0.1)) {
          r = 0;
        }
        r += this._endPosition;
      }
      if (!(this._solution && t(r - e2, 0.1) && t(n, 0.1))) {
        this._endPosition = e2;
        this._solution = this._solve(r - this._endPosition, n);
        this._startTime = i2;
      }
    }
  };
  Spring$1.prototype.snap = function(e2) {
    this._startTime = (/* @__PURE__ */ new Date()).getTime();
    this._endPosition = e2;
    this._solution = {
      x: function() {
        return 0;
      },
      dx: function() {
        return 0;
      }
    };
  };
  Spring$1.prototype.done = function(n) {
    if (!n) {
      n = (/* @__PURE__ */ new Date()).getTime();
    }
    return e(this.x(), this._endPosition, 0.1) && t(this.dx(), 0.1);
  };
  Spring$1.prototype.reconfigure = function(m, t2, c2) {
    this._m = m;
    this._k = t2;
    this._c = c2;
    if (!this.done()) {
      this._solution = this._solve(this.x() - this._endPosition, this.dx());
      this._startTime = (/* @__PURE__ */ new Date()).getTime();
    }
  };
  Spring$1.prototype.springConstant = function() {
    return this._k;
  };
  Spring$1.prototype.damping = function() {
    return this._c;
  };
  Spring$1.prototype.configuration = function() {
    function e2(e3, t3) {
      e3.reconfigure(1, t3, e3.damping());
    }
    function t2(e3, t3) {
      e3.reconfigure(1, e3.springConstant(), t3);
    }
    return [{
      label: "Spring Constant",
      read: this.springConstant.bind(this),
      write: e2.bind(this, this),
      min: 100,
      max: 1e3
    }, {
      label: "Damping",
      read: this.damping.bind(this),
      write: t2.bind(this, this),
      min: 1,
      max: 500
    }];
  };
  function STD(e2, t2, n) {
    this._springX = new Spring$1(e2, t2, n);
    this._springY = new Spring$1(e2, t2, n);
    this._springScale = new Spring$1(e2, t2, n);
    this._startTime = 0;
  }
  STD.prototype.setEnd = function(e2, t2, n, i2) {
    var r = (/* @__PURE__ */ new Date()).getTime();
    this._springX.setEnd(e2, i2, r);
    this._springY.setEnd(t2, i2, r);
    this._springScale.setEnd(n, i2, r);
    this._startTime = r;
  };
  STD.prototype.x = function() {
    var e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
    return {
      x: this._springX.x(e2),
      y: this._springY.x(e2),
      scale: this._springScale.x(e2)
    };
  };
  STD.prototype.done = function() {
    var e2 = (/* @__PURE__ */ new Date()).getTime();
    return this._springX.done(e2) && this._springY.done(e2) && this._springScale.done(e2);
  };
  STD.prototype.reconfigure = function(e2, t2, n) {
    this._springX.reconfigure(e2, t2, n);
    this._springY.reconfigure(e2, t2, n);
    this._springScale.reconfigure(e2, t2, n);
  };
  var movableViewProps = {
    direction: {
      type: String,
      default: "none"
    },
    inertia: {
      type: [Boolean, String],
      default: false
    },
    outOfBounds: {
      type: [Boolean, String],
      default: false
    },
    x: {
      type: [Number, String],
      default: 0
    },
    y: {
      type: [Number, String],
      default: 0
    },
    damping: {
      type: [Number, String],
      default: 20
    },
    friction: {
      type: [Number, String],
      default: 2
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    scale: {
      type: [Boolean, String],
      default: false
    },
    scaleMin: {
      type: [Number, String],
      default: 0.5
    },
    scaleMax: {
      type: [Number, String],
      default: 10
    },
    scaleValue: {
      type: [Number, String],
      default: 1
    },
    animation: {
      type: [Boolean, String],
      default: true
    }
  };
  function v(a2, b) {
    return +((1e3 * a2 - 1e3 * b) / 1e3).toFixed(1);
  }
  const MovableView = /* @__PURE__ */ defineBuiltInComponent({
    name: "MovableView",
    props: movableViewProps,
    emits: ["change", "scale"],
    setup(props2, _ref) {
      var {
        slots,
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var {
        setParent
      } = useMovableViewState(props2, trigger2, rootRef);
      return () => {
        return createVNode("uni-movable-view", {
          "ref": rootRef
        }, [createVNode(ResizeSensor, {
          "onResize": setParent
        }, null, 8, ["onResize"]), slots.default && slots.default()], 512);
      };
    }
  });
  var requesting = false;
  function _requestAnimationFrame(e2) {
    if (!requesting) {
      requesting = true;
      requestAnimationFrame(function() {
        e2();
        requesting = false;
      });
    }
  }
  function p(t2, n) {
    if (t2 === n) {
      return 0;
    }
    var i2 = t2.offsetLeft;
    return t2.offsetParent ? i2 += p(t2.offsetParent, n) : 0;
  }
  function f(t2, n) {
    if (t2 === n) {
      return 0;
    }
    var i2 = t2.offsetTop;
    return t2.offsetParent ? i2 += f(t2.offsetParent, n) : 0;
  }
  function g(friction, execute, endCallback) {
    var record = {
      id: 0,
      cancelled: false
    };
    var cancel = function(record2) {
      if (record2 && record2.id) {
        cancelAnimationFrame(record2.id);
      }
      if (record2) {
        record2.cancelled = true;
      }
    };
    function fn(record2, friction2, execute2, endCallback2) {
      if (!record2 || !record2.cancelled) {
        execute2(friction2);
        var isDone = friction2.done();
        if (!isDone) {
          if (!record2.cancelled) {
            record2.id = requestAnimationFrame(fn.bind(null, record2, friction2, execute2, endCallback2));
          }
        }
        if (isDone && endCallback2) {
          endCallback2(friction2);
        }
      }
    }
    fn(record, friction, execute, endCallback);
    return {
      cancel: cancel.bind(null, record),
      model: friction
    };
  }
  function _getPx(val) {
    if (/\d+[ur]px$/i.test(val)) {
      return uni.upx2px(parseFloat(val));
    }
    return Number(val) || 0;
  }
  function useMovableViewLayout(rootRef, _scale, _adjustScale) {
    var movableAreaWidth = inject("movableAreaWidth", ref(0));
    var movableAreaHeight = inject("movableAreaHeight", ref(0));
    var movableAreaRootRef = inject("movableAreaRootRef");
    var _offset = {
      x: 0,
      y: 0
    };
    var _scaleOffset = {
      x: 0,
      y: 0
    };
    var width = ref(0);
    var height = ref(0);
    var minX = ref(0);
    var minY = ref(0);
    var maxX = ref(0);
    var maxY = ref(0);
    function _updateBoundary() {
      var x = 0 - _offset.x + _scaleOffset.x;
      var _width = movableAreaWidth.value - width.value - _offset.x - _scaleOffset.x;
      minX.value = Math.min(x, _width);
      maxX.value = Math.max(x, _width);
      var y = 0 - _offset.y + _scaleOffset.y;
      var _height = movableAreaHeight.value - height.value - _offset.y - _scaleOffset.y;
      minY.value = Math.min(y, _height);
      maxY.value = Math.max(y, _height);
    }
    function _updateOffset() {
      _offset.x = p(rootRef.value, movableAreaRootRef.value);
      _offset.y = f(rootRef.value, movableAreaRootRef.value);
    }
    function _updateWH(scale) {
      scale = scale || _scale.value;
      scale = _adjustScale(scale);
      var rect = rootRef.value.getBoundingClientRect();
      height.value = rect.height / _scale.value;
      width.value = rect.width / _scale.value;
      var _height = height.value * scale;
      var _width = width.value * scale;
      _scaleOffset.x = (_width - width.value) / 2;
      _scaleOffset.y = (_height - height.value) / 2;
    }
    return {
      _updateBoundary,
      _updateOffset,
      _updateWH,
      _scaleOffset,
      minX,
      minY,
      maxX,
      maxY
    };
  }
  function useMovableViewTransform(rootRef, props2, _scaleOffset, _scale, maxX, maxY, minX, minY, _translateX, _translateY, _SFA, _FA, _adjustScale, trigger2) {
    var dampingNumber = computed(() => {
      var val = Number(props2.damping);
      return isNaN(val) ? 20 : val;
    });
    var xMove = computed(() => props2.direction === "all" || props2.direction === "horizontal");
    var yMove = computed(() => props2.direction === "all" || props2.direction === "vertical");
    var xSync = ref(_getPx(props2.x));
    var ySync = ref(_getPx(props2.y));
    watch(() => props2.x, (val) => {
      xSync.value = _getPx(val);
    });
    watch(() => props2.y, (val) => {
      ySync.value = _getPx(val);
    });
    watch(xSync, (val) => {
      _setX(val);
    });
    watch(ySync, (val) => {
      _setY(val);
    });
    var _STD = new STD(1, 9 * Math.pow(dampingNumber.value, 2) / 40, dampingNumber.value);
    function _getLimitXY(x, y) {
      var outOfBounds = false;
      if (x > maxX.value) {
        x = maxX.value;
        outOfBounds = true;
      } else {
        if (x < minX.value) {
          x = minX.value;
          outOfBounds = true;
        }
      }
      if (y > maxY.value) {
        y = maxY.value;
        outOfBounds = true;
      } else {
        if (y < minY.value) {
          y = minY.value;
          outOfBounds = true;
        }
      }
      return {
        x,
        y,
        outOfBounds
      };
    }
    function FAandSFACancel() {
      if (_FA) {
        _FA.cancel();
      }
      if (_SFA) {
        _SFA.cancel();
      }
    }
    function _animationTo(x, y, scale, source, r, o2) {
      FAandSFACancel();
      if (!xMove.value) {
        x = _translateX.value;
      }
      if (!yMove.value) {
        y = _translateY.value;
      }
      if (!props2.scale) {
        scale = _scale.value;
      }
      var limitXY = _getLimitXY(x, y);
      x = limitXY.x;
      y = limitXY.y;
      if (!props2.animation) {
        _setTransform(x, y, scale, source, r, o2);
        return;
      }
      _STD._springX._solution = null;
      _STD._springY._solution = null;
      _STD._springScale._solution = null;
      _STD._springX._endPosition = _translateX.value;
      _STD._springY._endPosition = _translateY.value;
      _STD._springScale._endPosition = _scale.value;
      _STD.setEnd(x, y, scale, 1);
      _SFA = g(_STD, function() {
        var data = _STD.x();
        var x2 = data.x;
        var y2 = data.y;
        var scale2 = data.scale;
        _setTransform(x2, y2, scale2, source, r, o2);
      }, function() {
        _SFA.cancel();
      });
    }
    function _setTransform(x, y, scale) {
      var source = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "";
      var r = arguments.length > 4 ? arguments[4] : void 0;
      var o2 = arguments.length > 5 ? arguments[5] : void 0;
      if (!(x !== null && x.toString() !== "NaN" && typeof x === "number")) {
        x = _translateX.value || 0;
      }
      if (!(y !== null && y.toString() !== "NaN" && typeof y === "number")) {
        y = _translateY.value || 0;
      }
      x = Number(x.toFixed(1));
      y = Number(y.toFixed(1));
      scale = Number(scale.toFixed(1));
      if (!(_translateX.value === x && _translateY.value === y)) {
        if (!r) {
          trigger2("change", {}, {
            x: v(x, _scaleOffset.x),
            y: v(y, _scaleOffset.y),
            source
          });
        }
      }
      if (!props2.scale) {
        scale = _scale.value;
      }
      scale = _adjustScale(scale);
      scale = +scale.toFixed(3);
      if (o2 && scale !== _scale.value) {
        trigger2("scale", {}, {
          x,
          y,
          scale
        });
      }
      var transform = "translateX(" + x + "px) translateY(" + y + "px) translateZ(0px) scale(" + scale + ")";
      if (rootRef.value) {
        rootRef.value.style.transform = transform;
        rootRef.value.style.webkitTransform = transform;
        _translateX.value = x;
        _translateY.value = y;
        _scale.value = scale;
      }
    }
    function _revise(source) {
      var limitXY = _getLimitXY(_translateX.value, _translateY.value);
      var x = limitXY.x;
      var y = limitXY.y;
      var outOfBounds = limitXY.outOfBounds;
      if (outOfBounds) {
        _animationTo(x, y, _scale.value, source);
      }
      return outOfBounds;
    }
    function _setX(val) {
      if (xMove.value) {
        if (val + _scaleOffset.x === _translateX.value) {
          return _translateX;
        } else {
          if (_SFA) {
            _SFA.cancel();
          }
          _animationTo(val + _scaleOffset.x, ySync.value + _scaleOffset.y, _scale.value);
        }
      }
      return val;
    }
    function _setY(val) {
      if (yMove.value) {
        if (val + _scaleOffset.y === _translateY.value) {
          return _translateY;
        } else {
          if (_SFA) {
            _SFA.cancel();
          }
          _animationTo(xSync.value + _scaleOffset.x, val + _scaleOffset.y, _scale.value);
        }
      }
      return val;
    }
    return {
      FAandSFACancel,
      _getLimitXY,
      _animationTo,
      _setTransform,
      _revise,
      dampingNumber,
      xMove,
      yMove,
      xSync,
      ySync,
      _STD
    };
  }
  function useMovableViewInit(props2, rootRef, trigger2, _scale, _oldScale, _isScaling, _translateX, _translateY, _SFA, _FA) {
    var scaleMinNumber = computed(() => {
      var val = Number(props2.scaleMin);
      return isNaN(val) ? 0.5 : val;
    });
    var scaleMaxNumber = computed(() => {
      var val = Number(props2.scaleMax);
      return isNaN(val) ? 10 : val;
    });
    var scaleValueSync = ref(Number(props2.scaleValue) || 1);
    watch(scaleValueSync, (val) => {
      _setScaleValue(val);
    });
    watch(scaleMinNumber, () => {
      _setScaleMinOrMax();
    });
    watch(scaleMaxNumber, () => {
      _setScaleMinOrMax();
    });
    watch(() => props2.scaleValue, (val) => {
      scaleValueSync.value = Number(val) || 0;
    });
    var {
      _updateBoundary,
      _updateOffset,
      _updateWH,
      _scaleOffset,
      minX,
      minY,
      maxX,
      maxY
    } = useMovableViewLayout(rootRef, _scale, _adjustScale);
    var {
      FAandSFACancel,
      _getLimitXY,
      _animationTo,
      _setTransform,
      _revise,
      dampingNumber,
      xMove,
      yMove,
      xSync,
      ySync,
      _STD
    } = useMovableViewTransform(rootRef, props2, _scaleOffset, _scale, maxX, maxY, minX, minY, _translateX, _translateY, _SFA, _FA, _adjustScale, trigger2);
    function _updateScale(scale, animat) {
      if (props2.scale) {
        scale = _adjustScale(scale);
        _updateWH(scale);
        _updateBoundary();
        var limitXY = _getLimitXY(_translateX.value, _translateY.value);
        var x = limitXY.x;
        var y = limitXY.y;
        if (animat) {
          _animationTo(x, y, scale, "", true, true);
        } else {
          _requestAnimationFrame(function() {
            _setTransform(x, y, scale, "", true, true);
          });
        }
      }
    }
    function _beginScale() {
      _isScaling.value = true;
    }
    function _updateOldScale(scale) {
      _oldScale.value = scale;
    }
    function _adjustScale(scale) {
      scale = Math.max(0.5, scaleMinNumber.value, scale);
      scale = Math.min(10, scaleMaxNumber.value, scale);
      return scale;
    }
    function _setScaleMinOrMax() {
      if (!props2.scale) {
        return false;
      }
      _updateScale(_scale.value, true);
      _updateOldScale(_scale.value);
    }
    function _setScaleValue(scale) {
      if (!props2.scale) {
        return false;
      }
      scale = _adjustScale(scale);
      _updateScale(scale, true);
      _updateOldScale(scale);
      return scale;
    }
    function _endScale() {
      _isScaling.value = false;
      _updateOldScale(_scale.value);
    }
    function _setScale(scale) {
      if (scale) {
        scale = _oldScale.value * scale;
        _beginScale();
        _updateScale(scale);
      }
    }
    return {
      // scale
      _updateOldScale,
      _endScale,
      _setScale,
      scaleValueSync,
      // layout
      _updateBoundary,
      _updateOffset,
      _updateWH,
      _scaleOffset,
      minX,
      minY,
      maxX,
      maxY,
      // transform
      FAandSFACancel,
      _getLimitXY,
      _animationTo,
      _setTransform,
      _revise,
      dampingNumber,
      xMove,
      yMove,
      xSync,
      ySync,
      _STD
    };
  }
  function useMovableViewState(props2, trigger2, rootRef) {
    var _isMounted = inject("_isMounted", ref(false));
    var addMovableViewContext = inject("addMovableViewContext", () => {
    });
    var removeMovableViewContext = inject("removeMovableViewContext", () => {
    });
    var _scale = ref(1);
    var _oldScale = ref(1);
    var _isScaling = ref(false);
    var _translateX = ref(0);
    var _translateY = ref(0);
    var _SFA = null;
    var _FA = null;
    var _isTouching = false;
    var __baseX;
    var __baseY;
    var _checkCanMove = null;
    var _firstMoveDirection = null;
    var _declineX = new Decline();
    var _declineY = new Decline();
    var __touchInfo = {
      historyX: [0, 0],
      historyY: [0, 0],
      historyT: [0, 0]
    };
    var frictionNumber = computed(() => {
      var val = Number(props2.friction);
      return isNaN(val) || val <= 0 ? 2 : val;
    });
    var _friction = new Friction$1(1, frictionNumber.value);
    watch(() => props2.disabled, () => {
      __handleTouchStart();
    });
    var {
      // scale
      _updateOldScale,
      _endScale,
      _setScale,
      scaleValueSync,
      // layout
      _updateBoundary,
      _updateOffset,
      _updateWH,
      _scaleOffset,
      minX,
      minY,
      maxX,
      maxY,
      // transform
      FAandSFACancel,
      _getLimitXY,
      _setTransform,
      _revise,
      dampingNumber,
      xMove,
      yMove,
      xSync,
      ySync,
      _STD
    } = useMovableViewInit(props2, rootRef, trigger2, _scale, _oldScale, _isScaling, _translateX, _translateY, _SFA, _FA);
    function __handleTouchStart() {
      if (!_isScaling.value) {
        if (!props2.disabled) {
          disableScrollBounce({
            disable: true
          });
          FAandSFACancel();
          __touchInfo.historyX = [0, 0];
          __touchInfo.historyY = [0, 0];
          __touchInfo.historyT = [0, 0];
          if (xMove.value) {
            __baseX = _translateX.value;
          }
          if (yMove.value) {
            __baseY = _translateY.value;
          }
          rootRef.value.style.willChange = "transform";
          _checkCanMove = null;
          _firstMoveDirection = null;
          _isTouching = true;
        }
      }
    }
    function __handleTouchMove(event) {
      if (!_isScaling.value && !props2.disabled && _isTouching) {
        var x = _translateX.value;
        var y = _translateY.value;
        if (_firstMoveDirection === null) {
          _firstMoveDirection = Math.abs(event.detail.dx / event.detail.dy) > 1 ? "htouchmove" : "vtouchmove";
        }
        if (xMove.value) {
          x = event.detail.dx + __baseX;
          __touchInfo.historyX.shift();
          __touchInfo.historyX.push(x);
          if (!yMove.value && _checkCanMove === null) {
            _checkCanMove = Math.abs(event.detail.dx / event.detail.dy) < 1;
          }
        }
        if (yMove.value) {
          y = event.detail.dy + __baseY;
          __touchInfo.historyY.shift();
          __touchInfo.historyY.push(y);
          if (!xMove.value && _checkCanMove === null) {
            _checkCanMove = Math.abs(event.detail.dy / event.detail.dx) < 1;
          }
        }
        __touchInfo.historyT.shift();
        __touchInfo.historyT.push(event.detail.timeStamp);
        if (!_checkCanMove) {
          event.preventDefault();
          var source = "touch";
          if (x < minX.value) {
            if (props2.outOfBounds) {
              source = "touch-out-of-bounds";
              x = minX.value - _declineX.x(minX.value - x);
            } else {
              x = minX.value;
            }
          } else if (x > maxX.value) {
            if (props2.outOfBounds) {
              source = "touch-out-of-bounds";
              x = maxX.value + _declineX.x(x - maxX.value);
            } else {
              x = maxX.value;
            }
          }
          if (y < minY.value) {
            if (props2.outOfBounds) {
              source = "touch-out-of-bounds";
              y = minY.value - _declineY.x(minY.value - y);
            } else {
              y = minY.value;
            }
          } else {
            if (y > maxY.value) {
              if (props2.outOfBounds) {
                source = "touch-out-of-bounds";
                y = maxY.value + _declineY.x(y - maxY.value);
              } else {
                y = maxY.value;
              }
            }
          }
          _requestAnimationFrame(function() {
            _setTransform(x, y, _scale.value, source);
          });
        }
      }
    }
    function __handleTouchEnd() {
      if (!_isScaling.value && !props2.disabled && _isTouching) {
        disableScrollBounce({
          disable: false
        });
        rootRef.value.style.willChange = "auto";
        _isTouching = false;
        if (!_checkCanMove && !_revise("out-of-bounds") && props2.inertia) {
          var xv = 1e3 * (__touchInfo.historyX[1] - __touchInfo.historyX[0]) / (__touchInfo.historyT[1] - __touchInfo.historyT[0]);
          var yv = 1e3 * (__touchInfo.historyY[1] - __touchInfo.historyY[0]) / (__touchInfo.historyT[1] - __touchInfo.historyT[0]);
          var __translateX = _translateX.value;
          var __translateY = _translateY.value;
          _friction.setV(xv, yv);
          _friction.setS(__translateX, __translateY);
          var x0 = _friction.delta().x;
          var y0 = _friction.delta().y;
          var x = x0 + __translateX;
          var y = y0 + __translateY;
          if (x < minX.value) {
            x = minX.value;
            y = __translateY + (minX.value - __translateX) * y0 / x0;
          } else {
            if (x > maxX.value) {
              x = maxX.value;
              y = __translateY + (maxX.value - __translateX) * y0 / x0;
            }
          }
          if (y < minY.value) {
            y = minY.value;
            x = __translateX + (minY.value - __translateY) * x0 / y0;
          } else {
            if (y > maxY.value) {
              y = maxY.value;
              x = __translateX + (maxY.value - __translateY) * x0 / y0;
            }
          }
          _friction.setEnd(x, y);
          _FA = g(_friction, function() {
            var t2 = _friction.s();
            var x2 = t2.x;
            var y2 = t2.y;
            _setTransform(x2, y2, _scale.value, "friction");
          }, function() {
            _FA.cancel();
          });
        }
      }
      if (!props2.outOfBounds && !props2.inertia) {
        FAandSFACancel();
      }
    }
    function setParent() {
      if (!_isMounted.value) {
        return;
      }
      FAandSFACancel();
      var scale = props2.scale ? scaleValueSync.value : 1;
      _updateOffset();
      _updateWH(scale);
      _updateBoundary();
      var limitXY = _getLimitXY(xSync.value + _scaleOffset.x, ySync.value + _scaleOffset.y);
      var x = limitXY.x;
      var y = limitXY.y;
      _setTransform(x, y, scale, "", true);
      _updateOldScale(scale);
    }
    onMounted(() => {
      useTouchtrack(rootRef.value, (event) => {
        switch (event.detail.state) {
          case "start":
            __handleTouchStart();
            break;
          case "move":
            __handleTouchMove(event);
            break;
          case "end":
            __handleTouchEnd();
        }
      });
      setParent();
      _friction.reconfigure(1, frictionNumber.value);
      _STD.reconfigure(1, 9 * Math.pow(dampingNumber.value, 2) / 40, dampingNumber.value);
      rootRef.value.style.transformOrigin = "center";
      initScrollBounce();
      var context = {
        rootRef,
        setParent,
        _endScale,
        _setScale
      };
      addMovableViewContext(context);
      onUnmounted(() => {
        removeMovableViewContext(context);
      });
    });
    onUnmounted(() => {
      FAandSFACancel();
    });
    return {
      setParent
    };
  }
  var OPEN_TYPES = ["navigate", "redirect", "switchTab", "reLaunch", "navigateBack"];
  var ANIMATION_IN = ["slide-in-right", "slide-in-left", "slide-in-top", "slide-in-bottom", "fade-in", "zoom-out", "zoom-fade-out", "pop-in", "none"];
  var ANIMATION_OUT = ["slide-out-right", "slide-out-left", "slide-out-top", "slide-out-bottom", "fade-out", "zoom-in", "zoom-fade-in", "pop-out", "none"];
  var navigatorProps = {
    hoverClass: {
      type: String,
      default: "navigator-hover"
    },
    url: {
      type: String,
      default: ""
    },
    openType: {
      type: String,
      default: "navigate",
      validator(value) {
        return Boolean(~OPEN_TYPES.indexOf(value));
      }
    },
    delta: {
      type: Number,
      default: 1
    },
    hoverStartTime: {
      type: [Number, String],
      default: 50
    },
    hoverStayTime: {
      type: [Number, String],
      default: 600
    },
    exists: {
      type: String,
      default: ""
    },
    hoverStopPropagation: {
      type: Boolean,
      default: false
    },
    animationType: {
      type: String,
      default: "",
      validator(value) {
        return !value || ANIMATION_IN.concat(ANIMATION_OUT).includes(value);
      }
    },
    animationDuration: {
      type: [String, Number],
      default: 300
    }
  };
  function createNavigatorOnClick(props2) {
    return () => {
      if (props2.openType !== "navigateBack" && !props2.url) {
        console.error("<navigator/> should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab");
        return;
      }
      var animationDuration = parseInt(props2.animationDuration);
      switch (props2.openType) {
        case "navigate":
          uni.navigateTo({
            url: props2.url,
            animationType: props2.animationType || "pop-in",
            animationDuration
          });
          break;
        case "redirect":
          uni.redirectTo({
            url: props2.url,
            exists: props2.exists
          });
          break;
        case "switchTab":
          uni.switchTab({
            url: props2.url
          });
          break;
        case "reLaunch":
          uni.reLaunch({
            url: props2.url
          });
          break;
        case "navigateBack":
          uni.navigateBack({
            delta: props2.delta,
            animationType: props2.animationType || "pop-out",
            animationDuration
          });
          break;
      }
    };
  }
  const Navigator = /* @__PURE__ */ defineBuiltInComponent({
    name: "Navigator",
    inheritAttrs: false,
    compatConfig: {
      MODE: 3
    },
    props: /* @__PURE__ */ extend({}, navigatorProps, {
      renderLink: {
        type: Boolean,
        default: true
      }
    }),
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var vm = getCurrentInstance();
      var __scopeId = vm && vm.vnode.scopeId || "";
      var {
        hovering,
        binding
      } = useHover(props2);
      var onClick = createNavigatorOnClick(props2);
      return () => {
        var {
          hoverClass,
          url
        } = props2;
        var hasHoverClass = props2.hoverClass && props2.hoverClass !== "none";
        var innerNode = props2.renderLink ? createVNode("a", {
          "class": "navigator-wrap",
          "href": url,
          "onClick": onEventPrevent,
          "onMousedown": onEventPrevent
        }, [slots.default && slots.default()], 40, ["href", "onClick", "onMousedown"]) : slots.default && slots.default();
        return createVNode("uni-navigator", mergeProps({
          "class": hasHoverClass && hovering.value ? hoverClass : "",
          "ref": rootRef
        }, hasHoverClass && binding, vm ? vm.attrs : {}, {
          [__scopeId]: ""
        }, {
          "onClick": onClick
        }), [innerNode], 16, ["onClick"]);
      };
    }
  });
  var pickerViewProps = {
    value: {
      type: Array,
      default() {
        return [];
      },
      validator: function(val) {
        return isArray(val) && val.filter((val2) => typeof val2 === "number").length === val.length;
      }
    },
    indicatorStyle: {
      type: String,
      default: ""
    },
    indicatorClass: {
      type: String,
      default: ""
    },
    maskStyle: {
      type: String,
      default: ""
    },
    maskClass: {
      type: String,
      default: ""
    }
  };
  function useState$3(props2) {
    var value = reactive([...props2.value]);
    var state = reactive({
      value,
      height: 34
    });
    watch(() => props2.value, (val, oldVal) => {
      if (val === oldVal || val.length !== oldVal.length || val.findIndex((item, index2) => item !== oldVal[index2]) >= 0) {
        state.value.length = val.length;
        val.forEach((val2, index2) => {
          if (val2 !== state.value[index2]) {
            state.value.splice(index2, 1, val2);
          }
        });
      }
    });
    return state;
  }
  const PickerView = /* @__PURE__ */ defineBuiltInComponent({
    name: "PickerView",
    props: pickerViewProps,
    emits: ["change", "pickstart", "pickend", "update:value"],
    setup(props2, _ref) {
      var {
        slots,
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var wrapperRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var state = useState$3(props2);
      var resizeSensorRef = ref(null);
      var onMountedCallback = () => {
        var resizeSensor = resizeSensorRef.value;
        resizeSensor && (state.height = resizeSensor.$el.offsetHeight);
      };
      var ColumnsPreRef = ref([]);
      var columnsRef = ref([]);
      function getItemIndex(vnode) {
        var columnVNodes = columnsRef.value;
        if (columnVNodes instanceof HTMLCollection) {
          return Array.prototype.indexOf.call(columnVNodes, vnode.el);
        } else {
          columnVNodes = columnVNodes.filter((vnode2) => vnode2.type !== Comment);
        }
        var index2 = columnVNodes.indexOf(vnode);
        return index2 !== -1 ? index2 : ColumnsPreRef.value.indexOf(vnode);
      }
      var getPickerViewColumn = function(columnInstance) {
        var ref2 = computed({
          get() {
            var index2 = getItemIndex(columnInstance.vnode);
            return state.value[index2] || 0;
          },
          set(current) {
            var index2 = getItemIndex(columnInstance.vnode);
            if (index2 < 0) {
              return;
            }
            var oldCurrent = state.value[index2];
            if (oldCurrent !== current) {
              state.value[index2] = current;
              var value = state.value.map((val) => val);
              emit2("update:value", value);
              trigger2("change", {}, {
                value
              });
            }
          }
        });
        return ref2;
      };
      provide("getPickerViewColumn", getPickerViewColumn);
      provide("pickerViewProps", props2);
      provide("pickerViewState", state);
      {
        useRebuild(() => {
          onMountedCallback();
          wrapperRef.value && (columnsRef.value = wrapperRef.value.children);
        });
      }
      return () => {
        var defaultSlots = slots.default && slots.default();
        return createVNode("uni-picker-view", {
          "ref": rootRef
        }, [createVNode(ResizeSensor, {
          "ref": resizeSensorRef,
          "onResize": (_ref2) => {
            var {
              height
            } = _ref2;
            return state.height = height;
          }
        }, null, 8, ["onResize"]), createVNode("div", {
          "ref": wrapperRef,
          "class": "uni-picker-view-wrapper"
        }, [defaultSlots], 512)], 512);
      };
    }
  });
  class Friction {
    constructor(drag) {
      this._drag = drag;
      this._dragLog = Math.log(drag);
      this._x = 0;
      this._v = 0;
      this._startTime = 0;
    }
    set(x, v2) {
      this._x = x;
      this._v = v2;
      this._startTime = (/* @__PURE__ */ new Date()).getTime();
    }
    setVelocityByEnd(e2) {
      this._v = (e2 - this._x) * this._dragLog / (Math.pow(this._drag, 100) - 1);
    }
    x(e2) {
      if (e2 === void 0) {
        e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
      }
      var t2 = e2 === this._dt && this._powDragDt ? this._powDragDt : this._powDragDt = Math.pow(this._drag, e2);
      this._dt = e2;
      return this._x + this._v * t2 / this._dragLog - this._v / this._dragLog;
    }
    dx(e2) {
      if (e2 === void 0) {
        e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
      }
      var t2 = e2 === this._dt && this._powDragDt ? this._powDragDt : this._powDragDt = Math.pow(this._drag, e2);
      this._dt = e2;
      return this._v * t2;
    }
    done() {
      return Math.abs(this.dx()) < 3;
    }
    reconfigure(e2) {
      var t2 = this.x();
      var n = this.dx();
      this._drag = e2;
      this._dragLog = Math.log(e2);
      this.set(t2, n);
    }
    configuration() {
      var e2 = this;
      return [{
        label: "Friction",
        read: function() {
          return e2._drag;
        },
        write: function(t2) {
          e2.reconfigure(t2);
        },
        min: 1e-3,
        max: 0.1,
        step: 1e-3
      }];
    }
  }
  function o(e2, t2, n) {
    return e2 > t2 - n && e2 < t2 + n;
  }
  function a(e2, t2) {
    return o(e2, 0, t2);
  }
  class Spring {
    constructor(m, k, c2) {
      this._m = m;
      this._k = k;
      this._c = c2;
      this._solution = null;
      this._endPosition = 0;
      this._startTime = 0;
    }
    _solve(e2, t2) {
      var n = this._c;
      var i2 = this._m;
      var r = this._k;
      var o2 = n * n - 4 * i2 * r;
      if (o2 === 0) {
        var a3 = -n / (2 * i2);
        var s2 = e2;
        var l2 = t2 / (a3 * e2);
        return {
          x: function(e22) {
            return (s2 + l2 * e22) * Math.pow(Math.E, a3 * e22);
          },
          dx: function(e22) {
            var t22 = Math.pow(Math.E, a3 * e22);
            return a3 * (s2 + l2 * e22) * t22 + l2 * t22;
          }
        };
      }
      if (o2 > 0) {
        var c2 = (-n - Math.sqrt(o2)) / (2 * i2);
        var u = (-n + Math.sqrt(o2)) / (2 * i2);
        var _l = (t2 - c2 * e2) / (u - c2);
        var _s = e2 - _l;
        return {
          x: function(e22) {
            var t22;
            var n2;
            if (e22 === this._t) {
              t22 = this._powER1T;
              n2 = this._powER2T;
            }
            this._t = e22;
            if (!t22) {
              t22 = this._powER1T = Math.pow(Math.E, c2 * e22);
            }
            if (!n2) {
              n2 = this._powER2T = Math.pow(Math.E, u * e22);
            }
            return _s * t22 + _l * n2;
          },
          dx: function(e22) {
            var t22;
            var n2;
            if (e22 === this._t) {
              t22 = this._powER1T;
              n2 = this._powER2T;
            }
            this._t = e22;
            if (!t22) {
              t22 = this._powER1T = Math.pow(Math.E, c2 * e22);
            }
            if (!n2) {
              n2 = this._powER2T = Math.pow(Math.E, u * e22);
            }
            return _s * c2 * t22 + _l * u * n2;
          }
        };
      }
      var d = Math.sqrt(4 * i2 * r - n * n) / (2 * i2);
      var a2 = -n / 2 * i2;
      var s = e2;
      var l = (t2 - a2 * e2) / d;
      return {
        x: function(e22) {
          return Math.pow(Math.E, a2 * e22) * (s * Math.cos(d * e22) + l * Math.sin(d * e22));
        },
        dx: function(e22) {
          var t22 = Math.pow(Math.E, a2 * e22);
          var n2 = Math.cos(d * e22);
          var i22 = Math.sin(d * e22);
          return t22 * (l * d * n2 - s * d * i22) + a2 * t22 * (l * i22 + s * n2);
        }
      };
    }
    x(e2) {
      if (e2 === void 0) {
        e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
      }
      return this._solution ? this._endPosition + this._solution.x(e2) : 0;
    }
    dx(e2) {
      if (e2 === void 0) {
        e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
      }
      return this._solution ? this._solution.dx(e2) : 0;
    }
    setEnd(e2, t2, n) {
      if (!n) {
        n = (/* @__PURE__ */ new Date()).getTime();
      }
      if (e2 !== this._endPosition || !a(t2, 0.4)) {
        t2 = t2 || 0;
        var i2 = this._endPosition;
        if (this._solution) {
          if (a(t2, 0.4)) {
            t2 = this._solution.dx((n - this._startTime) / 1e3);
          }
          i2 = this._solution.x((n - this._startTime) / 1e3);
          if (a(t2, 0.4)) {
            t2 = 0;
          }
          if (a(i2, 0.4)) {
            i2 = 0;
          }
          i2 += this._endPosition;
        }
        if (!(this._solution && a(i2 - e2, 0.4) && a(t2, 0.4))) {
          this._endPosition = e2;
          this._solution = this._solve(i2 - this._endPosition, t2);
          this._startTime = n;
        }
      }
    }
    snap(e2) {
      this._startTime = (/* @__PURE__ */ new Date()).getTime();
      this._endPosition = e2;
      this._solution = {
        x: function() {
          return 0;
        },
        dx: function() {
          return 0;
        }
      };
    }
    done(e2) {
      if (!e2) {
        e2 = (/* @__PURE__ */ new Date()).getTime();
      }
      return o(this.x(), this._endPosition, 0.4) && a(this.dx(), 0.4);
    }
    reconfigure(e2, t2, n) {
      this._m = e2;
      this._k = t2;
      this._c = n;
      if (!this.done()) {
        this._solution = this._solve(this.x() - this._endPosition, this.dx());
        this._startTime = (/* @__PURE__ */ new Date()).getTime();
      }
    }
    springConstant() {
      return this._k;
    }
    damping() {
      return this._c;
    }
    configuration() {
      function e2(e22, t22) {
        e22.reconfigure(1, t22, e22.damping());
      }
      function t2(e22, t22) {
        e22.reconfigure(1, e22.springConstant(), t22);
      }
      return [{
        label: "Spring Constant",
        read: this.springConstant.bind(this),
        write: e2.bind(this, this),
        min: 100,
        max: 1e3
      }, {
        label: "Damping",
        read: this.damping.bind(this),
        write: t2.bind(this, this),
        min: 1,
        max: 500
      }];
    }
  }
  class Scroll {
    constructor(extent, friction, spring) {
      this._extent = extent;
      this._friction = friction || new Friction(0.01);
      this._spring = spring || new Spring(1, 90, 20);
      this._startTime = 0;
      this._springing = false;
      this._springOffset = 0;
    }
    snap(e2, t2) {
      this._springOffset = 0;
      this._springing = true;
      this._spring.snap(e2);
      this._spring.setEnd(t2);
    }
    set(e2, t2) {
      this._friction.set(e2, t2);
      if (e2 > 0 && t2 >= 0) {
        this._springOffset = 0;
        this._springing = true;
        this._spring.snap(e2);
        this._spring.setEnd(0);
      } else {
        if (e2 < -this._extent && t2 <= 0) {
          this._springOffset = 0;
          this._springing = true;
          this._spring.snap(e2);
          this._spring.setEnd(-this._extent);
        } else {
          this._springing = false;
        }
      }
      this._startTime = (/* @__PURE__ */ new Date()).getTime();
    }
    x(e2) {
      if (!this._startTime) {
        return 0;
      }
      if (!e2) {
        e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;
      }
      if (this._springing) {
        return this._spring.x() + this._springOffset;
      }
      var t2 = this._friction.x(e2);
      var n = this.dx(e2);
      if (t2 > 0 && n >= 0 || t2 < -this._extent && n <= 0) {
        this._springing = true;
        this._spring.setEnd(0, n);
        if (t2 < -this._extent) {
          this._springOffset = -this._extent;
        } else {
          this._springOffset = 0;
        }
        t2 = this._spring.x() + this._springOffset;
      }
      return t2;
    }
    dx(e2) {
      var t2;
      if (this._lastTime === e2) {
        t2 = this._lastDx;
      } else {
        t2 = this._springing ? this._spring.dx(e2) : this._friction.dx(e2);
      }
      this._lastTime = e2;
      this._lastDx = t2;
      return t2;
    }
    done() {
      return this._springing ? this._spring.done() : this._friction.done();
    }
    setVelocityByEnd(e2) {
      this._friction.setVelocityByEnd(e2);
    }
    configuration() {
      var e2 = this._friction.configuration();
      e2.push.apply(e2, this._spring.configuration());
      return e2;
    }
  }
  function createAnimation(scroll, onScroll, onEnd) {
    var state = {
      id: 0,
      cancelled: false
    };
    function startAnimation2(state2, scroll2, onScroll2, onEnd2) {
      if (!state2 || !state2.cancelled) {
        onScroll2(scroll2);
        var isDone = scroll2.done();
        if (!isDone) {
          if (!state2.cancelled) {
            state2.id = requestAnimationFrame(startAnimation2.bind(null, state2, scroll2, onScroll2, onEnd2));
          }
        }
        if (isDone && onEnd2) {
          onEnd2(scroll2);
        }
      }
    }
    function cancel(state2) {
      if (state2 && state2.id) {
        cancelAnimationFrame(state2.id);
      }
      if (state2) {
        state2.cancelled = true;
      }
    }
    startAnimation2(state, scroll, onScroll, onEnd);
    return {
      cancel: cancel.bind(null, state),
      model: scroll
    };
  }
  class Scroller {
    constructor(element, options) {
      options = options || {};
      this._element = element;
      this._options = options;
      this._enableSnap = options.enableSnap || false;
      this._itemSize = options.itemSize || 0;
      this._enableX = options.enableX || false;
      this._enableY = options.enableY || false;
      this._shouldDispatchScrollEvent = !!options.onScroll;
      if (this._enableX) {
        this._extent = (options.scrollWidth || this._element.offsetWidth) - this._element.parentElement.offsetWidth;
        this._scrollWidth = options.scrollWidth;
      } else {
        this._extent = (options.scrollHeight || this._element.offsetHeight) - this._element.parentElement.offsetHeight;
        this._scrollHeight = options.scrollHeight;
      }
      this._position = 0;
      this._scroll = new Scroll(this._extent, options.friction, options.spring);
      this._onTransitionEnd = this.onTransitionEnd.bind(this);
      this.updatePosition();
    }
    onTouchStart() {
      this._startPosition = this._position;
      this._lastChangePos = this._startPosition;
      if (this._startPosition > 0) {
        this._startPosition /= 0.5;
      } else {
        if (this._startPosition < -this._extent) {
          this._startPosition = (this._startPosition + this._extent) / 0.5 - this._extent;
        }
      }
      if (this._animation) {
        this._animation.cancel();
        this._scrolling = false;
      }
      this.updatePosition();
    }
    onTouchMove(x, y) {
      var startPosition = this._startPosition;
      if (this._enableX) {
        startPosition += x;
      } else if (this._enableY) {
        startPosition += y;
      }
      if (startPosition > 0) {
        startPosition *= 0.5;
      } else if (startPosition < -this._extent) {
        startPosition = 0.5 * (startPosition + this._extent) - this._extent;
      }
      this._position = startPosition;
      this.updatePosition();
      this.dispatchScroll();
    }
    onTouchEnd(x, y, o2) {
      if (this._enableSnap && this._position > -this._extent && this._position < 0) {
        if (this._enableY && (Math.abs(y) < this._itemSize && Math.abs(o2.y) < 300 || Math.abs(o2.y) < 150)) {
          this.snap();
          return;
        }
        if (this._enableX && (Math.abs(x) < this._itemSize && Math.abs(o2.x) < 300 || Math.abs(o2.x) < 150)) {
          this.snap();
          return;
        }
      }
      if (this._enableX) {
        this._scroll.set(this._position, o2.x);
      } else if (this._enableY) {
        this._scroll.set(this._position, o2.y);
      }
      var c2;
      if (this._enableSnap) {
        var s = this._scroll._friction.x(100);
        var l = s % this._itemSize;
        c2 = Math.abs(l) > this._itemSize / 2 ? s - (this._itemSize - Math.abs(l)) : s - l;
        if (c2 <= 0 && c2 >= -this._extent) {
          this._scroll.setVelocityByEnd(c2);
        }
      }
      this._lastTime = Date.now();
      this._lastDelay = 0;
      this._scrolling = true;
      this._lastChangePos = this._position;
      this._lastIdx = Math.floor(Math.abs(this._position / this._itemSize));
      this._animation = createAnimation(this._scroll, () => {
        var e2 = Date.now();
        var i2 = (e2 - this._scroll._startTime) / 1e3;
        var r = this._scroll.x(i2);
        this._position = r;
        this.updatePosition();
        var o22 = this._scroll.dx(i2);
        if (this._shouldDispatchScrollEvent && e2 - this._lastTime > this._lastDelay) {
          this.dispatchScroll();
          this._lastDelay = Math.abs(2e3 / o22);
          this._lastTime = e2;
        }
      }, () => {
        if (this._enableSnap) {
          if (c2 <= 0 && c2 >= -this._extent) {
            this._position = c2;
            this.updatePosition();
          }
          if (isFunction(this._options.onSnap)) {
            this._options.onSnap(Math.floor(Math.abs(this._position) / this._itemSize));
          }
        }
        if (this._shouldDispatchScrollEvent) {
          this.dispatchScroll();
        }
        this._scrolling = false;
      });
    }
    onTransitionEnd() {
      this._element.style.webkitTransition = "";
      this._element.style.transition = "";
      this._element.removeEventListener("transitionend", this._onTransitionEnd);
      if (this._snapping) {
        this._snapping = false;
      }
      this.dispatchScroll();
    }
    snap() {
      var itemSize = this._itemSize;
      var position = this._position % itemSize;
      var i2 = Math.abs(position) > this._itemSize / 2 ? this._position - (itemSize - Math.abs(position)) : this._position - position;
      if (this._position !== i2) {
        this._snapping = true;
        this.scrollTo(-i2);
        if (isFunction(this._options.onSnap)) {
          this._options.onSnap(Math.floor(Math.abs(this._position) / this._itemSize));
        }
      }
    }
    scrollTo(position, time) {
      if (this._animation) {
        this._animation.cancel();
        this._scrolling = false;
      }
      if (typeof position === "number") {
        this._position = -position;
      }
      if (this._position < -this._extent) {
        this._position = -this._extent;
      } else {
        if (this._position > 0) {
          this._position = 0;
        }
      }
      var transition = "transform " + (time || 0.2) + "s ease-out";
      this._element.style.webkitTransition = "-webkit-" + transition;
      this._element.style.transition = transition;
      this.updatePosition();
      this._element.addEventListener("transitionend", this._onTransitionEnd);
    }
    dispatchScroll() {
      if (isFunction(this._options.onScroll) && Math.round(Number(this._lastPos)) !== Math.round(this._position)) {
        this._lastPos = this._position;
        var event = {
          target: {
            scrollLeft: this._enableX ? -this._position : 0,
            scrollTop: this._enableY ? -this._position : 0,
            scrollHeight: this._scrollHeight || this._element.offsetHeight,
            scrollWidth: this._scrollWidth || this._element.offsetWidth,
            offsetHeight: this._element.parentElement.offsetHeight,
            offsetWidth: this._element.parentElement.offsetWidth
          }
        };
        this._options.onScroll(event);
      }
    }
    update(height, scrollHeight, itemSize) {
      var extent = 0;
      var position = this._position;
      if (this._enableX) {
        extent = this._element.childNodes.length ? (scrollHeight || this._element.offsetWidth) - this._element.parentElement.offsetWidth : 0;
        this._scrollWidth = scrollHeight;
      } else {
        extent = this._element.childNodes.length ? (scrollHeight || this._element.offsetHeight) - this._element.parentElement.offsetHeight : 0;
        this._scrollHeight = scrollHeight;
      }
      if (typeof height === "number") {
        this._position = -height;
      }
      if (this._position < -extent) {
        this._position = -extent;
      } else {
        if (this._position > 0) {
          this._position = 0;
        }
      }
      this._itemSize = itemSize || this._itemSize;
      this.updatePosition();
      if (position !== this._position) {
        this.dispatchScroll();
        if (isFunction(this._options.onSnap)) {
          this._options.onSnap(Math.floor(Math.abs(this._position) / this._itemSize));
        }
      }
      this._extent = extent;
      this._scroll._extent = extent;
    }
    updatePosition() {
      var transform = "";
      if (this._enableX) {
        transform = "translateX(" + this._position + "px) translateZ(0)";
      } else {
        if (this._enableY) {
          transform = "translateY(" + this._position + "px) translateZ(0)";
        }
      }
      this._element.style.webkitTransform = transform;
      this._element.style.transform = transform;
    }
    isScrolling() {
      return this._scrolling || this._snapping;
    }
  }
  function useScroller(element, options) {
    var touchInfo = {
      trackingID: -1,
      maxDy: 0,
      maxDx: 0
    };
    var scroller = new Scroller(element, options);
    function findDelta(event) {
      var touchtrackEvent = event;
      var mouseEvent = event;
      return touchtrackEvent.detail.state === "move" || touchtrackEvent.detail.state === "end" ? {
        x: touchtrackEvent.detail.dx,
        y: touchtrackEvent.detail.dy
      } : {
        x: mouseEvent.screenX - touchInfo.x,
        y: mouseEvent.screenY - touchInfo.y
      };
    }
    function handleTouchStart(event) {
      var touchtrackEvent = event;
      var mouseEvent = event;
      if (touchtrackEvent.detail.state === "start") {
        touchInfo.trackingID = "touch";
        touchInfo.x = touchtrackEvent.detail.x;
        touchInfo.y = touchtrackEvent.detail.y;
      } else {
        touchInfo.trackingID = "mouse";
        touchInfo.x = mouseEvent.screenX;
        touchInfo.y = mouseEvent.screenY;
      }
      touchInfo.maxDx = 0;
      touchInfo.maxDy = 0;
      touchInfo.historyX = [0];
      touchInfo.historyY = [0];
      touchInfo.historyTime = [touchtrackEvent.detail.timeStamp || mouseEvent.timeStamp];
      touchInfo.listener = scroller;
      if (scroller.onTouchStart) {
        scroller.onTouchStart();
      }
      if (typeof event.cancelable !== "boolean" || event.cancelable)
        event.preventDefault();
    }
    function handleTouchMove(event) {
      var touchtrackEvent = event;
      var mouseEvent = event;
      if (touchInfo.trackingID !== -1) {
        if (typeof event.cancelable !== "boolean" || event.cancelable)
          event.preventDefault();
        var delta = findDelta(event);
        if (delta) {
          for (touchInfo.maxDy = Math.max(touchInfo.maxDy, Math.abs(delta.y)), touchInfo.maxDx = Math.max(touchInfo.maxDx, Math.abs(delta.x)), touchInfo.historyX.push(delta.x), touchInfo.historyY.push(delta.y), touchInfo.historyTime.push(touchtrackEvent.detail.timeStamp || mouseEvent.timeStamp); touchInfo.historyTime.length > 10; ) {
            touchInfo.historyTime.shift();
            touchInfo.historyX.shift();
            touchInfo.historyY.shift();
          }
          if (touchInfo.listener && touchInfo.listener.onTouchMove) {
            touchInfo.listener.onTouchMove(delta.x, delta.y);
          }
        }
      }
    }
    function handleTouchEnd(event) {
      if (touchInfo.trackingID !== -1) {
        event.preventDefault();
        var delta = findDelta(event);
        if (delta) {
          var listener = touchInfo.listener;
          touchInfo.trackingID = -1;
          touchInfo.listener = null;
          var length = touchInfo.historyTime.length;
          var o2 = {
            x: 0,
            y: 0
          };
          if (length > 2) {
            for (var i2 = touchInfo.historyTime.length - 1, time1 = touchInfo.historyTime[i2], x = touchInfo.historyX[i2], y = touchInfo.historyY[i2]; i2 > 0; ) {
              i2--;
              var time0 = touchInfo.historyTime[i2];
              var time = time1 - time0;
              if (time > 30 && time < 50) {
                o2.x = (x - touchInfo.historyX[i2]) / (time / 1e3);
                o2.y = (y - touchInfo.historyY[i2]) / (time / 1e3);
                break;
              }
            }
          }
          touchInfo.historyTime = [];
          touchInfo.historyX = [];
          touchInfo.historyY = [];
          if (listener && listener.onTouchEnd) {
            listener.onTouchEnd(delta.x, delta.y, o2);
          }
        }
      }
    }
    return {
      scroller,
      handleTouchStart,
      handleTouchMove,
      handleTouchEnd
    };
  }
  function useCustomClick(dom) {
    var MAX_MOVE = 20;
    var x = 0;
    var y = 0;
    dom.addEventListener("touchstart", (event) => {
      var info = event.changedTouches[0];
      x = info.clientX;
      y = info.clientY;
    });
    dom.addEventListener("touchend", (event) => {
      var info = event.changedTouches[0];
      if (Math.abs(info.clientX - x) < MAX_MOVE && Math.abs(info.clientY - y) < MAX_MOVE) {
        var options = {
          bubbles: true,
          cancelable: true,
          target: event.target,
          currentTarget: event.currentTarget
        };
        var customClick = new CustomEvent("click", options);
        var props2 = ["screenX", "screenY", "clientX", "clientY", "pageX", "pageY"];
        props2.forEach((key2) => {
          customClick[key2] = info[key2];
        });
        event.target.dispatchEvent(customClick);
      }
    });
  }
  const PickerViewColumn = /* @__PURE__ */ defineBuiltInComponent({
    name: "PickerViewColumn",
    setup(props2, _ref) {
      var {
        slots,
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var contentRef = ref(null);
      var getPickerViewColumn = inject("getPickerViewColumn");
      var instance = getCurrentInstance();
      var currentRef = getPickerViewColumn ? getPickerViewColumn(instance) : ref(0);
      var pickerViewProps2 = inject("pickerViewProps");
      var pickerViewState = inject("pickerViewState");
      var indicatorHeight = ref(34);
      var resizeSensorRef = ref(null);
      var initIndicatorHeight = () => {
        var resizeSensor = resizeSensorRef.value;
        indicatorHeight.value = resizeSensor.$el.offsetHeight;
      };
      var maskSize = computed(() => (pickerViewState.height - indicatorHeight.value) / 2);
      var {
        state: scopedAttrsState
      } = useScopedAttrs();
      var scroller;
      var state = reactive({
        current: currentRef.value,
        length: 0
      });
      var updatesScrollerRequest;
      function updatesScroller() {
        if (scroller && !updatesScrollerRequest) {
          updatesScrollerRequest = true;
          nextTick(() => {
            updatesScrollerRequest = false;
            var current = Math.min(state.current, state.length - 1);
            current = Math.max(current, 0);
            scroller.update(current * indicatorHeight.value, void 0, indicatorHeight.value);
          });
        }
      }
      watch(() => currentRef.value, (current) => {
        if (current !== state.current) {
          state.current = current;
          updatesScroller();
        }
      });
      watch(() => state.current, (current) => currentRef.value = current);
      watch([() => indicatorHeight.value, () => state.length, () => pickerViewState.height], updatesScroller);
      var oldDeltaY = 0;
      function handleWheel(event) {
        var deltaY = oldDeltaY + event.deltaY;
        if (Math.abs(deltaY) > 10) {
          oldDeltaY = 0;
          var current = Math.min(state.current + (deltaY < 0 ? -1 : 1), state.length - 1);
          state.current = current = Math.max(current, 0);
          scroller.scrollTo(current * indicatorHeight.value);
        } else {
          oldDeltaY = deltaY;
        }
        event.preventDefault();
      }
      function handleTap(_ref2) {
        var {
          clientY
        } = _ref2;
        var el = rootRef.value;
        if (!scroller.isScrolling()) {
          var rect = el.getBoundingClientRect();
          var r = clientY - rect.top - pickerViewState.height / 2;
          var o2 = indicatorHeight.value / 2;
          if (!(Math.abs(r) <= o2)) {
            var a2 = Math.ceil((Math.abs(r) - o2) / indicatorHeight.value);
            var s = r < 0 ? -a2 : a2;
            var current = Math.min(state.current + s, state.length - 1);
            state.current = current = Math.max(current, 0);
            scroller.scrollTo(current * indicatorHeight.value);
          }
        }
      }
      var initScroller = () => {
        var el = rootRef.value;
        var content = contentRef.value;
        var {
          scroller: scrollerOrigin,
          handleTouchStart,
          handleTouchMove,
          handleTouchEnd
        } = useScroller(content, {
          enableY: true,
          enableX: false,
          enableSnap: true,
          itemSize: indicatorHeight.value,
          friction: new Friction(1e-4),
          spring: new Spring(2, 90, 20),
          onSnap: (index2) => {
            if (!isNaN(index2) && index2 !== state.current) {
              state.current = index2;
            }
          }
        });
        scroller = scrollerOrigin;
        useTouchtrack(el, (e2) => {
          switch (e2.detail.state) {
            case "start":
              handleTouchStart(e2);
              disableScrollBounce({
                disable: true
              });
              break;
            case "move":
              handleTouchMove(e2);
              e2.stopPropagation();
              break;
            case "end":
            case "cancel":
              handleTouchEnd(e2);
              disableScrollBounce({
                disable: false
              });
          }
        }, true);
        useCustomClick(el);
        initScrollBounce();
        updatesScroller();
      };
      {
        var isMounted = false;
        useRebuild(() => {
          contentRef.value && (state.length = contentRef.value.children.length);
          if (!isMounted) {
            isMounted = true;
            initIndicatorHeight();
            initScroller();
          }
        });
      }
      return () => {
        var defaultSlots = slots.default && slots.default();
        var padding = "".concat(maskSize.value, "px 0");
        return createVNode("uni-picker-view-column", {
          "ref": rootRef
        }, [createVNode("div", {
          "onWheel": handleWheel,
          "onClick": handleTap,
          "class": "uni-picker-view-group"
        }, [createVNode("div", mergeProps(scopedAttrsState.attrs, {
          "class": ["uni-picker-view-mask", pickerViewProps2.maskClass],
          "style": "background-size: 100% ".concat(maskSize.value, "px;").concat(pickerViewProps2.maskStyle)
        }), null, 16), createVNode("div", mergeProps(scopedAttrsState.attrs, {
          "class": ["uni-picker-view-indicator", pickerViewProps2.indicatorClass],
          "style": pickerViewProps2.indicatorStyle
        }), [createVNode(ResizeSensor, {
          "ref": resizeSensorRef,
          "onResize": (_ref3) => {
            var {
              height
            } = _ref3;
            return indicatorHeight.value = height;
          }
        }, null, 8, ["onResize"])], 16), createVNode("div", {
          "ref": contentRef,
          "class": ["uni-picker-view-content"],
          "style": {
            padding,
            "--picker-view-column-indicator-height": "".concat(indicatorHeight.value, "px")
          }
        }, [defaultSlots], 4)], 40, ["onWheel", "onClick"])], 512);
      };
    }
  });
  var FONT_SIZE = 16;
  var PROGRESS_VALUES = {
    activeColor: PRIMARY_COLOR,
    backgroundColor: "#EBEBEB",
    activeMode: "backwards"
  };
  var progressProps = {
    percent: {
      type: [Number, String],
      default: 0,
      validator(value) {
        return !isNaN(parseFloat(value));
      }
    },
    fontSize: {
      type: [String, Number],
      default: FONT_SIZE
    },
    showInfo: {
      type: [Boolean, String],
      default: false
    },
    strokeWidth: {
      type: [Number, String],
      default: 6,
      validator(value) {
        return !isNaN(parseFloat(value));
      }
    },
    color: {
      type: String,
      default: PROGRESS_VALUES.activeColor
    },
    activeColor: {
      type: String,
      default: PROGRESS_VALUES.activeColor
    },
    backgroundColor: {
      type: String,
      default: PROGRESS_VALUES.backgroundColor
    },
    active: {
      type: [Boolean, String],
      default: false
    },
    activeMode: {
      type: String,
      default: PROGRESS_VALUES.activeMode
    },
    duration: {
      type: [Number, String],
      default: 30,
      validator(value) {
        return !isNaN(parseFloat(value));
      }
    },
    borderRadius: {
      type: [Number, String],
      default: 0
    }
  };
  const Progress = /* @__PURE__ */ defineBuiltInComponent({
    name: "Progress",
    props: progressProps,
    setup(props2) {
      var rootRef = ref(null);
      var state = useProgressState(props2);
      _activeAnimation(state, props2);
      watch(() => state.realPercent, (newValue, oldValue) => {
        state.strokeTimer && clearInterval(state.strokeTimer);
        state.lastPercent = oldValue || 0;
        _activeAnimation(state, props2);
      });
      return () => {
        var {
          showInfo
        } = props2;
        var {
          outerBarStyle,
          innerBarStyle,
          currentPercent
        } = state;
        return createVNode("uni-progress", {
          "class": "uni-progress",
          "ref": rootRef
        }, [createVNode("div", {
          "style": outerBarStyle,
          "class": "uni-progress-bar"
        }, [createVNode("div", {
          "style": innerBarStyle,
          "class": "uni-progress-inner-bar"
        }, null, 4)], 4), showInfo ? (
          // {currentPercent}% 的写法会影响 SSR Hydration (tsx插件的问题)
          createVNode("p", {
            "class": "uni-progress-info"
          }, [currentPercent + "%"])
        ) : ""], 512);
      };
    }
  });
  function useProgressState(props2) {
    var currentPercent = ref(0);
    var outerBarStyle = computed(() => "background-color: ".concat(props2.backgroundColor, "; height: ").concat(props2.strokeWidth, "px;"));
    var innerBarStyle = computed(() => {
      var backgroundColor = props2.color !== PROGRESS_VALUES.activeColor && props2.activeColor === PROGRESS_VALUES.activeColor ? props2.color : props2.activeColor;
      return "width: ".concat(currentPercent.value, "%;background-color: ").concat(backgroundColor);
    });
    var realPercent = computed(() => {
      if (typeof props2.percent === "string" && !/^-?\d*\.?\d*$/.test(props2.percent)) {
        return 0;
      }
      var realValue = parseFloat(props2.percent);
      if (Number.isNaN(realValue) || realValue < 0) {
        realValue = 0;
      } else if (realValue > 100) {
        realValue = 100;
      }
      return realValue;
    });
    var state = reactive({
      outerBarStyle,
      innerBarStyle,
      realPercent,
      currentPercent,
      strokeTimer: 0,
      lastPercent: 0
    });
    return state;
  }
  function _activeAnimation(state, props2) {
    if (props2.active) {
      state.currentPercent = props2.activeMode === PROGRESS_VALUES.activeMode ? 0 : state.lastPercent;
      state.strokeTimer = setInterval(() => {
        if (state.currentPercent + 1 > state.realPercent) {
          state.currentPercent = state.realPercent;
          state.strokeTimer && clearInterval(state.strokeTimer);
        } else {
          state.currentPercent += 1;
        }
      }, parseFloat(props2.duration));
    } else {
      state.currentPercent = state.realPercent;
    }
  }
  var uniRadioGroupKey = PolySymbol("ucg");
  var props$m = {
    name: {
      type: String,
      default: ""
    }
  };
  const RadioGroup = /* @__PURE__ */ defineBuiltInComponent({
    name: "RadioGroup",
    props: props$m,
    // emits: ['change'],
    setup(props2, _ref) {
      var {
        emit: emit2,
        slots
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      useProvideRadioGroup(props2, trigger2);
      return () => {
        return createVNode("uni-radio-group", {
          "ref": rootRef
        }, [slots.default && slots.default()], 512);
      };
    }
  });
  function useProvideRadioGroup(props2, trigger2) {
    var fields2 = [];
    onMounted(() => {
      _resetRadioGroupValue(fields2.length - 1);
    });
    var getFieldsValue = () => {
      var _fields$find;
      return (_fields$find = fields2.find((field) => field.value.radioChecked)) === null || _fields$find === void 0 ? void 0 : _fields$find.value.value;
    };
    provide(uniRadioGroupKey, {
      addField(field) {
        fields2.push(field);
      },
      removeField(field) {
        fields2.splice(fields2.indexOf(field), 1);
      },
      radioChange($event, field) {
        var index2 = fields2.indexOf(field);
        _resetRadioGroupValue(index2, true);
        trigger2("change", $event, {
          value: getFieldsValue()
        });
      }
    });
    var uniForm = inject(uniFormKey, false);
    var formField = {
      submit: () => {
        var data = ["", null];
        if (props2.name !== "") {
          data[0] = props2.name;
          data[1] = getFieldsValue();
        }
        return data;
      }
    };
    if (uniForm) {
      uniForm.addField(formField);
      onBeforeUnmount(() => {
        uniForm.removeField(formField);
      });
    }
    function setFieldChecked(field, radioChecked) {
      field.value = {
        radioChecked,
        value: field.value.value
      };
    }
    function _resetRadioGroupValue(key2, change) {
      fields2.forEach((value, index2) => {
        if (index2 === key2) {
          return;
        }
        if (change) {
          setFieldChecked(fields2[index2], false);
        } else {
          fields2.forEach((v2, i2) => {
            if (index2 >= i2) {
              return;
            }
            if (fields2[i2].value.radioChecked) {
              setFieldChecked(fields2[index2], false);
            }
          });
        }
      });
    }
    return fields2;
  }
  var props$l = {
    checked: {
      type: [Boolean, String],
      default: false
    },
    id: {
      type: String,
      default: ""
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    value: {
      type: String,
      default: ""
    },
    color: {
      type: String,
      default: "#007aff"
    },
    backgroundColor: {
      type: String,
      default: ""
    },
    borderColor: {
      type: String,
      default: ""
    },
    activeBackgroundColor: {
      type: String,
      default: ""
    },
    activeBorderColor: {
      type: String,
      default: ""
    },
    iconColor: {
      type: String,
      default: "#ffffff"
    }
  };
  const Radio = /* @__PURE__ */ defineBuiltInComponent({
    name: "Radio",
    props: props$l,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var radioChecked = ref(props2.checked);
      var radioValue = ref(props2.value);
      function getRadioStyle(checked) {
        if (props2.disabled) {
          return {
            backgroundColor: "#E1E1E1",
            borderColor: "#D1D1D1"
          };
        }
        var style = {};
        if (radioChecked.value) {
          style.backgroundColor = props2.activeBackgroundColor || props2.color;
          style.borderColor = props2.activeBorderColor || style.backgroundColor;
        } else {
          if (props2.borderColor)
            style.borderColor = props2.borderColor;
          if (props2.backgroundColor)
            style.backgroundColor = props2.backgroundColor;
        }
        return style;
      }
      var radioStyle = computed(() => {
        return getRadioStyle(radioChecked.value);
      });
      watch([() => props2.checked, () => props2.value], (_ref2) => {
        var [newChecked, newModelValue] = _ref2;
        radioChecked.value = newChecked;
        radioValue.value = newModelValue;
      });
      var reset = () => {
        radioChecked.value = false;
      };
      var {
        uniCheckGroup,
        uniLabel,
        field
      } = useRadioInject(radioChecked, radioValue, reset);
      var _onClick = ($event) => {
        if (props2.disabled || radioChecked.value) {
          return;
        }
        radioChecked.value = true;
        uniCheckGroup && uniCheckGroup.radioChange($event, field);
        $event.stopPropagation();
      };
      if (!!uniLabel) {
        uniLabel.addHandler(_onClick);
        onBeforeUnmount(() => {
          uniLabel.removeHandler(_onClick);
        });
      }
      useListeners$1(props2, {
        "label-click": _onClick
      });
      return () => {
        var booleanAttrs = useBooleanAttr(props2, "disabled");
        var realCheckValue;
        realCheckValue = radioChecked.value;
        return createVNode("uni-radio", mergeProps(booleanAttrs, {
          "id": props2.id,
          "onClick": _onClick,
          "ref": rootRef
        }), [createVNode("div", {
          "class": "uni-radio-wrapper",
          "style": {
            "--HOVER-BD-COLOR": !radioChecked.value ? props2.activeBorderColor : radioStyle.value.borderColor
          }
        }, [createVNode("div", {
          "class": ["uni-radio-input", {
            "uni-radio-input-disabled": props2.disabled
          }],
          "style": radioStyle.value
        }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.disabled ? "#ADADAD" : props2.iconColor, 18) : ""], 6), slots.default && slots.default()], 4)], 16, ["id", "onClick"]);
      };
    }
  });
  function useRadioInject(radioChecked, radioValue, reset) {
    var field = computed({
      get: () => ({
        radioChecked: Boolean(radioChecked.value),
        value: radioValue.value
      }),
      set: (_ref3) => {
        var {
          radioChecked: checked
        } = _ref3;
        radioChecked.value = checked;
      }
    });
    var formField = {
      reset
    };
    var uniCheckGroup = inject(uniRadioGroupKey, false);
    if (!!uniCheckGroup) {
      uniCheckGroup.addField(field);
    }
    var uniForm = inject(uniFormKey, false);
    if (!!uniForm) {
      uniForm.addField(formField);
    }
    var uniLabel = inject(uniLabelKey, false);
    onBeforeUnmount(() => {
      uniCheckGroup && uniCheckGroup.removeField(field);
      uniForm && uniForm.removeField(formField);
    });
    return {
      uniCheckGroup,
      uniForm,
      uniLabel,
      field
    };
  }
  var TAGS = {
    a: "",
    abbr: "",
    address: "",
    article: "",
    aside: "",
    b: "",
    bdi: "",
    bdo: ["dir"],
    big: "",
    blockquote: "",
    br: "",
    caption: "",
    center: "",
    cite: "",
    code: "",
    col: ["span", "width"],
    colgroup: ["span", "width"],
    dd: "",
    del: "",
    div: "",
    dl: "",
    dt: "",
    em: "",
    fieldset: "",
    font: "",
    footer: "",
    h1: "",
    h2: "",
    h3: "",
    h4: "",
    h5: "",
    h6: "",
    header: "",
    hr: "",
    i: "",
    img: ["alt", "src", "height", "width"],
    ins: "",
    label: "",
    legend: "",
    li: "",
    mark: "",
    nav: "",
    ol: ["start", "type"],
    p: "",
    pre: "",
    q: "",
    rt: "",
    ruby: "",
    s: "",
    section: "",
    small: "",
    span: "",
    strong: "",
    sub: "",
    sup: "",
    table: ["width"],
    tbody: "",
    td: ["colspan", "height", "rowspan", "width"],
    tfoot: "",
    th: ["colspan", "height", "rowspan", "width"],
    thead: "",
    tr: ["colspan", "height", "rowspan", "width"],
    tt: "",
    u: "",
    ul: ""
  };
  var CHARS = {
    amp: "&",
    gt: ">",
    lt: "<",
    nbsp: " ",
    quot: '"',
    apos: "'",
    ldquo: "“",
    rdquo: "”",
    yen: "￥",
    radic: "√",
    lceil: "⌈",
    rceil: "⌉",
    lfloor: "⌊",
    rfloor: "⌋",
    hellip: "…"
  };
  function decodeEntities(htmlString) {
    return htmlString.replace(/&(([a-zA-Z]+)|(#x{0,1}[\da-zA-Z]+));/gi, function(match, stage) {
      if (hasOwn$1(CHARS, stage) && CHARS[stage]) {
        return CHARS[stage];
      }
      if (/^#[0-9]{1,4}$/.test(stage)) {
        return String.fromCharCode(stage.slice(1));
      }
      if (/^#x[0-9a-f]{1,4}$/i.test(stage)) {
        return String.fromCharCode(0 + stage.slice(1));
      }
      return match;
    });
  }
  function processClickEvent(node, triggerItemClick) {
    if (["a", "img"].includes(node.name) && triggerItemClick) {
      return {
        onClick: (e2) => {
          triggerItemClick(e2, {
            node
          });
          e2.stopPropagation();
          e2.preventDefault();
          e2.returnValue = false;
        }
      };
    }
  }
  function normalizeAttrs(tagName, attrs2) {
    if (!isPlainObject(attrs2))
      return;
    for (var key2 in attrs2) {
      if (hasOwn$1(attrs2, key2)) {
        var value = attrs2[key2];
        if (tagName === "img" && key2 === "src")
          attrs2[key2] = getRealPath(value);
      }
    }
  }
  var nodeList2VNode = (scopeId, triggerItemClick, nodeList) => {
    if (!nodeList || isArray(nodeList) && !nodeList.length)
      return [];
    return nodeList.map((node) => {
      var _a;
      if (!isPlainObject(node)) {
        return;
      }
      if (!hasOwn$1(node, "type") || node.type === "node") {
        var nodeProps = {
          [scopeId]: ""
        };
        var tagName = (_a = node.name) == null ? void 0 : _a.toLowerCase();
        if (!hasOwn$1(TAGS, tagName)) {
          return;
        }
        normalizeAttrs(tagName, node.attrs);
        nodeProps = extend(nodeProps, processClickEvent(node, triggerItemClick), node.attrs);
        return h(node.name, nodeProps, nodeList2VNode(scopeId, triggerItemClick, node.children));
      }
      if (node.type === "text" && isString(node.text) && node.text !== "")
        return createTextVNode(decodeEntities(node.text || ""));
    });
  };
  function removeDOCTYPE(html) {
    return html.replace(/<\?xml.*\?>\n/, "").replace(/<!doctype.*>\n/, "").replace(/<!DOCTYPE.*>\n/, "");
  }
  function parseAttrs(attrs2) {
    return attrs2.reduce(function(pre, attr2) {
      var value = attr2.value;
      var name = attr2.name;
      if (value.match(/ /) && ["style", "src"].indexOf(name) === -1) {
        value = value.split(" ");
      }
      if (pre[name]) {
        if (Array.isArray(pre[name])) {
          pre[name].push(value);
        } else {
          pre[name] = [pre[name], value];
        }
      } else {
        pre[name] = value;
      }
      return pre;
    }, {});
  }
  function parseHtml(html) {
    html = removeDOCTYPE(html);
    var stacks = [];
    var results = {
      node: "root",
      children: []
    };
    HTMLParser(html, {
      start: function(tag, attrs2, unary) {
        var node = {
          name: tag
        };
        if (attrs2.length !== 0) {
          node.attrs = parseAttrs(attrs2);
        }
        if (unary) {
          var parent = stacks[0] || results;
          if (!parent.children) {
            parent.children = [];
          }
          parent.children.push(node);
        } else {
          stacks.unshift(node);
        }
      },
      end: function(tag) {
        var node = stacks.shift();
        if (node.name !== tag)
          console.error("invalid state: mismatch end tag");
        if (stacks.length === 0) {
          results.children.push(node);
        } else {
          var parent = stacks[0];
          if (!parent.children) {
            parent.children = [];
          }
          parent.children.push(node);
        }
      },
      chars: function(text2) {
        var node = {
          type: "text",
          text: text2
        };
        if (stacks.length === 0) {
          results.children.push(node);
        } else {
          var parent = stacks[0];
          if (!parent.children) {
            parent.children = [];
          }
          parent.children.push(node);
        }
      },
      comment: function(text2) {
        var node = {
          node: "comment",
          text: text2
        };
        var parent = stacks[0];
        if (parent) {
          if (!parent.children) {
            parent.children = [];
          }
          parent.children.push(node);
        }
      }
    });
    return results.children;
  }
  var props$k = {
    nodes: {
      type: [Array, String],
      default: function() {
        return [];
      }
    }
  };
  const RichText = /* @__PURE__ */ defineBuiltInComponent({
    name: "RichText",
    compatConfig: {
      MODE: 3
    },
    props: props$k,
    emits: ["itemclick"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var vm = getCurrentInstance();
      var scopeId = vm && vm.vnode.scopeId || "";
      var rootRef = ref(null);
      var _vnode = ref([]);
      var trigger2 = useCustomEvent(rootRef, emit2);
      function triggerItemClick(e2) {
        var detail = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
        trigger2("itemclick", e2, detail);
      }
      function renderVNode() {
        var nodeList = props2.nodes;
        if (isString(nodeList)) {
          nodeList = parseHtml(props2.nodes);
        }
        _vnode.value = nodeList2VNode(scopeId, triggerItemClick, nodeList);
      }
      watch(() => props2.nodes, renderVNode, {
        immediate: true
      });
      return () => h("uni-rich-text", {
        ref: rootRef
      }, h("div", {}, _vnode.value));
    }
  });
  const Refresher = /* @__PURE__ */ defineBuiltInComponent({
    name: "Refresher",
    props: {
      refreshState: {
        type: String,
        default: ""
      },
      refresherHeight: {
        type: Number,
        default: 0
      },
      refresherThreshold: {
        type: Number,
        default: 45
      },
      refresherDefaultStyle: {
        type: String,
        default: "black"
      },
      refresherBackground: {
        type: String,
        default: "#fff"
      }
    },
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var rootStyle = computed(() => {
        var style = {
          backgroundColor: props2.refresherBackground
        };
        switch (props2.refreshState) {
          case "pulling":
            style.height = props2.refresherHeight + "px";
            break;
          case "refreshing":
            style.height = props2.refresherThreshold + "px";
            style.transition = "height 0.3s";
            break;
          case "":
          case "refresherabort":
          case "restore":
            style.height = "0px";
            style.transition = "height 0.3s";
            break;
        }
        return style;
      });
      var refreshRotate = computed(() => {
        var route = props2.refresherHeight / props2.refresherThreshold;
        return (route > 1 ? 1 : route) * 360;
      });
      return () => {
        var {
          refreshState,
          refresherDefaultStyle,
          refresherThreshold
        } = props2;
        return createVNode("div", {
          "ref": rootRef,
          "style": rootStyle.value,
          "class": "uni-scroll-view-refresher"
        }, [refresherDefaultStyle !== "none" ? createVNode("div", {
          "class": "uni-scroll-view-refresh"
        }, [createVNode("div", {
          "class": "uni-scroll-view-refresh-inner"
        }, [refreshState == "pulling" ? createVNode("svg", {
          "key": "refresh__icon",
          "style": {
            transform: "rotate(" + refreshRotate.value + "deg)"
          },
          "fill": "#2BD009",
          "class": "uni-scroll-view-refresh__icon",
          "width": "24",
          "height": "24",
          "viewBox": "0 0 24 24"
        }, [createVNode("path", {
          "d": "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"
        }, null), createVNode("path", {
          "d": "M0 0h24v24H0z",
          "fill": "none"
        }, null)], 4) : null, refreshState == "refreshing" ? createVNode("svg", {
          "key": "refresh__spinner",
          "class": "uni-scroll-view-refresh__spinner",
          "width": "24",
          "height": "24",
          "viewBox": "25 25 50 50"
        }, [createVNode("circle", {
          "cx": "50",
          "cy": "50",
          "r": "20",
          "fill": "none",
          "style": "color: #2bd009",
          "stroke-width": "3"
        }, null)]) : null])]) : null, refresherDefaultStyle === "none" ? createVNode("div", {
          "class": "uni-scroll-view-refresher-container",
          "style": {
            height: "".concat(refresherThreshold, "px")
          }
        }, [slots.default && slots.default()]) : null], 4);
      };
    }
  });
  var passiveOptions = /* @__PURE__ */ passive(true);
  var props$j = {
    direction: {
      type: [String],
      default: "vertical"
    },
    scrollX: {
      type: [Boolean, String],
      default: false
    },
    scrollY: {
      type: [Boolean, String],
      default: false
    },
    showScrollbar: {
      type: [Boolean, String],
      default: true
    },
    upperThreshold: {
      type: [Number, String],
      default: 50
    },
    lowerThreshold: {
      type: [Number, String],
      default: 50
    },
    scrollTop: {
      type: [Number, String],
      default: 0
    },
    scrollLeft: {
      type: [Number, String],
      default: 0
    },
    scrollIntoView: {
      type: String,
      default: ""
    },
    scrollWithAnimation: {
      type: [Boolean, String],
      default: false
    },
    enableBackToTop: {
      type: [Boolean, String],
      default: false
    },
    refresherEnabled: {
      type: [Boolean, String],
      default: false
    },
    refresherThreshold: {
      type: Number,
      default: 45
    },
    refresherDefaultStyle: {
      type: String,
      default: "black"
    },
    refresherBackground: {
      type: String,
      default: "#fff"
    },
    refresherTriggered: {
      type: [Boolean, String],
      default: false
    }
  };
  const ScrollView = /* @__PURE__ */ defineBuiltInComponent({
    name: "ScrollView",
    compatConfig: {
      MODE: 3
    },
    props: props$j,
    emits: ["scroll", "scrolltoupper", "scrolltolower", "refresherrefresh", "refresherrestore", "refresherpulling", "refresherabort", "update:refresherTriggered"],
    setup(props2, _ref) {
      var {
        emit: emit2,
        slots,
        expose
      } = _ref;
      var rootRef = ref(null);
      var main = ref(null);
      var wrap = ref(null);
      var content = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var {
        state,
        scrollTopNumber,
        scrollLeftNumber
      } = useScrollViewState(props2);
      var {
        realScrollX,
        realScrollY,
        _scrollLeftChanged,
        _scrollTopChanged
      } = useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger2, rootRef, main, content, emit2);
      var mainStyle = computed(() => {
        var style = "";
        realScrollX.value ? style += "overflow-x:auto;" : style += "overflow-x:hidden;";
        realScrollY.value ? style += "overflow-y:auto;" : style += "overflow-y:hidden;";
        return style;
      });
      var scrollBarClassName = computed(() => {
        var className = "uni-scroll-view";
        if (props2.showScrollbar === false) {
          className += " uni-scroll-view-scrollbar-hidden";
        }
        return className;
      });
      expose({
        // 自动化测试需要暴露main从而获取scrollLeft
        $getMain() {
          return main.value;
        }
      });
      return () => {
        var {
          refresherEnabled,
          refresherBackground,
          refresherDefaultStyle,
          refresherThreshold
        } = props2;
        var {
          refresherHeight,
          refreshState
        } = state;
        return createVNode("uni-scroll-view", {
          "ref": rootRef
        }, [createVNode("div", {
          "ref": wrap,
          "class": "uni-scroll-view"
        }, [createVNode("div", {
          "ref": main,
          "style": mainStyle.value,
          "class": scrollBarClassName.value
        }, [refresherEnabled ? createVNode(Refresher, {
          "refreshState": refreshState,
          "refresherHeight": refresherHeight,
          "refresherThreshold": refresherThreshold,
          "refresherDefaultStyle": refresherDefaultStyle,
          "refresherBackground": refresherBackground
        }, {
          default: () => [refresherDefaultStyle == "none" ? slots.refresher && slots.refresher() : null]
        }, 8, ["refreshState", "refresherHeight", "refresherThreshold", "refresherDefaultStyle", "refresherBackground"]) : null, createVNode("div", {
          "ref": content,
          "class": "uni-scroll-view-content"
        }, [slots.default && slots.default()], 512)], 6)], 512)], 512);
      };
    }
  });
  function useScrollViewState(props2) {
    var scrollTopNumber = computed(() => {
      return Number(props2.scrollTop) || 0;
    });
    var scrollLeftNumber = computed(() => {
      return Number(props2.scrollLeft) || 0;
    });
    var state = reactive({
      lastScrollTop: scrollTopNumber.value,
      lastScrollLeft: scrollLeftNumber.value,
      lastScrollToUpperTime: 0,
      lastScrollToLowerTime: 0,
      refresherHeight: 0,
      refreshState: ""
    });
    return {
      state,
      scrollTopNumber,
      scrollLeftNumber
    };
  }
  function useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger2, rootRef, main, content, emit2) {
    var beforeRefreshing = false;
    var toUpperNumber = 0;
    var triggerAbort = false;
    var __transitionEnd = () => {
    };
    var realScrollX = computed(() => {
      return props2.scrollX;
    });
    var realScrollY = computed(() => {
      return props2.scrollY;
    });
    var upperThresholdNumber = computed(() => {
      var val = Number(props2.upperThreshold);
      return isNaN(val) ? 50 : val;
    });
    var lowerThresholdNumber = computed(() => {
      var val = Number(props2.lowerThreshold);
      return isNaN(val) ? 50 : val;
    });
    function scrollTo2(scrollToValue, direction2) {
      var container = main.value;
      var transformValue = 0;
      var transform = "";
      scrollToValue < 0 ? scrollToValue = 0 : direction2 === "x" && scrollToValue > container.scrollWidth - container.offsetWidth ? scrollToValue = container.scrollWidth - container.offsetWidth : direction2 === "y" && scrollToValue > container.scrollHeight - container.offsetHeight && (scrollToValue = container.scrollHeight - container.offsetHeight);
      direction2 === "x" ? transformValue = container.scrollLeft - scrollToValue : direction2 === "y" && (transformValue = container.scrollTop - scrollToValue);
      if (transformValue === 0)
        return;
      var _content = content.value;
      _content.style.transition = "transform .3s ease-out";
      _content.style.webkitTransition = "-webkit-transform .3s ease-out";
      if (direction2 === "x") {
        transform = "translateX(" + transformValue + "px) translateZ(0)";
      } else {
        direction2 === "y" && (transform = "translateY(" + transformValue + "px) translateZ(0)");
      }
      _content.removeEventListener("transitionend", __transitionEnd);
      _content.removeEventListener("webkitTransitionEnd", __transitionEnd);
      __transitionEnd = () => _transitionEnd(scrollToValue, direction2);
      _content.addEventListener("transitionend", __transitionEnd);
      _content.addEventListener("webkitTransitionEnd", __transitionEnd);
      if (direction2 === "x") {
        container.style.overflowX = "hidden";
      } else if (direction2 === "y") {
        container.style.overflowY = "hidden";
      }
      _content.style.transform = transform;
      _content.style.webkitTransform = transform;
    }
    function _handleScroll($event) {
      var target = $event.target;
      trigger2("scroll", $event, {
        scrollLeft: target.scrollLeft,
        scrollTop: target.scrollTop,
        scrollHeight: target.scrollHeight,
        scrollWidth: target.scrollWidth,
        deltaX: state.lastScrollLeft - target.scrollLeft,
        deltaY: state.lastScrollTop - target.scrollTop
      });
      if (realScrollY.value) {
        if (target.scrollTop <= upperThresholdNumber.value && state.lastScrollTop - target.scrollTop > 0 && $event.timeStamp - state.lastScrollToUpperTime > 200) {
          trigger2("scrolltoupper", $event, {
            direction: "top"
          });
          state.lastScrollToUpperTime = $event.timeStamp;
        }
        if (target.scrollTop + target.offsetHeight + lowerThresholdNumber.value >= target.scrollHeight && state.lastScrollTop - target.scrollTop < 0 && $event.timeStamp - state.lastScrollToLowerTime > 200) {
          trigger2("scrolltolower", $event, {
            direction: "bottom"
          });
          state.lastScrollToLowerTime = $event.timeStamp;
        }
      }
      if (realScrollX.value) {
        if (target.scrollLeft <= upperThresholdNumber.value && state.lastScrollLeft - target.scrollLeft > 0 && $event.timeStamp - state.lastScrollToUpperTime > 200) {
          trigger2("scrolltoupper", $event, {
            direction: "left"
          });
          state.lastScrollToUpperTime = $event.timeStamp;
        }
        if (target.scrollLeft + target.offsetWidth + lowerThresholdNumber.value >= target.scrollWidth && state.lastScrollLeft - target.scrollLeft < 0 && $event.timeStamp - state.lastScrollToLowerTime > 200) {
          trigger2("scrolltolower", $event, {
            direction: "right"
          });
          state.lastScrollToLowerTime = $event.timeStamp;
        }
      }
      state.lastScrollTop = target.scrollTop;
      state.lastScrollLeft = target.scrollLeft;
    }
    function _scrollTopChanged(val) {
      if (realScrollY.value) {
        {
          if (props2.scrollWithAnimation) {
            scrollTo2(val, "y");
          } else {
            main.value.scrollTop = val;
          }
        }
      }
    }
    function _scrollLeftChanged(val) {
      if (realScrollX.value) {
        {
          if (props2.scrollWithAnimation) {
            scrollTo2(val, "x");
          } else {
            main.value.scrollLeft = val;
          }
        }
      }
    }
    function _scrollIntoViewChanged(val) {
      if (val) {
        if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) {
          console.error("id error: scroll-into-view=".concat(val));
          return;
        }
        var element = rootRef.value.querySelector("#" + val);
        if (element) {
          var mainRect = main.value.getBoundingClientRect();
          var elRect = element.getBoundingClientRect();
          if (realScrollX.value) {
            var left = elRect.left - mainRect.left;
            var scrollLeft = main.value.scrollLeft;
            var x = scrollLeft + left;
            if (props2.scrollWithAnimation) {
              scrollTo2(x, "x");
            } else {
              main.value.scrollLeft = x;
            }
          }
          if (realScrollY.value) {
            var top = elRect.top - mainRect.top;
            var scrollTop = main.value.scrollTop;
            var y = scrollTop + top;
            if (props2.scrollWithAnimation) {
              scrollTo2(y, "y");
            } else {
              main.value.scrollTop = y;
            }
          }
        }
      }
    }
    function _transitionEnd(val, direction2) {
      content.value.style.transition = "";
      content.value.style.webkitTransition = "";
      content.value.style.transform = "";
      content.value.style.webkitTransform = "";
      var _main = main.value;
      if (direction2 === "x") {
        _main.style.overflowX = realScrollX.value ? "auto" : "hidden";
        _main.scrollLeft = val;
      } else if (direction2 === "y") {
        _main.style.overflowY = realScrollY.value ? "auto" : "hidden";
        _main.scrollTop = val;
      }
      content.value.removeEventListener("transitionend", __transitionEnd);
      content.value.removeEventListener("webkitTransitionEnd", __transitionEnd);
    }
    function _setRefreshState(_state) {
      if (!props2.refresherEnabled)
        return;
      switch (_state) {
        case "refreshing":
          state.refresherHeight = props2.refresherThreshold;
          if (!beforeRefreshing) {
            beforeRefreshing = true;
            trigger2("refresherpulling", {}, {
              deltaY: state.refresherHeight,
              dy: state.refresherHeight
            });
            trigger2("refresherrefresh", {}, {
              dy: touchEnd.y - touchStart.y
            });
            emit2("update:refresherTriggered", true);
          }
          break;
        case "restore":
        case "refresherabort":
          beforeRefreshing = false;
          state.refresherHeight = toUpperNumber = 0;
          if (_state === "restore") {
            triggerAbort = false;
            trigger2("refresherrestore", {}, {
              dy: touchEnd.y - touchStart.y
            });
          }
          if (_state === "refresherabort" && triggerAbort) {
            triggerAbort = false;
            trigger2("refresherabort", {}, {
              dy: touchEnd.y - touchStart.y
            });
          }
          break;
      }
      state.refreshState = _state;
    }
    var touchStart = {
      x: 0,
      y: 0
    };
    var touchEnd = {
      x: 0,
      y: props2.refresherThreshold
    };
    onMounted(() => {
      nextTick(() => {
        _scrollTopChanged(scrollTopNumber.value);
        _scrollLeftChanged(scrollLeftNumber.value);
      });
      _scrollIntoViewChanged(props2.scrollIntoView);
      var __handleScroll = function(event) {
        event.preventDefault();
        event.stopPropagation();
        _handleScroll(event);
      };
      var needStop = null;
      var __handleTouchMove = function(event) {
        if (touchStart === null)
          return;
        var x = event.touches[0].pageX;
        var y = event.touches[0].pageY;
        var _main = main.value;
        if (Math.abs(x - touchStart.x) > Math.abs(y - touchStart.y)) {
          if (realScrollX.value) {
            if (_main.scrollLeft === 0 && x > touchStart.x) {
              needStop = false;
              return;
            } else if (_main.scrollWidth === _main.offsetWidth + _main.scrollLeft && x < touchStart.x) {
              needStop = false;
              return;
            }
            needStop = true;
          } else {
            needStop = false;
          }
        } else {
          if (realScrollY.value) {
            if (_main.scrollTop === 0 && y > touchStart.y) {
              needStop = false;
              if (props2.refresherEnabled && event.cancelable !== false)
                event.preventDefault();
            } else if (_main.scrollHeight === _main.offsetHeight + _main.scrollTop && y < touchStart.y) {
              needStop = false;
              return;
            } else {
              needStop = true;
            }
          } else {
            needStop = false;
          }
        }
        if (needStop) {
          event.stopPropagation();
        }
        if (_main.scrollTop === 0 && event.touches.length === 1) {
          _setRefreshState("pulling");
        }
        if (props2.refresherEnabled && state.refreshState === "pulling") {
          var dy = y - touchStart.y;
          if (toUpperNumber === 0) {
            toUpperNumber = y;
          }
          if (!beforeRefreshing) {
            state.refresherHeight = y - toUpperNumber;
            if (state.refresherHeight > 0) {
              triggerAbort = true;
              trigger2("refresherpulling", event, {
                deltaY: dy,
                dy
              });
            }
          } else {
            state.refresherHeight = dy + props2.refresherThreshold;
            triggerAbort = false;
          }
        }
      };
      var __handleTouchStart = function(event) {
        if (event.touches.length === 1) {
          disableScrollBounce({
            disable: true
          });
          touchStart = {
            x: event.touches[0].pageX,
            y: event.touches[0].pageY
          };
        }
      };
      var __handleTouchEnd = function(event) {
        touchEnd = {
          x: event.changedTouches[0].pageX,
          y: event.changedTouches[0].pageY
        };
        disableScrollBounce({
          disable: false
        });
        if (state.refresherHeight >= props2.refresherThreshold) {
          _setRefreshState("refreshing");
        } else {
          _setRefreshState("refresherabort");
        }
        touchStart = {
          x: 0,
          y: 0
        };
        touchEnd = {
          x: 0,
          y: props2.refresherThreshold
        };
      };
      main.value.addEventListener("touchstart", __handleTouchStart, passiveOptions);
      main.value.addEventListener("touchmove", __handleTouchMove, passive(false));
      main.value.addEventListener("scroll", __handleScroll, passive(false));
      main.value.addEventListener("touchend", __handleTouchEnd, passiveOptions);
      initScrollBounce();
      onBeforeUnmount(() => {
        main.value.removeEventListener("touchstart", __handleTouchStart);
        main.value.removeEventListener("touchmove", __handleTouchMove);
        main.value.removeEventListener("scroll", __handleScroll);
        main.value.removeEventListener("touchend", __handleTouchEnd);
      });
    });
    onActivated(() => {
      realScrollY.value && (main.value.scrollTop = state.lastScrollTop);
      realScrollX.value && (main.value.scrollLeft = state.lastScrollLeft);
    });
    watch(scrollTopNumber, (val) => {
      _scrollTopChanged(val);
    });
    watch(scrollLeftNumber, (val) => {
      _scrollLeftChanged(val);
    });
    watch(() => props2.scrollIntoView, (val) => {
      _scrollIntoViewChanged(val);
    });
    watch(() => props2.refresherTriggered, (val) => {
      if (val === true) {
        _setRefreshState("refreshing");
      } else if (val === false) {
        _setRefreshState("restore");
      }
    });
    return {
      realScrollX,
      realScrollY,
      _scrollTopChanged,
      _scrollLeftChanged
    };
  }
  var props$i = {
    name: {
      type: String,
      default: ""
    },
    min: {
      type: [Number, String],
      default: 0
    },
    max: {
      type: [Number, String],
      default: 100
    },
    value: {
      type: [Number, String],
      default: 0
    },
    step: {
      type: [Number, String],
      default: 1
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    color: {
      type: String,
      default: "#e9e9e9"
    },
    backgroundColor: {
      type: String,
      default: "#e9e9e9"
    },
    activeColor: {
      type: String,
      default: "#007aff"
    },
    selectedColor: {
      type: String,
      default: "#007aff"
    },
    blockColor: {
      type: String,
      default: "#ffffff"
    },
    blockSize: {
      type: [Number, String],
      default: 28
    },
    showValue: {
      type: [Boolean, String],
      default: false
    }
  };
  const Slider = /* @__PURE__ */ defineBuiltInComponent({
    name: "Slider",
    props: props$i,
    emits: ["changing", "change"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var sliderRef = ref(null);
      var sliderValueRef = ref(null);
      var sliderHandleRef = ref(null);
      var sliderValue = ref(Number(props2.value));
      watch(() => props2.value, (val) => {
        sliderValue.value = Number(val);
      });
      var trigger2 = useCustomEvent(sliderRef, emit2);
      var state = useSliderState(props2, sliderValue);
      var {
        _onClick,
        _onTrack
      } = useSliderLoader(props2, sliderValue, sliderRef, sliderValueRef, trigger2);
      onMounted(() => {
        useTouchtrack(sliderHandleRef.value, _onTrack);
      });
      return () => {
        var {
          setBgColor,
          setBlockBg,
          setActiveColor,
          setBlockStyle
        } = state;
        return createVNode("uni-slider", {
          "ref": sliderRef,
          "onClick": withWebEvent(_onClick)
        }, [createVNode("div", {
          "class": "uni-slider-wrapper"
        }, [createVNode("div", {
          "class": "uni-slider-tap-area"
        }, [createVNode("div", {
          "style": setBgColor.value,
          "class": "uni-slider-handle-wrapper"
        }, [createVNode("div", {
          "ref": sliderHandleRef,
          "style": setBlockBg.value,
          "class": "uni-slider-handle"
        }, null, 4), createVNode("div", {
          "style": setBlockStyle.value,
          "class": "uni-slider-thumb"
        }, null, 4), createVNode("div", {
          "style": setActiveColor.value,
          "class": "uni-slider-track"
        }, null, 4)], 4)]), withDirectives(createVNode("span", {
          "ref": sliderValueRef,
          "class": "uni-slider-value"
        }, [sliderValue.value], 512), [[vShow, props2.showValue]])]), createVNode("slot", null, null)], 8, ["onClick"]);
      };
    }
  });
  var getValueWidth = (value, min2, max2) => {
    max2 = Number(max2);
    min2 = Number(min2);
    return 100 * (value - min2) / (max2 - min2) + "%";
  };
  function useSliderState(props2, sliderValue) {
    var _getValueWidth = () => {
      return getValueWidth(sliderValue.value, props2.min, props2.max);
    };
    var _getBgColor = () => {
      return props2.backgroundColor !== "#e9e9e9" ? props2.backgroundColor : props2.color !== "#007aff" ? props2.color : "#007aff";
    };
    var _getActiveColor = () => {
      return props2.activeColor !== "#007aff" ? props2.activeColor : props2.selectedColor !== "#e9e9e9" ? props2.selectedColor : "#e9e9e9";
    };
    var state = {
      setBgColor: computed(() => ({
        backgroundColor: _getBgColor()
      })),
      setBlockBg: computed(() => ({
        left: _getValueWidth()
      })),
      setActiveColor: computed(() => ({
        backgroundColor: _getActiveColor(),
        width: _getValueWidth()
      })),
      setBlockStyle: computed(() => ({
        width: props2.blockSize + "px",
        height: props2.blockSize + "px",
        marginLeft: -props2.blockSize / 2 + "px",
        marginTop: -props2.blockSize / 2 + "px",
        left: _getValueWidth(),
        backgroundColor: props2.blockColor
      }))
    };
    return state;
  }
  function useSliderLoader(props2, sliderValue, sliderRef, sliderValueRef, trigger2) {
    var _onClick = ($event) => {
      if (props2.disabled) {
        return;
      }
      _onUserChangedValue($event);
      trigger2("change", $event, {
        value: sliderValue.value
      });
    };
    var _filterValue = (e2) => {
      var max2 = Number(props2.max);
      var min2 = Number(props2.min);
      var step2 = Number(props2.step);
      return e2 < min2 ? min2 : e2 > max2 ? max2 : computeController.mul.call(Math.round((e2 - min2) / step2), step2) + min2;
    };
    var _onUserChangedValue = (e2) => {
      var max2 = Number(props2.max);
      var min2 = Number(props2.min);
      var sliderRightBox = sliderValueRef.value;
      var sliderRightBoxLeft = getComputedStyle(sliderRightBox, null).marginLeft;
      var sliderRightBoxWidth = sliderRightBox.offsetWidth;
      sliderRightBoxWidth = sliderRightBoxWidth + parseInt(sliderRightBoxLeft);
      var slider = sliderRef.value;
      var offsetWidth = slider.offsetWidth - (props2.showValue ? sliderRightBoxWidth : 0);
      var boxLeft = slider.getBoundingClientRect().left;
      var value = (e2.x - boxLeft) * (max2 - min2) / offsetWidth + min2;
      sliderValue.value = _filterValue(value);
    };
    var _onTrack = (e2) => {
      if (!props2.disabled) {
        return e2.detail.state === "move" ? (_onUserChangedValue({
          x: e2.detail.x
        }), trigger2("changing", e2, {
          value: sliderValue.value
        }), false) : e2.detail.state === "end" && trigger2("change", e2, {
          value: sliderValue.value
        });
      }
    };
    var uniForm = inject(uniFormKey, false);
    if (!!uniForm) {
      var field = {
        reset: () => sliderValue.value = Number(props2.min),
        submit: () => {
          var data = ["", null];
          if (props2.name !== "") {
            data[0] = props2.name;
            data[1] = sliderValue.value;
          }
          return data;
        }
      };
      uniForm.addField(field);
      onBeforeUnmount(() => {
        uniForm.removeField(field);
      });
    }
    return {
      _onClick,
      _onTrack
    };
  }
  var computeController = {
    mul: function(arg) {
      var m = 0;
      var s1 = this.toString();
      var s2 = arg.toString();
      try {
        m += s1.split(".")[1].length;
      } catch (e2) {
      }
      try {
        m += s2.split(".")[1].length;
      } catch (e2) {
      }
      return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
    }
  };
  var props$h = {
    indicatorDots: {
      type: [Boolean, String],
      default: false
    },
    vertical: {
      type: [Boolean, String],
      default: false
    },
    autoplay: {
      type: [Boolean, String],
      default: false
    },
    circular: {
      type: [Boolean, String],
      default: false
    },
    interval: {
      type: [Number, String],
      default: 5e3
    },
    duration: {
      type: [Number, String],
      default: 500
    },
    current: {
      type: [Number, String],
      default: 0
    },
    indicatorColor: {
      type: String,
      default: ""
    },
    indicatorActiveColor: {
      type: String,
      default: ""
    },
    previousMargin: {
      type: String,
      default: ""
    },
    nextMargin: {
      type: String,
      default: ""
    },
    currentItemId: {
      type: String,
      default: ""
    },
    skipHiddenItemLayout: {
      type: [Boolean, String],
      default: false
    },
    displayMultipleItems: {
      type: [Number, String],
      default: 1
    },
    disableTouch: {
      type: [Boolean, String],
      default: false
    },
    navigation: {
      type: [Boolean, String],
      default: false
    },
    navigationColor: {
      type: String,
      default: "#fff"
    },
    navigationActiveColor: {
      type: String,
      default: "rgba(53, 53, 53, 0.6)"
    }
  };
  function useState$2(props2) {
    var interval = computed(() => {
      var interval2 = Number(props2.interval);
      return isNaN(interval2) ? 5e3 : interval2;
    });
    var duration = computed(() => {
      var duration2 = Number(props2.duration);
      return isNaN(duration2) ? 500 : duration2;
    });
    var displayMultipleItems = computed(() => {
      var displayMultipleItems2 = Math.round(props2.displayMultipleItems);
      return isNaN(displayMultipleItems2) ? 1 : displayMultipleItems2;
    });
    var state = reactive({
      interval,
      duration,
      displayMultipleItems,
      current: Math.round(props2.current) || 0,
      currentItemId: props2.currentItemId,
      userTracking: false
    });
    return state;
  }
  function useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger2) {
    function cancelSchedule() {
      if (timer) {
        clearTimeout(timer);
        timer = null;
      }
    }
    var timer = null;
    var invalid = true;
    var viewportPosition = 0;
    var viewportMoveRatio = 1;
    var animating = null;
    var requestedAnimation = false;
    var contentTrackViewport = 0;
    var transitionStart;
    var currentChangeSource = "";
    var animationFrame;
    var swiperEnabled = computed(() => swiperContexts.value.length > state.displayMultipleItems);
    var circularEnabled = computed(() => props2.circular && swiperEnabled.value);
    function checkCircularLayout(index2) {
      if (!invalid) {
        for (var items = swiperContexts.value, n = items.length, i2 = index2 + state.displayMultipleItems, r = 0; r < n; r++) {
          var item = items[r];
          var s = Math.floor(index2 / n) * n + r;
          var l = s + n;
          var c2 = s - n;
          var u = Math.max(index2 - (s + 1), s - i2, 0);
          var d = Math.max(index2 - (l + 1), l - i2, 0);
          var h2 = Math.max(index2 - (c2 + 1), c2 - i2, 0);
          var p2 = Math.min(u, d, h2);
          var position = [s, l, c2][[u, d, h2].indexOf(p2)];
          item.updatePosition(position, props2.vertical);
        }
      }
    }
    function updateViewport(index2) {
      if (!(Math.floor(2 * viewportPosition) === Math.floor(2 * index2) && Math.ceil(2 * viewportPosition) === Math.ceil(2 * index2))) {
        if (circularEnabled.value) {
          checkCircularLayout(index2);
        }
      }
      var x = props2.vertical ? "0" : 100 * -index2 * viewportMoveRatio + "%";
      var y = props2.vertical ? 100 * -index2 * viewportMoveRatio + "%" : "0";
      var transform = "translate(" + x + ", " + y + ") translateZ(0)";
      var slideFrame = slideFrameRef.value;
      if (slideFrame) {
        slideFrame.style.webkitTransform = transform;
        slideFrame.style.transform = transform;
      }
      viewportPosition = index2;
      if (!transitionStart) {
        if (index2 % 1 === 0) {
          return;
        }
        transitionStart = index2;
      }
      index2 -= Math.floor(transitionStart);
      var items = swiperContexts.value;
      if (index2 <= -(items.length - 1)) {
        index2 += items.length;
      } else if (index2 >= items.length) {
        index2 -= items.length;
      }
      index2 = transitionStart % 1 > 0.5 || transitionStart < 0 ? index2 - 1 : index2;
      trigger2("transition", {}, {
        dx: props2.vertical ? 0 : index2 * slideFrame.offsetWidth,
        dy: props2.vertical ? index2 * slideFrame.offsetHeight : 0
      });
    }
    function endViewportAnimation() {
      if (animating) {
        updateViewport(animating.toPos);
        animating = null;
      }
    }
    function normalizeCurrentValue(current) {
      var length = swiperContexts.value.length;
      if (!length) {
        return -1;
      }
      var index2 = (Math.round(current) % length + length) % length;
      if (circularEnabled.value) {
        if (length <= state.displayMultipleItems) {
          return 0;
        }
      } else if (index2 > length - state.displayMultipleItems) {
        return length - state.displayMultipleItems;
      }
      return index2;
    }
    function cancelViewportAnimation() {
      animating = null;
    }
    function animateFrameFuncProto() {
      if (!animating) {
        requestedAnimation = false;
        return;
      }
      var _animating = animating;
      var toPos = _animating.toPos;
      var acc = _animating.acc;
      var endTime = _animating.endTime;
      var source = _animating.source;
      var time = endTime - Date.now();
      if (time <= 0) {
        updateViewport(toPos);
        animating = null;
        requestedAnimation = false;
        transitionStart = null;
        var item = swiperContexts.value[state.current];
        if (item) {
          var currentItemId = item.getItemId();
          trigger2("animationfinish", {}, {
            current: state.current,
            currentItemId,
            source
          });
        }
        return;
      }
      var s = acc * time * time / 2;
      var l = toPos + s;
      updateViewport(l);
      animationFrame = requestAnimationFrame(animateFrameFuncProto);
    }
    function animateViewport(current, source, n) {
      cancelViewportAnimation();
      var duration = state.duration;
      var length = swiperContexts.value.length;
      var position = viewportPosition;
      if (circularEnabled.value) {
        if (n < 0) {
          for (; position < current; ) {
            position += length;
          }
          for (; position - length > current; ) {
            position -= length;
          }
        } else if (n > 0) {
          for (; position > current; ) {
            position -= length;
          }
          for (; position + length < current; ) {
            position += length;
          }
          if (position + length - current < current - position) {
            position += length;
          }
        } else {
          for (; position + length < current; ) {
            position += length;
          }
          for (; position - length > current; ) {
            position -= length;
          }
          if (position + length - current < current - position) {
            position += length;
          }
        }
      } else if (source === "click") {
        current = current + state.displayMultipleItems - 1 < length ? current : 0;
      }
      animating = {
        toPos: current,
        acc: 2 * (position - current) / (duration * duration),
        endTime: Date.now() + duration,
        source
      };
      if (!requestedAnimation) {
        requestedAnimation = true;
        animationFrame = requestAnimationFrame(animateFrameFuncProto);
      }
    }
    function scheduleAutoplay() {
      cancelSchedule();
      var items = swiperContexts.value;
      var callback = function() {
        timer = null;
        currentChangeSource = "autoplay";
        if (circularEnabled.value) {
          state.current = normalizeCurrentValue(state.current + 1);
        } else {
          state.current = state.current + state.displayMultipleItems < items.length ? state.current + 1 : 0;
        }
        animateViewport(state.current, "autoplay", circularEnabled.value ? 1 : 0);
        timer = setTimeout(callback, state.interval);
      };
      if (!(invalid || items.length <= state.displayMultipleItems)) {
        timer = setTimeout(callback, state.interval);
      }
    }
    function resetLayout() {
      cancelSchedule();
      endViewportAnimation();
      var items = swiperContexts.value;
      for (var i2 = 0; i2 < items.length; i2++) {
        items[i2].updatePosition(i2, props2.vertical);
      }
      viewportMoveRatio = 1;
      var slideFrameEl = slideFrameRef.value;
      if (state.displayMultipleItems === 1 && items.length) {
        var itemRect = items[0].getBoundingClientRect();
        var slideFrameRect = slideFrameEl.getBoundingClientRect();
        viewportMoveRatio = itemRect.width / slideFrameRect.width;
        if (!(viewportMoveRatio > 0 && viewportMoveRatio < 1)) {
          viewportMoveRatio = 1;
        }
      }
      var position = viewportPosition;
      viewportPosition = -2;
      var current = state.current;
      if (current >= 0) {
        invalid = false;
        if (state.userTracking) {
          updateViewport(position + current - contentTrackViewport);
          contentTrackViewport = current;
        } else {
          updateViewport(current);
          if (props2.autoplay) {
            scheduleAutoplay();
          }
        }
      } else {
        invalid = true;
        updateViewport(-state.displayMultipleItems - 1);
      }
    }
    watch([() => props2.current, () => props2.currentItemId, () => [...swiperContexts.value]], () => {
      var current = -1;
      if (props2.currentItemId) {
        for (var i2 = 0, items = swiperContexts.value; i2 < items.length; i2++) {
          var itemId = items[i2].getItemId();
          if (itemId === props2.currentItemId) {
            current = i2;
            break;
          }
        }
      }
      if (current < 0) {
        current = Math.round(props2.current) || 0;
      }
      current = current < 0 ? 0 : current;
      if (state.current !== current) {
        currentChangeSource = "";
        state.current = current;
      }
    });
    watch([() => props2.vertical, () => circularEnabled.value, () => state.displayMultipleItems, () => [...swiperContexts.value]], resetLayout);
    watch(() => state.interval, () => {
      if (timer) {
        cancelSchedule();
        scheduleAutoplay();
      }
    });
    function currentChanged(current, history) {
      var source = currentChangeSource;
      currentChangeSource = "";
      var items = swiperContexts.value;
      if (!source) {
        var length = items.length;
        animateViewport(current, "", circularEnabled.value && history + (length - current) % length > length / 2 ? 1 : 0);
      }
      var item = items[current];
      if (item) {
        var currentItemId = state.currentItemId = item.getItemId();
        trigger2("change", {}, {
          current: state.current,
          currentItemId,
          source
        });
      }
    }
    watch(() => state.current, (val, oldVal) => {
      currentChanged(val, oldVal);
      emit2("update:current", val);
    });
    watch(() => state.currentItemId, (val) => {
      emit2("update:currentItemId", val);
    });
    function inintAutoplay(enable) {
      if (enable) {
        scheduleAutoplay();
      } else {
        cancelSchedule();
      }
    }
    watch(() => props2.autoplay && !state.userTracking, inintAutoplay);
    inintAutoplay(props2.autoplay && !state.userTracking);
    onMounted(() => {
      var userDirectionChecked = false;
      var contentTrackSpeed = 0;
      var contentTrackT = 0;
      function handleTrackStart() {
        cancelSchedule();
        contentTrackViewport = viewportPosition;
        contentTrackSpeed = 0;
        contentTrackT = Date.now();
        cancelViewportAnimation();
      }
      function handleTrackMove(data) {
        var oldContentTrackT = contentTrackT;
        contentTrackT = Date.now();
        var length = swiperContexts.value.length;
        var other = length - state.displayMultipleItems;
        function calc2(val) {
          return 0.5 - 0.25 / (val + 0.5);
        }
        function move(oldVal, newVal) {
          var val = contentTrackViewport + oldVal;
          contentTrackSpeed = 0.6 * contentTrackSpeed + 0.4 * newVal;
          if (!circularEnabled.value) {
            if (val < 0 || val > other) {
              if (val < 0) {
                val = -calc2(-val);
              } else {
                if (val > other) {
                  val = other + calc2(val - other);
                }
              }
              contentTrackSpeed = 0;
            }
          }
          updateViewport(val);
        }
        var time = contentTrackT - oldContentTrackT || 1;
        var slideFrameEl = slideFrameRef.value;
        if (props2.vertical) {
          move(-data.dy / slideFrameEl.offsetHeight, -data.ddy / time);
        } else {
          move(-data.dx / slideFrameEl.offsetWidth, -data.ddx / time);
        }
      }
      function handleTrackEnd(isCancel) {
        state.userTracking = false;
        var t2 = contentTrackSpeed / Math.abs(contentTrackSpeed);
        var n = 0;
        if (!isCancel && Math.abs(contentTrackSpeed) > 0.2) {
          n = 0.5 * t2;
        }
        var current = normalizeCurrentValue(viewportPosition + n);
        if (isCancel) {
          updateViewport(contentTrackViewport);
        } else {
          currentChangeSource = "touch";
          state.current = current;
          animateViewport(current, "touch", n !== 0 ? n : current === 0 && circularEnabled.value && viewportPosition >= 1 ? 1 : 0);
        }
      }
      useTouchtrack(slideFrameRef.value, (event) => {
        if (props2.disableTouch) {
          return;
        }
        if (!invalid) {
          if (event.detail.state === "start") {
            state.userTracking = true;
            userDirectionChecked = false;
            return handleTrackStart();
          }
          if (event.detail.state === "end") {
            return handleTrackEnd(false);
          }
          if (event.detail.state === "cancel") {
            return handleTrackEnd(true);
          }
          if (state.userTracking) {
            if (!userDirectionChecked) {
              userDirectionChecked = true;
              var t2 = Math.abs(event.detail.dx);
              var n = Math.abs(event.detail.dy);
              if (t2 >= n && props2.vertical) {
                state.userTracking = false;
              } else {
                if (t2 <= n && !props2.vertical) {
                  state.userTracking = false;
                }
              }
              if (!state.userTracking) {
                if (props2.autoplay) {
                  scheduleAutoplay();
                }
                return;
              }
            }
            handleTrackMove(event.detail);
            return false;
          }
        }
      });
    });
    onUnmounted(() => {
      cancelSchedule();
      cancelAnimationFrame(animationFrame);
    });
    function onSwiperDotClick(index2) {
      animateViewport(state.current = index2, currentChangeSource = "click", circularEnabled.value ? 1 : 0);
    }
    return {
      onSwiperDotClick,
      circularEnabled,
      swiperEnabled
    };
  }
  const Swiper = /* @__PURE__ */ defineBuiltInComponent({
    name: "Swiper",
    props: props$h,
    emits: ["change", "transition", "animationfinish", "update:current", "update:currentItemId"],
    setup(props2, _ref) {
      var {
        slots,
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var slidesWrapperRef = ref(null);
      var slideFrameRef = ref(null);
      var state = useState$2(props2);
      var slidesStyle = computed(() => {
        var style = {};
        if (props2.nextMargin || props2.previousMargin) {
          style = props2.vertical ? {
            left: 0,
            right: 0,
            top: rpx2px(props2.previousMargin, true),
            bottom: rpx2px(props2.nextMargin, true)
          } : {
            top: 0,
            bottom: 0,
            left: rpx2px(props2.previousMargin, true),
            right: rpx2px(props2.nextMargin, true)
          };
        }
        return style;
      });
      var slideFrameStyle = computed(() => {
        var value = Math.abs(100 / state.displayMultipleItems) + "%";
        return {
          width: props2.vertical ? "100%" : value,
          height: !props2.vertical ? "100%" : value
        };
      });
      var swiperItems = [];
      var originSwiperContexts = [];
      var swiperContexts = ref([]);
      function updateSwiperContexts() {
        var contexts = [];
        var _loop = function(index3) {
          var swiperItem = swiperItems[index3];
          if (!(swiperItem instanceof Element)) {
            swiperItem = swiperItem.el;
          }
          var swiperContext = originSwiperContexts.find((context) => swiperItem === context.rootRef.value);
          if (swiperContext) {
            contexts.push(markRaw(swiperContext));
          }
        };
        for (var index2 = 0; index2 < swiperItems.length; index2++) {
          _loop(index2);
        }
        swiperContexts.value = contexts;
      }
      {
        useRebuild(() => {
          swiperItems = slideFrameRef.value.children;
          updateSwiperContexts();
        });
      }
      var addSwiperContext = function(swiperContext) {
        originSwiperContexts.push(swiperContext);
        updateSwiperContexts();
      };
      provide("addSwiperContext", addSwiperContext);
      var removeSwiperContext = function(swiperContext) {
        var index2 = originSwiperContexts.indexOf(swiperContext);
        if (index2 >= 0) {
          originSwiperContexts.splice(index2, 1);
          updateSwiperContexts();
        }
      };
      provide("removeSwiperContext", removeSwiperContext);
      var {
        onSwiperDotClick,
        circularEnabled,
        swiperEnabled
      } = useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger2);
      var createNavigationTsx = () => null;
      return () => {
        var defaultSlots = slots.default && slots.default();
        return createVNode("uni-swiper", {
          "ref": rootRef
        }, [createVNode("div", {
          "ref": slidesWrapperRef,
          "class": "uni-swiper-wrapper"
        }, [createVNode("div", {
          "class": "uni-swiper-slides",
          "style": slidesStyle.value
        }, [createVNode("div", {
          "ref": slideFrameRef,
          "class": "uni-swiper-slide-frame",
          "style": slideFrameStyle.value
        }, [defaultSlots], 4)], 4), props2.indicatorDots && createVNode("div", {
          "class": ["uni-swiper-dots", props2.vertical ? "uni-swiper-dots-vertical" : "uni-swiper-dots-horizontal"]
        }, [swiperContexts.value.map((_, index2, array) => createVNode("div", {
          "onClick": () => onSwiperDotClick(index2),
          "class": {
            "uni-swiper-dot": true,
            "uni-swiper-dot-active": index2 < state.current + state.displayMultipleItems && index2 >= state.current || index2 < state.current + state.displayMultipleItems - array.length
          },
          "style": {
            background: index2 === state.current ? props2.indicatorActiveColor : props2.indicatorColor
          }
        }, null, 14, ["onClick"]))], 2), createNavigationTsx()], 512)], 512);
      };
    }
  });
  var props$g = {
    itemId: {
      type: String,
      default: ""
    }
  };
  const SwiperItem = /* @__PURE__ */ defineBuiltInComponent({
    name: "SwiperItem",
    props: props$g,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var rootRef = ref(null);
      var context = {
        rootRef,
        getItemId() {
          return props2.itemId;
        },
        getBoundingClientRect() {
          var el = rootRef.value;
          return el.getBoundingClientRect();
        },
        updatePosition(position, vertical) {
          var x = vertical ? "0" : 100 * position + "%";
          var y = vertical ? 100 * position + "%" : "0";
          var rootEl = rootRef.value;
          var value = "translate(".concat(x, ",").concat(y, ") translateZ(0)");
          if (rootEl) {
            rootEl.style.webkitTransform = value;
            rootEl.style.transform = value;
          }
        }
      };
      onMounted(() => {
        var addSwiperContext = inject("addSwiperContext");
        if (addSwiperContext) {
          addSwiperContext(context);
        }
      });
      onUnmounted(() => {
        var removeSwiperContext = inject("removeSwiperContext");
        if (removeSwiperContext) {
          removeSwiperContext(context);
        }
      });
      return () => {
        return createVNode("uni-swiper-item", {
          "ref": rootRef,
          "style": {
            position: "absolute",
            width: "100%",
            height: "100%"
          }
        }, [slots.default && slots.default()], 512);
      };
    }
  });
  var props$f = {
    name: {
      type: String,
      default: ""
    },
    checked: {
      type: [Boolean, String],
      default: false
    },
    type: {
      type: String,
      default: "switch"
    },
    id: {
      type: String,
      default: ""
    },
    disabled: {
      type: [Boolean, String],
      default: false
    },
    color: {
      type: String,
      default: ""
    }
  };
  const Switch = /* @__PURE__ */ defineBuiltInComponent({
    name: "Switch",
    props: props$f,
    emits: ["change"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var switchChecked = ref(props2.checked);
      var uniLabel = useSwitchInject(props2, switchChecked);
      var trigger2 = useCustomEvent(rootRef, emit2);
      watch(() => props2.checked, (val) => {
        switchChecked.value = val;
      });
      var _onClick = ($event) => {
        if (props2.disabled) {
          return;
        }
        switchChecked.value = !switchChecked.value;
        trigger2("change", $event, {
          value: switchChecked.value
        });
      };
      if (!!uniLabel) {
        uniLabel.addHandler(_onClick);
        onBeforeUnmount(() => {
          uniLabel.removeHandler(_onClick);
        });
      }
      useListeners$1(props2, {
        "label-click": _onClick
      });
      return () => {
        var {
          color,
          type
        } = props2;
        var booleanAttrs = useBooleanAttr(props2, "disabled");
        var switchInputStyle = {};
        if (color && switchChecked.value) {
          switchInputStyle["backgroundColor"] = color;
          switchInputStyle["borderColor"] = color;
        }
        var realCheckValue;
        realCheckValue = switchChecked.value;
        return createVNode("uni-switch", mergeProps({
          "id": props2.id,
          "ref": rootRef
        }, booleanAttrs, {
          "onClick": _onClick
        }), [createVNode("div", {
          "class": "uni-switch-wrapper"
        }, [withDirectives(createVNode("div", {
          "class": ["uni-switch-input", [switchChecked.value ? "uni-switch-input-checked" : ""]],
          "style": switchInputStyle
        }, null, 6), [[vShow, type === "switch"]]), withDirectives(createVNode("div", {
          "class": "uni-checkbox-input"
        }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.color, 22) : ""], 512), [[vShow, type === "checkbox"]])])], 16, ["id", "onClick"]);
      };
    }
  });
  function useSwitchInject(props2, switchChecked) {
    var uniForm = inject(uniFormKey, false);
    var uniLabel = inject(uniLabelKey, false);
    var formField = {
      submit: () => {
        var data = ["", null];
        if (props2.name) {
          data[0] = props2.name;
          data[1] = switchChecked.value;
        }
        return data;
      },
      reset: () => {
        switchChecked.value = false;
      }
    };
    if (!!uniForm) {
      uniForm.addField(formField);
      onUnmounted(() => {
        uniForm.removeField(formField);
      });
    }
    return uniLabel;
  }
  var SPACE_UNICODE = {
    ensp: " ",
    emsp: " ",
    nbsp: " "
  };
  function normalizeText(text2, _ref) {
    var {
      space,
      decode
    } = _ref;
    var result = "";
    var isEscape = false;
    for (var char of text2) {
      if (space && SPACE_UNICODE[space] && char === " ") {
        char = SPACE_UNICODE[space];
      }
      if (isEscape) {
        if (char === "n") {
          result += LINEFEED;
        } else if (char === "\\") {
          result += "\\";
        } else {
          result += "\\" + char;
        }
        isEscape = false;
      } else {
        if (char === "\\") {
          isEscape = true;
        } else {
          result += char;
        }
      }
    }
    if (!decode) {
      return result;
    }
    return result.replace(/&nbsp;/g, SPACE_UNICODE.nbsp).replace(/&ensp;/g, SPACE_UNICODE.ensp).replace(/&emsp;/g, SPACE_UNICODE.emsp).replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&").replace(/&quot;/g, '"').replace(/&apos;/g, "'");
  }
  function parseText(text2, options) {
    return normalizeText(text2, options).split(LINEFEED);
  }
  function asyncGeneratorStep(n, t2, e2, r, o2, a2, c2) {
    try {
      var i2 = n[a2](c2), u = i2.value;
    } catch (n2) {
      return void e2(n2);
    }
    i2.done ? t2(u) : Promise.resolve(u).then(r, o2);
  }
  function _asyncToGenerator(n) {
    return function() {
      var t2 = this, e2 = arguments;
      return new Promise(function(r, o2) {
        var a2 = n.apply(t2, e2);
        function _next(n2) {
          asyncGeneratorStep(a2, r, o2, _next, _throw, "next", n2);
        }
        function _throw(n2) {
          asyncGeneratorStep(a2, r, o2, _next, _throw, "throw", n2);
        }
        _next(void 0);
      });
    };
  }
  function _defineProperty(e2, r, t2) {
    return (r = _toPropertyKey(r)) in e2 ? Object.defineProperty(e2, r, {
      value: t2,
      enumerable: true,
      configurable: true,
      writable: true
    }) : e2[r] = t2, e2;
  }
  function ownKeys(e2, r) {
    var t2 = Object.keys(e2);
    if (Object.getOwnPropertySymbols) {
      var o2 = Object.getOwnPropertySymbols(e2);
      r && (o2 = o2.filter(function(r2) {
        return Object.getOwnPropertyDescriptor(e2, r2).enumerable;
      })), t2.push.apply(t2, o2);
    }
    return t2;
  }
  function _objectSpread2(e2) {
    for (var r = 1; r < arguments.length; r++) {
      var t2 = null != arguments[r] ? arguments[r] : {};
      r % 2 ? ownKeys(Object(t2), true).forEach(function(r2) {
        _defineProperty(e2, r2, t2[r2]);
      }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(t2)) : ownKeys(Object(t2)).forEach(function(r2) {
        Object.defineProperty(e2, r2, Object.getOwnPropertyDescriptor(t2, r2));
      });
    }
    return e2;
  }
  function _toPrimitive(t2, r) {
    if ("object" != typeof t2 || !t2)
      return t2;
    var e2 = t2[Symbol.toPrimitive];
    if (void 0 !== e2) {
      var i2 = e2.call(t2, r || "default");
      if ("object" != typeof i2)
        return i2;
      throw new TypeError("@@toPrimitive must return a primitive value.");
    }
    return ("string" === r ? String : Number)(t2);
  }
  function _toPropertyKey(t2) {
    var i2 = _toPrimitive(t2, "string");
    return "symbol" == typeof i2 ? i2 : i2 + "";
  }
  var props$e = /* @__PURE__ */ extend({}, props$o, {
    placeholderClass: {
      type: String,
      default: "input-placeholder"
    },
    autoHeight: {
      type: [Boolean, String],
      default: false
    },
    confirmType: {
      type: String,
      default: "return",
      validator(val) {
        return ConfirmTypes.concat("return").includes(val);
      }
    }
  });
  var fixMargin = false;
  var ConfirmTypes = ["done", "go", "next", "search", "send"];
  function setFixMargin() {
    var DARK_TEST_STRING = "(prefers-color-scheme: dark)";
    fixMargin = String(navigator.platform).indexOf("iP") === 0 && String(navigator.vendor).indexOf("Apple") === 0 && window.matchMedia(DARK_TEST_STRING).media !== DARK_TEST_STRING;
  }
  const Textarea = /* @__PURE__ */ defineBuiltInComponent({
    name: "Textarea",
    props: props$e,
    emits: ["confirm", "linechange", ...emit],
    setup(props2, _ref) {
      var {
        emit: emit2,
        expose
      } = _ref;
      var rootRef = ref(null);
      var wrapperRef = ref(null);
      var {
        fieldRef,
        state,
        scopedAttrsState,
        fixDisabledColor,
        trigger: trigger2
      } = useField(props2, rootRef, emit2);
      var valueCompute = computed(() => state.value.split(LINEFEED));
      var isDone = computed(() => ConfirmTypes.includes(props2.confirmType));
      var heightRef = ref(0);
      var lineRef = ref(null);
      watch(() => heightRef.value, (height) => {
        var el = rootRef.value;
        var lineEl = lineRef.value;
        var wrapper2 = wrapperRef.value;
        var lineHeight = parseFloat(getComputedStyle(el).lineHeight);
        if (isNaN(lineHeight)) {
          lineHeight = lineEl.offsetHeight;
        }
        var lineCount = Math.round(height / lineHeight);
        trigger2("linechange", {}, {
          height,
          heightRpx: 750 / window.innerWidth * height,
          lineCount
        });
        if (props2.autoHeight) {
          el.style.height = "auto";
          wrapper2.style.height = height + "px";
        }
      });
      function onResize(_ref2) {
        var {
          height
        } = _ref2;
        heightRef.value = height;
      }
      function confirm(event) {
        trigger2("confirm", event, {
          value: state.value
        });
      }
      function onKeyDownEnter(event) {
        if (event.key !== "Enter") {
          return;
        }
        if (isDone.value) {
          event.preventDefault();
        }
      }
      function onKeyUpEnter(event) {
        if (event.key !== "Enter") {
          return;
        }
        if (isDone.value) {
          confirm(event);
          var textarea = event.target;
          !props2.confirmHold && textarea.blur();
        }
      }
      {
        setFixMargin();
      }
      expose({
        $triggerInput: (detail) => {
          emit2("update:modelValue", detail.value);
          emit2("update:value", detail.value);
          state.value = detail.value;
        }
      });
      return () => {
        var textareaNode = props2.disabled && fixDisabledColor ? createVNode("textarea", {
          "key": "disabled-textarea",
          "ref": fieldRef,
          "value": state.value,
          "tabindex": "-1",
          "readonly": !!props2.disabled,
          "maxlength": state.maxlength,
          "class": {
            "uni-textarea-textarea": true,
            "uni-textarea-textarea-fix-margin": fixMargin
          },
          "style": _objectSpread2({
            overflowY: props2.autoHeight ? "hidden" : "auto"
          }, props2.cursorColor && {
            caretColor: props2.cursorColor
          }),
          "onFocus": (event) => event.target.blur()
        }, null, 46, ["value", "readonly", "maxlength", "onFocus"]) : createVNode("textarea", {
          "key": "textarea",
          "ref": fieldRef,
          "value": state.value,
          "disabled": !!props2.disabled,
          "maxlength": state.maxlength,
          "enterkeyhint": props2.confirmType,
          "inputmode": props2.inputmode,
          "class": {
            "uni-textarea-textarea": true,
            "uni-textarea-textarea-fix-margin": fixMargin
          },
          "style": _objectSpread2({
            overflowY: props2.autoHeight ? "hidden" : "auto"
          }, props2.cursorColor && {
            caretColor: props2.cursorColor
          }),
          "onKeydown": onKeyDownEnter,
          "onKeyup": onKeyUpEnter
        }, null, 46, ["value", "disabled", "maxlength", "enterkeyhint", "inputmode", "onKeydown", "onKeyup"]);
        return createVNode("uni-textarea", {
          "ref": rootRef
        }, [createVNode("div", {
          "ref": wrapperRef,
          "class": "uni-textarea-wrapper"
        }, [withDirectives(createVNode("div", mergeProps(scopedAttrsState.attrs, {
          "style": props2.placeholderStyle,
          "class": ["uni-textarea-placeholder", props2.placeholderClass]
        }), [props2.placeholder], 16), [[vShow, !state.value.length]]), createVNode("div", {
          "ref": lineRef,
          "class": "uni-textarea-line"
        }, [" "], 512), createVNode("div", {
          "class": "uni-textarea-compute"
        }, [valueCompute.value.map((item) => createVNode("div", null, [item.trim() ? item : "."])), createVNode(ResizeSensor, {
          "initial": true,
          "onResize": onResize
        }, null, 8, ["initial", "onResize"])]), props2.confirmType === "search" ? createVNode("form", {
          "action": "",
          "onSubmit": () => false,
          "class": "uni-input-form"
        }, [textareaNode], 40, ["onSubmit"]) : textareaNode], 512)], 512);
      };
    }
  });
  function normalizeEvent(vm, id2) {
    if (!id2) {
      id2 = vm.id;
    }
    if (!id2) {
      return;
    }
    return vm.$options.name.toLowerCase() + "." + id2;
  }
  function addSubscribe(name, callback, pageId) {
    if (!name) {
      return;
    }
    registerViewMethod(getCurrentPageId(), name, (_ref, resolve) => {
      var {
        type,
        data
      } = _ref;
      callback(type, data, resolve);
    });
  }
  function removeSubscribe(name, pageId) {
    if (!name) {
      return;
    }
    unregisterViewMethod(getCurrentPageId(), name);
  }
  function useSubscribe(callback, name, multiple, pageId) {
    var instance = getCurrentInstance();
    var vm = instance.proxy;
    onMounted(() => {
      addSubscribe(name || normalizeEvent(vm), callback);
      {
        watch(() => vm.id, (value, oldValue) => {
          addSubscribe(normalizeEvent(vm, value), callback);
          removeSubscribe(oldValue && normalizeEvent(vm, oldValue));
        });
      }
    });
    onBeforeUnmount(() => {
      removeSubscribe(name || normalizeEvent(vm));
    });
  }
  var index$2 = 0;
  function useContextInfo(_id) {
    var page = useCurrentPageId();
    var instance = getCurrentInstance();
    var vm = instance.proxy;
    var type = vm.$options.name.toLowerCase();
    var id2 = _id || vm.id || "context".concat(index$2++);
    onMounted(() => {
      var el = vm.$el;
      el.__uniContextInfo = {
        id: id2,
        type,
        page
      };
    });
    return "".concat(type, ".").concat(id2);
  }
  function getContextInfo(el) {
    return el.__uniContextInfo;
  }
  class UniTextNode extends UniNode {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "#text", parentNodeId, document.createTextNode(""));
      this._text = "";
      this.init(nodeJson);
      this.insert(parentNodeId, refNodeId);
    }
    init(nodeJson) {
      var isCreate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
      this._text = nodeJson.t || "";
      if (isCreate) {
        this.update();
      }
    }
    setText(text2) {
      this._text = text2;
      this.update();
      this.updateView();
    }
    update() {
      var {
        space,
        decode
      } = this.$parent && this.$parent.$props || {};
      this.$.textContent = parseText(this._text, {
        space,
        decode
      }).join(LINEFEED);
    }
  }
  class UniComment extends UniNode {
    constructor(id2, parentNodeId, refNodeId) {
      super(id2, "#comment", parentNodeId, document.createComment(""));
      this.insert(parentNodeId, refNodeId);
    }
  }
  class UniAnimationElement extends UniElement {
    constructor(id2, element, parentNodeId, refNodeId, nodeJson) {
      var propNames = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : [];
      super(id2, element, parentNodeId, refNodeId, nodeJson, [...animation.props, ...propNames]);
    }
    call(fn) {
      var context = {
        animation: this.$props.animation,
        $el: this.$
      };
      fn.call(context);
    }
    setAttribute(name, value) {
      if (name === "animation") {
        this.$animate = true;
      }
      return super.setAttribute(name, value);
    }
    update() {
      var isMounted = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      if (!this.$animate) {
        return;
      }
      if (isMounted) {
        return this.call(animation.mounted);
      }
      if (this.$animate) {
        this.$animate = false;
        this.call(animation.watch.animation.handler);
      }
    }
  }
  var PROP_NAMES_HOVER$1 = ["hover-class", "hover-stop-propagation", "hover-start-time", "hover-stay-time"];
  class UniHoverElement extends UniAnimationElement {
    constructor(id2, element, parentNodeId, refNodeId, nodeJson) {
      var propNames = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : [];
      super(id2, element, parentNodeId, refNodeId, nodeJson, [...PROP_NAMES_HOVER$1, ...propNames]);
    }
    update() {
      var isMounted = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      var hoverClass = this.$props["hover-class"];
      if (hoverClass && hoverClass !== "none") {
        if (!this._hover) {
          this._hover = new Hover(this.$, this.$props);
        }
        this._hover.addEvent();
      } else {
        if (this._hover) {
          this._hover.removeEvent();
        }
      }
      super.update(isMounted);
    }
  }
  class Hover {
    constructor($2, props2) {
      this._listening = false;
      this._hovering = false;
      this._hoverTouch = false;
      this.$ = $2;
      this.props = props2;
      this.__hoverTouchStart = this._hoverTouchStart.bind(this);
      this.__hoverTouchEnd = this._hoverTouchEnd.bind(this);
      this.__hoverTouchCancel = this._hoverTouchCancel.bind(this);
    }
    get hovering() {
      return this._hovering;
    }
    set hovering(hovering) {
      this._hovering = hovering;
      var hoverClass = this.props["hover-class"].split(" ").filter(Boolean);
      var ClassList = this.$.classList;
      if (hovering) {
        this.$.classList.add.apply(ClassList, hoverClass);
      } else {
        this.$.classList.remove.apply(ClassList, hoverClass);
      }
    }
    addEvent() {
      if (this._listening) {
        return;
      }
      this._listening = true;
      this.$.addEventListener("touchstart", this.__hoverTouchStart);
      this.$.addEventListener("touchend", this.__hoverTouchEnd);
      this.$.addEventListener("touchcancel", this.__hoverTouchCancel);
    }
    removeEvent() {
      if (!this._listening) {
        return;
      }
      this._listening = false;
      this.$.removeEventListener("touchstart", this.__hoverTouchStart);
      this.$.removeEventListener("touchend", this.__hoverTouchEnd);
      this.$.removeEventListener("touchcancel", this.__hoverTouchCancel);
    }
    _hoverTouchStart(evt) {
      if (evt._hoverPropagationStopped) {
        return;
      }
      var hoverClass = this.props["hover-class"];
      if (!hoverClass || hoverClass === "none" || this.$.disabled) {
        return;
      }
      if (evt.touches.length > 1) {
        return;
      }
      if (this.props["hover-stop-propagation"]) {
        evt._hoverPropagationStopped = true;
      }
      this._hoverTouch = true;
      this._hoverStartTimer = setTimeout(() => {
        this.hovering = true;
        if (!this._hoverTouch) {
          this._hoverReset();
        }
      }, this.props["hover-start-time"]);
    }
    _hoverTouchEnd() {
      this._hoverTouch = false;
      if (this.hovering) {
        this._hoverReset();
      }
    }
    _hoverReset() {
      requestAnimationFrame(() => {
        clearTimeout(this._hoverStayTimer);
        this._hoverStayTimer = setTimeout(() => {
          this.hovering = false;
        }, this.props["hover-stay-time"]);
      });
    }
    _hoverTouchCancel() {
      this._hoverTouch = false;
      this.hovering = false;
      clearTimeout(this._hoverStartTimer);
    }
  }
  class UniViewElement extends UniHoverElement {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, document.createElement("uni-view"), parentNodeId, refNodeId, nodeJson);
    }
  }
  function createWrapper(component, props2) {
    return () => h(component, props2);
  }
  class UniComponent extends UniNode {
    constructor(id2, tag, component, parentNodeId, refNodeId, nodeJson, selector) {
      super(id2, tag, parentNodeId);
      var container = document.createElement("div");
      container.__vueParent = getVueParent(this);
      this.$props = reactive({});
      this.init(nodeJson);
      this.$app = createApp(createWrapper(component, this.$props));
      this.$app.mount(container);
      this.$ = container.firstElementChild;
      this.$.__id = id2;
      if (selector) {
        this.$holder = this.$.querySelector(selector);
      }
      if (hasOwn$1(nodeJson, "t")) {
        this.setText(nodeJson.t || "");
      }
      if (nodeJson.a && hasOwn$1(nodeJson.a, ATTR_V_SHOW)) {
        patchVShow(this.$, nodeJson.a[ATTR_V_SHOW]);
      }
      this.insert(parentNodeId, refNodeId);
      flushPostFlushCbs();
    }
    init(nodeJson) {
      var {
        a: a2,
        e: e2,
        w
      } = nodeJson;
      if (a2) {
        this.setWxsProps(a2);
        Object.keys(a2).forEach((n) => {
          this.setAttr(n, a2[n]);
        });
      }
      if (hasOwn$1(nodeJson, "s")) {
        this.setAttr("style", nodeJson.s);
      }
      if (e2) {
        Object.keys(e2).forEach((n) => {
          this.addEvent(n, e2[n]);
        });
      }
      if (w) {
        this.addWxsEvents(nodeJson.w);
      }
    }
    setText(text2) {
      (this.$holder || this.$).textContent = text2;
      this.updateView();
    }
    addWxsEvent(name, wxsEvent, flag) {
      this.$props[name] = createWxsEventInvoker(this, wxsEvent, flag);
    }
    addEvent(name, value) {
      this.$props[name] = createInvoker(this.id, value, parseEventName(name)[1]);
    }
    removeEvent(name) {
      this.$props[name] = null;
    }
    setAttr(name, value) {
      if (name === ATTR_V_SHOW) {
        if (this.$) {
          patchVShow(this.$, value);
        }
      } else if (name === ATTR_V_OWNER_ID) {
        this.$.__ownerId = value;
      } else if (name === ATTR_V_RENDERJS) {
        queuePostActionJob(() => initRenderjs(this, value), JOB_PRIORITY_RENDERJS);
      } else if (name === ATTR_STYLE) {
        var newStyle = decodeAttr(value, this.$ || $(this.pid).$);
        var oldStyle = this.$props.style;
        if (isPlainObject(newStyle) && isPlainObject(oldStyle)) {
          Object.keys(newStyle).forEach((n) => {
            oldStyle[n] = newStyle[n];
          });
        } else {
          this.$props.style = newStyle;
        }
      } else if (isCssVar(name)) {
        this.$.style.setProperty(name, normalizeStyleValue$1(value));
      } else {
        value = decodeAttr(value, this.$ || $(this.pid).$);
        if (!this.wxsPropsInvoke(name, value, true)) {
          this.$props[name] = value;
        }
      }
      this.updateView();
    }
    removeAttr(name) {
      if (isCssVar(name)) {
        this.$.style.removeProperty(name);
      } else {
        this.$props[name] = null;
      }
      this.updateView();
    }
    remove() {
      this.removeUniParent();
      this.isUnmounted = true;
      this.$app.unmount();
      removeElement(this.id);
      this.removeUniChildren();
      flushPostFlushCbs();
      this.updateView();
    }
    appendChild(node) {
      var res = (this.$holder || this.$).appendChild(node);
      this.updateView(true);
      return res;
    }
    insertBefore(newChild, refChild) {
      var res = (this.$holder || this.$).insertBefore(newChild, refChild);
      this.updateView(true);
      return res;
    }
  }
  class UniContainerComponent extends UniComponent {
    constructor(id2, tag, component, parentNodeId, refNodeId, nodeJson, selector) {
      super(id2, tag, component, parentNodeId, refNodeId, nodeJson, selector);
    }
    getRebuildFn() {
      if (!this._rebuild) {
        this._rebuild = this.rebuild.bind(this);
      }
      return this._rebuild;
    }
    setText(text2) {
      queuePostActionJob(this.getRebuildFn(), JOB_PRIORITY_REBUILD);
      return super.setText(text2);
    }
    appendChild(node) {
      queuePostActionJob(this.getRebuildFn(), JOB_PRIORITY_REBUILD);
      return super.appendChild(node);
    }
    insertBefore(newChild, refChild) {
      queuePostActionJob(this.getRebuildFn(), JOB_PRIORITY_REBUILD);
      return super.insertBefore(newChild, refChild);
    }
    removeUniChild(node) {
      queuePostActionJob(this.getRebuildFn(), JOB_PRIORITY_REBUILD);
      return super.removeUniChild(node);
    }
    rebuild() {
      var vm = this.$.__vueParentComponent;
      if (vm.rebuild) {
        vm.rebuild();
      }
    }
  }
  function getVueParent(node) {
    while (node && node.pid > 0) {
      node = $(node.pid);
      if (node) {
        var {
          __vueParentComponent
        } = node.$;
        if (__vueParentComponent) {
          return __vueParentComponent;
        }
      }
    }
    return null;
  }
  function setHolderText(holder, clazz, text2) {
    holder.childNodes.forEach((childNode) => {
      if (childNode instanceof Element) {
        if (childNode.className.indexOf(clazz) === -1) {
          holder.removeChild(childNode);
        }
      } else {
        holder.removeChild(childNode);
      }
    });
    holder.appendChild(document.createTextNode(text2));
  }
  var vModelNames = ["value", "modelValue"];
  function initVModel(props2) {
    vModelNames.forEach((name) => {
      if (hasOwn$1(props2, name)) {
        var event = "onUpdate:" + name;
        if (!hasOwn$1(props2, event)) {
          props2[event] = (v2) => props2[name] = v2;
        }
      }
    });
  }
  class UniButton extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-button", Button, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniImage extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-image", Image$1, parentNodeId, refNodeId, nodeJson);
    }
  }
  var PROP_NAMES_HOVER = ["space", "decode"];
  class UniTextElement extends UniAnimationElement {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, document.createElement("uni-text"), parentNodeId, refNodeId, nodeJson, PROP_NAMES_HOVER);
      this._text = "";
    }
    init(nodeJson) {
      this._text = nodeJson.t || "";
      super.init(nodeJson);
    }
    setText(text2) {
      this._text = text2;
      this.update();
      this.updateView();
    }
    update() {
      var isMounted = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
      var {
        $props: {
          space,
          decode
        }
      } = this;
      this.$.textContent = parseText(this._text, {
        space,
        decode
      }).join(LINEFEED);
      super.update(isMounted);
    }
  }
  class UniNavigator extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-navigator", Navigator, parentNodeId, refNodeId, nodeJson, "uni-navigator");
    }
  }
  class UniRichText extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-rich-text", RichText, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniProgress extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-progress", Progress, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniLabel extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-label", Label, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniCheckboxGroup extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-checkbox-group", CheckboxGroup, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniCheckbox extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-checkbox", Checkbox, parentNodeId, refNodeId, nodeJson, ".uni-checkbox-wrapper");
    }
    setText(text2) {
      setHolderText(this.$holder, "uni-checkbox-input", text2);
    }
  }
  class UniRadio extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-radio", Radio, parentNodeId, refNodeId, nodeJson, ".uni-radio-wrapper");
    }
    setText(text2) {
      setHolderText(this.$holder, "uni-radio-input", text2);
    }
  }
  class UniRadioGroup extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-radio-group", RadioGroup, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniSlider extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-slider", Slider, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniSwitch extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-switch", Switch, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniInput extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-input", Input, parentNodeId, refNodeId, nodeJson);
    }
    init(nodeJson) {
      super.init(nodeJson);
      initVModel(this.$props);
    }
  }
  class UniTextarea extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-textarea", Textarea, parentNodeId, refNodeId, nodeJson);
    }
    init(nodeJson) {
      super.init(nodeJson);
      initVModel(this.$props);
    }
  }
  class UniForm extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-form", Form, parentNodeId, refNodeId, nodeJson, "span");
    }
  }
  class UniEditor extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-editor", Editor, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniPickerView extends UniContainerComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-picker-view", PickerView, parentNodeId, refNodeId, nodeJson, ".uni-picker-view-wrapper");
    }
  }
  class UniPickerViewColumn extends UniContainerComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-picker-view-column", PickerViewColumn, parentNodeId, refNodeId, nodeJson, ".uni-picker-view-content");
    }
  }
  class UniScrollView extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-scroll-view", ScrollView, parentNodeId, refNodeId, nodeJson, ".uni-scroll-view-content");
    }
    setText(text2) {
      setHolderText(this.$holder, "uni-scroll-view-refresher", text2);
    }
  }
  class UniSwiper extends UniContainerComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-swiper", Swiper, parentNodeId, refNodeId, nodeJson, ".uni-swiper-slide-frame");
    }
  }
  class UniSwiperItem extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-swiper-item", SwiperItem, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniMovableArea extends UniContainerComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-movable-area", MovableArea, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniMovableView extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-movable-view", MovableView, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniIcon extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-icon", Icon, parentNodeId, refNodeId, nodeJson);
    }
  }
  const plus$1 = {
    webview: {
      currentWebview() {
        return extend({
          getStyle: () => {
            return extend({}, invokeHarmonyChannel("getStyle"));
          },
          setSoftinputTemporary(options) {
            invokeHarmonyChannel("setSoftinputTemporary", [options]);
          }
        }, invokeHarmonyChannel("currentWebview"));
      },
      postMessageToUniNView(data, id2) {
        invokeHarmonyChannel("postMessageToUniNView", [data, id2]);
      }
    },
    io: {
      convertLocalFileSystemURL(filepath) {
        return invokeHarmonyChannel("convertLocalFileSystemURL", [filepath]);
      }
    },
    key: {
      hideSoftKeybord() {
        invokeHarmonyChannel("hideSoftKeybord");
      },
      showSoftKeybord() {
        invokeHarmonyChannel("showSoftKeybord");
      }
    }
  };
  var props$d = {
    tag: {
      type: String,
      default: ""
    },
    options: {
      type: Object,
      default() {
        return {};
      }
    },
    methods: {
      type: Array,
      default() {
        return [];
      }
    }
  };
  var index$1 = 0;
  const Embed = /* @__PURE__ */ defineBuiltInComponent({
    props: props$d,
    setup(props2, _ref) {
      var {
        expose,
        attrs: attrs2
      } = _ref;
      var elId = String(index$1++);
      var elRef = ref(null);
      var visibility = ref(0);
      var intersectionObserver = new IntersectionObserver((entries2) => {
        visibility.value = entries2[0].intersectionRatio > 0 ? 0 : 2;
      });
      onMounted(() => {
        intersectionObserver.observe(elRef.value);
      });
      onBeforeUnmount(() => {
        intersectionObserver.disconnect();
      });
      var src = computed(() => {
        var on = [];
        var options = Object.assign({}, props2.options, {
          on,
          visibility: visibility.value
        });
        Object.keys(attrs2).forEach((key2) => {
          if (/^on[A-Z]/.test(key2)) {
            on.push(key2.slice(2).toLowerCase());
          }
        });
        return "".concat(elId, "#").concat(encodeURIComponent(JSON.stringify(options)));
      });
      var srcValue = src.value;
      watch(src, (srcValue2) => {
        invokeHarmonyChannel("onNativeEmbedLifecycleChange", [srcValue2]);
      });
      var exposed = {
        elId
      };
      props2.methods.forEach((method) => {
        exposed[method] = function() {
          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
            args[_key] = arguments[_key];
          }
          invokeHarmonyChannel("invokeNativeEmbed", [elId, method, args]);
        };
      });
      expose(exposed);
      return () => createVNode("embed", mergeProps({
        "ref": elRef,
        "el-id": elId,
        "type": "native/".concat(props2.tag),
        "src": srcValue
      }, attrs2), null, 16, ["el-id", "src"]);
    }
  });
  function useMethods(embedRef) {
    var MethodList = ["evalJS", "back", "forward", "reload", "stop"];
    var methods = {};
    var _loop = function(i3) {
      var methodName = MethodList[i3];
      methods[methodName] = function(data, resolve) {
        var embed = embedRef.value;
        if (methodName === "evalJS") {
          return resolve(embed["runJavaScript"]((data || {}).jsCode || ""));
        } else {
          resolve(embed[methodName]());
        }
      };
    };
    for (var i2 = 0; i2 < MethodList.length; i2++) {
      _loop(i2);
    }
    function _handleSubscribe(type, data, resolve) {
      var method = methods[type];
      if (type.indexOf("_") !== 0 && isFunction(method)) {
        method(data, resolve);
      }
    }
    return extend(methods, {
      _handleSubscribe
    });
  }
  var props$c = {
    id: {
      type: String,
      default: ""
    },
    src: {
      type: String,
      default: ""
    },
    updateTitle: {
      type: Boolean,
      default: true
    },
    fullscreen: {
      type: Boolean,
      default: true
    },
    webviewStyles: {
      type: Object,
      default() {
        return {};
      }
    }
  };
  const WebView = /* @__PURE__ */ defineBuiltInComponent({
    name: "WebView",
    props: props$c,
    setup(props2) {
      var embedRef = ref(null);
      var pageId = getCurrentPageId();
      var {
        _handleSubscribe
      } = useMethods(embedRef);
      useSubscribe(_handleSubscribe, useContextInfo(props2.id));
      onMounted(() => {
        UniViewJSBridge.publishHandler(WEBVIEW_INSERTED, {}, pageId);
      });
      onBeforeUnmount(() => {
        UniViewJSBridge.publishHandler(WEBVIEW_REMOVED, {}, pageId);
      });
      return () => createVNode("uni-web-view", {
        "id": props2.id,
        "class": props2.fullscreen ? "uni-webview--fullscreen" : ""
      }, [createVNode(Embed, {
        "ref": embedRef,
        "tag": "webview",
        "options": {
          src: getRealPath(props2.src),
          updateTitle: props2.updateTitle,
          webviewStyles: props2.webviewStyles
        },
        "methods": ["runJavaScript", "back", "forward", "reload", "stop"],
        "style": "width:100%;height:100%"
      }, null, 8, ["options"])], 10, ["id"]);
    }
  });
  class UniWebView extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-web-view", WebView, parentNodeId, refNodeId, nodeJson);
    }
  }
  class UniCanvas extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-canvas", Canvas, parentNodeId, refNodeId, nodeJson, "uni-canvas > div");
    }
  }
  function formatTime(val) {
    val = val > 0 && val < Infinity ? val : 0;
    var h2 = Math.floor(val / 3600);
    var m = Math.floor(val % 3600 / 60);
    var s = Math.floor(val % 3600 % 60);
    var hStr = (h2 < 10 ? "0" : "") + h2;
    var mStr = (m < 10 ? "0" : "") + m;
    var sStr = (s < 10 ? "0" : "") + s;
    var str = mStr + ":" + sStr;
    if (hStr !== "00") {
      str = hStr + ":" + str;
    }
    return str;
  }
  function useGesture(props2, videoRef, fullscreenState) {
    var state = reactive({
      gestureType: "none",
      volumeOld: 0,
      volumeNew: 0,
      currentTimeOld: 0,
      currentTimeNew: 0
    });
    var touchStartOrigin = {
      x: 0,
      y: 0
    };
    function onTouchstart(event) {
      var toucher = event.targetTouches[0];
      touchStartOrigin.x = toucher.pageX;
      touchStartOrigin.y = toucher.pageY;
      state.gestureType = "none";
      state.volumeOld = 0;
      state.currentTimeOld = state.currentTimeNew = 0;
    }
    function onTouchmove(event) {
      function stop() {
        event.stopPropagation();
        event.preventDefault();
      }
      if (fullscreenState.fullscreen) {
        stop();
      }
      var gestureType = state.gestureType;
      if (gestureType === "stop") {
        return;
      }
      var toucher = event.targetTouches[0];
      var pageX = toucher.pageX;
      var pageY = toucher.pageY;
      var origin = touchStartOrigin;
      var video = videoRef.value;
      if (gestureType === "progress") {
        changeProgress(pageX - origin.x);
      } else if (gestureType === "volume") {
        changeVolume(pageY - origin.y);
      }
      if (gestureType !== "none") {
        return;
      }
      if (Math.abs(pageX - origin.x) > Math.abs(pageY - origin.y)) {
        if (!props2.enableProgressGesture) {
          state.gestureType = "stop";
          return;
        }
        state.gestureType = "progress";
        state.currentTimeOld = state.currentTimeNew = video.currentTime;
        if (!fullscreenState.fullscreen) {
          stop();
        }
      } else {
        if (!props2.pageGesture) {
          state.gestureType = "stop";
          return;
        }
        state.gestureType = "volume";
        state.volumeOld = video.volume;
        if (!fullscreenState.fullscreen) {
          stop();
        }
      }
    }
    function onTouchend(event) {
      var video = videoRef.value;
      if (state.gestureType !== "none" && state.gestureType !== "stop") {
        event.stopPropagation();
        event.preventDefault();
      }
      if (state.gestureType === "progress" && state.currentTimeOld !== state.currentTimeNew) {
        video.currentTime = state.currentTimeNew;
      }
      state.gestureType = "none";
    }
    function changeProgress(x) {
      var video = videoRef.value;
      var duration = video.duration;
      var currentTimeNew = x / 600 * duration + state.currentTimeOld;
      if (currentTimeNew < 0) {
        currentTimeNew = 0;
      } else if (currentTimeNew > duration) {
        currentTimeNew = duration;
      }
      state.currentTimeNew = currentTimeNew;
    }
    function changeVolume(y) {
      var video = videoRef.value;
      var valueOld = state.volumeOld;
      var value;
      if (typeof valueOld === "number") {
        value = valueOld - y / 200;
        if (value < 0) {
          value = 0;
        } else if (value > 1) {
          value = 1;
        }
        video.volume = value;
        state.volumeNew = value;
      }
    }
    return {
      state,
      onTouchstart,
      onTouchmove,
      onTouchend
    };
  }
  function useFullscreen(trigger2, containerRef, videoRef, userActionState, rootRef) {
    var state = reactive({
      fullscreen: false
    });
    var isSafari = /^Apple/.test(navigator.vendor);
    function onFullscreenChange($event, webkit) {
      if (webkit && document.fullscreenEnabled) {
        return;
      }
      emitFullscreenChange(!!(document.fullscreenElement || document.webkitFullscreenElement));
    }
    function emitFullscreenChange(val) {
      state.fullscreen = val;
      trigger2("fullscreenchange", {}, {
        fullScreen: val,
        direction: "vertical"
      });
    }
    function toggleFullscreen(val) {
      var root = rootRef.value;
      var container = containerRef.value;
      var video = videoRef.value;
      var mockFullScreen;
      if (val) {
        if ((document.fullscreenEnabled || document.webkitFullscreenEnabled) && (!isSafari || userActionState.userAction)) {
          container[document.fullscreenEnabled ? "requestFullscreen" : "webkitRequestFullscreen"]();
        } else if (video.webkitEnterFullScreen) {
          video.webkitEnterFullScreen();
        } else {
          mockFullScreen = true;
          container.remove();
          container.classList.add("uni-video-type-fullscreen");
          document.body.appendChild(container);
        }
      } else {
        if (document.fullscreenEnabled || document.webkitFullscreenEnabled) {
          if (document.fullscreenElement) {
            document.exitFullscreen();
          } else if (document.webkitFullscreenElement) {
            document.webkitExitFullscreen();
          }
        } else if (video.webkitExitFullScreen) {
          video.webkitExitFullScreen();
        } else {
          mockFullScreen = true;
          container.remove();
          container.classList.remove("uni-video-type-fullscreen");
          root.appendChild(container);
        }
      }
      if (mockFullScreen) {
        emitFullscreenChange(val);
      }
    }
    function requestFullScreen() {
      toggleFullscreen(true);
    }
    function exitFullScreen() {
      toggleFullscreen(false);
    }
    onBeforeUnmount(exitFullScreen);
    return {
      state,
      onFullscreenChange,
      emitFullscreenChange,
      toggleFullscreen,
      requestFullScreen,
      exitFullScreen
    };
  }
  function useVideo(props2, attrs2, trigger2) {
    var videoRef = ref(null);
    var src = computed(() => getRealPath(props2.src));
    var muted = computed(() => props2.muted === "true" || props2.muted === true);
    var state = reactive({
      start: false,
      src,
      playing: false,
      currentTime: 0,
      duration: 0,
      progress: 0,
      buffered: 0,
      muted
    });
    watch(() => src.value, () => {
      state.playing = false;
      state.currentTime = 0;
    });
    watch(() => state.buffered, (buffered) => {
      trigger2("progress", {}, {
        buffered
      });
    });
    watch(() => muted.value, (muted2) => {
      var video = videoRef.value;
      video.muted = muted2;
    });
    function onDurationChange(_ref) {
      var {
        target
      } = _ref;
      state.duration = target.duration;
    }
    function onLoadedMetadata($event) {
      var initialTime = Number(props2.initialTime) || 0;
      var video = $event.target;
      if (initialTime > 0) {
        video.currentTime = initialTime;
      }
      trigger2("loadedmetadata", $event, {
        width: video.videoWidth,
        height: video.videoHeight,
        duration: video.duration
      });
      onProgress($event);
    }
    function onProgress($event) {
      var video = $event.target;
      var buffered = video.buffered;
      if (buffered.length) {
        state.buffered = buffered.end(buffered.length - 1) / video.duration * 100;
      }
    }
    function onWaiting($event) {
      trigger2("waiting", $event, {});
    }
    function onVideoError($event) {
      state.playing = false;
      trigger2("error", $event, {});
    }
    function onPlay($event) {
      state.start = true;
      state.playing = true;
      trigger2("play", $event, {});
    }
    function onPause($event) {
      state.playing = false;
      trigger2("pause", $event, {});
    }
    function onEnded($event) {
      state.playing = false;
      trigger2("ended", $event, {});
    }
    function onTimeUpdate($event) {
      var video = $event.target;
      var currentTime = state.currentTime = video.currentTime;
      trigger2("timeupdate", $event, {
        currentTime,
        duration: video.duration
      });
    }
    function toggle() {
      var video = videoRef.value;
      if (state.playing) {
        video.pause();
      } else {
        video.play();
      }
    }
    function play() {
      var video = videoRef.value;
      state.start = true;
      video.play();
    }
    function pause() {
      var video = videoRef.value;
      video.pause();
    }
    function seek(position) {
      var video = videoRef.value;
      position = Number(position);
      if (typeof position === "number" && !isNaN(position)) {
        video.currentTime = position;
      }
    }
    function stop() {
      seek(0);
      pause();
    }
    function playbackRate(rate) {
      var video = videoRef.value;
      video.playbackRate = rate;
    }
    return {
      videoRef,
      state,
      play,
      pause,
      stop,
      seek,
      playbackRate,
      toggle,
      onDurationChange,
      onLoadedMetadata,
      onProgress,
      onWaiting,
      onVideoError,
      onPlay,
      onPause,
      onEnded,
      onTimeUpdate
    };
  }
  function useControls(props2, videoState, seek) {
    var progressRef = ref(null);
    var ballRef = ref(null);
    var centerPlayBtnShow = computed(() => props2.showCenterPlayBtn && !videoState.start);
    var controlsVisible = ref(true);
    var controlsShow = computed(() => !centerPlayBtnShow.value && props2.controls && controlsVisible.value);
    var state = reactive({
      touching: false,
      controlsTouching: false,
      centerPlayBtnShow,
      controlsShow,
      controlsVisible
    });
    function clickProgress(event) {
      var $progress = progressRef.value;
      var element = event.target;
      var x = event.offsetX;
      while (element && element !== $progress) {
        x += element.offsetLeft;
        element = element.parentNode;
      }
      var w = $progress.offsetWidth;
      var progress = 0;
      if (x >= 0 && x <= w) {
        progress = x / w;
        seek(videoState.duration * progress);
      }
    }
    function toggleControls() {
      state.controlsVisible = !state.controlsVisible;
    }
    var hideTiming;
    function autoHideStart() {
      hideTiming = setTimeout(() => {
        state.controlsVisible = false;
      }, 3e3);
    }
    function autoHideEnd() {
      if (hideTiming) {
        clearTimeout(hideTiming);
        hideTiming = null;
      }
    }
    onBeforeUnmount(() => {
      if (hideTiming) {
        clearTimeout(hideTiming);
      }
    });
    watch(() => state.controlsShow && videoState.playing && !state.controlsTouching, (val) => {
      if (val) {
        autoHideStart();
      } else {
        autoHideEnd();
      }
    });
    watch([() => videoState.currentTime, () => {
      props2.duration;
    }], function updateProgress() {
      if (!state.touching) {
        videoState.progress = videoState.currentTime / videoState.duration * 100;
      }
    });
    onMounted(() => {
      var passiveOptions2 = passive(false);
      var originX;
      var originY;
      var moveOnce = true;
      var originProgress;
      var ball = ballRef.value;
      function touchmove2(event) {
        var toucher = event.targetTouches[0];
        var pageX = toucher.pageX;
        var pageY = toucher.pageY;
        if (moveOnce && Math.abs(pageX - originX) < Math.abs(pageY - originY)) {
          touchend(event);
          return;
        }
        moveOnce = false;
        var progressEl = progressRef.value;
        var w = progressEl.offsetWidth;
        var progress = originProgress + (pageX - originX) / w * 100;
        if (progress < 0) {
          progress = 0;
        } else if (progress > 100) {
          progress = 100;
        }
        videoState.progress = progress;
        event.preventDefault();
        event.stopPropagation();
      }
      function touchend(event) {
        state.controlsTouching = false;
        if (state.touching) {
          ball.removeEventListener("touchmove", touchmove2, passiveOptions2);
          if (!moveOnce) {
            event.preventDefault();
            event.stopPropagation();
            seek(videoState.duration * videoState.progress / 100);
          }
          state.touching = false;
        }
      }
      ball.addEventListener("touchstart", (event) => {
        state.controlsTouching = true;
        var toucher = event.targetTouches[0];
        originX = toucher.pageX;
        originY = toucher.pageY;
        originProgress = videoState.progress;
        moveOnce = true;
        state.touching = true;
        ball.addEventListener("touchmove", touchmove2, passiveOptions2);
      });
      ball.addEventListener("touchend", touchend);
      ball.addEventListener("touchcancel", touchend);
    });
    return {
      state,
      progressRef,
      ballRef,
      clickProgress,
      toggleControls,
      autoHideStart,
      autoHideEnd
    };
  }
  function useDanmu(props2, videoState) {
    var danmuRef = ref(null);
    var state = reactive({
      enable: Boolean(props2.enableDanmu)
    });
    var danmuIndex = {
      time: 0,
      index: -1
    };
    var danmuList = isArray(props2.danmuList) ? JSON.parse(JSON.stringify(props2.danmuList)) : [];
    danmuList.sort(function(a2, b) {
      return (a2.time || 0) - (b.time || 0);
    });
    function toggleDanmu() {
      state.enable = !state.enable;
    }
    function updateDanmu(event) {
      var video = event.target;
      var currentTime = video.currentTime;
      var oldDanmuIndex = danmuIndex;
      var newDanmuIndex = {
        time: currentTime,
        index: oldDanmuIndex.index
      };
      if (currentTime > oldDanmuIndex.time) {
        for (var index2 = oldDanmuIndex.index + 1; index2 < danmuList.length; index2++) {
          var element = danmuList[index2];
          if (currentTime >= (element.time || 0)) {
            newDanmuIndex.index = index2;
            if (videoState.playing && state.enable) {
              playDanmu(element);
            }
          } else {
            break;
          }
        }
      } else if (currentTime < oldDanmuIndex.time) {
        for (var _index = oldDanmuIndex.index - 1; _index > -1; _index--) {
          var _element = danmuList[_index];
          if (currentTime <= (_element.time || 0)) {
            newDanmuIndex.index = _index - 1;
          } else {
            break;
          }
        }
      }
      danmuIndex = newDanmuIndex;
    }
    function playDanmu(danmu) {
      var p2 = document.createElement("p");
      p2.className = "uni-video-danmu-item";
      p2.innerText = danmu.text;
      var style = "bottom: ".concat(Math.random() * 100, "%;color: ").concat(danmu.color, ";");
      p2.setAttribute("style", style);
      var danmuEl = danmuRef.value;
      danmuEl.appendChild(p2);
      setTimeout(function() {
        style += "left: 0;-webkit-transform: translateX(-100%);transform: translateX(-100%);";
        p2.setAttribute("style", style);
        setTimeout(function() {
          p2.remove();
        }, 4e3);
      }, 17);
    }
    function sendDanmu(danmu) {
      danmuList.splice(danmuIndex.index + 1, 0, {
        text: String(danmu.text),
        color: danmu.color,
        time: videoState.currentTime || 0
      });
    }
    return {
      state,
      danmuRef,
      updateDanmu,
      toggleDanmu,
      sendDanmu
    };
  }
  function useContext(play, pause, stop, seek, sendDanmu, playbackRate, requestFullScreen, exitFullScreen) {
    var methods = {
      play,
      stop,
      pause,
      seek,
      sendDanmu,
      playbackRate,
      requestFullScreen,
      exitFullScreen
    };
    var id2 = useContextInfo();
    useSubscribe((type, data) => {
      var options;
      switch (type) {
        case "seek":
          options = data.position;
          break;
        case "sendDanmu":
          options = data;
          break;
        case "playbackRate":
          options = data.rate;
          break;
      }
      if (type in methods) {
        methods[type](options);
      }
    }, id2);
  }
  var props$b = {
    id: {
      type: String,
      default: ""
    },
    src: {
      type: String,
      default: ""
    },
    duration: {
      type: [Number, String],
      default: ""
    },
    controls: {
      type: [Boolean, String],
      default: true
    },
    danmuList: {
      type: Array,
      default() {
        return [];
      }
    },
    danmuBtn: {
      type: [Boolean, String],
      default: false
    },
    enableDanmu: {
      type: [Boolean, String],
      default: false
    },
    autoplay: {
      type: [Boolean, String],
      default: false
    },
    loop: {
      type: [Boolean, String],
      default: false
    },
    muted: {
      type: [Boolean, String],
      default: false
    },
    objectFit: {
      type: String,
      default: "contain"
    },
    poster: {
      type: String,
      default: ""
    },
    direction: {
      type: [String, Number],
      default: ""
    },
    showProgress: {
      type: Boolean,
      default: true
    },
    initialTime: {
      type: [String, Number],
      default: 0
    },
    showFullscreenBtn: {
      type: [Boolean, String],
      default: true
    },
    pageGesture: {
      type: [Boolean, String],
      default: false
    },
    enableProgressGesture: {
      type: [Boolean, String],
      default: true
    },
    showPlayBtn: {
      type: [Boolean, String],
      default: true
    },
    showCenterPlayBtn: {
      type: [Boolean, String],
      default: true
    }
  };
  const Video = /* @__PURE__ */ defineBuiltInComponent({
    name: "Video",
    props: props$b,
    emits: ["fullscreenchange", "progress", "loadedmetadata", "waiting", "error", "play", "pause", "ended", "timeupdate"],
    setup(props2, _ref2) {
      var {
        emit: emit2,
        attrs: attrs2,
        slots
      } = _ref2;
      var rootRef = ref(null);
      var containerRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var {
        state: userActionState
      } = useUserAction();
      var {
        $attrs: videoAttrs
      } = useAttrs({
        excludeListeners: true
      });
      var {
        t: t2
      } = useI18n();
      initI18nVideoMsgsOnce();
      var {
        videoRef,
        state: videoState,
        play,
        pause,
        stop,
        seek,
        playbackRate,
        toggle,
        onDurationChange,
        onLoadedMetadata,
        onProgress,
        onWaiting,
        onVideoError,
        onPlay,
        onPause,
        onEnded,
        onTimeUpdate
      } = useVideo(props2, attrs2, trigger2);
      var {
        state: danmuState,
        danmuRef,
        updateDanmu,
        toggleDanmu,
        sendDanmu
      } = useDanmu(props2, videoState);
      var {
        state: fullscreenState,
        onFullscreenChange,
        emitFullscreenChange,
        toggleFullscreen,
        requestFullScreen,
        exitFullScreen
      } = useFullscreen(trigger2, containerRef, videoRef, userActionState, rootRef);
      var {
        state: gestureState,
        onTouchstart,
        onTouchend,
        onTouchmove
      } = useGesture(props2, videoRef, fullscreenState);
      var {
        state: controlsState,
        progressRef,
        ballRef,
        clickProgress,
        toggleControls
      } = useControls(props2, videoState, seek);
      useContext(play, pause, stop, seek, sendDanmu, playbackRate, requestFullScreen, exitFullScreen);
      return () => {
        return createVNode("uni-video", {
          "ref": rootRef,
          "id": props2.id,
          "onClick": toggleControls
        }, [createVNode("div", {
          "ref": containerRef,
          "class": "uni-video-container",
          "onTouchstart": onTouchstart,
          "onTouchend": onTouchend,
          "onTouchmove": onTouchmove,
          "onFullscreenchange": withModifiers(onFullscreenChange, ["stop"]),
          "onWebkitfullscreenchange": withModifiers(($event) => onFullscreenChange($event, true), ["stop"])
        }, [createVNode("video", mergeProps({
          "ref": videoRef,
          "style": {
            "object-fit": props2.objectFit
          },
          "muted": !!props2.muted,
          "loop": !!props2.loop,
          "src": videoState.src,
          "poster": props2.poster,
          "autoplay": !!props2.autoplay
        }, videoAttrs.value, {
          "class": "uni-video-video",
          "webkit-playsinline": true,
          "playsinline": true,
          "onDurationchange": onDurationChange,
          "onLoadedmetadata": onLoadedMetadata,
          "onProgress": onProgress,
          "onWaiting": onWaiting,
          "onError": onVideoError,
          "onPlay": onPlay,
          "onPause": onPause,
          "onEnded": onEnded,
          "onTimeupdate": (event) => {
            onTimeUpdate(event);
            updateDanmu(event);
          },
          "onWebkitbeginfullscreen": () => emitFullscreenChange(true),
          "onX5videoenterfullscreen": () => emitFullscreenChange(true),
          "onWebkitendfullscreen": () => emitFullscreenChange(false),
          "onX5videoexitfullscreen": () => emitFullscreenChange(false)
        }), null, 16, ["muted", "loop", "src", "poster", "autoplay", "webkit-playsinline", "playsinline", "onDurationchange", "onLoadedmetadata", "onProgress", "onWaiting", "onError", "onPlay", "onPause", "onEnded", "onTimeupdate", "onWebkitbeginfullscreen", "onX5videoenterfullscreen", "onWebkitendfullscreen", "onX5videoexitfullscreen"]), withDirectives(createVNode("div", {
          "class": "uni-video-bar uni-video-bar-full",
          "onClick": withModifiers(() => {
          }, ["stop"])
        }, [createVNode("div", {
          "class": "uni-video-controls"
        }, [withDirectives(createVNode("div", {
          "class": {
            "uni-video-control-button": true,
            "uni-video-control-button-play": !videoState.playing,
            "uni-video-control-button-pause": videoState.playing
          },
          "onClick": withModifiers(toggle, ["stop"])
        }, null, 10, ["onClick"]), [[vShow, props2.showPlayBtn]]), withDirectives(createVNode("div", {
          "class": "uni-video-current-time"
        }, [formatTime(videoState.currentTime)], 512), [[vShow, props2.showProgress]]), withDirectives(createVNode("div", {
          "ref": progressRef,
          "class": "uni-video-progress-container",
          "onClick": withModifiers(clickProgress, ["stop"])
        }, [createVNode("div", {
          "class": "uni-video-progress"
        }, [createVNode("div", {
          "style": {
            width: videoState.buffered + "%"
          },
          "class": "uni-video-progress-buffered"
        }, null, 4), createVNode("div", {
          "ref": ballRef,
          "style": {
            left: videoState.progress + "%"
          },
          "class": "uni-video-ball"
        }, [createVNode("div", {
          "class": "uni-video-inner"
        }, null)], 4)])], 8, ["onClick"]), [[vShow, props2.showProgress]]), withDirectives(createVNode("div", {
          "class": "uni-video-duration"
        }, [formatTime(Number(props2.duration) || videoState.duration)], 512), [[vShow, props2.showProgress]])]), withDirectives(createVNode("div", {
          "class": {
            "uni-video-danmu-button": true,
            "uni-video-danmu-button-active": danmuState.enable
          },
          "onClick": withModifiers(toggleDanmu, ["stop"])
        }, [t2("uni.video.danmu")], 10, ["onClick"]), [[vShow, props2.danmuBtn]]), withDirectives(createVNode("div", {
          "class": {
            "uni-video-fullscreen": true,
            "uni-video-type-fullscreen": fullscreenState.fullscreen
          },
          "onClick": withModifiers(() => toggleFullscreen(!fullscreenState.fullscreen), ["stop"])
        }, null, 10, ["onClick"]), [[vShow, props2.showFullscreenBtn]])], 8, ["onClick"]), [[vShow, controlsState.controlsShow]]), withDirectives(createVNode("div", {
          "ref": danmuRef,
          "style": "z-index: 0;",
          "class": "uni-video-danmu"
        }, null, 512), [[vShow, videoState.start && danmuState.enable]]), controlsState.centerPlayBtnShow && createVNode("div", {
          "class": "uni-video-cover",
          "onClick": withModifiers(() => {
          }, ["stop"])
        }, [createVNode("div", {
          "class": "uni-video-cover-play-button",
          "onClick": withModifiers(play, ["stop"])
        }, null, 8, ["onClick"]), createVNode("p", {
          "class": "uni-video-cover-duration"
        }, [formatTime(Number(props2.duration) || videoState.duration)])], 8, ["onClick"]), createVNode("div", {
          "class": {
            "uni-video-toast": true,
            "uni-video-toast-volume": gestureState.gestureType === "volume"
          }
        }, [createVNode("div", {
          "class": "uni-video-toast-title"
        }, [t2("uni.video.volume")]), createVNode("svg", {
          "class": "uni-video-toast-icon",
          "width": "200px",
          "height": "200px",
          "viewBox": "0 0 1024 1024",
          "version": "1.1",
          "xmlns": "http://www.w3.org/2000/svg"
        }, [createVNode("path", {
          "d": "M475.400704 201.19552l0 621.674496q0 14.856192-10.856448 25.71264t-25.71264 10.856448-25.71264-10.856448l-190.273536-190.273536-149.704704 0q-14.856192 0-25.71264-10.856448t-10.856448-25.71264l0-219.414528q0-14.856192 10.856448-25.71264t25.71264-10.856448l149.704704 0 190.273536-190.273536q10.856448-10.856448 25.71264-10.856448t25.71264 10.856448 10.856448 25.71264zm219.414528 310.837248q0 43.425792-24.28416 80.851968t-64.2816 53.425152q-5.71392 2.85696-14.2848 2.85696-14.856192 0-25.71264-10.570752t-10.856448-25.998336q0-11.999232 6.856704-20.284416t16.570368-14.2848 19.427328-13.142016 16.570368-20.284416 6.856704-32.569344-6.856704-32.569344-16.570368-20.284416-19.427328-13.142016-16.570368-14.2848-6.856704-20.284416q0-15.427584 10.856448-25.998336t25.71264-10.570752q8.57088 0 14.2848 2.85696 39.99744 15.427584 64.2816 53.139456t24.28416 81.137664zm146.276352 0q0 87.422976-48.56832 161.41824t-128.5632 107.707392q-7.428096 2.85696-14.2848 2.85696-15.427584 0-26.284032-10.856448t-10.856448-25.71264q0-22.284288 22.284288-33.712128 31.997952-16.570368 43.425792-25.141248 42.283008-30.855168 65.995776-77.423616t23.712768-99.136512-23.712768-99.136512-65.995776-77.423616q-11.42784-8.57088-43.425792-25.141248-22.284288-11.42784-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 79.99488 33.712128 128.5632 107.707392t48.56832 161.41824zm146.276352 0q0 131.42016-72.566784 241.41312t-193.130496 161.989632q-7.428096 2.85696-14.856192 2.85696-14.856192 0-25.71264-10.856448t-10.856448-25.71264q0-20.570112 22.284288-33.712128 3.999744-2.285568 12.85632-5.999616t12.85632-5.999616q26.284032-14.2848 46.854144-29.140992 70.281216-51.996672 109.707264-129.705984t39.426048-165.132288-39.426048-165.132288-109.707264-129.705984q-20.570112-14.856192-46.854144-29.140992-3.999744-2.285568-12.85632-5.999616t-12.85632-5.999616q-22.284288-13.142016-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 120.563712 51.996672 193.130496 161.989632t72.566784 241.41312z"
        }, null)]), createVNode("div", {
          "class": "uni-video-toast-value"
        }, [createVNode("div", {
          "style": {
            width: gestureState.volumeNew * 100 + "%"
          },
          "class": "uni-video-toast-value-content"
        }, [createVNode("div", {
          "class": "uni-video-toast-volume-grids"
        }, [renderList(10, () => createVNode("div", {
          "class": "uni-video-toast-volume-grids-item"
        }, null))])], 4)])], 2), createVNode("div", {
          "class": {
            "uni-video-toast": true,
            "uni-video-toast-progress": gestureState.gestureType === "progress"
          }
        }, [createVNode("div", {
          "class": "uni-video-toast-title"
        }, [formatTime(gestureState.currentTimeNew), " / ", formatTime(videoState.duration)])], 2), createVNode("div", {
          "class": "uni-video-slots"
        }, [slots.default && slots.default()])], 40, ["onTouchstart", "onTouchend", "onTouchmove", "onFullscreenchange", "onWebkitfullscreenchange"])], 8, ["id", "onClick"]);
      };
    }
  });
  class UniVideo extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-video", Video, parentNodeId, refNodeId, nodeJson, ".uni-video-slots");
    }
  }
  var mode = {
    SELECTOR: "selector",
    MULTISELECTOR: "multiSelector",
    TIME: "time",
    DATE: "date"
    // 暂不支持城市选择
    // REGION: 'region'
  };
  var fields = {
    YEAR: "year",
    MONTH: "month",
    DAY: "day"
  };
  function getDefaultStartValue(props2) {
    if (props2.mode === mode.TIME) {
      return "00:00";
    }
    if (props2.mode === mode.DATE) {
      var year = (/* @__PURE__ */ new Date()).getFullYear() - 100;
      switch (props2.fields) {
        case fields.YEAR:
          return year;
        case fields.MONTH:
          return year + "-01";
        default:
          return year + "-01-01";
      }
    }
    return "";
  }
  function getDefaultEndValue(props2) {
    if (props2.mode === mode.TIME) {
      return "23:59";
    }
    if (props2.mode === mode.DATE) {
      var year = (/* @__PURE__ */ new Date()).getFullYear() + 100;
      switch (props2.fields) {
        case fields.YEAR:
          return year;
        case fields.MONTH:
          return year + "-12";
        default:
          return year + "-12-31";
      }
    }
    return "";
  }
  var props$a = {
    name: {
      type: String,
      default: ""
    },
    range: {
      type: Array,
      default() {
        return [];
      }
    },
    rangeKey: {
      type: String,
      default: ""
    },
    value: {
      type: [Number, String, Array],
      default: 0
    },
    mode: {
      type: String,
      default: mode.SELECTOR,
      validator(val) {
        return Object.values(mode).indexOf(val) >= 0;
      }
    },
    fields: {
      type: String,
      default: ""
    },
    start: {
      type: String,
      default: getDefaultStartValue
    },
    end: {
      type: String,
      default: getDefaultEndValue
    },
    disabled: {
      type: [Boolean, String],
      default: false
    }
  };
  const Picker = /* @__PURE__ */ defineBuiltInComponent({
    name: "Picker",
    props: props$a,
    emits: ["change", "cancel", "columnchange"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var embedRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      function onClick() {
        embedRef.value.show();
      }
      function onCancel(event) {
        trigger2("cancel", event, event.detail);
      }
      function onColumnchange(event) {
        trigger2("columnchange", event, event.detail);
      }
      function onChange2(event) {
        trigger2("change", event, event.detail);
      }
      if (props2.mode === mode.MULTISELECTOR) {
        watch(() => props2.range, (range) => {
          embedRef.value.updateRange(range);
        });
      }
      return () => createVNode("uni-picker", {
        "ref": rootRef
      }, [createVNode(Embed, {
        "ref": embedRef,
        "tag": "picker",
        "options": props2,
        "methods": ["show", "updateRange"],
        "onChange": onChange2,
        "onColumnchange": onColumnchange,
        "onCancel": onCancel
      }, null, 8, ["options", "onChange", "onColumnchange", "onCancel"]), createVNode("div", {
        "onClick": onClick,
        "class": "uni-picker-slot"
      }, null, 8, ["onClick"])], 512);
    }
  });
  class UniPicker extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-picker", Picker, parentNodeId, refNodeId, nodeJson, ".uni-picker-slot");
    }
  }
  var index = 0;
  function getJSONP(url, options, success, error) {
    var js = document.createElement("script");
    var callbackKey = options.callback || "callback";
    var callbackName = "__uni_jsonp_callback_" + index++;
    var timeout = options.timeout || 3e4;
    var timing;
    function end() {
      clearTimeout(timing);
      delete window[callbackName];
      js.remove();
    }
    window[callbackName] = (res) => {
      if (isFunction(success)) {
        success(res);
      }
      end();
    };
    js.onerror = () => {
      if (isFunction(error)) {
        error();
      }
      end();
    };
    timing = setTimeout(function() {
      if (isFunction(error)) {
        error();
      }
      end();
    }, timeout);
    js.src = url + (url.indexOf("?") >= 0 ? "&" : "?") + callbackKey + "=" + callbackName;
    document.body.appendChild(js);
  }
  function createCallout(maps2) {
    function onAdd() {
      var div = this.div;
      var panes = this.getPanes();
      panes.floatPane.appendChild(div);
    }
    function onRemove() {
      var parentNode = this.div.parentNode;
      if (parentNode) {
        parentNode.removeChild(this.div);
      }
    }
    function createAMapText() {
      var option = this.option;
      this.Text = new maps2.Text({
        text: option.content,
        anchor: "bottom-center",
        // 设置文本标记锚点
        offset: new maps2.Pixel(0, option.offsetY - 16),
        style: {
          padding: (option.padding || 8) + "px",
          "line-height": (option.fontSize || 14) + "px",
          "border-radius": (option.borderRadius || 0) + "px",
          "border-color": "".concat(option.bgColor || "#fff", " transparent transparent"),
          "background-color": option.bgColor || "#fff",
          "box-shadow": "0 2px 6px 0 rgba(114, 124, 245, .5)",
          "text-align": "center",
          "font-size": (option.fontSize || 14) + "px",
          color: option.color || "#000"
        },
        position: option.position
      });
      var event = maps2.event || maps2.Event;
      event.addListener(this.Text, "click", () => {
        this.callback();
      });
      this.Text.setMap(option.map);
    }
    function createBMapText() {
    }
    function removeAMapText() {
      if (this.Text) {
        this.option.map.remove(this.Text);
      }
    }
    function removeBMapText() {
      if (this.Text) {
        this.option.map.remove(this.Text);
      }
    }
    class Callout {
      constructor() {
        var option = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
        var callback = arguments.length > 1 ? arguments[1] : void 0;
        this.createAMapText = createAMapText;
        this.removeAMapText = removeAMapText;
        this.createBMapText = createBMapText;
        this.removeBMapText = removeBMapText;
        this.onAdd = onAdd;
        this.construct = onAdd;
        this.onRemove = onRemove;
        this.destroy = onRemove;
        this.option = option || {};
        var visible = this.visible = this.alwaysVisible = option.display === "ALWAYS";
        if (getIsAMap()) {
          this.callback = callback;
          if (this.visible) {
            this.createAMapText();
          }
        } else if (getIsBMap()) {
          if (this.visible) {
            this.createBMapText();
          }
        } else {
          var map = option.map;
          this.position = option.position;
          this.index = 1;
          var div = this.div = document.createElement("div");
          var divStyle = div.style;
          divStyle.position = "absolute";
          divStyle.whiteSpace = "nowrap";
          divStyle.transform = "translateX(-50%) translateY(-100%)";
          divStyle.zIndex = "1";
          divStyle.boxShadow = option.boxShadow || "none";
          divStyle.display = visible ? "block" : "none";
          var triangle = this.triangle = document.createElement("div");
          triangle.setAttribute("style", "position: absolute;white-space: nowrap;border-width: 4px;border-style: solid;border-color: #fff transparent transparent;border-image: initial;font-size: 12px;padding: 0px;background-color: transparent;width: 0px;height: 0px;transform: translate(-50%, 100%);left: 50%;bottom: 0;");
          this.setStyle(option);
          div.appendChild(triangle);
          if (map) {
            this.setMap(map);
          }
        }
      }
      set onclick(callback) {
        this.div.onclick = callback;
      }
      get onclick() {
        return this.div.onclick;
      }
      setOption(option) {
        this.option = option;
        if (option.display === "ALWAYS") {
          this.alwaysVisible = this.visible = true;
        } else {
          this.alwaysVisible = false;
        }
        if (getIsAMap()) {
          if (this.visible) {
            this.createAMapText();
          }
        } else if (getIsBMap()) {
          if (this.visible) {
            this.createBMapText();
          }
        } else {
          this.setPosition(option.position);
          this.setStyle(option);
        }
      }
      setStyle(option) {
        var div = this.div;
        var divStyle = div.style;
        div.innerText = option.content || "";
        divStyle.lineHeight = (option.fontSize || 14) + "px";
        divStyle.fontSize = (option.fontSize || 14) + "px";
        divStyle.padding = (option.padding || 8) + "px";
        divStyle.color = option.color || "#000";
        divStyle.borderRadius = (option.borderRadius || 0) + "px";
        divStyle.backgroundColor = option.bgColor || "#fff";
        divStyle.marginTop = "-" + ((option.top || 0) + 5) + "px";
        this.triangle.style.borderColor = "".concat(option.bgColor || "#fff", " transparent transparent");
      }
      setPosition(position) {
        this.position = position;
        this.draw();
      }
      draw() {
        var overlayProjection = this.getProjection();
        if (!this.position || !this.div || !overlayProjection) {
          return;
        }
        var pixel = overlayProjection.fromLatLngToDivPixel(this.position);
        var divStyle = this.div.style;
        divStyle.left = pixel.x + "px";
        divStyle.top = pixel.y + "px";
      }
      changed() {
        var divStyle = this.div.style;
        divStyle.display = this.visible ? "block" : "none";
      }
    }
    if (!getIsAMap() && !getIsBMap()) {
      var overlay = new (maps2.OverlayView || maps2.Overlay)();
      Callout.prototype.setMap = overlay.setMap;
      Callout.prototype.getMap = overlay.getMap;
      Callout.prototype.getPanes = overlay.getPanes;
      Callout.prototype.getProjection = overlay.getProjection;
      Callout.prototype.map_changed = overlay.map_changed;
      Callout.prototype.set = overlay.set;
      Callout.prototype.get = overlay.get;
      Callout.prototype.setOptions = overlay.setValues;
      Callout.prototype.bindTo = overlay.bindTo;
      Callout.prototype.bindsTo = overlay.bindsTo;
      Callout.prototype.notify = overlay.notify;
      Callout.prototype.setValues = overlay.setValues;
      Callout.prototype.unbind = overlay.unbind;
      Callout.prototype.unbindAll = overlay.unbindAll;
      Callout.prototype.addListener = overlay.addListener;
    }
    return Callout;
  }
  var __async$1 = (__this, __arguments, generator) => {
    return new Promise((resolve, reject) => {
      var fulfilled = (value) => {
        try {
          step2(generator.next(value));
        } catch (e2) {
          reject(e2);
        }
      };
      var rejected = (value) => {
        try {
          step2(generator.throw(value));
        } catch (e2) {
          reject(e2);
        }
      };
      var step2 = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
      step2((generator = generator.apply(__this, __arguments)).next());
    });
  };
  var maps;
  var callbacksMap = {};
  var GOOGLE_MAP_CALLBACKNAME = "__map_callback__";
  function loadMaps(libraries, callback) {
    return __async$1(this, null, function* () {
      var mapInfo2 = yield getMapInfo();
      if (!mapInfo2.key) {
        console.error("Map key not configured.");
        return;
      }
      var callbacks2 = callbacksMap[mapInfo2.type] = callbacksMap[mapInfo2.type] || [];
      if (maps) {
        callback(maps);
      } else if (window[mapInfo2.type] && window[mapInfo2.type].maps) {
        maps = getIsAMap() || getIsBMap() ? window[mapInfo2.type] : window[mapInfo2.type].maps;
        maps.Callout = maps.Callout || createCallout(maps);
        callback(maps);
      } else if (callbacks2.length) {
        callbacks2.push(callback);
      } else {
        callbacks2.push(callback);
        var globalExt = window;
        var callbackName = GOOGLE_MAP_CALLBACKNAME + mapInfo2.type;
        globalExt[callbackName] = function() {
          delete globalExt[callbackName];
          maps = getIsAMap() || getIsBMap() ? window[mapInfo2.type] : window[mapInfo2.type].maps;
          maps.Callout = createCallout(maps);
          callbacks2.forEach((callback2) => callback2(maps));
          callbacks2.length = 0;
        };
        if (getIsAMap()) {
          handleAMapSecurityPolicy(mapInfo2);
        }
        var script = document.createElement("script");
        var src = getScriptBaseUrl(mapInfo2.type);
        if (mapInfo2.type === MapType.QQ) {
          libraries.push("geometry");
        }
        if (libraries.length) {
          src += "libraries=".concat(libraries.join("%2C"), "&");
        }
        if (mapInfo2.type === MapType.BMAP) {
          script.src = "".concat(src, "ak=").concat(mapInfo2.key, "&callback=").concat(callbackName);
        } else {
          script.src = "".concat(src, "key=").concat(mapInfo2.key, "&callback=").concat(callbackName);
        }
        script.onerror = function() {
          console.error("Map load failed.");
        };
        document.body.appendChild(script);
      }
    });
  }
  var getScriptBaseUrl = (mapType) => {
    var urlMap = {
      qq: "https://map.qq.com/api/js?v=2.exp&",
      google: "https://maps.googleapis.com/maps/api/js?",
      AMap: "https://webapi.amap.com/maps?v=2.0&",
      BMapGL: "https://api.map.baidu.com/api?type=webgl&v=1.0&"
    };
    return urlMap[mapType];
  };
  function handleAMapSecurityPolicy(mapInfo2) {
    window._AMapSecurityConfig = {
      securityJsCode: mapInfo2.securityJsCode || "",
      serviceHost: mapInfo2.serviceHost || ""
    };
  }
  var __async = (__this, __arguments, generator) => {
    return new Promise((resolve, reject) => {
      var fulfilled = (value) => {
        try {
          step2(generator.next(value));
        } catch (e2) {
          reject(e2);
        }
      };
      var rejected = (value) => {
        try {
          step2(generator.throw(value));
        } catch (e2) {
          reject(e2);
        }
      };
      var step2 = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
      step2((generator = generator.apply(__this, __arguments)).next());
    });
  };
  var ICON_PATH_LOCTAION = "M13.3334375 16 q0.033125 1.1334375 0.783125 1.8834375 q0.75 0.75 1.8834375 0.75 q1.1334375 0 1.8834375 -0.75 q0.75 -0.75 0.75 -1.8834375 q0 -1.1334375 -0.75 -1.8834375 q-0.75 -0.75 -1.8834375 -0.75 q-1.1334375 0 -1.8834375 0.75 q-0.75 0.75 -0.783125 1.8834375 ZM30.9334375 14.9334375 l-1.1334375 0 q-0.5 -5.2 -4.0165625 -8.716875 q-3.516875 -3.5165625 -8.716875 -4.0165625 l0 -1.1334375 q0 -0.4665625 -0.3 -0.7665625 q-0.3 -0.3 -0.7665625 -0.3 q-0.4665625 0 -0.7665625 0.3 q-0.3 0.3 -0.3 0.7665625 l0 1.1334375 q-5.2 0.5 -8.716875 4.0165625 q-3.5165625 3.516875 -4.0165625 8.716875 l-1.1334375 0 q-0.4665625 0 -0.7665625 0.3 q-0.3 0.3 -0.3 0.7665625 q0 0.4665625 0.3 0.7665625 q0.3 0.3 0.7665625 0.3 l1.1334375 0 q0.5 5.2 4.0165625 8.716875 q3.516875 3.5165625 8.716875 4.0165625 l0 1.1334375 q0 0.4665625 0.3 0.7665625 q0.3 0.3 0.7665625 0.3 q0.4665625 0 0.7665625 -0.3 q0.3 -0.3 0.3 -0.7665625 l0 -1.1334375 q5.2 -0.5 8.716875 -4.0165625 q3.5165625 -3.516875 4.0165625 -8.716875 l1.1334375 0 q0.4665625 0 0.7665625 -0.3 q0.3 -0.3 0.3 -0.7665625 q0 -0.4665625 -0.3 -0.7665625 q-0.3 -0.3 -0.7665625 -0.3 ZM17.0665625 27.6665625 l0 -2.0665625 q0 -0.4665625 -0.3 -0.7665625 q-0.3 -0.3 -0.7665625 -0.3 q-0.4665625 0 -0.7665625 0.3 q-0.3 0.3 -0.3 0.7665625 l0 2.0665625 q-4.3 -0.4665625 -7.216875 -3.383125 q-2.916875 -2.916875 -3.3834375 -7.216875 l2.0665625 0 q0.4665625 0 0.7665625 -0.3 q0.3 -0.3 0.3 -0.7665625 q0 -0.4665625 -0.3 -0.7665625 q-0.3 -0.3 -0.7665625 -0.3 l-2.0665625 0 q0.4665625 -4.3 3.3834375 -7.216875 q2.9165625 -2.916875 7.216875 -3.3834375 l0 2.0665625 q0 0.4665625 0.3 0.7665625 q0.3 0.3 0.7665625 0.3 q0.4665625 0 0.7665625 -0.3 q0.3 -0.3 0.3 -0.7665625 l0 -2.0665625 q4.3 0.4665625 7.216875 3.3834375 q2.9165625 2.9165625 3.383125 7.216875 l-2.0665625 0 q-0.4665625 0 -0.7665625 0.3 q-0.3 0.3 -0.3 0.7665625 q0 0.4665625 0.3 0.7665625 q0.3 0.3 0.7665625 0.3 l2.0665625 0 q-0.4665625 4.3 -3.383125 7.216875 q-2.916875 2.9165625 -7.216875 3.383125 Z";
  var ICON_PATH_ORIGIN = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAC01BMVEUAAAAAef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef96quGStdqStdpbnujMzMzCyM7Gyc7Ky83MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAef8GfP0yjfNWnOp0qOKKsdyYt9mju9aZt9mMstx1qeJYnekyjvIIfP0qivVmouaWttnMzMyat9lppOUujPQKffxhoOfNzc3Y2Njh4eHp6enu7u7y8vL19fXv7+/i4uLZ2dnOzs6auNgOf/sKff15quHR0dHx8fH9/f3////j4+N6quFdn+iywdPb29vw8PD+/v7c3NyywtLa2tr29vbS0tLd3d38/Pzf39/o6Ojc7f+q0v+HwP9rsf9dqv9Hnv9Vpv/q6urj8P+Vx/9Am/8Pgf8Iff/z8/OAvP95uf/n5+c5l//V6f+52v+y1//7+/vt7e0rkP/09PTQ0NDq9P8Whf+cy//W1tbe3t7A3v/m5ubs7OxOov/r6+vk5OQiaPjKAAAAknRSTlMACBZ9oB71/jiqywJBZATT6hBukRXv+zDCAVrkDIf4JbQsTb7eVeJLbwfa8Rh4G/OlPS/6/kxQ9/xdmZudoJxNVhng7B6wtWdzAtQOipcF1329wS44doK/BAkyP1pvgZOsrbnGXArAg34G2IsD1eMRe7bi7k5YnqFT9V0csyPedQyYD3p/Fje+hDpskq/MwpRBC6yKp2MAAAQdSURBVHja7Zn1exMxGIAPHbrhDsPdneHuNtzd3d3dIbjLh93o2o4i7TpgG1Jk0g0mMNwd/gTa5rq129reHnK5e/bk/TFNk/dJ7r5894XjGAwGg8GgTZasCpDIll1+hxw5vXLJLpEboTx5ZXbIhyzkl9fB28cqUaCgrBKFkI3CcjoUKYolihWXUSI7EihRUjaHXF52CVRKLoe8eZIdUOkyMknkRw6UlcehYAFHiXK+skgURk6Ul8OhQjFnCVRRBolKqRxQ5SzUHaqgNGSj7VCmalqJnDkoS5RF6ZCbroNvufQkUD6qEuXTdUA+3hQdqiEXVKfnUKOmK4latalJ1EEuoZZ6162HJ9x/4OChw0eOHj12/MTJU6dxG7XUu751tjNnz4ET5y9ctLZTSr0beKFLl89bpuUDrqgC1RqNWqsKuqqzNFw7e51S6u3tc+OmZUJ9kCHY6ECwOkRvab51iUrqXej2HYDQsHBjWgx3Ae7dppB6N2wEcF9jdMGDUIDGTaR2aNoM9FqjG7QmaN5CWgc/gIePjG559BigpZQOrYB/4jBfRGRUtDkmJjY6KjLCofkpD62lc2gDfMpWPIuLdwyV8XEpHgaddBZ+wBuSFcwJqSN2ovmZ/dfnOvCTxqGtwzq8SEjv4EhISn48eWgnhUP7DvDSvgzxrs6vV6+FLiro2EkCic4QKkzwJsH1KYreCp0eQhfyDl1B/w4P/xa5JVJ4U03QjbRD9x7wXlgH5IE3wmMBHXoSlugFAcI6f/AkkSi8q6HQm6xDn77wEQ8djTwSj3tqAMguRTe4ikeOQyJ4YV+KfkQl+oNW5GbY4gWOWgbwJ+kwAD6Fi90MK2ZsrIeBBCUGwRXbqJ+/iJMQliIEBhOU6AJhtlG/IpHE2bqrYQg5h6HA4yQiRqwEfkGCdTCMmMRw+IbPDCQaHCsCYAQxiZHw3TbmD/ESOHgHwShiEqPhp/gggYkSztIxxCRawy/bmEniJaJtfwiEscQkxkFgRqJESqQwwHhiEuMBp3Vm8RK/cZoHEzKXhCK2QxEPpiJe0YlKCFaKCNv/cYBNUsBRPlkJSc0U+dM7E9H0ThGJbgZT/iR7yj+VqMS06Qr4+OFm2JdCxIa8lugzkJs5K6MfxAaYPUcBpYG5khZJEkUUSb7DPCnKRfPBXj6M8FwuegoLpCgXcQszVjhbJFUJUee2hBhLoYTIcYtB57KY+opSMdVqwatSlZVj05aV//CwJLMX2DluaUcwhXm4ali2XOoLjxUrPV26zFtF4f5p0Gp310+z13BUWNvbehEXona6iAtX/zVZmtfN4WixfsNky4S6gCCVVq3RPLdfSfpv3MRRZfPoLc6Xs/5bt3EyMGzE9h07/Xft2t15z6i9+zgGg8FgMBgMBoPBYDAYDAYj8/APG67Rie8pUDsAAAAASUVORK5CYII=";
  var ICON_PATH_TARGET = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAACcCAMAAAC3Fl5oAAAB3VBMVEVMaXH/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/EhL/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/Dw//AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/GRn/NTX/Dw//Fhb/AAD/AAD/AAD/GRn/GRn/Y2P/AAD/AAD/ExP/Ghr/AAD/AAD/MzP/GRn/AAD/Hh7/AAD/RUX/AAD/AAD/AAD/AAD/AAD/AAD/Dg7/AAD/HR3/Dw//FRX/SUn/AAD/////kJD/DQ3/Zmb/+/v/wMD/mJj/6en/vb3/1NT//Pz/ODj/+fn/3Nz/nJz/j4//9/f/7e3/9vb/7Oz/2Nj/x8f/Ozv/+Pj/3d3/nZ3/2dn//f3/6Oj/2tr/v7//09P/vr7/mZn/l5cdSvP3AAAAe3RSTlMAAhLiZgTb/vztB/JMRhlp6lQW86g8mQ4KFPs3UCH5U8huwlesWtTYGI7RsdVeJGfTW5rxnutLsvXWF8vQNdo6qQbuz7D4hgVIx2xtw8GC1TtZaIw0i84P98tU0/fsj7PKaAgiZZxeVfo8Z52eg1P0nESrENnjXVPUgw/uuSmDAAADsUlEQVR42u3aZ3cTRxgF4GtbYleSLdnGcsENG2ODjbExEHrvhAQCIb1Bem+QdkeuuFMNBBJIfmuOckzZI8/srHYmH3Lm+QNXK632LTvQ03Tu/IWeU/tTGTKT2n+q58L5c00wpXJd47DHEt5w47pKxLbhdLdPKb/7dBYxVLxw1GcI/2h1BcpzKNFHLX2JQ4gumaiitqpEEhEdOMJI9h5AFC3feYzI+7IF2tpSLEOqDXpObPRYFm/jCWho/4Ble7MdoT7fzhhq9yHEz28wltU1UPrJZ0wd66HwicfYvEFIfePTAP8tSLTupBHvtGJFH9bSkNrNWEHzERrT34xSH9Ogr1CijkbVAUH1KRqVqkdQAw07iIAaGlcTqI+/0LjeJJ5J0IIEnkpXMdzs4sTtW9dnZq7fuj2xOMtwVWk88RHDjBYejYvnjD8qjOpfQsUqhvj7oSjxcJIhVj3pyKqpNjYvVjQ/RrXq5YABKi3MCYm5BSrtWO5v11DlmlC4RpU1WRS9SJU7QukOVbpQ9JLu549+Dd0AUOlTbkGEuk85vxLAK5QbuytC3R2j3HoAjZSbFxrmKTcCoJdSk0LLJKV6gSaPMqNTQsvUKGW8JrxKqUWhaZFSeWyh1LTQNE2pHF6mzOy40DQ+S5mLimJcENoKlOnBWsr8KbRNUGYt5LXgd6HtD3lNQIoyN4S2G5RJIUOZm0LbTcqsBqVmhLYZSlkPsP4VWf+Rrd+m1v9o9h8Vv5p42C1R5qL1x7WRglOgVN52yfwNOBu76P+lLPoYidu23KPciIHGa07ZeIW1jvcNtI7q5vexCPGYCmf+m/Y9a3sAwQ5bI9T7ukPgPcn9GToEao+xk1OixJT+GIsvNAbx6eAgPq0xiF+KtkpYKhRXCQ8eFFcJhSWGu3rZ8jJkCM8kz9K4TUnrC6mAgzTsB9tLwQ2W15qfosQ2GrQNpZr7aczbzVjBZsvLcaC1g0bsbIVEnU8DOr6H1KDH2LwtUBi0/JII6Dxm9zUXkH+XMWzfh1Dte1i2Pe3QkC77Zel7aehpO8wyHG6Dtt0NjKxhN6I4uSli/TqJiJJDUQ4NDCURXTrXRy1XcumyD24M+AzhD1RXIIZsl/LoyZmurJHDM7s8lvB2FQ/PmPJ6PseAXP5HGMYAAC7ABbgAF+ACXIALcAEuwAW4ABfgAlyAC3ABLsAFuID/d8Cx4NEt8/byOf0wLnis8zjMq9/Kp7bWw4JOj8u8TlhRl+G/Mp2wpOX48GffvvZ1CyL4B53LAS6zb08EAAAAAElFTkSuQmCC";
  var MapType = /* @__PURE__ */ ((MapType2) => {
    MapType2["QQ"] = "qq";
    MapType2["GOOGLE"] = "google";
    MapType2["AMAP"] = "AMap";
    MapType2["BMAP"] = "BMapGL";
    MapType2["UNKNOWN"] = "";
    return MapType2;
  })(MapType || {});
  var mapInfo = null;
  function parseMapInfo(mapConfig) {
    if (mapConfig.bMapKey) {
      return {
        type: "BMapGL",
        key: mapConfig.bMapKey
      };
    }
    if (mapConfig.qqMapKey) {
      return {
        type: "qq",
        key: mapConfig.qqMapKey
      };
    }
    if (mapConfig.googleMapKey) {
      return {
        type: "google",
        key: mapConfig.googleMapKey
      };
    }
    if (mapConfig.aMapKey) {
      return {
        type: "AMap",
        key: mapConfig.aMapKey,
        securityJsCode: mapConfig.aMapSecurityJsCode,
        serviceHost: mapConfig.aMapServiceHost
      };
    }
    return {
      type: "",
      key: ""
    };
  }
  function getMapInfo() {
    return __async(this, null, function* () {
      if (mapInfo) {
        return mapInfo;
      }
      return new Promise((resolve) => {
        UniViewJSBridge.invokeServiceMethod("getMapConfig", {}, (res) => {
          mapInfo = parseMapInfo(res);
          resolve(mapInfo);
        });
      });
    });
  }
  var IS_AMAP = false;
  var hasGetIsAMap = false;
  var getIsAMap = () => {
    if (hasGetIsAMap) {
      return IS_AMAP;
    } else {
      hasGetIsAMap = true;
      return IS_AMAP = (mapInfo == null ? void 0 : mapInfo.type) === "AMap";
    }
  };
  var getIsBMap = () => {
    return (mapInfo == null ? void 0 : mapInfo.type) === "BMapGL";
  };
  var props$9 = {
    id: {
      type: [Number, String],
      default: ""
    },
    latitude: {
      type: [Number, String],
      require: true
    },
    longitude: {
      type: [Number, String],
      require: true
    },
    title: {
      type: String,
      default: ""
    },
    iconPath: {
      type: String,
      require: true
    },
    rotate: {
      type: [Number, String],
      default: 0
    },
    alpha: {
      type: [Number, String],
      default: 1
    },
    width: {
      type: [Number, String],
      default: ""
    },
    height: {
      type: [Number, String],
      default: ""
    },
    callout: {
      type: Object,
      default: null
    },
    label: {
      type: Object,
      default: null
    },
    anchor: {
      type: Object,
      default: null
    },
    clusterId: {
      type: [Number, String],
      default: ""
    },
    customCallout: {
      type: Object,
      default: null
    },
    ariaLabel: {
      type: String,
      default: ""
    }
  };
  function useMarkerLabelStyle(id2) {
    var className = "uni-map-marker-label-" + id2;
    var styleEl = document.createElement("style");
    styleEl.id = className;
    document.head.appendChild(styleEl);
    onUnmounted(() => {
      styleEl.remove();
    });
    return function updateMarkerLabelStyle(style) {
      var newStyle = Object.assign({}, style, {
        position: "absolute",
        top: "70px",
        borderStyle: "solid"
      });
      var div = document.createElement("div");
      Object.keys(newStyle).forEach((key2) => {
        div.style[key2] = newStyle[key2] || "";
      });
      styleEl.innerText = ".".concat(className, "{").concat(div.getAttribute("style"), "}");
      return className;
    };
  }
  const MapMarker = /* @__PURE__ */ defineSystemComponent({
    name: "MapMarker",
    props: props$9,
    setup(props2) {
      var id2 = String(!isNaN(Number(props2.id)) ? props2.id : "");
      var onMapReady = inject("onMapReady");
      var updateMarkerLabelStyle = useMarkerLabelStyle(id2);
      var marker;
      function removeMarker() {
        if (marker) {
          if (marker.label && "setMap" in marker.label) {
            marker.label.setMap(null);
          }
          if (marker.callout) {
            removeMarkerCallout(marker.callout);
          }
          marker.setMap(null);
        }
      }
      function removeMarkerCallout(callout) {
        if (getIsAMap()) {
          callout.removeAMapText();
        } else {
          callout.setMap(null);
        }
      }
      onMapReady((map, maps2, trigger2) => {
        function updateMarker(option) {
          var title = option.title;
          var position;
          if (getIsAMap()) {
            position = new maps2.LngLat(option.longitude, option.latitude);
          } else if (getIsBMap()) {
            position = new maps2.Point(option.longitude, option.latitude);
          } else {
            position = new maps2.LatLng(option.latitude, option.longitude);
          }
          var img = new Image();
          var imgHeight = 0;
          img.onload = /* @__PURE__ */ _asyncToGenerator(function* () {
            var anchor = option.anchor || {};
            var icon;
            var w;
            var h2;
            var top;
            var x = typeof anchor.x === "number" ? anchor.x : 0.5;
            var y = typeof anchor.y === "number" ? anchor.y : 1;
            if (option.iconPath && (option.width || option.height)) {
              w = option.width || img.width / img.height * option.height;
              h2 = option.height || img.height / img.width * option.width;
            } else {
              w = img.width / 2;
              h2 = img.height / 2;
            }
            imgHeight = h2;
            top = h2 - (h2 - y * h2);
            if ("MarkerImage" in maps2) {
              icon = new maps2.MarkerImage(img.src, null, null, new maps2.Point(x * w, y * h2), new maps2.Size(w, h2));
            } else if ("Icon" in maps2) {
              icon = new maps2.Icon({
                image: img.src,
                size: new maps2.Size(w, h2),
                imageSize: new maps2.Size(w, h2),
                imageOffset: new maps2.Pixel(x * w, y * h2)
              });
            } else {
              icon = {
                url: img.src,
                anchor: new maps2.Point(x, y),
                size: new maps2.Size(w, h2)
              };
            }
            if (getIsBMap()) {
              marker = new maps2.Marker(new maps2.Point(position.lng, position.lat));
              map.addOverlay(marker);
            } else {
              marker.setPosition(position);
              marker.setIcon(icon);
            }
            if ("setRotation" in marker) {
              marker.setRotation(option.rotate || 0);
            }
            var labelOpt = option.label || {};
            if ("label" in marker) {
              marker.label.setMap(null);
              delete marker.label;
            }
            var label;
            if (labelOpt.content) {
              var labelStyle = {
                borderColor: labelOpt.borderColor,
                borderWidth: (Number(labelOpt.borderWidth) || 0) + "px",
                padding: (Number(labelOpt.padding) || 0) + "px",
                borderRadius: (Number(labelOpt.borderRadius) || 0) + "px",
                backgroundColor: labelOpt.bgColor,
                color: labelOpt.color,
                fontSize: (labelOpt.fontSize || 14) + "px",
                lineHeight: (labelOpt.fontSize || 14) + "px",
                marginLeft: (Number(labelOpt.anchorX || labelOpt.x) || 0) + "px",
                marginTop: (Number(labelOpt.anchorY || labelOpt.y) || 0) + "px"
              };
              if ("Label" in maps2) {
                label = new maps2.Label({
                  position,
                  map,
                  clickable: false,
                  content: labelOpt.content,
                  style: labelStyle
                });
                marker.label = label;
              } else if ("setLabel" in marker) {
                if (getIsAMap()) {
                  var content = '<div style="\n                  margin-left:'.concat(labelStyle.marginLeft, ";\n                  margin-top:").concat(labelStyle.marginTop, ";\n                  padding:").concat(labelStyle.padding, ";\n                  background-color:").concat(labelStyle.backgroundColor, ";\n                  border-radius:").concat(labelStyle.borderRadius, ";\n                  line-height:").concat(labelStyle.lineHeight, ";\n                  color:").concat(labelStyle.color, ";\n                  font-size:").concat(labelStyle.fontSize, ';\n\n                  ">\n                  ').concat(labelOpt.content, "\n                <div>");
                  marker.setLabel({
                    content,
                    direction: "bottom-right"
                  });
                } else {
                  var className = updateMarkerLabelStyle(labelStyle);
                  marker.setLabel({
                    text: labelOpt.content,
                    color: labelStyle.color,
                    fontSize: labelStyle.fontSize,
                    className
                  });
                }
              }
            }
            var calloutOpt = option.callout || {};
            var callout = marker.callout;
            var calloutStyle;
            if (calloutOpt.content || title) {
              if (getIsAMap() && calloutOpt.content) {
                calloutOpt.content = calloutOpt.content.replaceAll("\n", "<br/>");
              }
              var boxShadow = "0px 0px 3px 1px rgba(0,0,0,0.5)";
              var offsetY = -imgHeight / 2;
              if (option.width || option.height) {
                offsetY += 14 - imgHeight / 2;
              }
              calloutStyle = calloutOpt.content ? {
                position,
                map,
                top,
                // handle AMap callout offset
                offsetY,
                content: calloutOpt.content,
                color: calloutOpt.color,
                fontSize: calloutOpt.fontSize,
                borderRadius: calloutOpt.borderRadius,
                bgColor: calloutOpt.bgColor,
                padding: calloutOpt.padding,
                boxShadow: calloutOpt.boxShadow || boxShadow,
                display: calloutOpt.display
              } : {
                position,
                map,
                top,
                // handle AMap callout offset
                offsetY,
                content: title,
                boxShadow
              };
              if (callout) {
                callout.setOption(calloutStyle);
              } else {
                if (getIsAMap()) {
                  var callback = (id3) => {
                    if (id3 !== "") {
                      trigger2("callouttap", {}, {
                        markerId: Number(id3)
                      });
                    }
                  };
                  callout = marker.callout = new maps2.Callout(calloutStyle, callback);
                } else {
                  callout = marker.callout = new maps2.Callout(calloutStyle);
                  callout.div.onclick = function($event) {
                    if (id2 !== "") {
                      trigger2("callouttap", $event, {
                        markerId: Number(id2)
                      });
                    }
                    $event.stopPropagation();
                    $event.preventDefault();
                  };
                  var mapInfo2 = yield getMapInfo();
                  if (mapInfo2.type === MapType.GOOGLE) {
                    callout.div.ontouchstart = function($event) {
                      $event.stopPropagation();
                    };
                    callout.div.onpointerdown = function($event) {
                      $event.stopPropagation();
                    };
                  }
                }
              }
            } else {
              if (callout) {
                removeMarkerCallout(callout);
                delete marker.callout;
              }
            }
          });
          if (option.iconPath) {
            img.src = getRealPath(option.iconPath);
          } else {
            console.error("Marker.iconPath is required.");
          }
        }
        function addMarker(props3) {
          if (!getIsBMap()) {
            marker = new maps2.Marker({
              map,
              flat: true,
              autoRotation: false
            });
          }
          updateMarker(props3);
          var MapsEvent = maps2.event || maps2.Event;
          if (getIsBMap())
            ;
          else {
            MapsEvent.addListener(marker, "click", () => {
              var callout = marker.callout;
              if (callout && !callout.alwaysVisible) {
                if (getIsAMap()) {
                  callout.visible = !callout.visible;
                  if (callout.visible) {
                    marker.callout.createAMapText();
                  } else {
                    marker.callout.removeAMapText();
                  }
                } else {
                  callout.set("visible", !callout.visible);
                  if (callout.visible) {
                    var div = callout.div;
                    var parent = div.parentNode;
                    parent.removeChild(div);
                    parent.appendChild(div);
                  }
                }
              }
              if (id2) {
                trigger2("markertap", {}, {
                  markerId: Number(id2),
                  latitude: props3.latitude,
                  longitude: props3.longitude
                });
              }
            });
          }
        }
        addMarker(props2);
        watch(props2, updateMarker);
      });
      if (id2) {
        var addMapChidlContext = inject("addMapChidlContext");
        var removeMapChidlContext = inject("removeMapChidlContext");
        var context = {
          id: id2,
          translate(data) {
            onMapReady((map, maps2, trigger2) => {
              var destination = data.destination;
              var duration = data.duration;
              var autoRotate = !!data.autoRotate;
              var rotate = Number(data.rotate) || 0;
              var rotation = 0;
              if ("getRotation" in marker) {
                rotation = marker.getRotation();
              }
              var a2 = marker.getPosition();
              var b = new maps2.LatLng(destination.latitude, destination.longitude);
              var distance2 = maps2.geometry.spherical.computeDistanceBetween(a2, b) / 1e3;
              var time = (typeof duration === "number" ? duration : 1e3) / (1e3 * 60 * 60);
              var speed = distance2 / time;
              var MapsEvent = maps2.event || maps2.Event;
              var movingEvent = MapsEvent.addListener(marker, "moving", (e2) => {
                var latLng = e2.latLng;
                var label = marker.label;
                if (label) {
                  label.setPosition(latLng);
                }
                var callout = marker.callout;
                if (callout) {
                  callout.setPosition(latLng);
                }
              });
              var event = MapsEvent.addListener(marker, "moveend", () => {
                event.remove();
                movingEvent.remove();
                marker.lastPosition = a2;
                marker.setPosition(b);
                var label = marker.label;
                if (label) {
                  label.setPosition(b);
                }
                var callout = marker.callout;
                if (callout) {
                  callout.setPosition(b);
                }
                var cb = data.animationEnd;
                if (isFunction(cb)) {
                  cb();
                }
              });
              var lastRtate = 0;
              if (autoRotate) {
                if (marker.lastPosition) {
                  lastRtate = maps2.geometry.spherical.computeHeading(marker.lastPosition, a2);
                }
                rotate = maps2.geometry.spherical.computeHeading(a2, b) - lastRtate;
              }
              if ("setRotation" in marker) {
                marker.setRotation(rotation + rotate);
              }
              if ("moveTo" in marker) {
                marker.moveTo(b, speed);
              } else {
                marker.setPosition(b);
                MapsEvent.trigger(marker, "moveend", {});
              }
            });
          }
        };
        addMapChidlContext(context);
        onUnmounted(() => removeMapChidlContext(context));
      }
      onUnmounted(removeMarker);
      return () => {
        return null;
      };
    }
  });
  function hexToRgba(hex) {
    if (!hex) {
      return {
        r: 0,
        g: 0,
        b: 0,
        a: 0
      };
    }
    var tmpHex = hex.slice(1);
    var tmpHexLen = tmpHex.length;
    if (![3, 4, 6, 8].includes(tmpHexLen)) {
      return {
        r: 0,
        g: 0,
        b: 0,
        a: 0
      };
    }
    if (tmpHexLen === 3 || tmpHexLen === 4) {
      tmpHex = tmpHex.replace(/(\w{1})/g, "$1$1");
    }
    var [sr, sg, sb, sa] = tmpHex.match(/(\w{2})/g);
    var r = parseInt(sr, 16), g2 = parseInt(sg, 16), b = parseInt(sb, 16);
    if (!sa) {
      return {
        r,
        g: g2,
        b,
        a: 1
      };
    }
    return {
      r,
      g: g2,
      b,
      a: ("0x100".concat(sa) - 65536) / 255
    };
  }
  var props$8 = {
    points: {
      type: Array,
      require: true
    },
    color: {
      type: String,
      default: "#000000"
    },
    width: {
      type: [Number, String],
      default: ""
    },
    dottedLine: {
      type: [Boolean, String],
      default: false
    },
    arrowLine: {
      type: [Boolean, String],
      default: false
    },
    arrowIconPath: {
      type: String,
      default: ""
    },
    borderColor: {
      type: String,
      default: "#000000"
    },
    borderWidth: {
      type: [Number, String],
      default: ""
    },
    colorList: {
      type: Array,
      default() {
        return [];
      }
    },
    level: {
      type: String,
      default: ""
    }
  };
  const MapPolyline = /* @__PURE__ */ defineSystemComponent({
    name: "MapPolyline",
    props: props$8,
    setup(props2) {
      var onMapReady = inject("onMapReady");
      var polyline;
      var polylineBorder;
      function removePolyline() {
        if (polyline) {
          polyline.setMap(null);
        }
        if (polylineBorder) {
          polylineBorder.setMap(null);
        }
      }
      onMapReady((map, maps2) => {
        function updatePolyline(option) {
          removePolyline();
          addPolyline(option);
        }
        function addPolyline(option) {
          var path = [];
          option.points.forEach((point) => {
            var pointPosition;
            if (getIsAMap()) {
              pointPosition = [point.longitude, point.latitude];
            } else if (getIsBMap()) {
              pointPosition = new maps2.Point(point.longitude, point.latitude);
            } else {
              pointPosition = new maps2.LatLng(point.latitude, point.longitude);
            }
            path.push(pointPosition);
          });
          var strokeWeight = Number(option.width) || 1;
          var {
            r: sr,
            g: sg,
            b: sb,
            a: sa
          } = hexToRgba(option.color);
          var {
            r: br,
            g: bg,
            b: bb,
            a: ba
          } = hexToRgba(option.borderColor);
          var polylineOptions = {
            map,
            clickable: false,
            path,
            strokeWeight,
            strokeColor: option.color || void 0,
            strokeDashStyle: option.dottedLine ? "dash" : "solid"
          };
          var borderWidth = Number(option.borderWidth) || 0;
          var polylineBorderOptions = {
            map,
            clickable: false,
            path,
            strokeWeight: strokeWeight + borderWidth * 2,
            strokeColor: option.borderColor || void 0,
            strokeDashStyle: option.dottedLine ? "dash" : "solid"
          };
          if ("Color" in maps2) {
            polylineOptions.strokeColor = new maps2.Color(sr, sg, sb, sa);
            polylineBorderOptions.strokeColor = new maps2.Color(br, bg, bb, ba);
          } else {
            polylineOptions.strokeColor = "rgb(".concat(sr, ", ").concat(sg, ", ").concat(sb, ")");
            polylineOptions.strokeOpacity = sa;
            polylineBorderOptions.strokeColor = "rgb(".concat(br, ", ").concat(bg, ", ").concat(bb, ")");
            polylineBorderOptions.strokeOpacity = ba;
          }
          if (borderWidth) {
            polylineBorder = new maps2.Polyline(polylineBorderOptions);
          }
          if (getIsBMap()) {
            polyline = new maps2.Polyline(polylineOptions.path, polylineOptions);
            map.addOverlay(polyline);
          } else {
            polyline = new maps2.Polyline(polylineOptions);
          }
        }
        addPolyline(props2);
        watch(props2, updatePolyline);
      });
      onUnmounted(removePolyline);
      return () => {
        return null;
      };
    }
  });
  var props$7 = {
    latitude: {
      type: [Number, String],
      require: true
    },
    longitude: {
      type: [Number, String],
      require: true
    },
    color: {
      type: String,
      default: "#000000"
    },
    fillColor: {
      type: String,
      default: "#00000000"
    },
    radius: {
      type: [Number, String],
      require: true
    },
    strokeWidth: {
      type: [Number, String],
      default: ""
    },
    level: {
      type: String,
      default: ""
    }
  };
  const MapCircle = /* @__PURE__ */ defineSystemComponent({
    name: "MapCircle",
    props: props$7,
    setup(props2) {
      var onMapReady = inject("onMapReady");
      var circle;
      function removeCircle() {
        if (circle) {
          circle.setMap(null);
        }
      }
      onMapReady((map, maps2) => {
        function updateCircle(option) {
          removeCircle();
          addCircle(option);
        }
        function addCircle(option) {
          var center = getIsAMap() || getIsBMap() ? [option.longitude, option.latitude] : new maps2.LatLng(option.latitude, option.longitude);
          var circleOptions = {
            map,
            center,
            clickable: false,
            radius: option.radius,
            strokeWeight: Number(option.strokeWidth) || 1,
            strokeDashStyle: "solid"
          };
          if (getIsBMap()) {
            circleOptions.strokeColor = option.color;
            circleOptions.fillColor = option.fillColor || "#000";
            circleOptions.fillOpacity = 1;
          } else {
            var {
              r: fr,
              g: fg,
              b: fb,
              a: fa
            } = hexToRgba(option.fillColor);
            var {
              r: sr,
              g: sg,
              b: sb,
              a: sa
            } = hexToRgba(option.color);
            if ("Color" in maps2) {
              circleOptions.fillColor = new maps2.Color(fr, fg, fb, fa);
              circleOptions.strokeColor = new maps2.Color(sr, sg, sb, sa);
            } else {
              circleOptions.fillColor = "rgb(".concat(fr, ", ").concat(fg, ", ").concat(fb, ")");
              circleOptions.fillOpacity = fa;
              circleOptions.strokeColor = "rgb(".concat(sr, ", ").concat(sg, ", ").concat(sb, ")");
              circleOptions.strokeOpacity = sa;
            }
          }
          if (getIsBMap()) {
            var pt = new maps2.Point(
              // @ts-expect-error
              circleOptions.center[0],
              // @ts-expect-error
              circleOptions.center[1]
            );
            circle = new maps2.Circle(pt, circleOptions.radius, circleOptions);
            map.addOverlay(circle);
          } else {
            circle = new maps2.Circle(circleOptions);
            if (getIsAMap()) {
              map.add(circle);
            }
          }
        }
        addCircle(props2);
        watch(props2, updateCircle);
      });
      onUnmounted(removeCircle);
      return () => {
        return null;
      };
    }
  });
  var props$6 = {
    id: {
      type: [Number, String],
      default: ""
    },
    position: {
      type: Object,
      required: true
    },
    iconPath: {
      type: String,
      required: true
    },
    clickable: {
      type: [Boolean, String],
      default: ""
    },
    trigger: {
      type: Function,
      required: true
    }
  };
  const MapControl = /* @__PURE__ */ defineSystemComponent({
    name: "MapControl",
    props: props$6,
    setup(props2) {
      var imgPath = computed(() => getRealPath(props2.iconPath));
      var positionStyle = computed(() => {
        var positionStyle2 = "top:".concat(props2.position.top || 0, "px;left:").concat(props2.position.left || 0, "px;");
        if (props2.position.width) {
          positionStyle2 += "width:".concat(props2.position.width, "px;");
        }
        if (props2.position.height) {
          positionStyle2 += "height:".concat(props2.position.height, "px;");
        }
        return positionStyle2;
      });
      var handleClick = ($event) => {
        if (props2.clickable) {
          props2.trigger("controltap", $event, {
            controlId: props2.id
          });
        }
      };
      return () => {
        return createVNode("div", {
          "class": "uni-map-control"
        }, [createVNode("img", {
          "src": imgPath.value,
          "style": positionStyle.value,
          "class": "uni-map-control-icon",
          "onClick": handleClick
        }, null, 12, ["src", "onClick"])]);
      };
    }
  });
  var anObject$1 = _anObject;
  var aFunction$1 = _aFunction;
  var SPECIES = _wksExports("species");
  var _speciesConstructor = function(O, D) {
    var C = anObject$1(O).constructor;
    var S;
    return C === void 0 || (S = anObject$1(C)[SPECIES]) == void 0 ? D : aFunction$1(S);
  };
  var _newPromiseCapability = {};
  var aFunction = _aFunction;
  function PromiseCapability(C) {
    var resolve, reject;
    this.promise = new C(function($$resolve, $$reject) {
      if (resolve !== void 0 || reject !== void 0)
        throw TypeError("Bad Promise constructor");
      resolve = $$resolve;
      reject = $$reject;
    });
    this.resolve = aFunction(resolve);
    this.reject = aFunction(reject);
  }
  _newPromiseCapability.f = function(C) {
    return new PromiseCapability(C);
  };
  var anObject = _anObject;
  var isObject = _isObject;
  var newPromiseCapability = _newPromiseCapability;
  var _promiseResolve = function(C, x) {
    anObject(C);
    if (isObject(x) && x.constructor === C)
      return x;
    var promiseCapability = newPromiseCapability.f(C);
    var resolve = promiseCapability.resolve;
    resolve(x);
    return promiseCapability.promise;
  };
  var $export = _export;
  var core = _coreExports;
  var global = _globalExports;
  var speciesConstructor = _speciesConstructor;
  var promiseResolve = _promiseResolve;
  $export($export.P + $export.R, "Promise", {
    "finally": function(onFinally) {
      var C = speciesConstructor(this, core.Promise || global.Promise);
      var isFunction2 = typeof onFinally == "function";
      return this.then(isFunction2 ? function(x) {
        return promiseResolve(C, onFinally()).then(function() {
          return x;
        });
      } : onFinally, isFunction2 ? function(e2) {
        return promiseResolve(C, onFinally()).then(function() {
          throw e2;
        });
      } : onFinally);
    }
  });
  function getLocation() {
    var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
    return new Promise((resolve, reject) => {
      UniViewJSBridge.invokeServiceMethod("getLocation", args, (res) => {
        if (res.latitude && res.longitude) {
          resolve(res);
        } else {
          reject(res && res.errMsg || "getLocation:fail");
        }
      });
    });
  }
  var CONTEXT_ID = "MAP_LOCATION";
  const MapLocation = /* @__PURE__ */ defineSystemComponent({
    name: "MapLocation",
    setup() {
      var state = reactive({
        latitude: 0,
        longitude: 0,
        rotate: 0
      });
      {
        var updateLocation = function() {
          getLocation({
            type: "gcj02",
            isHighAccuracy: true
          }).then((res) => {
            state.latitude = res.latitude;
            state.longitude = res.longitude;
          }).finally(() => {
            timer = setTimeout(updateLocation, 3e4);
          });
        }, removeLocation = function() {
          if (timer) {
            clearTimeout(timer);
          }
        };
        var onMapReady = inject("onMapReady");
        var timer;
        onMapReady(updateLocation);
        onUnmounted(removeLocation);
        var addMapChidlContext = inject("addMapChidlContext");
        var removeMapChidlContext = inject("removeMapChidlContext");
        var context = {
          id: CONTEXT_ID,
          state
        };
        addMapChidlContext(context);
        onUnmounted(() => removeMapChidlContext(context));
      }
      return () => {
        return state.latitude ? createVNode(MapMarker, mergeProps({
          "anchor": {
            x: 0.5,
            y: 0.5
          },
          "width": "44",
          "height": "44",
          "iconPath": ICON_PATH_ORIGIN
        }, state), null, 16, ["iconPath"]) : null;
      };
    }
  });
  const props$5 = {
    // 边框虚线，腾讯地图支持，google 高德 地图不支持，默认值为[0, 0] 为实线，非 [0, 0] 为虚线，H5 端无法像微信小程序一样控制虚线的间隔像素大小
    dashArray: {
      type: Array,
      default: () => [0, 0]
    },
    // 经纬度数组，[{latitude: 0, longitude: 0}]
    points: {
      type: Array,
      required: true
    },
    // 描边的宽度
    strokeWidth: {
      type: Number,
      default: 1
    },
    // 描边的颜色，十六进制
    strokeColor: {
      type: String,
      default: "#000000"
    },
    // 填充颜色，十六进制
    fillColor: {
      type: String,
      default: "#00000000"
    },
    // 设置多边形 Z 轴数值
    zIndex: {
      type: Number,
      default: 0
    }
  };
  const MapPolygon = /* @__PURE__ */ defineSystemComponent({
    name: "MapPolygon",
    props: props$5,
    setup(props2) {
      var polygonIns;
      var onMapReady = inject("onMapReady");
      onMapReady((map, maps2, trigger2) => {
        function drawPolygon() {
          var {
            points,
            strokeWidth,
            strokeColor,
            dashArray,
            fillColor,
            zIndex
          } = props2;
          var path = points.map((item) => {
            var {
              latitude,
              longitude
            } = item;
            if (getIsAMap()) {
              return [longitude, latitude];
            } else if (getIsBMap()) {
              return new maps2.Point(longitude, latitude);
            } else {
              return new maps2.LatLng(latitude, longitude);
            }
          });
          var {
            r: fcR,
            g: fcG,
            b: fcB,
            a: fcA
          } = hexToRgba(fillColor);
          var {
            r: scR,
            g: scG,
            b: scB,
            a: scA
          } = hexToRgba(strokeColor);
          var polygonOptions = {
            //多边形是否可点击。
            clickable: true,
            //鼠标在多边形内的光标样式。
            cursor: "crosshair",
            //多边形是否可编辑。
            editable: false,
            // 地图实例，即要显示多边形的地图
            // @ts-expect-error
            map,
            // 区域填充色
            fillColor: "",
            //多边形的路径，以经纬度坐标数组构成。
            path,
            // 区域边框
            strokeColor: "",
            //多边形的边框样式。实线是solid，虚线是dash。
            strokeDashStyle: dashArray.some((item) => item > 0) ? "dash" : "solid",
            //多边形的边框线宽。
            strokeWeight: strokeWidth,
            //多边形是否可见。
            visible: true,
            //多边形的zIndex值。
            zIndex
          };
          if (maps2.Color) {
            polygonOptions.fillColor = new maps2.Color(fcR, fcG, fcB, fcA);
            polygonOptions.strokeColor = new maps2.Color(scR, scG, scB, scA);
          } else {
            polygonOptions.fillColor = "rgb(".concat(fcR, ", ").concat(fcG, ", ").concat(fcB, ")");
            polygonOptions.fillOpacity = fcA;
            polygonOptions.strokeColor = "rgb(".concat(scR, ", ").concat(scG, ", ").concat(scB, ")");
            polygonOptions.strokeOpacity = scA;
          }
          if (polygonIns) {
            polygonIns.setOptions(polygonOptions);
            return;
          }
          if (getIsBMap()) {
            polygonIns = new maps2.Polygon(polygonOptions.path, polygonOptions);
            map.addOverlay(polygonIns);
          } else {
            polygonIns = new maps2.Polygon(polygonOptions);
          }
        }
        drawPolygon();
        watch(props2, drawPolygon);
      });
      onUnmounted(() => {
        polygonIns.setMap(null);
      });
      return () => null;
    }
  });
  var props$4 = {
    id: {
      type: String,
      default: ""
    },
    latitude: {
      type: [String, Number],
      default: 0
    },
    longitude: {
      type: [String, Number],
      default: 0
    },
    scale: {
      type: [String, Number],
      default: 16
    },
    markers: {
      type: Array,
      default() {
        return [];
      }
    },
    includePoints: {
      type: Array,
      default() {
        return [];
      }
    },
    polyline: {
      type: Array,
      default() {
        return [];
      }
    },
    circles: {
      type: Array,
      default() {
        return [];
      }
    },
    controls: {
      type: Array,
      default() {
        return [];
      }
    },
    showLocation: {
      type: [Boolean, String],
      default: false
    },
    libraries: {
      type: Array,
      default() {
        return [];
      }
    },
    polygons: {
      type: Array,
      default: () => []
    }
  };
  function getPoints(points) {
    var newPoints = [];
    if (isArray(points)) {
      points.forEach((point) => {
        if (point && point.latitude && point.longitude) {
          newPoints.push({
            latitude: point.latitude,
            longitude: point.longitude
          });
        }
      });
    }
    return newPoints;
  }
  function getAMapPosition(maps2, latitude, longitude) {
    return new maps2.LngLat(longitude, latitude);
  }
  function getBMapPosition(maps2, latitude, longitude) {
    return new maps2.Point(longitude, latitude);
  }
  function getGoogleOrQQMapPosition(maps2, latitude, longitude) {
    return new maps2.LatLng(latitude, longitude);
  }
  function getMapPosition(maps2, latitude, longitude) {
    if (getIsBMap()) {
      return getBMapPosition(maps2, latitude, longitude);
    } else if (getIsAMap()) {
      return getAMapPosition(maps2, latitude, longitude);
    } else {
      return getGoogleOrQQMapPosition(maps2, latitude, longitude);
    }
  }
  function getLat(latLng) {
    if ("getLat" in latLng) {
      return latLng.getLat();
    } else {
      if (getIsBMap()) {
        return latLng.lat;
      }
      return latLng.lat();
    }
  }
  function getLng(latLng) {
    if ("getLng" in latLng) {
      return latLng.getLng();
    } else {
      if (getIsBMap()) {
        return latLng.lng;
      }
      return latLng.lng();
    }
  }
  function useMap(props2, rootRef, emit2) {
    var trigger2 = useCustomEvent(rootRef, emit2);
    var mapRef = ref(null);
    var maps2;
    var map;
    var state = reactive({
      latitude: Number(props2.latitude),
      longitude: Number(props2.longitude),
      includePoints: getPoints(props2.includePoints)
    });
    var onMapReadyCallbacks = [];
    var isMapReady;
    function onMapReady(callback) {
      if (isMapReady) {
        callback(map, maps2, trigger2);
      } else {
        onMapReadyCallbacks.push(callback);
      }
    }
    function emitMapReady() {
      isMapReady = true;
      onMapReadyCallbacks.forEach((callback) => callback(map, maps2, trigger2));
      onMapReadyCallbacks.length = 0;
    }
    var isBoundsReady;
    var onBoundsReadyCallbacks = [];
    function onBoundsReady(callback) {
      if (isBoundsReady) {
        callback();
      } else {
        onMapReadyCallbacks.push(callback);
      }
    }
    var contexts = {};
    function addMapChidlContext(context) {
      contexts[context.id] = context;
    }
    function removeMapChidlContext(context) {
      delete contexts[context.id];
    }
    watch([() => props2.latitude, () => props2.longitude], (_ref) => {
      var [latitudeVlaue, longitudeVlaue] = _ref;
      var latitude = Number(latitudeVlaue);
      var longitude = Number(longitudeVlaue);
      if (latitude !== state.latitude || longitude !== state.longitude) {
        state.latitude = latitude;
        state.longitude = longitude;
        if (map) {
          var centerPosition = getMapPosition(maps2, state.latitude, state.longitude);
          map.setCenter(centerPosition);
        }
      }
    });
    watch(() => props2.includePoints, (points) => {
      state.includePoints = getPoints(points);
      if (isBoundsReady) {
        updateBounds();
      }
    }, {
      deep: true
    });
    function emitBoundsReady() {
      isBoundsReady = true;
      onBoundsReadyCallbacks.forEach((callback) => callback());
      onBoundsReadyCallbacks.length = 0;
    }
    function getMapInfo2() {
      var center = map.getCenter();
      return {
        scale: map.getZoom(),
        centerLocation: {
          latitude: getLat(center),
          longitude: getLng(center)
        }
      };
    }
    function updateCenter() {
      var centerPosition = getMapPosition(maps2, state.latitude, state.longitude);
      map.setCenter(centerPosition);
    }
    function updateBounds() {
      if (getIsAMap()) {
        var points = [];
        state.includePoints.forEach((point) => {
          points.push([point.longitude, point.latitude]);
        });
        var bounds = new maps2.Bounds(...points);
        map.setBounds(bounds);
      } else if (getIsBMap())
        ;
      else {
        var _bounds = new maps2.LatLngBounds();
        state.includePoints.forEach((_ref2) => {
          var {
            latitude,
            longitude
          } = _ref2;
          var latLng = new maps2.LatLng(latitude, longitude);
          _bounds.extend(latLng);
        });
        map.fitBounds(_bounds);
      }
    }
    function initMap() {
      var mapEl = mapRef.value;
      var center = getMapPosition(maps2, state.latitude, state.longitude);
      var event = maps2.event || maps2.Event;
      var map2 = new maps2.Map(mapEl, {
        center,
        zoom: Number(props2.scale),
        // scrollwheel: false,
        disableDoubleClickZoom: true,
        mapTypeControl: false,
        zoomControl: false,
        scaleControl: false,
        panControl: false,
        fullscreenControl: false,
        streetViewControl: false,
        keyboardShortcuts: false,
        minZoom: 5,
        maxZoom: 18,
        draggable: true
      });
      if (getIsBMap()) {
        map2.centerAndZoom(center, Number(props2.scale));
        map2.enableScrollWheelZoom();
        map2._printLog && map2._printLog("uniapp");
      }
      watch(() => props2.scale, (scale) => {
        map2.setZoom(Number(scale) || 16);
      });
      onBoundsReady(() => {
        if (state.includePoints.length) {
          updateBounds();
          updateCenter();
        }
      });
      if (getIsBMap()) {
        map2.addEventListener("click", () => {
          trigger2("tap", {}, {});
          trigger2("click", {}, {});
        });
        map2.addEventListener("dragstart", () => {
          trigger2("regionchange", {}, {
            type: "begin",
            causedBy: "gesture"
          });
        });
        map2.addEventListener("dragend", () => {
          trigger2("regionchange", {}, extend({
            type: "end",
            causedBy: "drag"
          }, getMapInfo2()));
        });
      } else {
        var boundsChangedEvent = event.addListener(map2, "bounds_changed", () => {
          boundsChangedEvent.remove();
          emitBoundsReady();
        });
        event.addListener(map2, "click", () => {
          trigger2("tap", {}, {});
          trigger2("click", {}, {});
        });
        event.addListener(map2, "dragstart", () => {
          trigger2("regionchange", {}, {
            type: "begin",
            causedBy: "gesture"
          });
        });
        event.addListener(map2, "dragend", () => {
          trigger2("regionchange", {}, extend({
            type: "end",
            causedBy: "drag"
          }, getMapInfo2()));
        });
        var zoomChangedCallback = () => {
          emit2("update:scale", map2.getZoom());
          trigger2("regionchange", {}, extend({
            type: "end",
            causedBy: "scale"
          }, getMapInfo2()));
        };
        event.addListener(map2, "zoom_changed", zoomChangedCallback);
        event.addListener(map2, "zoomend", zoomChangedCallback);
        event.addListener(map2, "center_changed", () => {
          var center2 = map2.getCenter();
          var latitude = getLat(center2);
          var longitude = getLng(center2);
          emit2("update:latitude", latitude);
          emit2("update:longitude", longitude);
        });
      }
      return map2;
    }
    try {
      var id2 = useContextInfo();
      useSubscribe(function(type) {
        var data = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
        var resolve = arguments.length > 2 ? arguments[2] : void 0;
        switch (type) {
          case "getCenterLocation":
            onMapReady(() => {
              var center = map.getCenter();
              resolve({
                latitude: getLat(center),
                longitude: getLng(center),
                errMsg: "".concat(type, ":ok")
              });
            });
            break;
          case "moveToLocation":
            {
              var latitude = Number(data.latitude);
              var longitude = Number(data.longitude);
              if (!latitude || !longitude) {
                var context = contexts[CONTEXT_ID];
                if (context) {
                  latitude = context.state.latitude;
                  longitude = context.state.longitude;
                }
              }
              if (latitude && longitude) {
                state.latitude = latitude;
                state.longitude = longitude;
                if (map) {
                  var centerPosition = getMapPosition(maps2, latitude, longitude);
                  map.setCenter(centerPosition);
                }
                onMapReady(() => {
                  resolve({
                    errMsg: "".concat(type, ":ok")
                  });
                });
              } else {
                resolve({
                  errMsg: "".concat(type, ":fail")
                });
              }
            }
            break;
          case "translateMarker":
            onMapReady(() => {
              var context2 = contexts[data.markerId];
              if (context2) {
                try {
                  context2.translate(data);
                } catch (error) {
                  resolve({
                    errMsg: "".concat(type, ":fail ").concat(error.message)
                  });
                  return;
                }
                resolve({
                  errMsg: "".concat(type, ":ok")
                });
              } else {
                resolve({
                  errMsg: "".concat(type, ":fail not found")
                });
              }
            });
            break;
          case "includePoints":
            state.includePoints = getPoints(data.includePoints);
            if (isBoundsReady || getIsAMap()) {
              updateBounds();
            }
            onBoundsReady(() => {
              resolve({
                errMsg: "".concat(type, ":ok")
              });
            });
            break;
          case "getRegion":
            onBoundsReady(() => {
              var latLngBounds = map.getBounds();
              var southwest = latLngBounds.getSouthWest();
              var northeast = latLngBounds.getNorthEast();
              resolve({
                southwest: {
                  latitude: getLat(southwest),
                  longitude: getLng(southwest)
                },
                northeast: {
                  latitude: getLat(northeast),
                  longitude: getLng(northeast)
                },
                errMsg: "".concat(type, ":ok")
              });
            });
            break;
          case "getScale":
            onMapReady(() => {
              resolve({
                scale: map.getZoom(),
                errMsg: "".concat(type, ":ok")
              });
            });
            break;
        }
      }, id2, true);
    } catch (error) {
    }
    onMounted(() => {
      loadMaps(props2.libraries, (result) => {
        maps2 = result;
        map = initMap();
        emitMapReady();
        trigger2("updated", {}, {});
      });
    });
    provide("onMapReady", onMapReady);
    provide("addMapChidlContext", addMapChidlContext);
    provide("removeMapChidlContext", removeMapChidlContext);
    return {
      state,
      mapRef,
      trigger: trigger2
    };
  }
  const Map$1 = /* @__PURE__ */ defineBuiltInComponent({
    name: "Map",
    props: props$4,
    emits: ["markertap", "labeltap", "callouttap", "controltap", "regionchange", "tap", "click", "updated", "update:scale", "update:latitude", "update:longitude"],
    setup(props2, _ref3) {
      var {
        emit: emit2,
        slots
      } = _ref3;
      var rootRef = ref(null);
      var {
        mapRef,
        trigger: trigger2
      } = useMap(props2, rootRef, emit2);
      return () => {
        return createVNode("uni-map", {
          "ref": rootRef,
          "id": props2.id
        }, [createVNode("div", {
          "ref": mapRef,
          "style": "width: 100%; height: 100%; position: relative; overflow: hidden"
        }, null, 512), props2.markers.map((item) => createVNode(MapMarker, mergeProps({
          "key": item.id
        }, item), null, 16)), props2.polyline.map((item) => createVNode(MapPolyline, item, null, 16)), props2.circles.map((item) => createVNode(MapCircle, item, null, 16)), props2.controls.map((item) => createVNode(MapControl, mergeProps(item, {
          "trigger": trigger2
        }), null, 16, ["trigger"])), props2.showLocation && createVNode(MapLocation, null, null), props2.polygons.map((item) => createVNode(MapPolygon, item, null, 16)), createVNode("div", {
          "style": "position: absolute;top: 0;width: 100%;height: 100%;overflow: hidden;pointer-events: none;"
        }, [slots.default && slots.default()])], 8, ["id"]);
      };
    }
  });
  class UniMap extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-map", Map$1, parentNodeId, refNodeId, nodeJson, ".uni-map-slot");
    }
  }
  function _isSlot(s) {
    return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
  }
  var props$3 = {
    latitude: {
      type: Number
    },
    longitude: {
      type: Number
    },
    keyword: {
      type: String,
      default: ""
    }
  };
  function distance(distance2) {
    if (distance2 > 100) {
      return "".concat(distance2 > 1e3 ? (distance2 / 1e3).toFixed(1) + "k" : distance2.toFixed(0), "m | ");
    } else if (distance2 > 0) {
      return "<100m | ";
    } else {
      return "";
    }
  }
  function useState$1(props2) {
    var state = reactive({
      latitude: 0,
      longitude: 0,
      keyword: "",
      searching: false
    });
    if (props2.keyword) {
      state.keyword = props2.keyword;
      state.searching = true;
    }
    function updatePosition() {
      if (props2.latitude && props2.longitude) {
        state.latitude = props2.latitude;
        state.longitude = props2.longitude;
      }
    }
    watch([() => props2.latitude, () => props2.longitude], updatePosition);
    updatePosition();
    return state;
  }
  function useList(state) {
    var list2 = reactive([]);
    var selectedIndexRef = ref(-1);
    var selectedRef = computed(() => list2[selectedIndexRef.value]);
    var listState = reactive({
      loading: true,
      // google map default
      pageSize: 20,
      pageIndex: 1,
      hasNextPage: true,
      nextPage: null,
      selectedIndex: selectedIndexRef,
      selected: selectedRef
    });
    var boundaryRef = computed(() => "nearby(".concat(state.latitude, ",").concat(state.longitude, ",1000,1)"));
    function pushData(array) {
      array.forEach((item) => {
        list2.push({
          name: item.title || item.name,
          address: item.address,
          distance: item._distance || item.distance,
          latitude: item.location.lat,
          longitude: item.location.lng
        });
      });
    }
    function getList() {
      return _getList.apply(this, arguments);
    }
    function _getList() {
      _getList = _asyncToGenerator(function* () {
        listState.loading = true;
        var mapInfo2 = yield getMapInfo();
        if (mapInfo2.type === MapType.GOOGLE) {
          if (listState.pageIndex > 1 && listState.nextPage) {
            listState.nextPage();
            return;
          }
          var service = new google.maps.places.PlacesService(document.createElement("div"));
          service[state.keyword ? "textSearch" : "nearbySearch"]({
            location: {
              lat: state.latitude,
              lng: state.longitude
            },
            query: state.keyword,
            radius: 5e3
          }, (results, state2, page) => {
            listState.loading = false;
            if (results && results.length) {
              results.forEach((item) => {
                list2.push({
                  name: item.name || "",
                  address: item.vicinity || item.formatted_address || "",
                  distance: 0,
                  latitude: item.geometry.location.lat(),
                  longitude: item.geometry.location.lng()
                });
              });
            }
            if (page) {
              if (!page.hasNextPage) {
                listState.hasNextPage = false;
              } else {
                listState.nextPage = () => {
                  page.nextPage();
                };
              }
            }
          });
        } else if (mapInfo2.type === MapType.QQ) {
          var url = state.keyword ? "https://apis.map.qq.com/ws/place/v1/search?output=jsonp&key=".concat(mapInfo2.key, "&boundary=").concat(boundaryRef.value, "&keyword=").concat(state.keyword, "&page_size=").concat(listState.pageSize, "&page_index=").concat(listState.pageIndex) : "https://apis.map.qq.com/ws/geocoder/v1/?output=jsonp&key=".concat(mapInfo2.key, "&location=").concat(state.latitude, ",").concat(state.longitude, "&get_poi=1&poi_options=page_size=").concat(listState.pageSize, ";page_index=").concat(listState.pageIndex);
          getJSONP(url, {
            callback: "callback"
          }, (res) => {
            listState.loading = false;
            if (state.keyword && "data" in res && res.data.length) {
              pushData(res.data);
            } else if ("result" in res) {
              var result = res.result;
              if (result.pois) {
                pushData(result.pois);
              }
            }
            if (list2.length === listState.pageSize * listState.pageIndex) {
              listState.hasNextPage = false;
            }
          }, () => {
            listState.loading = false;
          });
        } else if (mapInfo2.type === MapType.AMAP) {
          window.AMap.plugin("AMap.PlaceSearch", function() {
            var placeSearch = new window.AMap.PlaceSearch({
              city: "全国",
              pageSize: 10,
              pageIndex: listState.pageIndex
            });
            var keyword = state.keyword || "";
            var radius = state.keyword ? 5e4 : 5e3;
            placeSearch.searchNearBy(keyword, [state.longitude, state.latitude], radius, function(status, result) {
              if (status === "error") {
                console.error(result);
              } else if (status === "no_data") {
                listState.hasNextPage = false;
              } else {
                pushData(result.poiList.pois);
              }
            });
            listState.loading = false;
          });
        }
      });
      return _getList.apply(this, arguments);
    }
    function loadMore() {
      if (!listState.loading && listState.hasNextPage) {
        listState.pageIndex++;
        getList();
      }
    }
    function reset() {
      listState.selectedIndex = -1;
      listState.pageIndex = 1;
      listState.hasNextPage = true;
      listState.nextPage = null;
      list2.splice(0, list2.length);
    }
    return {
      listState,
      list: list2,
      loadMore,
      reset,
      getList
    };
  }
  const LocationPicker = /* @__PURE__ */ defineSystemComponent({
    name: "LoctaionPicker",
    props: props$3,
    emits: ["close"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      initI18nChooseLocationMsgsOnce();
      var {
        t: t2
      } = useI18n();
      var state = useState$1(props2);
      var {
        list: list2,
        listState,
        loadMore,
        reset,
        getList
      } = useList(state);
      var search = debounce(() => {
        reset();
        if (state.keyword) {
          getList();
        }
      }, 1e3, {
        setTimeout,
        clearTimeout
      });
      watch(() => state.searching, (val) => {
        reset();
        if (!val) {
          getList();
        }
      });
      function onInput(event) {
        state.keyword = event.detail.value;
        search();
      }
      function onChoose(e2) {
        if (!listState.selected) {
          return;
        }
        var event = new CustomEvent("close", {
          detail: extend({}, listState.selected)
        });
        trigger2("close", event, event.detail);
      }
      function onBack(e2) {
        var event = new CustomEvent("close", {
          detail: {}
        });
        trigger2("close", event, event.detail);
      }
      function onRegionChange(event) {
        var centerLocation = event.detail.centerLocation;
        if (centerLocation) {
          move(centerLocation);
        }
      }
      function moveToLocation() {
        getLocation({
          type: "gcj02",
          isHighAccuracy: true
        }).then((_ref2) => {
          var {
            latitude,
            longitude
          } = _ref2;
          move({
            latitude,
            longitude
          });
        });
      }
      function move(_ref3) {
        var {
          latitude,
          longitude
        } = _ref3;
        state.latitude = latitude;
        state.longitude = longitude;
        reset();
        getList();
      }
      if (!state.latitude || !state.longitude) {
        moveToLocation();
      }
      return () => {
        var content = list2.map((item, index2) => {
          return createVNode("div", {
            "key": index2,
            "class": {
              "list-item": true,
              selected: listState.selectedIndex === index2
            },
            "onClick": () => {
              listState.selectedIndex = index2;
              state.latitude = item.latitude;
              state.longitude = item.longitude;
            }
          }, [createSvgIconVNode(ICON_PATH_CONFIRM, "#007aff", 24), createVNode("div", {
            "class": "list-item-title"
          }, [item.name]), createVNode("div", {
            "class": "list-item-detail"
          }, [distance(item.distance), item.address])], 10, ["onClick"]);
        });
        if (listState.loading) {
          content.unshift(createVNode("div", {
            "class": "list-loading"
          }, [createVNode("i", {
            "class": "uni-loading"
          }, null)]));
        }
        return createVNode("div", {
          "class": "uni-system-choose-location",
          "ref": rootRef
        }, [createVNode(Map$1, {
          "latitude": state.latitude,
          "longitude": state.longitude,
          "class": "map",
          "show-location": true,
          "libraries": ["places"],
          "onUpdated": getList,
          "onRegionchange": onRegionChange
        }, {
          default: () => [createVNode("div", {
            "class": "map-location",
            "style": 'background-image: url("'.concat(ICON_PATH_TARGET, '")')
          }, null), createVNode("div", {
            "class": "map-move",
            "onClick": moveToLocation
          }, [createSvgIconVNode(ICON_PATH_LOCTAION, "#000000", 24)], 8, ["onClick"])],
          _: 1
        }, 8, ["latitude", "longitude", "show-location", "onUpdated", "onRegionchange"]), createVNode("div", {
          "class": "nav"
        }, [createVNode("div", {
          "class": "nav-btn back",
          "onClick": onBack
        }, [createSvgIconVNode(ICON_PATH_CLOSE, "#ffffff", 26)], 8, ["onClick"]), createVNode("div", {
          "class": {
            "nav-btn": true,
            confirm: true,
            disable: !listState.selected
          },
          "onClick": onChoose
        }, [createSvgIconVNode(ICON_PATH_CONFIRM, "#ffffff", 26)], 10, ["onClick"])]), createVNode("div", {
          "class": "menu"
        }, [createVNode("div", {
          "class": "search"
        }, [createVNode(Input, {
          "value": state.keyword,
          "class": "search-input",
          "placeholder": t2("uni.chooseLocation.search"),
          "onFocus": () => state.searching = true,
          "onInput": onInput
        }, null, 8, ["value", "placeholder", "onFocus", "onInput"]), state.searching && createVNode("div", {
          "class": "search-btn",
          "onClick": () => {
            state.searching = false;
            state.keyword = "";
          }
        }, [t2("uni.chooseLocation.cancel")], 8, ["onClick"])]), createVNode(ScrollView, {
          "scroll-y": true,
          "class": "list",
          "onScrolltolower": loadMore
        }, _isSlot(content) ? content : {
          default: () => [content],
          _: 2
        }, 8, ["scroll-y", "onScrolltolower"])])], 512);
      };
    }
  });
  class UniLocationPicker extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-location-picker", LocationPicker, parentNodeId, refNodeId, nodeJson);
    }
  }
  var ICON_PATH_NAV = "M28 17c-6.49396875 0-12.13721875 2.57040625-15 6.34840625V5.4105l6.29859375 6.29859375c0.387875 0.387875 1.02259375 0.387875 1.4105 0 0.387875-0.387875 0.387875-1.02259375 0-1.4105L12.77853125 2.36803125a0.9978125 0.9978125 0 0 0-0.0694375-0.077125c-0.1944375-0.1944375-0.45090625-0.291375-0.70721875-0.290875l-0.00184375-0.0000625-0.00184375 0.0000625c-0.2563125-0.0005-0.51278125 0.09640625-0.70721875 0.290875a0.9978125 0.9978125 0 0 0-0.0694375 0.077125l-7.930625 7.9305625c-0.387875 0.387875-0.387875 1.02259375 0 1.4105 0.387875 0.387875 1.02259375 0.387875 1.4105 0L11 5.4105V29c0 0.55 0.45 1 1 1s1-0.45 1-1c0-5.52284375 6.71571875-10 15-10 0.55228125 0 1-0.44771875 1-1 0-0.55228125-0.44771875-1-1-1z";
  var props$2 = {
    latitude: {
      type: Number
    },
    longitude: {
      type: Number
    },
    scale: {
      type: Number,
      default: 18
    },
    name: {
      type: String,
      default: ""
    },
    address: {
      type: String,
      default: ""
    },
    showNav: {
      type: Boolean,
      default: false
    }
  };
  function useState(props2) {
    var state = reactive({
      center: {
        latitude: 0,
        longitude: 0
      },
      marker: {
        id: 1,
        latitude: 0,
        longitude: 0,
        iconPath: ICON_PATH_TARGET,
        width: 32,
        height: 52
      },
      location: {
        id: 2,
        latitude: 0,
        longitude: 0,
        iconPath: ICON_PATH_ORIGIN,
        width: 44,
        height: 44
      }
    });
    function updatePosition() {
      if (props2.latitude && props2.longitude) {
        state.center.latitude = props2.latitude;
        state.center.longitude = props2.longitude;
        state.marker.latitude = props2.latitude;
        state.marker.longitude = props2.longitude;
      }
    }
    watch([() => props2.latitude, () => props2.longitude], updatePosition);
    updatePosition();
    return state;
  }
  const LocationView = /* @__PURE__ */ defineSystemComponent({
    name: "LocationView",
    props: props$2,
    emits: ["close", "navChange"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      var state = useState(props2);
      getLocation({
        type: "gcj02",
        isHighAccuracy: true
      }).then((_ref2) => {
        var {
          latitude,
          longitude
        } = _ref2;
        state.location.latitude = latitude;
        state.location.longitude = longitude;
      });
      function onRegionChange(event) {
        var centerLocation = event.detail.centerLocation;
        if (centerLocation) {
          state.center.latitude = centerLocation.latitude;
          state.center.longitude = centerLocation.longitude;
        }
      }
      var navUrl = ref("");
      function nav() {
        return _nav.apply(this, arguments);
      }
      function _nav() {
        _nav = _asyncToGenerator(function* () {
          var mapInfo2 = yield getMapInfo();
          var url = "";
          if (mapInfo2.type === MapType.GOOGLE) {
            var origin = state.location.latitude ? "&origin=".concat(state.location.latitude, "%2C").concat(state.location.longitude) : "";
            url = "https://www.google.com/maps/dir/?api=1".concat(origin, "&destination=").concat(props2.latitude, "%2C").concat(props2.longitude);
          } else if (mapInfo2.type === MapType.QQ) {
            var fromcoord = state.location.latitude ? "&fromcoord=".concat(state.location.latitude, "%2C").concat(state.location.longitude, "&from=").concat(encodeURIComponent("我的位置")) : "";
            url = "https://apis.map.qq.com/uri/v1/routeplan?type=drive".concat(fromcoord, "&tocoord=").concat(props2.latitude, "%2C").concat(props2.longitude, "&to=").concat(encodeURIComponent(props2.name || "目的地"), "&ref=").concat(mapInfo2.key);
          } else if (mapInfo2.type === MapType.AMAP) {
            var from = state.location.latitude ? "from=".concat(state.location.longitude, ",").concat(state.location.latitude, ",").concat(encodeURIComponent("我的位置"), "&") : "";
            url = "https://uri.amap.com/navigation?".concat(from, "to=").concat(props2.longitude, ",").concat(props2.latitude, ",").concat(encodeURIComponent(props2.name || "目的地"));
          }
          navUrl.value = url;
          navChange(true);
        });
        return _nav.apply(this, arguments);
      }
      function navChange(showNav) {
        var event = new CustomEvent("navChange", {});
        trigger2("navChange", event, {
          showNav
        });
      }
      function back(e2) {
        var event = new CustomEvent("close", {});
        trigger2("close", event, event.detail);
      }
      function backNav() {
        navChange(false);
        navUrl.value = "";
      }
      function setCenter(_ref3) {
        var {
          latitude,
          longitude
        } = _ref3;
        state.center.latitude = latitude;
        state.center.longitude = longitude;
      }
      return () => {
        return createVNode("div", {
          "class": "uni-system-open-location",
          "ref": rootRef
        }, [createVNode(Map$1, {
          "latitude": state.center.latitude,
          "longitude": state.center.longitude,
          "class": "map",
          "markers": [state.marker, state.location],
          "onRegionchange": onRegionChange
        }, {
          default: () => [createVNode("div", {
            "class": "map-move",
            "onClick": () => setCenter(state.location)
          }, [createSvgIconVNode(ICON_PATH_LOCTAION, "#000000", 24)], 8, ["onClick"])]
        }, 8, ["latitude", "longitude", "markers", "onRegionchange"]), createVNode("div", {
          "class": "info"
        }, [createVNode("div", {
          "class": "name",
          "onClick": () => setCenter(state.marker)
        }, [props2.name], 8, ["onClick"]), createVNode("div", {
          "class": "address",
          "onClick": () => setCenter(state.marker)
        }, [props2.address], 8, ["onClick"]), createVNode("div", {
          "class": "nav",
          "onClick": nav
        }, [createSvgIconVNode(ICON_PATH_NAV, "#ffffff", 26)], 8, ["onClick"])]), createVNode("div", {
          "class": "nav-btn-back",
          "onClick": back
        }, [createSvgIconVNode(ICON_PATH_BACK, "#ffffff", 26)], 8, ["onClick"]), withDirectives(createVNode("div", {
          "class": "nav-view"
        }, [createVNode("div", {
          "class": "nav-view-top-placeholder"
        }, null), createVNode("iframe", {
          "class": "nav-view-frame",
          "src": navUrl.value,
          "frameborder": "0",
          "allow": "geolocation"
        }, null, 8, ["src"]), createVNode("div", {
          "class": "nav-btn-back",
          "onClick": backNav
        }, [createSvgIconVNode(ICON_PATH_BACK, "#ffffff", 26)], 8, ["onClick"])], 512), [[vShow, props2.showNav]])], 512);
      };
    }
  });
  class UniLocationView extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-location-view", LocationView, parentNodeId, refNodeId, nodeJson);
    }
  }
  const CoverImage = /* @__PURE__ */ defineBuiltInComponent({
    name: "CoverImage",
    compatConfig: {
      MODE: 3
    },
    props: {
      src: {
        type: String,
        default: ""
      }
    },
    emits: ["load", "error"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var root = ref(null);
      var trigger2 = useCustomEvent(root, emit2);
      function load($event) {
        trigger2("load", $event);
      }
      function error($event) {
        trigger2("error", $event);
      }
      return () => {
        var {
          src
        } = props2;
        return createVNode("uni-cover-image", {
          "ref": root,
          "src": src
        }, [createVNode("div", {
          "class": "uni-cover-image"
        }, [src ? createVNode("img", {
          "src": getRealPath(src),
          "onLoad": load,
          "onError": error
        }, null, 40, ["src", "onLoad", "onError"]) : null])], 8, ["src"]);
      };
    }
  });
  class UniCoverImage extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-cover-image", CoverImage, parentNodeId, refNodeId, nodeJson);
    }
  }
  var props$1 = {
    scrollTop: {
      type: [String, Number],
      default: 0
    }
  };
  const CoverView = /* @__PURE__ */ defineBuiltInComponent({
    name: "CoverView",
    compatConfig: {
      MODE: 3
    },
    props: props$1,
    setup(props2, _ref) {
      var {
        slots
      } = _ref;
      var root = ref(null);
      var content = ref(null);
      watch(() => props2.scrollTop, (val) => {
        setScrollTop(val);
      });
      function setScrollTop(val) {
        var _content = content.value;
        if (getComputedStyle(_content).overflowY === "scroll") {
          _content.scrollTop = _upx2pxNum(val);
        }
      }
      function _upx2pxNum(val) {
        var _val = String(val);
        if (/\d+[ur]px$/i.test(_val)) {
          _val.replace(/\d+[ur]px$/i, (text2) => {
            return String(uni.upx2px(parseFloat(text2)));
          });
        }
        return parseFloat(_val) || 0;
      }
      onMounted(() => {
        setScrollTop(props2.scrollTop);
      });
      return () => {
        return createVNode("uni-cover-view", {
          "scroll-top": props2.scrollTop,
          "ref": root
        }, [createVNode("div", {
          "ref": content,
          "class": "uni-cover-view"
        }, [slots.default && slots.default()], 512)], 8, ["scroll-top"]);
      };
    }
  });
  class UniCoverView extends UniContainerComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-cover-view", CoverView, parentNodeId, refNodeId, nodeJson, ".uni-cover-view");
    }
  }
  class UniLivePlayer extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-live-player", Video, parentNodeId, refNodeId, nodeJson);
    }
  }
  var props = {
    adpid: {
      type: String,
      default: ""
    },
    disabled: {
      type: [Boolean, String],
      default: false
    }
  };
  const Ad = /* @__PURE__ */ defineBuiltInComponent({
    name: "Ad",
    props,
    emits: ["load", "close", "error"],
    setup(props2, _ref) {
      var {
        emit: emit2
      } = _ref;
      var rootRef = ref(null);
      var embedRef = ref(null);
      var trigger2 = useCustomEvent(rootRef, emit2);
      function onLoad(event) {
        trigger2("load", event, event.detail);
      }
      function onClose(event) {
        trigger2("close", event, event.detail);
      }
      function onError(event) {
        trigger2("error", event, event.detail);
      }
      function onResize(event) {
      }
      return () => createVNode("uni-ad", {
        "ref": rootRef
      }, [createVNode(Embed, {
        "ref": embedRef,
        "tag": "ad",
        "options": props2,
        "onLoad": onLoad,
        "onClose": onClose,
        "onError": onError,
        "onResize": onResize
      }, null, 8, ["options", "onLoad", "onClose", "onError", "onResize"])], 512);
    }
  });
  class UniAd extends UniComponent {
    constructor(id2, parentNodeId, refNodeId, nodeJson) {
      super(id2, "uni-ad", Ad, parentNodeId, refNodeId, nodeJson);
    }
  }
  var BuiltInComponents = {
    "#text": UniTextNode,
    "#comment": UniComment,
    VIEW: UniViewElement,
    BUTTON: UniButton,
    IMAGE: UniImage,
    TEXT: UniTextElement,
    NAVIGATOR: UniNavigator,
    "RICH-TEXT": UniRichText,
    PROGRESS: UniProgress,
    LABEL: UniLabel,
    CHECKBOX: UniCheckbox,
    "CHECKBOX-GROUP": UniCheckboxGroup,
    RADIO: UniRadio,
    "RADIO-GROUP": UniRadioGroup,
    SLIDER: UniSlider,
    SWITCH: UniSwitch,
    INPUT: UniInput,
    TEXTAREA: UniTextarea,
    FORM: UniForm,
    EDITOR: UniEditor,
    "PICKER-VIEW": UniPickerView,
    "PICKER-VIEW-COLUMN": UniPickerViewColumn,
    "SCROLL-VIEW": UniScrollView,
    SWIPER: UniSwiper,
    "SWIPER-ITEM": UniSwiperItem,
    "MOVABLE-AREA": UniMovableArea,
    "MOVABLE-VIEW": UniMovableView,
    ICON: UniIcon,
    "WEB-VIEW": UniWebView,
    CANVAS: UniCanvas,
    VIDEO: UniVideo,
    PICKER: UniPicker,
    AD: UniAd,
    MAP: UniMap,
    "LOCATION-PICKER": UniLocationPicker,
    "LOCATION-VIEW": UniLocationView,
    "COVER-IMAGE": UniCoverImage,
    "COVER-VIEW": UniCoverView,
    "LIVE-PLAYER": UniLivePlayer
  };
  function createElement(id2, tag, parentNodeId, refNodeId) {
    var nodeJson = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : {};
    var element;
    if (id2 === 0) {
      element = new UniNode(id2, tag, parentNodeId, document.createElement(tag));
    } else {
      var Component = BuiltInComponents[tag];
      if (Component) {
        element = new Component(id2, parentNodeId, refNodeId, nodeJson);
      } else {
        element = new UniElement(id2, document.createElement(tag), parentNodeId, refNodeId, nodeJson);
      }
    }
    setElement(id2, element);
    return element;
  }
  var pageReadyCallbacks = [];
  var isPageReady = false;
  function onPageReady(callback) {
    if (isPageReady) {
      return callback();
    }
    pageReadyCallbacks.push(callback);
  }
  function setPageReady() {
    isPageReady = true;
    pageReadyCallbacks.forEach((fn) => {
      try {
        fn();
      } catch (e2) {
        console.error(e2);
      }
    });
    pageReadyCallbacks.length = 0;
  }
  function onPageCreated() {
  }
  function onPageCreate(_ref) {
    var {
      css,
      route,
      platform,
      pixelRatio: pixelRatio2,
      windowWidth,
      disableScroll,
      // 因为组合式API的提供，不再在create时初始化，而是在监听后，主动通知
      // onPageScroll,
      // onPageReachBottom,
      // onReachBottomDistance,
      statusbarHeight,
      windowTop,
      windowBottom,
      nvueFlexDirection
    } = _ref;
    initPageInfo(route);
    initSystemInfo(platform, pixelRatio2, windowWidth);
    initPageElement();
    var pageId = plus.webview.currentWebview().id;
    window.__id__ = pageId;
    document.title = "".concat(route, "[").concat(pageId, "]");
    initCssVar(statusbarHeight, windowTop, windowBottom);
    if (disableScroll) {
      document.addEventListener("touchmove", disableScrollListener);
    }
    if (nvueFlexDirection) {
      initPageNVueCss(nvueFlexDirection);
    }
    if (css) {
      initPageCss(route);
    } else {
      setPageReady();
    }
  }
  function initPageInfo(route) {
    window.__PAGE_INFO__ = {
      route
    };
  }
  function initSystemInfo(platform, pixelRatio2, windowWidth) {
    window.__SYSTEM_INFO__ = {
      platform,
      pixelRatio: pixelRatio2,
      windowWidth
    };
  }
  function initPageElement() {
    createElement(0, "div", -1, -1).$ = document.getElementById("app");
  }
  function initPageCss(route) {
    var element = document.createElement("link");
    element.type = "text/css";
    element.rel = "stylesheet";
    element.href = route + ".css";
    element.onload = setPageReady;
    element.onerror = setPageReady;
    document.head.appendChild(element);
  }
  function initCssVar(statusbarHeight, windowTop, windowBottom) {
    var cssVars = {
      "--window-left": "0px",
      "--window-right": "0px",
      "--window-top": windowTop + "px",
      "--window-bottom": windowBottom + "px",
      "--status-bar-height": statusbarHeight + "px"
    };
    updateCssVar(cssVars);
  }
  var isPageScrollInited = false;
  function initPageScroll(onReachBottomDistance) {
    if (isPageScrollInited) {
      return;
    }
    isPageScrollInited = true;
    var opts = {
      onReachBottomDistance,
      onPageScroll(scrollTop) {
        UniViewJSBridge.publishHandler(ON_PAGE_SCROLL, {
          scrollTop
        });
      },
      onReachBottom() {
        UniViewJSBridge.publishHandler(ON_REACH_BOTTOM);
      }
    };
    requestAnimationFrame(() => document.addEventListener("scroll", createScrollListener(opts)));
  }
  function pageScrollTo(_ref2, publish) {
    var {
      scrollTop,
      selector,
      duration
    } = _ref2;
    scrollTo(selector || scrollTop || 0, duration);
    publish();
  }
  function initPageNVueCss(nvueFlexDirection) {
    var element = document.createElement("style");
    element.innerHTML = nvueCss(nvueFlexDirection);
    document.head.appendChild(element);
  }
  function nvueCss(nvueFlexDirection) {
    return "\nuni-view,\nuni-label,\nuni-swiper-item,\nuni-scroll-view {\n  display: flex;\n  flex-shrink: 0;\n  flex-grow: 0;\n  flex-basis: auto;\n  align-items: stretch;\n  align-content: flex-start;\n}\n\nuni-button {\n  margin: 0;\n}\n\nuni-view,\nuni-label,\nuni-swiper-item {\n  flex-direction: ".concat(nvueFlexDirection, ";\n}\n\nuni-view,\nuni-image,\nuni-input,\nuni-scroll-view,\nuni-swiper,\nuni-swiper-item,\nuni-text,\nuni-textarea,\nuni-video {\n  position: relative;\n  border: 0px solid #000000;\n  box-sizing: border-box;\n}\n\nuni-swiper-item {\n  position: absolute;\n}\n");
  }
  function onVdSync(actions) {
    var firstAction = actions[0];
    if (firstAction[0] === ACTION_TYPE_PAGE_CREATE) {
      onPageCreateSync(firstAction);
    } else {
      onPageReady(() => onPageUpdateSync(actions));
    }
  }
  function onPageCreateSync(action) {
    return onPageCreate(action[1]);
  }
  function onPageUpdateSync(actions) {
    var dictAction = actions[0];
    var getDict = createGetDict(dictAction[0] === ACTION_TYPE_DICT ? dictAction[1] : []);
    actions.forEach((action) => {
      switch (action[0]) {
        case ACTION_TYPE_PAGE_CREATE:
          return onPageCreate(action[1]);
        case ACTION_TYPE_PAGE_CREATED:
          return onPageCreated();
        case ACTION_TYPE_CREATE:
          var parentNodeId = action[3];
          return createElement(
            action[1],
            getDict(action[2]),
            // 部分性能低的手机，createAction 与 insertAction 是分开的，导致根节点 parentNodeId 为 -1
            parentNodeId === -1 ? 0 : parentNodeId,
            action[4],
            decodeNodeJson(getDict, action[5])
          );
        case ACTION_TYPE_INSERT:
          return $(action[1]).insert(action[2], action[3], decodeNodeJson(getDict, action[4]));
        case ACTION_TYPE_REMOVE:
          return $(action[1]).remove();
        case ACTION_TYPE_SET_ATTRIBUTE:
          return $(action[1]).setAttr(getDict(action[2]), getDict(action[3]));
        case ACTION_TYPE_REMOVE_ATTRIBUTE:
          return $(action[1]).removeAttr(getDict(action[2]));
        case ACTION_TYPE_ADD_EVENT:
          return $(action[1]).addEvent(getDict(action[2]), action[3]);
        case ACTION_TYPE_ADD_WXS_EVENT:
          return $(action[1]).addWxsEvent(getDict(action[2]), getDict(action[3]), action[4]);
        case ACTION_TYPE_REMOVE_EVENT:
          return $(action[1]).removeEvent(getDict(action[2]));
        case ACTION_TYPE_SET_TEXT:
          return $(action[1]).setText(getDict(action[2]));
        case ACTION_TYPE_PAGE_SCROLL:
          return initPageScroll(action[1]);
      }
    });
    flushPostActionJobs();
  }
  function initSubscribeHandlers() {
    var {
      subscribe
    } = UniViewJSBridge;
    subscribe(VD_SYNC, onVdSync);
    subscribe(API_SET_LOCALE, (local) => useI18n().setLocale(local));
    subscribe(ON_WEBVIEW_READY, onWebviewReady$1);
  }
  function onWebviewReady$1() {
    UniViewJSBridge.publishHandler(ON_WEBVIEW_READY);
  }
  function findElem(vm) {
    {
      return window.__$__(vm).$;
    }
  }
  function getRootInfo(fields2) {
    var info = {};
    if (fields2.id) {
      info.id = "";
    }
    if (fields2.dataset) {
      info.dataset = {};
    }
    if (fields2.rect) {
      info.left = 0;
      info.right = 0;
      info.top = 0;
      info.bottom = 0;
    }
    if (fields2.size) {
      info.width = document.documentElement.clientWidth;
      info.height = document.documentElement.clientHeight;
    }
    if (fields2.scrollOffset) {
      var documentElement = document.documentElement;
      var body = document.body;
      info.scrollLeft = documentElement.scrollLeft || body.scrollLeft || 0;
      info.scrollTop = documentElement.scrollTop || body.scrollTop || 0;
      info.scrollHeight = documentElement.scrollHeight || body.scrollHeight || 0;
      info.scrollWidth = documentElement.scrollWidth || body.scrollWidth || 0;
    }
    return info;
  }
  function getNodeInfo(el, fields2) {
    var info = {};
    var {
      top,
      topWindowHeight
    } = getWindowOffset();
    if (fields2.node) {
      var tagName = el.tagName.split("-")[1];
      if (tagName) {
        info.node = el.querySelector(tagName);
      }
    }
    if (fields2.id) {
      info.id = el.id;
    }
    if (fields2.dataset) {
      info.dataset = getCustomDataset(el);
    }
    if (fields2.rect || fields2.size) {
      var rect = el.getBoundingClientRect();
      if (fields2.rect) {
        info.left = rect.left;
        info.right = rect.right;
        info.top = rect.top - top - topWindowHeight;
        info.bottom = rect.bottom - top - topWindowHeight;
      }
      if (fields2.size) {
        info.width = rect.width;
        info.height = rect.height;
      }
    }
    if (isArray(fields2.properties)) {
      fields2.properties.forEach((prop) => {
        prop = prop.replace(/-([a-z])/g, function(e2, t2) {
          return t2.toUpperCase();
        });
      });
    }
    if (fields2.scrollOffset) {
      if (el.tagName === "UNI-SCROLL-VIEW") {
        var scroll = el.children[0].children[0];
        info.scrollLeft = scroll.scrollLeft;
        info.scrollTop = scroll.scrollTop;
        info.scrollHeight = scroll.scrollHeight;
        info.scrollWidth = scroll.scrollWidth;
      } else {
        info.scrollLeft = 0;
        info.scrollTop = 0;
        info.scrollHeight = 0;
        info.scrollWidth = 0;
      }
    }
    if (isArray(fields2.computedStyle)) {
      var sytle = getComputedStyle(el);
      fields2.computedStyle.forEach((name) => {
        info[name] = sytle[name];
      });
    }
    if (fields2.context) {
      info.contextInfo = getContextInfo(el);
    }
    return info;
  }
  function findElm(component, pageVm2) {
    if (!component) {
      return pageVm2.$el;
    }
    {
      return window.__$__(component).$;
    }
  }
  function matches(element, selectors) {
    var matches2 = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || function(selectors2) {
      var matches3 = this.parentElement.querySelectorAll(selectors2);
      var i2 = matches3.length;
      while (--i2 >= 0 && matches3.item(i2) !== this) {
      }
      return i2 > -1;
    };
    return matches2.call(element, selectors);
  }
  function getNodesInfo(pageVm2, component, selector, single, fields2) {
    var selfElement = findElm(component, pageVm2);
    var parentElement = selfElement.parentElement;
    if (!parentElement) {
      return single ? null : [];
    }
    var {
      nodeType
    } = selfElement;
    var maybeFragment = nodeType === 3 || nodeType === 8;
    if (single) {
      var node = maybeFragment ? parentElement.querySelector(selector) : matches(selfElement, selector) ? selfElement : selfElement.querySelector(selector);
      if (node) {
        return getNodeInfo(node, fields2);
      }
      return null;
    } else {
      var infos = [];
      var nodeList = (maybeFragment ? parentElement : selfElement).querySelectorAll(selector);
      if (nodeList && nodeList.length) {
        [].forEach.call(nodeList, (node2) => {
          infos.push(getNodeInfo(node2, fields2));
        });
      }
      if (!maybeFragment && matches(selfElement, selector)) {
        infos.unshift(getNodeInfo(selfElement, fields2));
      }
      return infos;
    }
  }
  function requestComponentInfo(page, reqs, callback) {
    var result = [];
    reqs.forEach((_ref) => {
      var {
        component,
        selector,
        single,
        fields: fields2
      } = _ref;
      if (component === null) {
        result.push(getRootInfo(fields2));
      } else {
        result.push(getNodesInfo(page, component, selector, single, fields2));
      }
    });
    callback(result);
  }
  function setCurrentPageMeta(_page, _ref) {
    var {
      pageStyle,
      rootFontSize
    } = _ref;
    if (pageStyle) {
      var pageElm = document.querySelector("uni-page-body") || document.body;
      pageElm.setAttribute("style", pageStyle);
    }
    if (rootFontSize && document.documentElement.style.fontSize !== rootFontSize) {
      document.documentElement.style.fontSize = rootFontSize;
    }
  }
  function addIntersectionObserver(_ref, _pageId) {
    var {
      reqId,
      component,
      options,
      callback
    } = _ref;
    var $el = findElem(component);
    ($el.__io || ($el.__io = {}))[reqId] = requestComponentObserver($el, options, callback);
  }
  function removeIntersectionObserver(_ref2, _pageId) {
    var {
      reqId,
      component
    } = _ref2;
    var $el = findElem(component);
    var intersectionObserver = $el.__io && $el.__io[reqId];
    if (intersectionObserver) {
      intersectionObserver.disconnect();
      delete $el.__io[reqId];
    }
  }
  var mediaQueryObservers = {};
  var listeners = {};
  function handleMediaQueryStr($props) {
    var mediaQueryArr = [];
    var propsMenu = ["width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "orientation"];
    for (var item of propsMenu) {
      if (item !== "orientation" && $props[item] && Number($props[item] >= 0)) {
        mediaQueryArr.push("(".concat(humpToLine(item), ": ").concat(Number($props[item]), "px)"));
      }
      if (item === "orientation" && $props[item]) {
        mediaQueryArr.push("(".concat(humpToLine(item), ": ").concat($props[item], ")"));
      }
    }
    var mediaQueryStr = mediaQueryArr.join(" and ");
    return mediaQueryStr;
  }
  function humpToLine(name) {
    return name.replace(/([A-Z])/g, "-$1").toLowerCase();
  }
  function addMediaQueryObserver(_ref, _pageId) {
    var {
      reqId,
      component,
      options,
      callback
    } = _ref;
    var mediaQueryObserver = mediaQueryObservers[reqId] = window.matchMedia(handleMediaQueryStr(options));
    var listener = listeners[reqId] = (observer) => callback(observer.matches);
    listener(mediaQueryObserver);
    mediaQueryObserver.addListener(listener);
  }
  function removeMediaQueryObserver(_ref2, _pageId) {
    var {
      reqId,
      component
    } = _ref2;
    var listener = listeners[reqId];
    var mediaQueryObserver = mediaQueryObservers[reqId];
    if (mediaQueryObserver) {
      mediaQueryObserver.removeListener(listener);
      delete listeners[reqId];
      delete mediaQueryObservers[reqId];
    }
  }
  function loadFontFace(_ref, publish) {
    var {
      family,
      source,
      desc
    } = _ref;
    if (source.startsWith('url("') || source.startsWith("url('")) {
      source = "url('".concat(getRealPath(source.substring(5, source.length - 2)), "')");
    } else if (source.startsWith("url(")) {
      source = "url('".concat(getRealPath(source.substring(4, source.length - 1)), "')");
    } else {
      source = getRealPath(source);
    }
    addFont(family, source, desc).then(() => {
      publish();
    }).catch((err2) => {
      publish(err2.toString());
    });
  }
  var pageVm = {
    $el: document.body
  };
  function initViewMethods() {
    var pageId = getCurrentPageId();
    subscribeViewMethod(pageId, (fn) => {
      return function() {
        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
          args[_key] = arguments[_key];
        }
        onPageReady(() => {
          fn.apply(null, args);
        });
      };
    });
    registerViewMethod(pageId, "requestComponentInfo", (args, publish) => {
      requestComponentInfo(pageVm, args.reqs, publish);
    });
    registerViewMethod(pageId, "addIntersectionObserver", (args) => {
      addIntersectionObserver(extend({}, args, {
        callback(res) {
          UniViewJSBridge.publishHandler(args.eventName, res);
        }
      }));
    });
    registerViewMethod(pageId, "removeIntersectionObserver", (args) => {
      removeIntersectionObserver(args);
    });
    registerViewMethod(pageId, "addMediaQueryObserver", (args) => {
      addMediaQueryObserver(extend({}, args, {
        callback(res) {
          UniViewJSBridge.publishHandler(args.eventName, res);
        }
      }));
    });
    registerViewMethod(pageId, "removeMediaQueryObserver", (args) => {
      removeMediaQueryObserver(args);
    });
    registerViewMethod(pageId, API_PAGE_SCROLL_TO, pageScrollTo);
    registerViewMethod(pageId, API_LOAD_FONT_FACE, loadFontFace);
    registerViewMethod(pageId, API_SET_PAGE_META, (args) => {
      setCurrentPageMeta(null, args);
    });
  }
  window.plus = plus$1;
  window.uni = uni$1;
  window.UniViewJSBridge = UniViewJSBridge$1;
  window.rpx2px = upx2px;
  window.normalizeStyleName = normalizeStyleName$1;
  window.normalizeStyleValue = normalizeStyleValue$1;
  window.__$__ = $;
  window.__f__ = formatAppLog;
  function onWebviewReady() {
    initView();
    initViewMethods();
    initSubscribeHandlers();
    UniViewJSBridge$1.publishHandler(ON_WEBVIEW_READY);
  }
  if (typeof plus$1 !== "undefined") {
    onWebviewReady();
  } else {
    document.addEventListener("plusready", onWebviewReady);
  }
});
