uni-h5.cjs.js 325.6 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1
"use strict";
fxy060608's avatar
fxy060608 已提交
2
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
fxy060608's avatar
fxy060608 已提交
3
var vue = require("vue");
4
var shared = require("@vue/shared");
D
DCloud_LXH 已提交
5
var uniShared = require("@dcloudio/uni-shared");
fxy060608's avatar
fxy060608 已提交
6 7
var uniI18n = require("@dcloudio/uni-i18n");
var vueRouter = require("vue-router");
fxy060608's avatar
fxy060608 已提交
8
const isEnableLocale = /* @__PURE__ */ uniShared.once(() => typeof __uniConfig !== "undefined" && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length);
fxy060608's avatar
fxy060608 已提交
9
let i18n;
fxy060608's avatar
fxy060608 已提交
10
function getLocaleMessage() {
fxy060608's avatar
fxy060608 已提交
11
  const locale = uni.getLocale();
fxy060608's avatar
fxy060608 已提交
12 13 14 15
  const locales = __uniConfig.locales;
  return locales[locale] || locales[__uniConfig.fallbackLocale] || locales.en || {};
}
function formatI18n(message) {
16 17
  if (uniI18n.isI18nStr(message, uniShared.I18N_JSON_DELIMITERS)) {
    return useI18n().f(message, getLocaleMessage(), uniShared.I18N_JSON_DELIMITERS);
fxy060608's avatar
fxy060608 已提交
18 19 20
  }
  return message;
}
21 22 23 24 25 26 27 28 29 30 31 32 33 34
function resolveJsonObj(jsonObj, names) {
  if (names.length === 1) {
    if (jsonObj) {
      const value = jsonObj[names[0]];
      if (shared.isString(value) && uniI18n.isI18nStr(value, uniShared.I18N_JSON_DELIMITERS)) {
        return jsonObj;
      }
    }
    return;
  }
  const name = names.shift();
  return resolveJsonObj(jsonObj && jsonObj[name], names);
}
function defineI18nProperties(obj, names) {
fxy060608's avatar
fxy060608 已提交
35
  return names.map((name) => defineI18nProperty(obj, name));
36 37 38 39
}
function defineI18nProperty(obj, names) {
  const jsonObj = resolveJsonObj(obj, names);
  if (!jsonObj) {
fxy060608's avatar
fxy060608 已提交
40
    return false;
41 42 43 44 45 46 47 48 49 50 51
  }
  const prop = names[names.length - 1];
  let value = jsonObj[prop];
  Object.defineProperty(jsonObj, prop, {
    get() {
      return formatI18n(value);
    },
    set(v2) {
      value = v2;
    }
  });
fxy060608's avatar
fxy060608 已提交
52
  return true;
53
}
fxy060608's avatar
fxy060608 已提交
54
function useI18n() {
fxy060608's avatar
fxy060608 已提交
55
  if (!i18n) {
Q
qiang 已提交
56
    let locale;
fxy060608's avatar
fxy060608 已提交
57
    {
fxy060608's avatar
fxy060608 已提交
58
      {
Q
qiang 已提交
59
        locale = uniShared.getEnvLocale();
fxy060608's avatar
fxy060608 已提交
60
      }
fxy060608's avatar
fxy060608 已提交
61
    }
fxy060608's avatar
fxy060608 已提交
62
    i18n = uniI18n.initVueI18n(locale);
fxy060608's avatar
fxy060608 已提交
63 64 65 66 67 68 69
    if (isEnableLocale()) {
      const localeKeys = Object.keys(__uniConfig.locales || {});
      if (localeKeys.length) {
        localeKeys.forEach((locale2) => i18n.add(locale2, __uniConfig.locales[locale2]));
      }
      i18n.setLocale(locale);
    }
fxy060608's avatar
fxy060608 已提交
70
  }
fxy060608's avatar
fxy060608 已提交
71
  return i18n;
fxy060608's avatar
fxy060608 已提交
72
}
fxy060608's avatar
fxy060608 已提交
73 74 75
function normalizeMessages(module, keys, values) {
  return keys.reduce((res, name, index2) => {
    res[module + name] = values[index2];
fxy060608's avatar
fxy060608 已提交
76 77
    return res;
  }, {});
fxy060608's avatar
fxy060608 已提交
78
}
fxy060608's avatar
fxy060608 已提交
79
const initI18nAsyncMsgsOnce = /* @__PURE__ */ uniShared.once(() => {
fxy060608's avatar
fxy060608 已提交
80
  const name = "uni.async.";
fxy060608's avatar
fxy060608 已提交
81
  const keys = ["error"];
fxy060608's avatar
fxy060608 已提交
82
  if (__UNI_FEATURE_I18N_EN__) {
fxy060608's avatar
fxy060608 已提交
83 84 85
    useI18n().add(uniI18n.LOCALE_EN, normalizeMessages(name, keys, [
      "The connection timed out, click the screen to try again."
    ]), false);
fxy060608's avatar
fxy060608 已提交
86 87
  }
  if (__UNI_FEATURE_I18N_ES__) {
fxy060608's avatar
fxy060608 已提交
88 89 90
    useI18n().add(uniI18n.LOCALE_ES, normalizeMessages(name, keys, [
      "Se agot\xF3 el tiempo de conexi\xF3n, haga clic en la pantalla para volver a intentarlo."
    ]), false);
fxy060608's avatar
fxy060608 已提交
91 92
  }
  if (__UNI_FEATURE_I18N_FR__) {
fxy060608's avatar
fxy060608 已提交
93 94 95
    useI18n().add(uniI18n.LOCALE_FR, normalizeMessages(name, keys, [
      "La connexion a expir\xE9, cliquez sur l'\xE9cran pour r\xE9essayer."
    ]), false);
fxy060608's avatar
fxy060608 已提交
96 97
  }
  if (__UNI_FEATURE_I18N_ZH_HANS__) {
fxy060608's avatar
fxy060608 已提交
98
    useI18n().add(uniI18n.LOCALE_ZH_HANS, normalizeMessages(name, keys, ["\u8FDE\u63A5\u670D\u52A1\u5668\u8D85\u65F6\uFF0C\u70B9\u51FB\u5C4F\u5E55\u91CD\u8BD5"]), false);
fxy060608's avatar
fxy060608 已提交
99 100
  }
  if (__UNI_FEATURE_I18N_ZH_HANT__) {
fxy060608's avatar
fxy060608 已提交
101
    useI18n().add(uniI18n.LOCALE_ZH_HANT, normalizeMessages(name, keys, ["\u9023\u63A5\u670D\u52D9\u5668\u8D85\u6642\uFF0C\u9EDE\u64CA\u5C4F\u5E55\u91CD\u8A66"]), false);
fxy060608's avatar
fxy060608 已提交
102 103
  }
});
D
DCloud_LXH 已提交
104 105
const initI18nPickerMsgsOnce = /* @__PURE__ */ uniShared.once(() => {
  const name = "uni.picker.";
fxy060608's avatar
fxy060608 已提交
106
  const keys = ["done", "cancel"];
D
DCloud_LXH 已提交
107
  if (__UNI_FEATURE_I18N_EN__) {
fxy060608's avatar
fxy060608 已提交
108
    useI18n().add(uniI18n.LOCALE_EN, normalizeMessages(name, keys, ["Done", "Cancel"]), false);
D
DCloud_LXH 已提交
109 110
  }
  if (__UNI_FEATURE_I18N_ES__) {
fxy060608's avatar
fxy060608 已提交
111
    useI18n().add(uniI18n.LOCALE_ES, normalizeMessages(name, keys, ["OK", "Cancelar"]), false);
D
DCloud_LXH 已提交
112 113
  }
  if (__UNI_FEATURE_I18N_FR__) {
fxy060608's avatar
fxy060608 已提交
114
    useI18n().add(uniI18n.LOCALE_FR, normalizeMessages(name, keys, ["OK", "Annuler"]), false);
D
DCloud_LXH 已提交
115 116
  }
  if (__UNI_FEATURE_I18N_ZH_HANS__) {
fxy060608's avatar
fxy060608 已提交
117
    useI18n().add(uniI18n.LOCALE_ZH_HANS, normalizeMessages(name, keys, ["\u5B8C\u6210", "\u53D6\u6D88"]), false);
D
DCloud_LXH 已提交
118 119
  }
  if (__UNI_FEATURE_I18N_ZH_HANT__) {
fxy060608's avatar
fxy060608 已提交
120
    useI18n().add(uniI18n.LOCALE_ZH_HANT, normalizeMessages(name, keys, ["\u5B8C\u6210", "\u53D6\u6D88"]), false);
D
DCloud_LXH 已提交
121 122
  }
});
fxy060608's avatar
fxy060608 已提交
123
const initI18nVideoMsgsOnce = /* @__PURE__ */ uniShared.once(() => {
Q
qiang 已提交
124
  const name = "uni.video.";
fxy060608's avatar
fxy060608 已提交
125
  const keys = ["danmu", "volume"];
Q
qiang 已提交
126
  if (__UNI_FEATURE_I18N_EN__) {
fxy060608's avatar
fxy060608 已提交
127
    useI18n().add(uniI18n.LOCALE_EN, normalizeMessages(name, keys, ["Danmu", "Volume"]), false);
Q
qiang 已提交
128 129
  }
  if (__UNI_FEATURE_I18N_ES__) {
fxy060608's avatar
fxy060608 已提交
130
    useI18n().add(uniI18n.LOCALE_ES, normalizeMessages(name, keys, ["Danmu", "Volumen"]), false);
Q
qiang 已提交
131 132
  }
  if (__UNI_FEATURE_I18N_FR__) {
fxy060608's avatar
fxy060608 已提交
133
    useI18n().add(uniI18n.LOCALE_FR, normalizeMessages(name, keys, ["Danmu", "Le Volume"]), false);
Q
qiang 已提交
134 135
  }
  if (__UNI_FEATURE_I18N_ZH_HANS__) {
fxy060608's avatar
fxy060608 已提交
136
    useI18n().add(uniI18n.LOCALE_ZH_HANS, normalizeMessages(name, keys, ["\u5F39\u5E55", "\u97F3\u91CF"]), false);
Q
qiang 已提交
137 138
  }
  if (__UNI_FEATURE_I18N_ZH_HANT__) {
fxy060608's avatar
fxy060608 已提交
139
    useI18n().add(uniI18n.LOCALE_ZH_HANT, normalizeMessages(name, keys, ["\u5F48\u5E55", "\u97F3\u91CF"]), false);
Q
qiang 已提交
140 141
  }
});
142 143
function initNavigationBarI18n(navigationBar) {
  if (isEnableLocale()) {
fxy060608's avatar
fxy060608 已提交
144
    return defineI18nProperties(navigationBar, [
145 146 147 148 149
      ["titleText"],
      ["searchInput", "placeholder"]
    ]);
  }
}
fxy060608's avatar
fxy060608 已提交
150
function initTabBarI18n(tabBar2) {
D
DCloud_LXH 已提交
151
  if (isEnableLocale() && tabBar2.list) {
fxy060608's avatar
fxy060608 已提交
152 153 154 155 156 157
    tabBar2.list.forEach((item) => {
      defineI18nProperty(item, ["text"]);
    });
  }
  return tabBar2;
}
fxy060608's avatar
fxy060608 已提交
158
function initBridge(subscribeNamespace) {
fxy060608's avatar
fxy060608 已提交
159
  const emitter = new uniShared.Emitter();
fxy060608's avatar
fxy060608 已提交
160 161 162 163 164 165 166 167 168 169 170 171 172
  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, ...args) {
      return emitter.emit(event, ...args);
    },
fxy060608's avatar
fxy060608 已提交
173 174
    subscribe(event, callback, once = false) {
      emitter[once ? "once" : "on"](`${subscribeNamespace}.${event}`, callback);
fxy060608's avatar
fxy060608 已提交
175
    },
Q
qiang 已提交
176
    unsubscribe(event, callback) {
fxy060608's avatar
fxy060608 已提交
177
      emitter.off(`${subscribeNamespace}.${event}`, callback);
fxy060608's avatar
fxy060608 已提交
178
    },
Q
qiang 已提交
179
    subscribeHandler(event, args, pageId) {
fxy060608's avatar
fxy060608 已提交
180
      emitter.emit(`${subscribeNamespace}.${event}`, args, pageId);
fxy060608's avatar
fxy060608 已提交
181
    }
fxy060608's avatar
fxy060608 已提交
182
  };
fxy060608's avatar
fxy060608 已提交
183
}
fxy060608's avatar
fxy060608 已提交
184 185 186 187 188 189 190 191 192
const INVOKE_VIEW_API = "invokeViewApi";
const INVOKE_SERVICE_API = "invokeServiceApi";
let invokeServiceMethodId = 1;
const invokeServiceMethod = (name, args, callback) => {
  const { subscribe, publishHandler } = UniViewJSBridge;
  const id = callback ? invokeServiceMethodId++ : 0;
  callback && subscribe(INVOKE_SERVICE_API + "." + id, callback, true);
  publishHandler(INVOKE_SERVICE_API, { id, name, args });
};
193
const viewMethods = /* @__PURE__ */ Object.create(null);
194 195 196 197 198 199 200 201 202
function normalizeViewMethodName(pageId, name) {
  return pageId + "." + name;
}
function registerViewMethod(pageId, name, fn) {
  name = normalizeViewMethodName(pageId, name);
  if (!viewMethods[name]) {
    viewMethods[name] = fn;
  }
}
fxy060608's avatar
fxy060608 已提交
203
const ViewJSBridge = /* @__PURE__ */ shared.extend(/* @__PURE__ */ initBridge("service"), {
fxy060608's avatar
fxy060608 已提交
204 205
  invokeServiceMethod
});
206 207
const onEventPrevent = /* @__PURE__ */ vue.withModifiers(() => {
}, ["prevent"]);
D
DCloud_LXH 已提交
208 209
const onEventStop = /* @__PURE__ */ vue.withModifiers(() => {
}, ["stop"]);
fxy060608's avatar
fxy060608 已提交
210
function updateCssVar(cssVars) {
fxy060608's avatar
fxy060608 已提交
211
  const style = document.documentElement.style;
fxy060608's avatar
fxy060608 已提交
212 213 214 215 216 217 218 219 220 221
  Object.keys(cssVars).forEach((name) => {
    style.setProperty(name, cssVars[name]);
  });
}
function updatePageCssVar(cssVars) {
  return updateCssVar(cssVars);
}
function PolySymbol(name) {
  return Symbol(process.env.NODE_ENV !== "production" ? "[uni-app]: " + name : name);
}
fxy060608's avatar
fxy060608 已提交
222 223 224 225
function rpx2px(str, replace = false) {
  if (replace) {
    return rpx2pxWithReplace(str);
  }
fxy060608's avatar
fxy060608 已提交
226 227
  {
    return parseInt(str + "");
fxy060608's avatar
fxy060608 已提交
228 229
  }
}
fxy060608's avatar
fxy060608 已提交
230 231 232 233 234
function rpx2pxWithReplace(str) {
  {
    return str;
  }
}
fxy060608's avatar
fxy060608 已提交
235 236 237 238 239 240 241 242 243
const 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";
const 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";
const 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";
const 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";
const 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";
const 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";
const 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";
const 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";
const 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";
Q
qiang 已提交
244
const 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";
Q
qiang 已提交
245
const 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";
fxy060608's avatar
fxy060608 已提交
246
function createSvgIconVNode(path, color = "#000", size = 27) {
fxy060608's avatar
fxy060608 已提交
247
  return vue.createVNode("svg", {
fxy060608's avatar
fxy060608 已提交
248 249 250 251
    width: size,
    height: size,
    viewBox: "0 0 32 32"
  }, [
fxy060608's avatar
fxy060608 已提交
252
    vue.createVNode("path", {
fxy060608's avatar
fxy060608 已提交
253 254 255 256 257
      d: path,
      fill: color
    }, null, 8, ["d", "fill"])
  ], 8, ["width", "height"]);
}
258
function useCurrentPageId() {
fxy060608's avatar
fxy060608 已提交
259 260 261 262
  {
    const { $pageInstance } = vue.getCurrentInstance();
    return $pageInstance && $pageInstance.proxy.$page.id;
  }
263
}
fxy060608's avatar
fxy060608 已提交
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
function getCurrentPage() {
  const pages = getCurrentPages();
  const len = pages.length;
  if (len) {
    return pages[len - 1];
  }
}
function getCurrentPageMeta() {
  const page = getCurrentPage();
  if (page) {
    return page.$page.meta;
  }
}
function getCurrentPageId() {
  const meta = getCurrentPageMeta();
  if (meta) {
    return meta.id;
  }
  return -1;
}
function getCurrentPageVm() {
  const page = getCurrentPage();
  if (page) {
    return page.$vm;
  }
}
fxy060608's avatar
fxy060608 已提交
290
const PAGE_META_KEYS = ["navigationBar", "pullToRefresh"];
fxy060608's avatar
fxy060608 已提交
291 292 293
function initGlobalStyle() {
  return JSON.parse(JSON.stringify(__uniConfig.globalStyle || {}));
}
fxy060608's avatar
fxy060608 已提交
294
function initRouteMeta(pageMeta, id) {
fxy060608's avatar
fxy060608 已提交
295 296 297 298 299
  const globalStyle = initGlobalStyle();
  const res = shared.extend({ id }, globalStyle, pageMeta);
  PAGE_META_KEYS.forEach((name) => {
    res[name] = shared.extend({}, globalStyle[name], pageMeta[name]);
  });
Q
qiang 已提交
300 301
  const { navigationBar } = res;
  navigationBar.titleText && navigationBar.titleImage && (navigationBar.titleText = "");
fxy060608's avatar
fxy060608 已提交
302 303
  return res;
}
fxy060608's avatar
fxy060608 已提交
304 305 306 307 308 309 310 311 312 313 314 315
function normalizePullToRefreshRpx(pullToRefresh) {
  if (pullToRefresh.offset) {
    pullToRefresh.offset = rpx2px(pullToRefresh.offset);
  }
  if (pullToRefresh.height) {
    pullToRefresh.height = rpx2px(pullToRefresh.height);
  }
  if (pullToRefresh.range) {
    pullToRefresh.range = rpx2px(pullToRefresh.range);
  }
  return pullToRefresh;
}
fxy060608's avatar
fxy060608 已提交
316
function initPageInternalInstance(openType, url, pageQuery, meta, eventChannel) {
fxy060608's avatar
fxy060608 已提交
317 318 319
  const { id, route } = meta;
  return {
    id,
fxy060608's avatar
fxy060608 已提交
320
    path: uniShared.addLeadingSlash(route),
fxy060608's avatar
fxy060608 已提交
321 322 323
    route,
    fullPath: url,
    options: pageQuery,
fxy060608's avatar
fxy060608 已提交
324
    meta,
fxy060608's avatar
fxy060608 已提交
325
    openType,
fxy060608's avatar
fxy060608 已提交
326
    eventChannel,
fxy060608's avatar
fxy060608 已提交
327
    statusBarStyle: meta.navigationBar.titleColor === "#000000" ? "dark" : "light"
fxy060608's avatar
fxy060608 已提交
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348
  };
}
function invokeHook(vm, name, args) {
  if (shared.isString(vm)) {
    args = name;
    name = vm;
    vm = getCurrentPageVm();
  } else if (typeof vm === "number") {
    const page = getCurrentPages().find((page2) => page2.$page.id === vm);
    if (page) {
      vm = page.$vm;
    } else {
      vm = getCurrentPageVm();
    }
  }
  if (!vm) {
    return;
  }
  const hooks = vm.$[name];
  return hooks && uniShared.invokeArrayFns(hooks, args);
}
fxy060608's avatar
fxy060608 已提交
349
function getRealRoute(fromRoute, toRoute) {
fxy060608's avatar
fxy060608 已提交
350 351
  if (toRoute.indexOf("/") === 0) {
    return toRoute;
fxy060608's avatar
fxy060608 已提交
352 353
  }
  if (toRoute.indexOf("./") === 0) {
fxy060608's avatar
fxy060608 已提交
354
    return getRealRoute(fromRoute, toRoute.slice(2));
fxy060608's avatar
fxy060608 已提交
355 356 357
  }
  const toRouteArray = toRoute.split("/");
  const toRouteLength = toRouteArray.length;
358 359
  let i = 0;
  for (; i < toRouteLength && toRouteArray[i] === ".."; i++) {
fxy060608's avatar
fxy060608 已提交
360
  }
361
  toRouteArray.splice(0, i);
fxy060608's avatar
fxy060608 已提交
362 363
  toRoute = toRouteArray.join("/");
  const fromRouteArray = fromRoute.length > 0 ? fromRoute.split("/") : [];
364
  fromRouteArray.splice(fromRouteArray.length - i - 1, i + 1);
fxy060608's avatar
fxy060608 已提交
365
  return uniShared.addLeadingSlash(fromRouteArray.concat(toRouteArray).join("/"));
fxy060608's avatar
fxy060608 已提交
366
}
Q
qiang 已提交
367 368 369 370 371 372
function findUniTarget(target) {
  while (target && target.tagName.indexOf("UNI-") !== 0) {
    target = target.parentElement;
  }
  return target;
}
fxy060608's avatar
fxy060608 已提交
373
function createNativeEvent(evt, htmlElement = false) {
374
  const { type, timeStamp, target, currentTarget } = evt;
375 376 377
  const event = {
    type,
    timeStamp,
fxy060608's avatar
fxy060608 已提交
378
    target: uniShared.normalizeTarget(htmlElement ? target : findUniTarget(target)),
379
    detail: {},
Q
qiang 已提交
380
    currentTarget: uniShared.normalizeTarget(currentTarget)
381
  };
fxy060608's avatar
fxy060608 已提交
382 383 384
  if (evt._stopped) {
    event._stopped = true;
  }
385 386 387 388 389 390
  if (evt.type.startsWith("touch")) {
    event.touches = evt.touches;
    event.changedTouches = evt.changedTouches;
  }
  return event;
}
fxy060608's avatar
fxy060608 已提交
391 392
const invokeOnCallback = (name, res) => UniServiceJSBridge.emit("api." + name, res);
let invokeViewMethodId = 1;
393 394 395
function publishViewMethodName() {
  return getCurrentPageId() + "." + INVOKE_VIEW_API;
}
396
const invokeViewMethod = (name, args, pageId, callback) => {
397
  const { subscribe, publishHandler } = UniServiceJSBridge;
fxy060608's avatar
fxy060608 已提交
398
  const id = callback ? invokeViewMethodId++ : 0;
399
  callback && subscribe(INVOKE_VIEW_API + "." + id, callback, true);
400 401 402 403 404 405 406 407 408 409 410 411
  publishHandler(publishViewMethodName(), { id, name, args }, pageId);
};
const invokeViewMethodKeepAlive = (name, args, callback, pageId) => {
  const { subscribe, unsubscribe, publishHandler } = UniServiceJSBridge;
  const id = invokeViewMethodId++;
  const subscribeName = INVOKE_VIEW_API + "." + id;
  subscribe(subscribeName, callback);
  publishHandler(publishViewMethodName(), { id, name, args }, pageId);
  return () => {
    unsubscribe(subscribeName);
  };
};
fxy060608's avatar
fxy060608 已提交
412
const ServiceJSBridge = /* @__PURE__ */ shared.extend(/* @__PURE__ */ initBridge("view"), {
413 414 415
  invokeOnCallback,
  invokeViewMethod,
  invokeViewMethodKeepAlive
fxy060608's avatar
fxy060608 已提交
416
});
fxy060608's avatar
fxy060608 已提交
417 418 419
function initAppVm(appVm2) {
  appVm2.$vm = appVm2;
  appVm2.$mpType = "app";
fxy060608's avatar
fxy060608 已提交
420 421 422 423 424 425 426 427 428
  const locale = vue.ref(useI18n().getLocale());
  Object.defineProperty(appVm2, "$locale", {
    get() {
      return locale.value;
    },
    set(v2) {
      locale.value = v2;
    }
  });
fxy060608's avatar
fxy060608 已提交
429 430
}
function initPageVm(pageVm, page) {
fxy060608's avatar
fxy060608 已提交
431
  pageVm.route = page.route;
fxy060608's avatar
fxy060608 已提交
432 433 434
  pageVm.$vm = pageVm;
  pageVm.$page = page;
  pageVm.$mpType = "page";
fxy060608's avatar
fxy060608 已提交
435
  if (page.meta.isTabBar) {
fxy060608's avatar
fxy060608 已提交
436
    pageVm.$.__isTabBar = true;
fxy060608's avatar
fxy060608 已提交
437 438
    pageVm.$.__isActive = true;
  }
fxy060608's avatar
fxy060608 已提交
439
}
fxy060608's avatar
fxy060608 已提交
440 441 442 443 444 445 446 447 448 449 450 451
function defineGlobalData(app, defaultGlobalData) {
  const options = app.$options || {};
  options.globalData = shared.extend(options.globalData || {}, defaultGlobalData);
  Object.defineProperty(app, "globalData", {
    get() {
      return options.globalData;
    },
    set(newGlobalData) {
      options.globalData = newGlobalData;
    }
  });
}
fxy060608's avatar
fxy060608 已提交
452 453 454 455 456 457 458
function converPx(value) {
  if (/^-?\d+[ur]px$/i.test(value)) {
    return value.replace(/(^-?\d+)[ur]px$/i, (text, num) => {
      return `${uni.upx2px(parseFloat(num))}px`;
    });
  } else if (/^-?[\d\.]+$/.test(value)) {
    return `${value}px`;
D
DCloud_LXH 已提交
459
  }
fxy060608's avatar
fxy060608 已提交
460
  return value || "";
fxy060608's avatar
fxy060608 已提交
461
}
fxy060608's avatar
fxy060608 已提交
462 463 464 465
function converType(type) {
  return type.replace(/[A-Z]/g, (text) => {
    return `-${text.toLowerCase()}`;
  }).replace("webkit", "-webkit");
D
DCloud_LXH 已提交
466
}
fxy060608's avatar
fxy060608 已提交
467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
function getStyle(action) {
  const animateTypes1 = [
    "matrix",
    "matrix3d",
    "scale",
    "scale3d",
    "rotate3d",
    "skew",
    "translate",
    "translate3d"
  ];
  const animateTypes2 = [
    "scaleX",
    "scaleY",
    "scaleZ",
    "rotate",
    "rotateX",
    "rotateY",
    "rotateZ",
    "skewX",
    "skewY",
    "translateX",
    "translateY",
    "translateZ"
  ];
  const animateTypes3 = ["opacity", "background-color"];
  const animateTypes4 = ["width", "height", "left", "right", "top", "bottom"];
  const animates = action.animates;
  const option = action.option;
  const transition = option.transition;
  const style = {};
  const transform = [];
  animates.forEach((animate) => {
    let type = animate.type;
    let args = [...animate.args];
    if (animateTypes1.concat(animateTypes2).includes(type)) {
      if (type.startsWith("rotate") || type.startsWith("skew")) {
        args = args.map((value) => parseFloat(value) + "deg");
      } else if (type.startsWith("translate")) {
        args = args.map(converPx);
      }
      if (animateTypes2.indexOf(type) >= 0) {
        args.length = 1;
      }
      transform.push(`${type}(${args.join(",")})`);
    } else if (animateTypes3.concat(animateTypes4).includes(args[0])) {
      type = args[0];
      const 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) => `${converType(type)} ${transition.duration}ms ${transition.timingFunction} ${transition.delay}ms`).join(",");
  style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;
  return style;
D
DCloud_LXH 已提交
522
}
fxy060608's avatar
fxy060608 已提交
523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545
function startAnimation(context) {
  const animation2 = context.animation;
  if (!animation2 || !animation2.actions || !animation2.actions.length) {
    return;
  }
  let index2 = 0;
  const actions = animation2.actions;
  const length = animation2.actions.length;
  function animate() {
    const action = actions[index2];
    const transition = action.option.transition;
    const style = getStyle(action);
    Object.keys(style).forEach((key) => {
      context.$el.style[key] = style[key];
    });
    index2 += 1;
    if (index2 < length) {
      setTimeout(animate, transition.duration + transition.delay);
    }
  }
  setTimeout(() => {
    animate();
  }, 0);
D
DCloud_LXH 已提交
546
}
fxy060608's avatar
fxy060608 已提交
547 548 549 550 551 552 553 554 555 556 557 558
var animation = {
  props: ["animation"],
  watch: {
    animation: {
      deep: true,
      handler() {
        startAnimation(this);
      }
    }
  },
  mounted() {
    startAnimation(this);
fxy060608's avatar
fxy060608 已提交
559
  }
fxy060608's avatar
fxy060608 已提交
560 561
};
const defineBuiltInComponent = (options) => {
fxy060608's avatar
fxy060608 已提交
562
  options.__reserved = true;
fxy060608's avatar
fxy060608 已提交
563 564 565
  const { props: props2, mixins } = options;
  if (!props2 || !props2.animation) {
    (mixins || (options.mixins = [])).push(animation);
fxy060608's avatar
fxy060608 已提交
566
  }
fxy060608's avatar
fxy060608 已提交
567 568 569
  return defineSystemComponent(options);
};
const defineSystemComponent = (options) => {
fxy060608's avatar
fxy060608 已提交
570
  options.__reserved = true;
fxy060608's avatar
fxy060608 已提交
571 572
  options.compatConfig = {
    MODE: 3
D
DCloud_LXH 已提交
573
  };
fxy060608's avatar
fxy060608 已提交
574 575
  return vue.defineComponent(options);
};
fxy060608's avatar
fxy060608 已提交
576 577 578 579 580 581 582 583
const defineUnsupportedComponent = (name) => {
  return defineBuiltInComponent({
    name: shared.capitalize(shared.camelize(name)),
    setup() {
      return () => (vue.openBlock(), vue.createElementBlock("uni-" + name, null, name + " is unsupported"));
    }
  });
};
fxy060608's avatar
fxy060608 已提交
584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599
const hoverProps = {
  hoverClass: {
    type: String,
    default: "none"
  },
  hoverStopPropagation: {
    type: Boolean,
    default: false
  },
  hoverStartTime: {
    type: [Number, String],
    default: 50
  },
  hoverStayTime: {
    type: [Number, String],
    default: 400
D
DCloud_LXH 已提交
600
  }
fxy060608's avatar
fxy060608 已提交
601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632
};
function useHover(props2) {
  const hovering = vue.ref(false);
  let hoverTouch = false;
  let hoverStartTimer;
  let hoverStayTimer;
  function hoverReset() {
    requestAnimationFrame(() => {
      clearTimeout(hoverStayTimer);
      hoverStayTimer = setTimeout(() => {
        hovering.value = false;
      }, parseInt(props2.hoverStayTime));
    });
  }
  function onTouchstartPassive(evt) {
    if (evt._hoverPropagationStopped) {
      return;
    }
    if (!props2.hoverClass || props2.hoverClass === "none" || props2.disabled) {
      return;
    }
    if (evt.touches.length > 1) {
      return;
    }
    if (props2.hoverStopPropagation) {
      evt._hoverPropagationStopped = true;
    }
    hoverTouch = true;
    hoverStartTimer = setTimeout(() => {
      hovering.value = true;
      if (!hoverTouch) {
        hoverReset();
D
DCloud_LXH 已提交
633
      }
fxy060608's avatar
fxy060608 已提交
634 635 636 637 638 639
    }, parseInt(props2.hoverStartTime));
  }
  function onTouchend() {
    hoverTouch = false;
    if (hovering.value) {
      hoverReset();
fxy060608's avatar
fxy060608 已提交
640
    }
fxy060608's avatar
fxy060608 已提交
641
  }
fxy060608's avatar
fxy060608 已提交
642 643 644 645
  function onTouchcancel() {
    hoverTouch = false;
    hovering.value = false;
    clearTimeout(hoverStartTimer);
D
DCloud_LXH 已提交
646
  }
fxy060608's avatar
fxy060608 已提交
647 648 649 650 651 652 653 654
  return {
    hovering,
    binding: {
      onTouchstartPassive,
      onTouchend,
      onTouchcancel
    }
  };
fxy060608's avatar
fxy060608 已提交
655
}
fxy060608's avatar
fxy060608 已提交
656 657 658
function useBooleanAttr(props2, keys) {
  if (shared.isString(keys)) {
    keys = [keys];
D
DCloud_LXH 已提交
659
  }
fxy060608's avatar
fxy060608 已提交
660 661 662 663 664
  return keys.reduce((res, key) => {
    if (props2[key]) {
      res[key] = true;
    }
    return res;
665
  }, /* @__PURE__ */ Object.create(null));
D
DCloud_LXH 已提交
666
}
fxy060608's avatar
fxy060608 已提交
667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692
function withWebEvent(fn) {
  return fn.__wwe = true, fn;
}
function useCustomEvent(ref, emit2) {
  return (name, evt, detail) => {
    if (ref.value) {
      emit2(name, normalizeCustomEvent(name, evt, ref.value, detail || {}));
    }
  };
}
function useNativeEvent(emit2) {
  return (name, evt) => {
    emit2(name, createNativeEvent(evt));
  };
}
function normalizeCustomEvent(name, domEvt, el, detail) {
  const target = uniShared.normalizeTarget(el);
  return {
    type: detail.type || name,
    timeStamp: domEvt.timeStamp || 0,
    target,
    currentTarget: target,
    detail
  };
}
const uniFormKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniForm" : "uf");
fxy060608's avatar
fxy060608 已提交
693
var index$E = /* @__PURE__ */ defineBuiltInComponent({
fxy060608's avatar
fxy060608 已提交
694
  name: "Form",
fxy060608's avatar
fxy060608 已提交
695
  emits: ["submit", "reset"],
fxy060608's avatar
fxy060608 已提交
696 697 698 699
  setup(_props, {
    slots,
    emit: emit2
  }) {
fxy060608's avatar
fxy060608 已提交
700 701
    const rootRef = vue.ref(null);
    provideForm(useCustomEvent(rootRef, emit2));
fxy060608's avatar
fxy060608 已提交
702
    return () => vue.createVNode("uni-form", {
fxy060608's avatar
fxy060608 已提交
703
      "ref": rootRef
fxy060608's avatar
fxy060608 已提交
704
    }, [vue.createVNode("span", null, [slots.default && slots.default()])], 512);
D
DCloud_LXH 已提交
705
  }
fxy060608's avatar
fxy060608 已提交
706
});
fxy060608's avatar
fxy060608 已提交
707
function provideForm(trigger) {
fxy060608's avatar
fxy060608 已提交
708 709 710 711 712 713 714 715
  const fields2 = [];
  vue.provide(uniFormKey, {
    addField(field) {
      fields2.push(field);
    },
    removeField(field) {
      fields2.splice(fields2.indexOf(field), 1);
    },
fxy060608's avatar
fxy060608 已提交
716 717 718 719 720 721 722 723
    submit(evt) {
      trigger("submit", evt, {
        value: fields2.reduce((res, field) => {
          if (field.submit) {
            const [name, value] = field.submit();
            name && (res[name] = value);
          }
          return res;
724
        }, /* @__PURE__ */ Object.create(null))
fxy060608's avatar
fxy060608 已提交
725 726
      });
    },
fxy060608's avatar
fxy060608 已提交
727
    reset(evt) {
fxy060608's avatar
fxy060608 已提交
728
      fields2.forEach((field) => field.reset && field.reset());
fxy060608's avatar
fxy060608 已提交
729
      trigger("reset", evt);
fxy060608's avatar
fxy060608 已提交
730 731 732 733
    }
  });
  return fields2;
}
fxy060608's avatar
fxy060608 已提交
734
const labelProps = {
fxy060608's avatar
fxy060608 已提交
735 736 737 738 739
  for: {
    type: String,
    default: ""
  }
};
fxy060608's avatar
fxy060608 已提交
740 741 742 743 744 745 746 747 748 749 750 751 752
const uniLabelKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniLabel" : "ul");
function useProvideLabel() {
  const handlers = [];
  vue.provide(uniLabelKey, {
    addHandler(handler) {
      handlers.push(handler);
    },
    removeHandler(handler) {
      handlers.splice(handlers.indexOf(handler), 1);
    }
  });
  return handlers;
}
fxy060608's avatar
fxy060608 已提交
753
var index$D = /* @__PURE__ */ defineBuiltInComponent({
fxy060608's avatar
fxy060608 已提交
754
  name: "Label",
fxy060608's avatar
fxy060608 已提交
755
  props: labelProps,
fxy060608's avatar
fxy060608 已提交
756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773
  setup(props2, {
    slots
  }) {
    const pageId = useCurrentPageId();
    const handlers = useProvideLabel();
    const pointer = vue.computed(() => props2.for || slots.default && slots.default.length);
    const _onClick = withWebEvent(($event) => {
      const EventTarget = $event.target;
      let 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 {
fxy060608's avatar
fxy060608 已提交
774
        handlers.length && handlers[0]($event, true);
fxy060608's avatar
fxy060608 已提交
775 776
      }
    });
fxy060608's avatar
fxy060608 已提交
777
    return () => vue.createVNode("uni-label", {
fxy060608's avatar
fxy060608 已提交
778 779 780 781
      "class": {
        "uni-label-pointer": pointer
      },
      "onClick": _onClick
fxy060608's avatar
fxy060608 已提交
782
    }, [slots.default && slots.default()], 10, ["onClick"]);
fxy060608's avatar
fxy060608 已提交
783 784
  }
});
fxy060608's avatar
fxy060608 已提交
785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826
const 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
  }
};
fxy060608's avatar
fxy060608 已提交
827
var index$C = /* @__PURE__ */ defineBuiltInComponent({
fxy060608's avatar
fxy060608 已提交
828
  name: "Button",
fxy060608's avatar
fxy060608 已提交
829
  props: buttonProps,
fxy060608's avatar
fxy060608 已提交
830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852
  setup(props2, {
    slots
  }) {
    const rootRef = vue.ref(null);
    const uniForm = vue.inject(uniFormKey, false);
    const {
      hovering,
      binding
    } = useHover(props2);
    useI18n();
    const onClick = withWebEvent((e2, isLabelClick) => {
      if (props2.disabled) {
        return e2.stopImmediatePropagation();
      }
      if (isLabelClick) {
        rootRef.value.click();
      }
      const formType = props2.formType;
      if (formType) {
        if (!uniForm) {
          return;
        }
        if (formType === "submit") {
fxy060608's avatar
fxy060608 已提交
853
          uniForm.submit(e2);
fxy060608's avatar
fxy060608 已提交
854
        } else if (formType === "reset") {
fxy060608's avatar
fxy060608 已提交
855
          uniForm.reset(e2);
fxy060608's avatar
fxy060608 已提交
856 857 858 859 860 861 862 863 864 865 866 867
        }
        return;
      }
    });
    const uniLabel = vue.inject(uniLabelKey, false);
    if (uniLabel) {
      uniLabel.addHandler(onClick);
    }
    return () => {
      const hoverClass = props2.hoverClass;
      const booleanAttrs = useBooleanAttr(props2, "disabled");
      const loadingAttrs = useBooleanAttr(props2, "loading");
D
DCloud_LXH 已提交
868
      const plainAttrs = useBooleanAttr(props2, "plain");
fxy060608's avatar
fxy060608 已提交
869
      const hasHoverClass = hoverClass && hoverClass !== "none";
fxy060608's avatar
fxy060608 已提交
870
      return vue.createVNode("uni-button", vue.mergeProps({
fxy060608's avatar
fxy060608 已提交
871 872 873
        "ref": rootRef,
        "onClick": onClick,
        "class": hasHoverClass && hovering.value ? hoverClass : ""
D
DCloud_LXH 已提交
874
      }, hasHoverClass && binding, booleanAttrs, loadingAttrs, plainAttrs), [slots.default && slots.default()], 16, ["onClick"]);
fxy060608's avatar
fxy060608 已提交
875 876 877 878 879
    };
  }
});
const baseUrl = __IMPORT_META_ENV_BASE_URL__;
function addBase(filePath) {
fxy060608's avatar
fxy060608 已提交
880 881
  if (uniShared.addLeadingSlash(filePath).indexOf(baseUrl) === 0) {
    return uniShared.addLeadingSlash(filePath);
fxy060608's avatar
fxy060608 已提交
882
  }
fxy060608's avatar
fxy060608 已提交
883 884 885
  return baseUrl + filePath;
}
function getRealPath(filePath) {
fxy060608's avatar
fxy060608 已提交
886 887 888 889 890
  const { base, assets } = __uniConfig.router;
  if (base === "./") {
    if (filePath.indexOf("./static/") === 0 || assets && filePath.indexOf("./" + assets + "/") === 0) {
      filePath = filePath.slice(1);
    }
fxy060608's avatar
fxy060608 已提交
891 892 893 894 895
  }
  if (filePath.indexOf("/") === 0) {
    if (filePath.indexOf("//") === 0) {
      filePath = "https:" + filePath;
    } else {
fxy060608's avatar
fxy060608 已提交
896
      return addBase(filePath.slice(1));
fxy060608's avatar
fxy060608 已提交
897 898
    }
  }
fxy060608's avatar
fxy060608 已提交
899
  if (uniShared.SCHEME_RE.test(filePath) || uniShared.DATA_RE.test(filePath) || filePath.indexOf("blob:") === 0) {
fxy060608's avatar
fxy060608 已提交
900 901 902 903
    return filePath;
  }
  const pages = getCurrentPages();
  if (pages.length) {
fxy060608's avatar
fxy060608 已提交
904
    return addBase(getRealRoute(pages[pages.length - 1].$page.route, filePath).slice(1));
fxy060608's avatar
fxy060608 已提交
905 906
  }
  return filePath;
D
DCloud_LXH 已提交
907 908 909 910 911 912 913 914 915
}
const HTTP_METHODS = [
  "GET",
  "OPTIONS",
  "HEAD",
  "POST",
  "PUT",
  "DELETE",
  "TRACE",
Q
qiang 已提交
916 917
  "CONNECT",
  "PATCH"
D
DCloud_LXH 已提交
918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935
];
function elemInArray(str, arr) {
  if (!str || arr.indexOf(str) === -1) {
    return arr[0];
  }
  return str;
}
function validateProtocolFail(name, msg) {
  console.warn(`${name}: ${msg}`);
}
function validateProtocol(name, data, protocol, onFail) {
  if (!onFail) {
    onFail = validateProtocolFail;
  }
  for (const key in protocol) {
    const errMsg = validateProp(key, data[key], protocol[key], !shared.hasOwn(data, key));
    if (shared.isString(errMsg)) {
      onFail(name, errMsg);
fxy060608's avatar
fxy060608 已提交
936
    }
fxy060608's avatar
fxy060608 已提交
937 938
  }
}
D
DCloud_LXH 已提交
939 940 941
function validateProtocols(name, args, protocol, onFail) {
  if (!protocol) {
    return;
fxy060608's avatar
fxy060608 已提交
942
  }
D
DCloud_LXH 已提交
943
  if (!shared.isArray(protocol)) {
944
    return validateProtocol(name, args[0] || /* @__PURE__ */ Object.create(null), protocol, onFail);
D
DCloud_LXH 已提交
945 946 947 948 949
  }
  const len = protocol.length;
  const argsLen = args.length;
  for (let i = 0; i < len; i++) {
    const opts = protocol[i];
950
    const data = /* @__PURE__ */ Object.create(null);
D
DCloud_LXH 已提交
951 952
    if (argsLen > i) {
      data[opts.name] = args[i];
fxy060608's avatar
fxy060608 已提交
953
    }
954
    validateProtocol(name, data, { [opts.name]: opts }, onFail);
D
DCloud_LXH 已提交
955
  }
fxy060608's avatar
fxy060608 已提交
956
}
D
DCloud_LXH 已提交
957 958
function validateProp(name, value, prop, isAbsent) {
  if (!shared.isPlainObject(prop)) {
959
    prop = { type: prop };
D
DCloud_LXH 已提交
960
  }
Q
qiang 已提交
961
  const { type, required, validator: validator2 } = prop;
D
DCloud_LXH 已提交
962 963 964 965
  if (required && isAbsent) {
    return 'Missing required args: "' + name + '"';
  }
  if (value == null && !required) {
D
DCloud_LXH 已提交
966
    return;
fxy060608's avatar
fxy060608 已提交
967
  }
D
DCloud_LXH 已提交
968 969 970 971 972
  if (type != null) {
    let isValid = false;
    const types = shared.isArray(type) ? type : [type];
    const expectedTypes = [];
    for (let i = 0; i < types.length && !isValid; i++) {
973
      const { valid, expectedType } = assertType(value, types[i]);
D
DCloud_LXH 已提交
974 975
      expectedTypes.push(expectedType || "");
      isValid = valid;
D
DCloud_LXH 已提交
976
    }
D
DCloud_LXH 已提交
977 978
    if (!isValid) {
      return getInvalidTypeMessage(name, value, expectedTypes);
fxy060608's avatar
fxy060608 已提交
979
    }
D
DCloud_LXH 已提交
980
  }
Q
qiang 已提交
981 982
  if (validator2) {
    return validator2(value);
D
DCloud_LXH 已提交
983
  }
D
DCloud_LXH 已提交
984 985 986 987 988 989 990 991 992 993
}
const isSimpleType = /* @__PURE__ */ shared.makeMap("String,Number,Boolean,Function,Symbol");
function assertType(value, type) {
  let valid;
  const expectedType = getType(type);
  if (isSimpleType(expectedType)) {
    const t2 = typeof value;
    valid = t2 === expectedType.toLowerCase();
    if (!valid && t2 === "object") {
      valid = value instanceof type;
D
DCloud_LXH 已提交
994
    }
D
DCloud_LXH 已提交
995 996 997 998 999 1000 1001
  } else if (expectedType === "Object") {
    valid = shared.isObject(value);
  } else if (expectedType === "Array") {
    valid = shared.isArray(value);
  } else {
    {
      valid = value instanceof type;
fxy060608's avatar
fxy060608 已提交
1002
    }
fxy060608's avatar
fxy060608 已提交
1003
  }
D
DCloud_LXH 已提交
1004
  return {
D
DCloud_LXH 已提交
1005 1006
    valid,
    expectedType
fxy060608's avatar
fxy060608 已提交
1007
  };
fxy060608's avatar
fxy060608 已提交
1008
}
D
DCloud_LXH 已提交
1009 1010 1011 1012 1013 1014 1015 1016
function getInvalidTypeMessage(name, value, expectedTypes) {
  let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(shared.capitalize).join(", ")}`;
  const expectedType = expectedTypes[0];
  const receivedType = shared.toRawType(value);
  const expectedValue = styleValue(value, expectedType);
  const receivedValue = styleValue(value, receivedType);
  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
    message += ` with value ${expectedValue}`;
D
DCloud_LXH 已提交
1017
  }
D
DCloud_LXH 已提交
1018 1019 1020 1021 1022
  message += `, got ${receivedType} `;
  if (isExplicable(receivedType)) {
    message += `with value ${receivedValue}.`;
  }
  return message;
fxy060608's avatar
fxy060608 已提交
1023
}
D
DCloud_LXH 已提交
1024 1025 1026
function getType(ctor) {
  const match = ctor && ctor.toString().match(/^\s*function (\w+)/);
  return match ? match[1] : "";
fxy060608's avatar
fxy060608 已提交
1027
}
D
DCloud_LXH 已提交
1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049
function styleValue(value, type) {
  if (type === "String") {
    return `"${value}"`;
  } else if (type === "Number") {
    return `${Number(value)}`;
  } else {
    return `${value}`;
  }
}
function isExplicable(type) {
  const explicitTypes = ["string", "number", "boolean"];
  return explicitTypes.some((elem) => type.toLowerCase() === elem);
}
function isBoolean(...args) {
  return args.some((elem) => elem.toLowerCase() === "boolean");
}
function tryCatch(fn) {
  return function() {
    try {
      return fn.apply(fn, arguments);
    } catch (e2) {
      console.error(e2);
D
DCloud_LXH 已提交
1050 1051
    }
  };
fxy060608's avatar
fxy060608 已提交
1052
}
D
DCloud_LXH 已提交
1053 1054 1055 1056 1057 1058 1059
let invokeCallbackId = 1;
const invokeCallbacks = {};
function addInvokeCallback(id, name, callback, keepAlive = false) {
  invokeCallbacks[id] = {
    name,
    keepAlive,
    callback
D
DCloud_LXH 已提交
1060
  };
D
DCloud_LXH 已提交
1061
  return id;
fxy060608's avatar
fxy060608 已提交
1062
}
D
DCloud_LXH 已提交
1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073
function invokeCallback(id, res, extras) {
  if (typeof id === "number") {
    const opts = invokeCallbacks[id];
    if (opts) {
      if (!opts.keepAlive) {
        delete invokeCallbacks[id];
      }
      return opts.callback(res, extras);
    }
  }
  return res;
fxy060608's avatar
fxy060608 已提交
1074
}
D
DCloud_LXH 已提交
1075 1076 1077 1078 1079 1080 1081 1082
const API_SUCCESS = "success";
const API_FAIL = "fail";
const API_COMPLETE = "complete";
function getApiCallbacks(args) {
  const apiCallbacks = {};
  for (const name in args) {
    const fn = args[name];
    if (shared.isFunction(fn)) {
fxy060608's avatar
fxy060608 已提交
1083 1084
      apiCallbacks[name] = tryCatch(fn);
      delete args[name];
D
DCloud_LXH 已提交
1085 1086
    }
  }
fxy060608's avatar
fxy060608 已提交
1087
  return apiCallbacks;
D
DCloud_LXH 已提交
1088
}
fxy060608's avatar
fxy060608 已提交
1089
function normalizeErrMsg$1(errMsg, name) {
fxy060608's avatar
fxy060608 已提交
1090 1091
  if (!errMsg || errMsg.indexOf(":fail") === -1) {
    return name + ":ok";
D
DCloud_LXH 已提交
1092
  }
fxy060608's avatar
fxy060608 已提交
1093
  return name + errMsg.substring(errMsg.indexOf(":fail"));
D
DCloud_LXH 已提交
1094
}
fxy060608's avatar
fxy060608 已提交
1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105
function createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {
  if (!shared.isPlainObject(args)) {
    args = {};
  }
  const { success, fail, complete } = getApiCallbacks(args);
  const hasSuccess = shared.isFunction(success);
  const hasFail = shared.isFunction(fail);
  const hasComplete = shared.isFunction(complete);
  const callbackId = invokeCallbackId++;
  addInvokeCallback(callbackId, name, (res) => {
    res = res || {};
fxy060608's avatar
fxy060608 已提交
1106
    res.errMsg = normalizeErrMsg$1(res.errMsg, name);
fxy060608's avatar
fxy060608 已提交
1107 1108
    shared.isFunction(beforeAll) && beforeAll(res);
    if (res.errMsg === name + ":ok") {
fxy060608's avatar
fxy060608 已提交
1109
      shared.isFunction(beforeSuccess) && beforeSuccess(res, args);
fxy060608's avatar
fxy060608 已提交
1110 1111 1112
      hasSuccess && success(res);
    } else {
      hasFail && fail(res);
D
DCloud_LXH 已提交
1113
    }
fxy060608's avatar
fxy060608 已提交
1114
    hasComplete && complete(res);
D
DCloud_LXH 已提交
1115
  });
fxy060608's avatar
fxy060608 已提交
1116
  return callbackId;
D
DCloud_LXH 已提交
1117
}
Q
qiang 已提交
1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186
const HOOK_SUCCESS = "success";
const HOOK_FAIL = "fail";
const HOOK_COMPLETE = "complete";
const globalInterceptors = {};
const scopedInterceptors = {};
function wrapperHook(hook) {
  return function(data) {
    return hook(data) || data;
  };
}
function queue(hooks, data) {
  let promise = false;
  for (let i = 0; i < hooks.length; i++) {
    const hook = hooks[i];
    if (promise) {
      promise = Promise.resolve(wrapperHook(hook));
    } else {
      const res = hook(data);
      if (shared.isPromise(res)) {
        promise = Promise.resolve(res);
      }
      if (res === false) {
        return {
          then() {
          },
          catch() {
          }
        };
      }
    }
  }
  return promise || {
    then(callback) {
      return callback(data);
    },
    catch() {
    }
  };
}
function wrapperOptions(interceptors, options = {}) {
  [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {
    const hooks = interceptors[name];
    if (!shared.isArray(hooks)) {
      return;
    }
    const oldCallback = options[name];
    options[name] = function callbackInterceptor(res) {
      queue(hooks, res).then((res2) => {
        return shared.isFunction(oldCallback) && oldCallback(res2) || res2;
      });
    };
  });
  return options;
}
function wrapperReturnValue(method, returnValue) {
  const returnValueHooks = [];
  if (shared.isArray(globalInterceptors.returnValue)) {
    returnValueHooks.push(...globalInterceptors.returnValue);
  }
  const interceptor = scopedInterceptors[method];
  if (interceptor && shared.isArray(interceptor.returnValue)) {
    returnValueHooks.push(...interceptor.returnValue);
  }
  returnValueHooks.forEach((hook) => {
    returnValue = hook(returnValue) || returnValue;
  });
  return returnValue;
}
function getApiInterceptorHooks(method) {
1187
  const interceptor = /* @__PURE__ */ Object.create(null);
Q
qiang 已提交
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202
  Object.keys(globalInterceptors).forEach((hook) => {
    if (hook !== "returnValue") {
      interceptor[hook] = globalInterceptors[hook].slice();
    }
  });
  const scopedInterceptor = scopedInterceptors[method];
  if (scopedInterceptor) {
    Object.keys(scopedInterceptor).forEach((hook) => {
      if (hook !== "returnValue") {
        interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
      }
    });
  }
  return interceptor;
}
1203
function invokeApi(method, api2, options, params) {
Q
qiang 已提交
1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216
  const interceptor = getApiInterceptorHooks(method);
  if (interceptor && Object.keys(interceptor).length) {
    if (shared.isArray(interceptor.invoke)) {
      const res = queue(interceptor.invoke, options);
      return res.then((options2) => {
        return api2(wrapperOptions(interceptor, options2), ...params);
      });
    } else {
      return api2(wrapperOptions(interceptor, options), ...params);
    }
  }
  return api2(options, ...params);
}
fxy060608's avatar
fxy060608 已提交
1217
function hasCallback(args) {
fxy060608's avatar
fxy060608 已提交
1218
  if (shared.isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find((cb) => shared.isFunction(args[cb]))) {
fxy060608's avatar
fxy060608 已提交
1219
    return true;
D
DCloud_LXH 已提交
1220
  }
fxy060608's avatar
fxy060608 已提交
1221 1222 1223 1224
  return false;
}
function handlePromise(promise) {
  return promise;
D
DCloud_LXH 已提交
1225
}
Q
qiang 已提交
1226
function promisify(name, fn) {
1227
  return (args = {}, ...rest) => {
fxy060608's avatar
fxy060608 已提交
1228
    if (hasCallback(args)) {
1229
      return wrapperReturnValue(name, invokeApi(name, fn, args, rest));
D
DCloud_LXH 已提交
1230
    }
Q
qiang 已提交
1231
    return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
1232
      invokeApi(name, fn, shared.extend(args, { success: resolve, fail: reject }), rest);
Q
qiang 已提交
1233
    })));
D
DCloud_LXH 已提交
1234
  };
fxy060608's avatar
fxy060608 已提交
1235 1236 1237 1238 1239
}
function formatApiArgs(args, options) {
  const params = args[0];
  if (!options || !shared.isPlainObject(options.formatArgs) && shared.isPlainObject(params)) {
    return;
fxy060608's avatar
fxy060608 已提交
1240
  }
fxy060608's avatar
fxy060608 已提交
1241 1242 1243 1244 1245 1246 1247 1248 1249
  const formatArgs = options.formatArgs;
  const keys = Object.keys(formatArgs);
  for (let i = 0; i < keys.length; i++) {
    const name = keys[i];
    const formatterOrDefaultValue = formatArgs[name];
    if (shared.isFunction(formatterOrDefaultValue)) {
      const errMsg = formatterOrDefaultValue(args[0][name], params);
      if (shared.isString(errMsg)) {
        return errMsg;
D
DCloud_LXH 已提交
1250
      }
fxy060608's avatar
fxy060608 已提交
1251 1252 1253 1254 1255
    } else {
      if (!shared.hasOwn(params, name)) {
        params[name] = formatterOrDefaultValue;
      }
    }
fxy060608's avatar
fxy060608 已提交
1256
  }
fxy060608's avatar
fxy060608 已提交
1257 1258 1259 1260
}
function invokeSuccess(id, name, res) {
  return invokeCallback(id, shared.extend(res || {}, { errMsg: name + ":ok" }));
}
D
DCloud_LXH 已提交
1261
function invokeFail(id, name, errMsg, errRes) {
fxy060608's avatar
fxy060608 已提交
1262
  return invokeCallback(id, shared.extend({ errMsg: name + ":fail" + (errMsg ? " " + errMsg : "") }, errRes));
fxy060608's avatar
fxy060608 已提交
1263 1264 1265 1266 1267 1268 1269 1270 1271
}
function beforeInvokeApi(name, args, protocol, options) {
  if (process.env.NODE_ENV !== "production") {
    validateProtocols(name, args, protocol);
  }
  if (options && options.beforeInvoke) {
    const errMsg2 = options.beforeInvoke(args);
    if (shared.isString(errMsg2)) {
      return errMsg2;
fxy060608's avatar
fxy060608 已提交
1272
    }
fxy060608's avatar
fxy060608 已提交
1273
  }
fxy060608's avatar
fxy060608 已提交
1274 1275 1276
  const errMsg = formatApiArgs(args, options);
  if (errMsg) {
    return errMsg;
D
DCloud_LXH 已提交
1277
  }
fxy060608's avatar
fxy060608 已提交
1278
}
fxy060608's avatar
fxy060608 已提交
1279
function normalizeErrMsg(errMsg) {
1280
  if (!errMsg || shared.isString(errMsg)) {
fxy060608's avatar
fxy060608 已提交
1281 1282 1283
    return errMsg;
  }
  if (errMsg.stack) {
fxy060608's avatar
fxy060608 已提交
1284
    console.error(errMsg.message + uniShared.LINEFEED + errMsg.stack);
fxy060608's avatar
fxy060608 已提交
1285 1286 1287 1288
    return errMsg.message;
  }
  return errMsg;
}
fxy060608's avatar
fxy060608 已提交
1289 1290 1291 1292 1293 1294
function wrapperTaskApi(name, fn, protocol, options) {
  return (args) => {
    const id = createAsyncApiCallback(name, args, options);
    const errMsg = beforeInvokeApi(name, [args], protocol, options);
    if (errMsg) {
      return invokeFail(id, name, errMsg);
fxy060608's avatar
fxy060608 已提交
1295
    }
fxy060608's avatar
fxy060608 已提交
1296 1297
    return fn(args, {
      resolve: (res) => invokeSuccess(id, name, res),
fxy060608's avatar
fxy060608 已提交
1298
      reject: (errMsg2, errRes) => invokeFail(id, name, normalizeErrMsg(errMsg2), errRes)
fxy060608's avatar
fxy060608 已提交
1299
    });
D
DCloud_LXH 已提交
1300 1301
  };
}
fxy060608's avatar
fxy060608 已提交
1302 1303 1304 1305 1306
function wrapperSyncApi(name, fn, protocol, options) {
  return (...args) => {
    const errMsg = beforeInvokeApi(name, args, protocol, options);
    if (errMsg) {
      throw new Error(errMsg);
D
DCloud_LXH 已提交
1307
    }
fxy060608's avatar
fxy060608 已提交
1308 1309
    return fn.apply(null, args);
  };
D
DCloud_LXH 已提交
1310
}
fxy060608's avatar
fxy060608 已提交
1311 1312
function wrapperAsyncApi(name, fn, protocol, options) {
  return wrapperTaskApi(name, fn, protocol, options);
D
DCloud_LXH 已提交
1313
}
fxy060608's avatar
fxy060608 已提交
1314
function defineTaskApi(name, fn, protocol, options) {
Q
qiang 已提交
1315
  return promisify(name, wrapperTaskApi(name, fn, process.env.NODE_ENV !== "production" ? protocol : void 0, options));
D
DCloud_LXH 已提交
1316
}
fxy060608's avatar
fxy060608 已提交
1317 1318
function defineSyncApi(name, fn, protocol, options) {
  return wrapperSyncApi(name, fn, process.env.NODE_ENV !== "production" ? protocol : void 0, options);
D
DCloud_LXH 已提交
1319
}
fxy060608's avatar
fxy060608 已提交
1320
function defineAsyncApi(name, fn, protocol, options) {
Q
qiang 已提交
1321
  return promisify(name, wrapperAsyncApi(name, fn, process.env.NODE_ENV !== "production" ? protocol : void 0, options));
D
DCloud_LXH 已提交
1322
}
fxy060608's avatar
fxy060608 已提交
1323
new uniShared.Emitter();
Q
qiang 已提交
1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334
const validator = [
  {
    name: "id",
    type: String,
    required: true
  }
];
validator.concat({
  name: "componentInstance",
  type: Object
});
fxy060608's avatar
fxy060608 已提交
1335 1336 1337 1338
const API_ON_TAB_BAR_MID_BUTTON_TAP = "onTabBarMidButtonTap";
const API_GET_STORAGE = "getStorage";
const GetStorageProtocol = {
  key: {
fxy060608's avatar
fxy060608 已提交
1339
    type: String,
fxy060608's avatar
fxy060608 已提交
1340
    required: true
fxy060608's avatar
fxy060608 已提交
1341 1342
  }
};
fxy060608's avatar
fxy060608 已提交
1343 1344 1345 1346 1347 1348
const API_GET_STORAGE_SYNC = "getStorageSync";
const GetStorageSyncProtocol = [
  {
    name: "key",
    type: String,
    required: true
D
DCloud_LXH 已提交
1349
  }
fxy060608's avatar
fxy060608 已提交
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393
];
const API_SET_STORAGE = "setStorage";
const SetStorageProtocol = {
  key: {
    type: String,
    required: true
  },
  data: {
    required: true
  }
};
const API_SET_STORAGE_SYNC = "setStorageSync";
const SetStorageSyncProtocol = [
  {
    name: "key",
    type: String,
    required: true
  },
  {
    name: "data",
    required: true
  }
];
const API_REMOVE_STORAGE = "removeStorage";
const RemoveStorageProtocol = GetStorageProtocol;
const RemoveStorageSyncProtocol = GetStorageSyncProtocol;
const API_REQUEST = "request";
const dataType = {
  JSON: "json"
};
const RESPONSE_TYPE = ["text", "arraybuffer"];
const DEFAULT_RESPONSE_TYPE = "text";
const encode = encodeURIComponent;
function stringifyQuery(url, data) {
  let str = url.split("#");
  const hash = str[1] || "";
  str = str[0].split("?");
  let query = str[1] || "";
  url = str[0];
  const search = query.split("&").filter((item) => item);
  const params = {};
  search.forEach((item) => {
    const part = item.split("=");
    params[part[0]] = part[1];
D
DCloud_LXH 已提交
1394
  });
fxy060608's avatar
fxy060608 已提交
1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407
  for (const key in data) {
    if (shared.hasOwn(data, key)) {
      let v2 = data[key];
      if (typeof v2 === "undefined" || v2 === null) {
        v2 = "";
      } else if (shared.isPlainObject(v2)) {
        v2 = JSON.stringify(v2);
      }
      params[encode(key)] = encode(v2);
    }
  }
  query = Object.keys(params).map((item) => `${item}=${params[item]}`).join("&");
  return url + (query ? "?" + query : "") + (hash ? "#" + hash : "");
D
DCloud_LXH 已提交
1408
}
fxy060608's avatar
fxy060608 已提交
1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424
const RequestProtocol = {
  method: String,
  data: [Object, String, Array, ArrayBuffer],
  url: {
    type: String,
    required: true
  },
  header: Object,
  dataType: String,
  responseType: String,
  withCredentials: Boolean
};
const RequestOptions = {
  formatArgs: {
    method(value, params) {
      params.method = elemInArray((value || "").toUpperCase(), HTTP_METHODS);
D
DCloud_LXH 已提交
1425
    },
fxy060608's avatar
fxy060608 已提交
1426 1427
    data(value, params) {
      params.data = value || "";
D
DCloud_LXH 已提交
1428
    },
fxy060608's avatar
fxy060608 已提交
1429 1430 1431 1432
    url(value, params) {
      if (params.method === HTTP_METHODS[0] && shared.isPlainObject(params.data) && Object.keys(params.data).length) {
        params.url = stringifyQuery(value, params.data);
      }
D
DCloud_LXH 已提交
1433
    },
fxy060608's avatar
fxy060608 已提交
1434 1435 1436 1437 1438 1439 1440
    header(value, params) {
      const header = params.header = value || {};
      if (params.method !== HTTP_METHODS[0]) {
        if (!Object.keys(header).find((key) => key.toLowerCase() === "content-type")) {
          header["Content-Type"] = "application/json";
        }
      }
D
DCloud_LXH 已提交
1441
    },
fxy060608's avatar
fxy060608 已提交
1442 1443
    dataType(value, params) {
      params.dataType = (value || dataType.JSON).toLowerCase();
D
DCloud_LXH 已提交
1444
    },
fxy060608's avatar
fxy060608 已提交
1445 1446 1447 1448
    responseType(value, params) {
      params.responseType = (value || "").toLowerCase();
      if (RESPONSE_TYPE.indexOf(params.responseType) === -1) {
        params.responseType = DEFAULT_RESPONSE_TYPE;
fxy060608's avatar
fxy060608 已提交
1449
      }
fxy060608's avatar
fxy060608 已提交
1450
    }
fxy060608's avatar
fxy060608 已提交
1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483
  }
};
const API_SET_NAVIGATION_BAR_COLOR = "setNavigationBarColor";
const API_SET_NAVIGATION_BAR_TITLE = "setNavigationBarTitle";
const SetNavigationBarTitleProtocol = {
  title: {
    type: String,
    required: true
  }
};
const API_SHOW_NAVIGATION_BAR_LOADING = "showNavigationBarLoading";
const API_HIDE_NAVIGATION_BAR_LOADING = "hideNavigationBarLoading";
function saveImage(base64, dirname, callback) {
  callback(null, base64);
}
const files = {};
function urlToFile(url, local) {
  const file = files[url];
  if (file) {
    return Promise.resolve(file);
  }
  if (/^data:[a-z-]+\/[a-z-]+;base64,/.test(url)) {
    return Promise.resolve(base64ToFile(url));
  }
  if (local) {
    return Promise.reject(new Error("not find"));
  }
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();
    xhr.open("GET", url, true);
    xhr.responseType = "blob";
    xhr.onload = function() {
      resolve(this.response);
fxy060608's avatar
fxy060608 已提交
1484
    };
fxy060608's avatar
fxy060608 已提交
1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497
    xhr.onerror = reject;
    xhr.send();
  });
}
function base64ToFile(base64) {
  const base64Array = base64.split(",");
  const res = base64Array[0].match(/:(.*?);/);
  const type = res ? res[1] : "";
  const str = atob(base64Array[1]);
  let n = str.length;
  const array = new Uint8Array(n);
  while (n--) {
    array[n] = str.charCodeAt(n);
fxy060608's avatar
fxy060608 已提交
1498
  }
fxy060608's avatar
fxy060608 已提交
1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542
  return blobToFile(array, type);
}
function getExtname(type) {
  const extname = type.split("/")[1];
  return extname ? `.${extname}` : "";
}
function blobToFile(blob, type) {
  let file;
  if (blob instanceof File) {
    file = blob;
  } else {
    type = type || blob.type || "";
    const filename = `${Date.now()}${getExtname(type)}`;
    try {
      file = new File([blob], filename, { type });
    } catch (error) {
      blob = blob instanceof Blob ? blob : new Blob([blob], { type });
      file = blob;
      file.name = file.name || filename;
    }
  }
  return file;
}
function fileToUrl(file) {
  for (const key in files) {
    if (shared.hasOwn(files, key)) {
      const oldFile = files[key];
      if (oldFile === file) {
        return key;
      }
    }
  }
  var url = (window.URL || window.webkitURL).createObjectURL(file);
  files[url] = file;
  return url;
}
function getSameOriginUrl(url) {
  const a = document.createElement("a");
  a.href = url;
  if (a.origin === location.origin) {
    return Promise.resolve(url);
  }
  return urlToFile(url).then(fileToUrl);
}
D
DCloud_LXH 已提交
1543 1544 1545 1546
const inflateRaw = (...args) => {
};
const deflateRaw = (...args) => {
};
D
DCloud_LXH 已提交
1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561
var ResizeSensor = /* @__PURE__ */ defineBuiltInComponent({
  name: "ResizeSensor",
  props: {
    initial: {
      type: Boolean,
      default: false
    }
  },
  emits: ["resize"],
  setup(props2, {
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const reset = useResizeSensorReset(rootRef);
    const update = useResizeSensorUpdate(rootRef, emit2, reset);
fxy060608's avatar
fxy060608 已提交
1562
    return () => vue.createVNode("uni-resize-sensor", {
D
DCloud_LXH 已提交
1563 1564
      "ref": rootRef,
      "onAnimationstartOnce": update
fxy060608's avatar
fxy060608 已提交
1565 1566 1567 1568 1569
    }, [vue.createVNode("div", {
      "onScroll": update
    }, [vue.createVNode("div", null, null)], 40, ["onScroll"]), vue.createVNode("div", {
      "onScroll": update
    }, [vue.createVNode("div", null, null)], 40, ["onScroll"])], 40, ["onAnimationstartOnce"]);
D
DCloud_LXH 已提交
1570
  }
D
DCloud_LXH 已提交
1571 1572 1573 1574 1575 1576 1577 1578
});
function useResizeSensorUpdate(rootRef, emit2, reset) {
  const size = vue.reactive({
    width: -1,
    height: -1
  });
  vue.watch(() => shared.extend({}, size), (value) => emit2("resize", value));
  return () => {
1579 1580 1581
    const rootEl = rootRef.value;
    size.width = rootEl.offsetWidth;
    size.height = rootEl.offsetHeight;
D
DCloud_LXH 已提交
1582
    reset();
1583 1584
  };
}
D
DCloud_LXH 已提交
1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
function useResizeSensorReset(rootRef) {
  return () => {
    const {
      firstElementChild,
      lastElementChild
    } = rootRef.value;
    firstElementChild.scrollLeft = 1e5;
    firstElementChild.scrollTop = 1e5;
    lastElementChild.scrollLeft = 1e5;
    lastElementChild.scrollTop = 1e5;
  };
fxy060608's avatar
fxy060608 已提交
1596
}
D
DCloud_LXH 已提交
1597
const pixelRatio = 1;
fxy060608's avatar
fxy060608 已提交
1598 1599 1600 1601
function wrapper(canvas, hidpi = true) {
  canvas.width = canvas.offsetWidth * (hidpi ? pixelRatio : 1);
  canvas.height = canvas.offsetHeight * (hidpi ? pixelRatio : 1);
  canvas.getContext("2d").__hidpi__ = hidpi;
D
DCloud_LXH 已提交
1602
}
D
DCloud_LXH 已提交
1603 1604 1605
const initHidpiOnce = /* @__PURE__ */ uniShared.once(() => {
  return void 0;
});
D
DCloud_LXH 已提交
1606 1607
function $getRealPath(src) {
  return src ? getRealPath(src) : src;
D
DCloud_LXH 已提交
1608
}
D
DCloud_LXH 已提交
1609 1610 1611 1612
function resolveColor(color) {
  color = color.slice(0);
  color[3] = color[3] / 255;
  return "rgba(" + color.join(",") + ")";
fxy060608's avatar
fxy060608 已提交
1613
}
D
DCloud_LXH 已提交
1614 1615 1616 1617 1618 1619 1620 1621 1622
function processTouches(target, touches) {
  const eventTarget = target;
  return Array.from(touches).map((touch) => {
    let boundingClientRect = eventTarget.getBoundingClientRect();
    return {
      identifier: touch.identifier,
      x: touch.clientX - boundingClientRect.left,
      y: touch.clientY - boundingClientRect.top
    };
D
DCloud_LXH 已提交
1623
  });
fxy060608's avatar
fxy060608 已提交
1624
}
D
DCloud_LXH 已提交
1625 1626 1627 1628 1629 1630 1631 1632 1633
let tempCanvas;
function getTempCanvas(width = 0, height = 0) {
  if (!tempCanvas) {
    tempCanvas = document.createElement("canvas");
  }
  tempCanvas.width = width;
  tempCanvas.height = height;
  return tempCanvas;
}
1634
const props$q = {
D
DCloud_LXH 已提交
1635
  canvasId: {
D
DCloud_LXH 已提交
1636 1637 1638
    type: String,
    default: ""
  },
D
DCloud_LXH 已提交
1639
  disableScroll: {
D
DCloud_LXH 已提交
1640 1641
    type: [Boolean, String],
    default: false
fxy060608's avatar
fxy060608 已提交
1642 1643 1644 1645
  },
  hidpi: {
    type: Boolean,
    default: true
D
DCloud_LXH 已提交
1646 1647
  }
};
fxy060608's avatar
fxy060608 已提交
1648
var index$B = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
1649 1650 1651 1652
  inheritAttrs: false,
  name: "Canvas",
  compatConfig: {
    MODE: 3
D
DCloud_LXH 已提交
1653
  },
1654
  props: props$q,
D
DCloud_LXH 已提交
1655 1656 1657 1658
  computed: {
    id() {
      return this.canvasId;
    }
fxy060608's avatar
fxy060608 已提交
1659
  },
D
DCloud_LXH 已提交
1660
  setup(props2, {
D
DCloud_LXH 已提交
1661 1662
    emit: emit2,
    slots
D
DCloud_LXH 已提交
1663
  }) {
D
DCloud_LXH 已提交
1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681
    initHidpiOnce();
    const canvas = vue.ref(null);
    const sensor = vue.ref(null);
    const actionsWaiting = vue.ref(false);
    const trigger = useNativeEvent(emit2);
    const {
      $attrs,
      $excludeAttrs,
      $listeners
    } = useAttrs({
      excludeListeners: true
    });
    const {
      _listeners
    } = useListeners(props2, $listeners, trigger);
    const {
      _handleSubscribe,
      _resize
fxy060608's avatar
fxy060608 已提交
1682
    } = useMethods(props2, canvas, actionsWaiting);
1683
    useSubscribe(_handleSubscribe, useContextInfo(props2.canvasId));
D
DCloud_LXH 已提交
1684 1685
    return () => {
      const {
D
DCloud_LXH 已提交
1686 1687
        canvasId,
        disableScroll
D
DCloud_LXH 已提交
1688
      } = props2;
fxy060608's avatar
fxy060608 已提交
1689
      return vue.createVNode("uni-canvas", vue.mergeProps({
D
DCloud_LXH 已提交
1690 1691
        "canvas-id": canvasId,
        "disable-scroll": disableScroll
fxy060608's avatar
fxy060608 已提交
1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702
      }, $attrs.value, $excludeAttrs.value, _listeners.value), [vue.createVNode("canvas", {
        "ref": canvas,
        "class": "uni-canvas-canvas",
        "width": "300",
        "height": "150"
      }, null, 512), vue.createVNode("div", {
        "style": "position: absolute;top: 0;left: 0;width: 100%;height: 100%;overflow: hidden;"
      }, [slots.default && slots.default()]), vue.createVNode(ResizeSensor, {
        "ref": sensor,
        "onResize": _resize
      }, null, 8, ["onResize"])], 16, ["canvas-id", "disable-scroll"]);
D
DCloud_LXH 已提交
1703 1704 1705
    };
  }
});
D
DCloud_LXH 已提交
1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742
function useListeners(props2, Listeners, trigger) {
  const _listeners = vue.computed(() => {
    let events = ["onTouchstart", "onTouchmove", "onTouchend"];
    let _$listeners = Listeners.value;
    let $listeners = shared.extend({}, (() => {
      let obj = {};
      for (const key in _$listeners) {
        if (Object.prototype.hasOwnProperty.call(_$listeners, key)) {
          const event = _$listeners[key];
          obj[key] = event;
        }
      }
      return obj;
    })());
    events.forEach((event) => {
      let existing = $listeners[event];
      let eventHandler = [];
      if (existing) {
        eventHandler.push(withWebEvent(($event) => {
          trigger(event.replace("on", "").toLocaleLowerCase(), shared.extend({}, (() => {
            let obj = {};
            for (const key in $event) {
              obj[key] = $event[key];
            }
            return obj;
          })(), {
            touches: processTouches($event.currentTarget, $event.touches),
            changedTouches: processTouches($event.currentTarget, $event.changedTouches)
          }));
        }));
      }
      if (props2.disableScroll && event === "onTouchmove") {
        eventHandler.push(onEventPrevent);
      }
      $listeners[event] = eventHandler;
    });
    return $listeners;
D
DCloud_LXH 已提交
1743
  });
D
DCloud_LXH 已提交
1744 1745
  return {
    _listeners
D
DCloud_LXH 已提交
1746 1747
  };
}
fxy060608's avatar
fxy060608 已提交
1748
function useMethods(props2, canvasRef, actionsWaiting) {
D
DCloud_LXH 已提交
1749 1750
  let _actionsDefer = [];
  let _images = {};
fxy060608's avatar
fxy060608 已提交
1751
  const _pixelRatio = vue.computed(() => props2.hidpi ? pixelRatio : 1);
1752
  function _resize(size) {
fxy060608's avatar
fxy060608 已提交
1753
    let canvas = canvasRef.value;
fxy060608's avatar
fxy060608 已提交
1754
    var hasChanged = !size || canvas.width !== Math.floor(size.width * _pixelRatio.value) || canvas.height !== Math.floor(size.height * _pixelRatio.value);
1755 1756
    if (!hasChanged)
      return;
D
DCloud_LXH 已提交
1757
    if (canvas.width > 0 && canvas.height > 0) {
fxy060608's avatar
fxy060608 已提交
1758 1759
      let context = canvas.getContext("2d");
      let imageData = context.getImageData(0, 0, canvas.width, canvas.height);
fxy060608's avatar
fxy060608 已提交
1760
      wrapper(canvas, props2.hidpi);
D
DCloud_LXH 已提交
1761 1762
      context.putImageData(imageData, 0, 0);
    } else {
fxy060608's avatar
fxy060608 已提交
1763
      wrapper(canvas, props2.hidpi);
D
DCloud_LXH 已提交
1764 1765 1766 1767
    }
  }
  function actionsChanged({
    actions,
D
DCloud_LXH 已提交
1768
    reserve
1769
  }, resolve) {
D
DCloud_LXH 已提交
1770
    if (!actions) {
D
DCloud_LXH 已提交
1771 1772
      return;
    }
D
DCloud_LXH 已提交
1773
    if (actionsWaiting.value) {
D
DCloud_LXH 已提交
1774
      _actionsDefer.push([actions, reserve]);
D
DCloud_LXH 已提交
1775
      return;
fxy060608's avatar
fxy060608 已提交
1776
    }
fxy060608's avatar
fxy060608 已提交
1777 1778
    let canvas = canvasRef.value;
    let c2d = canvas.getContext("2d");
D
DCloud_LXH 已提交
1779 1780 1781 1782 1783 1784 1785 1786 1787
    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);
D
DCloud_LXH 已提交
1788
    }
D
DCloud_LXH 已提交
1789 1790 1791 1792 1793
    preloadImage(actions);
    for (let index2 = 0; index2 < actions.length; index2++) {
      const action = actions[index2];
      let method = action.method;
      const data = action.data;
fxy060608's avatar
fxy060608 已提交
1794
      const actionType = data[0];
D
DCloud_LXH 已提交
1795 1796 1797 1798
      if (/^set/.test(method) && method !== "setTransform") {
        const method1 = method[3].toLowerCase() + method.slice(4);
        let color;
        if (method1 === "fillStyle" || method1 === "strokeStyle") {
fxy060608's avatar
fxy060608 已提交
1799
          if (actionType === "normal") {
D
DCloud_LXH 已提交
1800
            color = resolveColor(data[1]);
fxy060608's avatar
fxy060608 已提交
1801
          } else if (actionType === "linear") {
D
DCloud_LXH 已提交
1802 1803 1804 1805 1806 1807 1808
            const LinearGradient = c2d.createLinearGradient(...data[1]);
            data[2].forEach(function(data2) {
              const offset = data2[0];
              const color2 = resolveColor(data2[1]);
              LinearGradient.addColorStop(offset, color2);
            });
            color = LinearGradient;
fxy060608's avatar
fxy060608 已提交
1809 1810 1811 1812 1813
          } else if (actionType === "radial") {
            let _data = data[1];
            const x = _data[0];
            const y = _data[1];
            const r = _data[2];
D
DCloud_LXH 已提交
1814 1815 1816 1817 1818 1819 1820
            const LinearGradient = c2d.createRadialGradient(x, y, 0, x, y, r);
            data[2].forEach(function(data2) {
              const offset = data2[0];
              const color2 = resolveColor(data2[1]);
              LinearGradient.addColorStop(offset, color2);
            });
            color = LinearGradient;
fxy060608's avatar
fxy060608 已提交
1821
          } else if (actionType === "pattern") {
D
DCloud_LXH 已提交
1822
            const loaded = checkImageLoaded(data[1], actions.slice(index2 + 1), resolve, function(image) {
D
DCloud_LXH 已提交
1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833
              if (image) {
                c2d[method1] = c2d.createPattern(image, data[2]);
              }
            });
            if (!loaded) {
              break;
            }
            continue;
          }
          c2d[method1] = color;
        } else if (method1 === "globalAlpha") {
fxy060608's avatar
fxy060608 已提交
1834
          c2d[method1] = Number(actionType) / 255;
D
DCloud_LXH 已提交
1835
        } else if (method1 === "shadow") {
fxy060608's avatar
fxy060608 已提交
1836
          let shadowArray = ["shadowOffsetX", "shadowOffsetY", "shadowBlur", "shadowColor"];
D
DCloud_LXH 已提交
1837
          data.forEach(function(color_, method_) {
fxy060608's avatar
fxy060608 已提交
1838
            c2d[shadowArray[method_]] = shadowArray[method_] === "shadowColor" ? resolveColor(color_) : color_;
D
DCloud_LXH 已提交
1839 1840 1841
          });
        } else if (method1 === "fontSize") {
          const font = c2d.__font__ || c2d.font;
fxy060608's avatar
fxy060608 已提交
1842
          c2d.__font__ = c2d.font = font.replace(/\d+\.?\d*px/, actionType + "px");
D
DCloud_LXH 已提交
1843
        } else if (method1 === "lineDash") {
fxy060608's avatar
fxy060608 已提交
1844
          c2d.setLineDash(actionType);
D
DCloud_LXH 已提交
1845 1846
          c2d.lineDashOffset = data[1] || 0;
        } else if (method1 === "textBaseline") {
fxy060608's avatar
fxy060608 已提交
1847
          if (actionType === "normal") {
D
DCloud_LXH 已提交
1848 1849
            data[0] = "alphabetic";
          }
fxy060608's avatar
fxy060608 已提交
1850
          c2d[method1] = actionType;
D
DCloud_LXH 已提交
1851
        } else if (method1 === "font") {
fxy060608's avatar
fxy060608 已提交
1852
          c2d.__font__ = c2d.font = actionType;
D
DCloud_LXH 已提交
1853
        } else {
fxy060608's avatar
fxy060608 已提交
1854
          c2d[method1] = actionType;
D
DCloud_LXH 已提交
1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865
        }
      } 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") {
fxy060608's avatar
fxy060608 已提交
1866 1867 1868 1869
        let drawImage = function() {
          let dataArray = [...data];
          let url = dataArray[0];
          let otherData = dataArray.slice(1);
D
DCloud_LXH 已提交
1870
          _images = _images || {};
fxy060608's avatar
fxy060608 已提交
1871
          if (!checkImageLoaded(url, actions.slice(index2 + 1), resolve, function(image) {
D
DCloud_LXH 已提交
1872 1873 1874 1875 1876 1877
            if (image) {
              c2d.drawImage.apply(c2d, [image].concat([...otherData.slice(4, 8)], [...otherData.slice(0, 4)]));
            }
          }))
            return "break";
        }();
fxy060608's avatar
fxy060608 已提交
1878
        if (drawImage === "break") {
D
DCloud_LXH 已提交
1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889
          break;
        }
      } else {
        if (method === "clip") {
          data.forEach(function(data_) {
            c2d[data_.method].apply(c2d, data_.data);
          });
          c2d.clip();
        } else {
          c2d[method].apply(c2d, data);
        }
D
DCloud_LXH 已提交
1890 1891
      }
    }
D
DCloud_LXH 已提交
1892
    if (!actionsWaiting.value) {
1893
      resolve({
D
DCloud_LXH 已提交
1894
        errMsg: "drawCanvas:ok"
1895
      });
D
DCloud_LXH 已提交
1896
    }
1897
  }
D
DCloud_LXH 已提交
1898 1899
  function preloadImage(actions) {
    actions.forEach(function(action) {
fxy060608's avatar
fxy060608 已提交
1900 1901 1902
      let method = action.method;
      let data = action.data;
      let src = "";
D
DCloud_LXH 已提交
1903 1904 1905 1906 1907 1908 1909 1910
      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;
D
DCloud_LXH 已提交
1911
      }
D
DCloud_LXH 已提交
1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927
      if (src && !_images[src]) {
        loadImage();
      }
      function loadImage() {
        const image = _images[src] = new Image();
        image.onload = function() {
          image.ready = true;
        };
        getSameOriginUrl(src).then((src2) => {
          image.src = src2;
        }).catch(() => {
          image.src = src;
        });
      }
    });
  }
D
DCloud_LXH 已提交
1928
  function checkImageLoaded(src, actions, resolve, fn) {
fxy060608's avatar
fxy060608 已提交
1929
    let image = _images[src];
D
DCloud_LXH 已提交
1930 1931 1932 1933 1934 1935 1936 1937 1938 1939
    if (image.ready) {
      fn(image);
      return true;
    } else {
      _actionsDefer.unshift([actions, true]);
      actionsWaiting.value = true;
      image.onload = function() {
        image.ready = true;
        fn(image);
        actionsWaiting.value = false;
fxy060608's avatar
fxy060608 已提交
1940
        let actions2 = _actionsDefer.slice(0);
D
DCloud_LXH 已提交
1941
        _actionsDefer = [];
fxy060608's avatar
fxy060608 已提交
1942
        for (let action = actions2.shift(); action; ) {
D
DCloud_LXH 已提交
1943 1944
          actionsChanged({
            actions: action[0],
1945 1946
            reserve: action[1]
          }, resolve);
D
DCloud_LXH 已提交
1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962
          action = actions2.shift();
        }
      };
      return false;
    }
  }
  function getImageData({
    x = 0,
    y = 0,
    width,
    height,
    destWidth,
    destHeight,
    hidpi = true,
    dataType: dataType2,
    quality = 1,
D
DCloud_LXH 已提交
1963
    type = "png"
1964
  }, resolve) {
D
DCloud_LXH 已提交
1965 1966 1967 1968 1969 1970 1971 1972
    const canvas = canvasRef.value;
    let data;
    const maxWidth = canvas.offsetWidth - x;
    width = width ? Math.min(width, maxWidth) : maxWidth;
    const maxHeight = canvas.offsetHeight - y;
    height = height ? Math.min(height, maxHeight) : maxHeight;
    if (!hidpi) {
      if (!destWidth && !destHeight) {
fxy060608's avatar
fxy060608 已提交
1973 1974
        destWidth = Math.round(width * _pixelRatio.value);
        destHeight = Math.round(height * _pixelRatio.value);
D
DCloud_LXH 已提交
1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
      } else if (!destWidth) {
        destWidth = Math.round(width / height * destHeight);
      } else if (!destHeight) {
        destHeight = Math.round(height / width * destWidth);
      }
    } else {
      destWidth = width;
      destHeight = height;
    }
    const newCanvas = getTempCanvas(destWidth, destHeight);
    const 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);
    let result;
    try {
      let compressed;
      if (dataType2 === "base64") {
        data = newCanvas.toDataURL(`image/${type}`, quality);
      } else {
        const imgData = context.getImageData(0, 0, destWidth, destHeight);
        if (false)
          ;
        else {
          data = Array.prototype.slice.call(imgData.data);
        }
      }
      result = {
        data,
        compressed,
        width: destWidth,
        height: destHeight
      };
    } catch (error) {
      result = {
        errMsg: `canvasGetImageData:fail ${error}`
      };
    }
    newCanvas.height = newCanvas.width = 0;
    context.__hidpi__ = false;
D
DCloud_LXH 已提交
2019
    if (!resolve) {
D
DCloud_LXH 已提交
2020 2021
      return result;
    } else {
D
DCloud_LXH 已提交
2022
      resolve(result);
D
DCloud_LXH 已提交
2023 2024 2025 2026 2027 2028 2029 2030
    }
  }
  function putImageData({
    data,
    x,
    y,
    width,
    height,
D
DCloud_LXH 已提交
2031
    compressed
2032
  }, resolve) {
D
DCloud_LXH 已提交
2033
    try {
D
DCloud_LXH 已提交
2034 2035
      if (false)
        ;
D
DCloud_LXH 已提交
2036 2037 2038 2039 2040 2041 2042 2043 2044
      if (!height) {
        height = Math.round(data.length / 4 / width);
      }
      const canvas = getTempCanvas(width, height);
      const 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) {
2045
      resolve({
D
DCloud_LXH 已提交
2046
        errMsg: "canvasPutImageData:fail"
2047
      });
D
DCloud_LXH 已提交
2048
      return;
2049
    }
2050
    resolve({
D
DCloud_LXH 已提交
2051
      errMsg: "canvasPutImageData:ok"
2052
    });
D
DCloud_LXH 已提交
2053 2054 2055 2056 2057 2058 2059 2060 2061 2062
  }
  function toTempFilePath({
    x = 0,
    y = 0,
    width,
    height,
    destWidth,
    destHeight,
    fileType,
    quality,
D
DCloud_LXH 已提交
2063
    dirname
2064
  }, resolve) {
D
DCloud_LXH 已提交
2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077
    const res = getImageData({
      x,
      y,
      width,
      height,
      destWidth,
      destHeight,
      hidpi: false,
      dataType: "base64",
      type: fileType,
      quality
    });
    if (!res.data || !res.data.length) {
2078
      resolve({
D
DCloud_LXH 已提交
2079
        errMsg: res.errMsg.replace("canvasPutImageData", "toTempFilePath")
2080
      });
D
DCloud_LXH 已提交
2081 2082 2083 2084 2085 2086 2087
      return;
    }
    saveImage(res.data, dirname, (error, tempFilePath) => {
      let errMsg = `toTempFilePath:${error ? "fail" : "ok"}`;
      if (error) {
        errMsg += ` ${error.message}`;
      }
2088
      resolve({
D
DCloud_LXH 已提交
2089 2090
        errMsg,
        tempFilePath
2091
      });
D
DCloud_LXH 已提交
2092 2093 2094 2095 2096 2097 2098 2099
    });
  }
  const methods = {
    actionsChanged,
    getImageData,
    putImageData,
    toTempFilePath
  };
2100
  function _handleSubscribe(type, data, resolve) {
D
DCloud_LXH 已提交
2101 2102
    let method = methods[type];
    if (type.indexOf("_") !== 0 && typeof method === "function") {
2103
      method(data, resolve);
D
DCloud_LXH 已提交
2104 2105 2106 2107 2108
    }
  }
  return shared.extend(methods, {
    _resize,
    _handleSubscribe
2109 2110
  });
}
D
DCloud_LXH 已提交
2111
const uniCheckGroupKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniCheckGroup" : "ucg");
2112
const props$p = {
D
DCloud_LXH 已提交
2113
  name: {
2114 2115
    type: String,
    default: ""
D
DCloud_LXH 已提交
2116 2117
  }
};
fxy060608's avatar
fxy060608 已提交
2118
var index$A = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
2119
  name: "CheckboxGroup",
2120
  props: props$p,
D
DCloud_LXH 已提交
2121 2122 2123 2124 2125 2126 2127 2128 2129
  emits: ["change"],
  setup(props2, {
    emit: emit2,
    slots
  }) {
    const rootRef = vue.ref(null);
    const trigger = useCustomEvent(rootRef, emit2);
    useProvideCheckGroup(props2, trigger);
    return () => {
fxy060608's avatar
fxy060608 已提交
2130
      return vue.createVNode("uni-checkbox-group", {
D
DCloud_LXH 已提交
2131
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
2132
      }, [slots.default && slots.default()], 512);
D
DCloud_LXH 已提交
2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171
    };
  }
});
function useProvideCheckGroup(props2, trigger) {
  const fields2 = [];
  const getFieldsValue = () => fields2.reduce((res, field) => {
    if (field.value.checkboxChecked) {
      res.push(field.value.value);
    }
    return res;
  }, new Array());
  vue.provide(uniCheckGroupKey, {
    addField(field) {
      fields2.push(field);
    },
    removeField(field) {
      fields2.splice(fields2.indexOf(field), 1);
    },
    checkboxChange($event) {
      trigger("change", $event, {
        value: getFieldsValue()
      });
    }
  });
  const uniForm = vue.inject(uniFormKey, false);
  if (uniForm) {
    uniForm.addField({
      submit: () => {
        let data = ["", null];
        if (props2.name !== "") {
          data[0] = props2.name;
          data[1] = getFieldsValue();
        }
        return data;
      }
    });
  }
  return getFieldsValue;
}
2172
const props$o = {
D
DCloud_LXH 已提交
2173
  checked: {
D
DCloud_LXH 已提交
2174 2175 2176
    type: [Boolean, String],
    default: false
  },
D
DCloud_LXH 已提交
2177
  id: {
D
DCloud_LXH 已提交
2178
    type: String,
D
DCloud_LXH 已提交
2179
    default: ""
D
DCloud_LXH 已提交
2180
  },
D
DCloud_LXH 已提交
2181
  disabled: {
Q
qiang 已提交
2182 2183
    type: [Boolean, String],
    default: false
D
DCloud_LXH 已提交
2184
  },
D
DCloud_LXH 已提交
2185
  color: {
D
DCloud_LXH 已提交
2186
    type: String,
D
DCloud_LXH 已提交
2187
    default: "#007aff"
D
DCloud_LXH 已提交
2188
  },
D
DCloud_LXH 已提交
2189
  value: {
D
DCloud_LXH 已提交
2190 2191
    type: String,
    default: ""
Q
qiang 已提交
2192
  }
D
DCloud_LXH 已提交
2193
};
fxy060608's avatar
fxy060608 已提交
2194
var index$z = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
2195
  name: "Checkbox",
2196
  props: props$o,
D
DCloud_LXH 已提交
2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221
  setup(props2, {
    slots
  }) {
    const checkboxChecked = vue.ref(props2.checked);
    const checkboxValue = vue.ref(props2.value);
    vue.watch([() => props2.checked, () => props2.value], ([newChecked, newModelValue]) => {
      checkboxChecked.value = newChecked;
      checkboxValue.value = newModelValue;
    });
    const reset = () => {
      checkboxChecked.value = false;
    };
    const {
      uniCheckGroup,
      uniLabel
    } = useCheckboxInject(checkboxChecked, checkboxValue, reset);
    const _onClick = ($event) => {
      if (props2.disabled) {
        return;
      }
      checkboxChecked.value = !checkboxChecked.value;
      uniCheckGroup && uniCheckGroup.checkboxChange($event);
    };
    if (!!uniLabel) {
      uniLabel.addHandler(_onClick);
D
DCloud_LXH 已提交
2222
    }
D
DCloud_LXH 已提交
2223
    return () => {
fxy060608's avatar
fxy060608 已提交
2224
      const booleanAttrs = useBooleanAttr(props2, "disabled");
fxy060608's avatar
fxy060608 已提交
2225
      return vue.createVNode("uni-checkbox", vue.mergeProps(booleanAttrs, {
D
DCloud_LXH 已提交
2226
        "onClick": _onClick
fxy060608's avatar
fxy060608 已提交
2227 2228 2229 2230 2231 2232 2233
      }), [vue.createVNode("div", {
        "class": "uni-checkbox-wrapper"
      }, [vue.createVNode("div", {
        "class": ["uni-checkbox-input", {
          "uni-checkbox-input-disabled": props2.disabled
        }]
      }, [checkboxChecked.value ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.color, 22) : ""], 2), slots.default && slots.default()])], 16, ["onClick"]);
D
DCloud_LXH 已提交
2234 2235 2236 2237 2238 2239 2240 2241 2242 2243
    };
  }
});
function useCheckboxInject(checkboxChecked, checkboxValue, reset) {
  const field = vue.computed(() => ({
    checkboxChecked: Boolean(checkboxChecked.value),
    value: checkboxValue.value
  }));
  const formField = {
    reset
fxy060608's avatar
fxy060608 已提交
2244
  };
D
DCloud_LXH 已提交
2245 2246 2247
  const uniCheckGroup = vue.inject(uniCheckGroupKey, false);
  if (!!uniCheckGroup) {
    uniCheckGroup.addField(field);
fxy060608's avatar
fxy060608 已提交
2248
  }
D
DCloud_LXH 已提交
2249 2250 2251
  const uniForm = vue.inject(uniFormKey, false);
  if (!!uniForm) {
    uniForm.addField(formField);
D
DCloud_LXH 已提交
2252
  }
D
DCloud_LXH 已提交
2253 2254 2255 2256 2257 2258
  const uniLabel = vue.inject(uniLabelKey, false);
  return {
    uniCheckGroup,
    uniForm,
    uniLabel
  };
D
DCloud_LXH 已提交
2259
}
D
DCloud_LXH 已提交
2260 2261 2262
let resetTimer;
function iosHideKeyboard() {
}
2263
const props$n = {
D
DCloud_LXH 已提交
2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278
  cursorSpacing: {
    type: [Number, String],
    default: 0
  },
  showConfirmBar: {
    type: [Boolean, String],
    default: "auto"
  },
  adjustPosition: {
    type: [Boolean, String],
    default: true
  },
  autoBlur: {
    type: [Boolean, String],
    default: false
D
DCloud_LXH 已提交
2279
  }
D
DCloud_LXH 已提交
2280 2281 2282 2283
};
const emit$1 = ["keyboardheightchange"];
function useKeyboard$1(props2, elRef, trigger) {
  function initKeyboard(el) {
Q
qiang 已提交
2284
    const isApple = vue.computed(() => String(navigator.vendor).indexOf("Apple") === 0);
D
DCloud_LXH 已提交
2285 2286 2287
    el.addEventListener("focus", () => {
      clearTimeout(resetTimer);
      document.addEventListener("click", iosHideKeyboard, false);
D
DCloud_LXH 已提交
2288
    });
D
DCloud_LXH 已提交
2289 2290
    const onKeyboardHide = () => {
      document.removeEventListener("click", iosHideKeyboard, false);
Q
qiang 已提交
2291
      if (isApple.value) {
D
DCloud_LXH 已提交
2292
        document.documentElement.scrollTo(document.documentElement.scrollLeft, document.documentElement.scrollTop);
D
DCloud_LXH 已提交
2293
      }
D
DCloud_LXH 已提交
2294 2295
    };
    el.addEventListener("blur", () => {
Q
qiang 已提交
2296 2297 2298
      if (isApple.value) {
        el.blur();
      }
D
DCloud_LXH 已提交
2299
      onKeyboardHide();
D
DCloud_LXH 已提交
2300
    });
fxy060608's avatar
fxy060608 已提交
2301
  }
D
DCloud_LXH 已提交
2302
  vue.watch(() => elRef.value, (el) => initKeyboard(el));
fxy060608's avatar
fxy060608 已提交
2303
}
D
DCloud_LXH 已提交
2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320
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 stack = [];
  var last = html;
  stack.last = function() {
    return this[this.length - 1];
D
DCloud_LXH 已提交
2321
  };
D
DCloud_LXH 已提交
2322 2323 2324 2325 2326 2327 2328 2329
  while (html) {
    chars = true;
    if (!stack.last() || !special[stack.last()]) {
      if (html.indexOf("<!--") == 0) {
        index2 = html.indexOf("-->");
        if (index2 >= 0) {
          if (handler.comment) {
            handler.comment(html.substring(4, index2));
D
DCloud_LXH 已提交
2330
          }
D
DCloud_LXH 已提交
2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346
          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;
D
DCloud_LXH 已提交
2347 2348
        }
      }
D
DCloud_LXH 已提交
2349 2350 2351 2352 2353 2354 2355
      if (chars) {
        index2 = html.indexOf("<");
        var text = index2 < 0 ? html : html.substring(0, index2);
        html = index2 < 0 ? "" : html.substring(index2);
        if (handler.chars) {
          handler.chars(text);
        }
D
DCloud_LXH 已提交
2356
      }
D
DCloud_LXH 已提交
2357 2358 2359 2360 2361 2362 2363
    } else {
      html = html.replace(new RegExp("([\\s\\S]*?)</" + stack.last() + "[^>]*>"), function(all, text2) {
        text2 = text2.replace(/<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g, "$1$2");
        if (handler.chars) {
          handler.chars(text2);
        }
        return "";
D
DCloud_LXH 已提交
2364
      });
D
DCloud_LXH 已提交
2365
      parseEndTag("", stack.last());
fxy060608's avatar
fxy060608 已提交
2366
    }
D
DCloud_LXH 已提交
2367 2368 2369 2370
    if (html == last) {
      throw "Parse Error: " + html;
    }
    last = html;
fxy060608's avatar
fxy060608 已提交
2371
  }
D
DCloud_LXH 已提交
2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408
  parseEndTag();
  function parseStartTag(tag, tagName, rest, unary) {
    tagName = tagName.toLowerCase();
    if (block[tagName]) {
      while (stack.last() && inline[stack.last()]) {
        parseEndTag("", stack.last());
      }
    }
    if (closeSelf[tagName] && stack.last() == tagName) {
      parseEndTag("", tagName);
    }
    unary = empty[tagName] || !!unary;
    if (!unary) {
      stack.push(tagName);
    }
    if (handler.start) {
      var attrs = [];
      rest.replace(attr, function(match2, name) {
        var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : "";
        attrs.push({
          name,
          value,
          escaped: value.replace(/(^|[^\\])"/g, '$1\\"')
        });
      });
      if (handler.start) {
        handler.start(tagName, attrs, unary);
      }
    }
  }
  function parseEndTag(tag, tagName) {
    if (!tagName) {
      var pos = 0;
    } else {
      for (var pos = stack.length - 1; pos >= 0; pos--) {
        if (stack[pos] == tagName) {
          break;
D
DCloud_LXH 已提交
2409 2410
        }
      }
D
DCloud_LXH 已提交
2411 2412 2413 2414 2415
    }
    if (pos >= 0) {
      for (var i = stack.length - 1; i >= pos; i--) {
        if (handler.end) {
          handler.end(stack[i]);
D
DCloud_LXH 已提交
2416 2417
        }
      }
D
DCloud_LXH 已提交
2418 2419
      stack.length = pos;
    }
D
DCloud_LXH 已提交
2420 2421
  }
}
D
DCloud_LXH 已提交
2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434
function makeMap(str) {
  var obj = {};
  var items = str.split(",");
  for (var i = 0; i < items.length; i++) {
    obj[items[i]] = true;
  }
  return obj;
}
function useQuill(props2, rootRef, trigger) {
  vue.watch(() => props2.readOnly, (value) => {
  });
  vue.watch(() => props2.placeholder, (value) => {
  });
2435 2436
  useContextInfo();
  useSubscribe();
D
DCloud_LXH 已提交
2437
}
2438
const props$m = /* @__PURE__ */ shared.extend({}, props$n, {
D
DCloud_LXH 已提交
2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460
  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],
D
DCloud_LXH 已提交
2461
    default: false
fxy060608's avatar
fxy060608 已提交
2462
  }
D
DCloud_LXH 已提交
2463
});
fxy060608's avatar
fxy060608 已提交
2464
var index$y = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
2465
  name: "Editor",
2466
  props: props$m,
D
DCloud_LXH 已提交
2467
  emit: ["ready", "focus", "blur", "input", "statuschange", ...emit$1],
fxy060608's avatar
fxy060608 已提交
2468
  setup(props2, {
D
DCloud_LXH 已提交
2469
    emit: emit2
fxy060608's avatar
fxy060608 已提交
2470
  }) {
fxy060608's avatar
fxy060608 已提交
2471
    const rootRef = vue.ref(null);
D
DCloud_LXH 已提交
2472 2473
    useQuill(props2);
    useKeyboard$1(props2, rootRef);
fxy060608's avatar
fxy060608 已提交
2474
    return () => {
fxy060608's avatar
fxy060608 已提交
2475
      return vue.createVNode("uni-editor", {
D
DCloud_LXH 已提交
2476 2477 2478 2479
        "ref": rootRef,
        "id": props2.id,
        "class": "ql-container"
      }, null, 8, ["id"]);
fxy060608's avatar
fxy060608 已提交
2480 2481
    };
  }
D
DCloud_LXH 已提交
2482
});
D
DCloud_LXH 已提交
2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522
const INFO_COLOR = "#10aeff";
const WARN_COLOR = "#f76260";
const GREY_COLOR = "#b2b2b2";
const CANCEL_COLOR = "#f43530";
const ICONS = {
  success: {
    d: ICON_PATH_SUCCESS,
    c: uniShared.PRIMARY_COLOR
  },
  success_no_circle: {
    d: ICON_PATH_SUCCESS_NO_CIRCLE,
    c: uniShared.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: uniShared.PRIMARY_COLOR
  },
  search: {
    d: ICON_PATH_SEARCH,
    c: GREY_COLOR
  },
  clear: {
    d: ICON_PATH_CLEAR,
    c: GREY_COLOR
D
DCloud_LXH 已提交
2523
  }
D
DCloud_LXH 已提交
2524
};
fxy060608's avatar
fxy060608 已提交
2525
var index$x = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539
  name: "Icon",
  props: {
    type: {
      type: String,
      required: true,
      default: ""
    },
    size: {
      type: [String, Number],
      default: 23
    },
    color: {
      type: String,
      default: ""
D
DCloud_LXH 已提交
2540
    }
D
DCloud_LXH 已提交
2541 2542 2543 2544 2545 2546 2547
  },
  setup(props2) {
    const path = vue.computed(() => ICONS[props2.type]);
    return () => {
      const {
        value
      } = path;
fxy060608's avatar
fxy060608 已提交
2548
      return vue.createVNode("uni-icon", null, [value && value.d && createSvgIconVNode(value.d, props2.color || value.c, rpx2px(props2.size))]);
D
DCloud_LXH 已提交
2549
    };
D
DCloud_LXH 已提交
2550
  }
D
DCloud_LXH 已提交
2551
});
2552
const props$l = {
D
DCloud_LXH 已提交
2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566
  src: {
    type: String,
    default: ""
  },
  mode: {
    type: String,
    default: "scaleToFill"
  },
  lazyLoad: {
    type: [Boolean, String],
    default: false
  },
  draggable: {
    type: Boolean,
Q
qiang 已提交
2567
    default: false
D
DCloud_LXH 已提交
2568 2569 2570
  }
};
const FIX_MODES = {
Q
qiang 已提交
2571 2572
  widthFix: ["offsetWidth", "height", (value, ratio) => value / ratio],
  heightFix: ["offsetHeight", "width", (value, ratio) => value * ratio]
D
DCloud_LXH 已提交
2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588
};
const 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"]
};
fxy060608's avatar
fxy060608 已提交
2589
var index$w = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
2590
  name: "Image",
2591
  props: props$l,
D
DCloud_LXH 已提交
2592 2593 2594 2595 2596 2597 2598 2599 2600
  setup(props2, {
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const state = useImageState(rootRef, props2);
    const trigger = useCustomEvent(rootRef, emit2);
    const {
      fixSize
    } = useImageSize(rootRef, props2, state);
fxy060608's avatar
fxy060608 已提交
2601
    useImageLoader(state, fixSize, trigger);
D
DCloud_LXH 已提交
2602 2603 2604 2605 2606 2607
    return () => {
      const {
        mode: mode2
      } = props2;
      const {
        imgSrc,
fxy060608's avatar
fxy060608 已提交
2608 2609
        modeStyle,
        src
D
DCloud_LXH 已提交
2610
      } = state;
fxy060608's avatar
fxy060608 已提交
2611 2612 2613 2614 2615 2616 2617
      let imgTsx;
      {
        imgTsx = vue.createVNode("img", {
          "src": src,
          "draggable": props2.draggable
        }, null, 8, ["src", "draggable"]);
      }
fxy060608's avatar
fxy060608 已提交
2618
      return vue.createVNode("uni-image", {
D
DCloud_LXH 已提交
2619
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
2620 2621 2622 2623 2624
      }, [vue.createVNode("div", {
        "style": modeStyle
      }, null, 4), imgTsx, FIX_MODES[mode2] ? vue.createVNode(ResizeSensor, {
        "onResize": fixSize
      }, null, 8, ["onResize"]) : vue.createVNode("span", null, null)], 512);
D
DCloud_LXH 已提交
2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639
    };
  }
});
function useImageState(rootRef, props2) {
  const imgSrc = vue.ref("");
  const modeStyleRef = vue.computed(() => {
    let size = "auto";
    let position = "";
    const opts = IMAGE_MODES[props2.mode];
    if (!opts) {
      position = "0% 0%";
      size = "100% 100%";
    } else {
      opts[0] && (position = opts[0]);
      opts[1] && (size = opts[1]);
fxy060608's avatar
fxy060608 已提交
2640
    }
fxy060608's avatar
fxy060608 已提交
2641
    return `background-image:${imgSrc.value ? 'url("' + imgSrc.value + '")' : "none"};background-position:${position};background-size:${size};`;
fxy060608's avatar
fxy060608 已提交
2642
  });
D
DCloud_LXH 已提交
2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653
  const state = vue.reactive({
    rootEl: rootRef,
    src: vue.computed(() => props2.src ? getRealPath(props2.src) : ""),
    origWidth: 0,
    origHeight: 0,
    origStyle: {
      width: "",
      height: ""
    },
    modeStyle: modeStyleRef,
    imgSrc
D
DCloud_LXH 已提交
2654
  });
D
DCloud_LXH 已提交
2655 2656
  return state;
}
fxy060608's avatar
fxy060608 已提交
2657
function useImageLoader(state, fixSize, trigger) {
D
DCloud_LXH 已提交
2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668
  let img;
  const setState = (width = 0, height = 0, imgSrc = "") => {
    state.origWidth = width;
    state.origHeight = height;
    state.imgSrc = imgSrc;
  };
  const loadImage = (src) => {
    if (!src) {
      resetImage();
      setState();
      return;
fxy060608's avatar
fxy060608 已提交
2669
    }
fxy060608's avatar
fxy060608 已提交
2670
    img = img || new Image();
D
DCloud_LXH 已提交
2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697
    img.onload = (evt) => {
      const {
        width,
        height
      } = img;
      setState(width, height, src);
      fixSize();
      resetImage();
      trigger("load", evt, {
        width,
        height
      });
    };
    img.onerror = (evt) => {
      setState();
      resetImage();
      trigger("error", evt, {
        errMsg: `GET ${state.src} 404 (Not Found)`
      });
    };
    img.src = src;
  };
  const resetImage = () => {
    if (img) {
      img.onload = null;
      img.onerror = null;
      img = null;
fxy060608's avatar
fxy060608 已提交
2698 2699
    }
  };
D
DCloud_LXH 已提交
2700
  vue.watch(() => state.src, (value) => loadImage(value));
fxy060608's avatar
fxy060608 已提交
2701
}
D
DCloud_LXH 已提交
2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712
function fixNumber(num) {
  return num;
}
function useImageSize(rootRef, props2, state) {
  const fixSize = () => {
    const {
      mode: mode2
    } = props2;
    const names = FIX_MODES[mode2];
    if (!names) {
      return;
fxy060608's avatar
fxy060608 已提交
2713
    }
D
DCloud_LXH 已提交
2714 2715 2716 2717 2718 2719 2720 2721 2722
    const {
      origWidth,
      origHeight
    } = state;
    const ratio = origWidth && origHeight ? origWidth / origHeight : 0;
    if (!ratio) {
      return;
    }
    const rootEl = rootRef.value;
2723
    const value = rootEl[names[0]];
D
DCloud_LXH 已提交
2724
    if (value) {
Q
qiang 已提交
2725
      rootEl.style[names[1]] = fixNumber(names[2](value, ratio)) + "px";
D
DCloud_LXH 已提交
2726
    }
fxy060608's avatar
fxy060608 已提交
2727
  };
D
DCloud_LXH 已提交
2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743
  const resetSize = () => {
    const {
      style
    } = rootRef.value;
    const {
      origStyle: {
        width,
        height
      }
    } = state;
    style.width = width;
    style.height = height;
  };
  vue.watch(() => props2.mode, (value, oldValue) => {
    if (FIX_MODES[oldValue]) {
      resetSize();
fxy060608's avatar
fxy060608 已提交
2744
    }
D
DCloud_LXH 已提交
2745 2746
    if (FIX_MODES[value]) {
      fixSize();
fxy060608's avatar
fxy060608 已提交
2747 2748
    }
  });
D
DCloud_LXH 已提交
2749 2750 2751 2752 2753
  return {
    fixSize,
    resetSize
  };
}
D
DCloud_LXH 已提交
2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781
function throttle(fn, wait) {
  let last = 0;
  let timeout;
  let waitCallback;
  const newFn = function(...arg) {
    const 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;
}
D
DCloud_LXH 已提交
2782 2783 2784
function useUserAction() {
  const state = vue.reactive({
    userAction: false
Q
qiang 已提交
2785
  });
D
DCloud_LXH 已提交
2786 2787
  return {
    state
Q
qiang 已提交
2788
  };
D
DCloud_LXH 已提交
2789 2790 2791 2792
}
function useScopedAttrs() {
  const state = vue.reactive({
    attrs: {}
Q
qiang 已提交
2793
  });
D
DCloud_LXH 已提交
2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817
  return {
    state
  };
}
function useFormField(nameKey, value) {
  const uniForm = vue.inject(uniFormKey, false);
  if (!uniForm) {
    return;
  }
  const instance = vue.getCurrentInstance();
  const ctx = {
    submit() {
      const proxy = instance.proxy;
      return [
        proxy[nameKey],
        typeof value === "string" ? proxy[value] : value.value
      ];
    },
    reset() {
      if (typeof value === "string") {
        instance.proxy[value] = "";
      } else {
        value.value = "";
      }
2818 2819
    }
  };
D
DCloud_LXH 已提交
2820 2821
  uniForm.addField(ctx);
}
2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833
function getSelectedTextRange(_, resolve) {
  const activeElement = document.activeElement;
  if (!activeElement) {
    return resolve({});
  }
  const data = {};
  if (["input", "textarea"].includes(activeElement.tagName.toLowerCase())) {
    data.start = activeElement.selectionStart;
    data.end = activeElement.selectionEnd;
  }
  resolve(data);
}
D
DCloud_LXH 已提交
2834
const UniViewJSBridgeSubscribe = function() {
2835
  registerViewMethod(getCurrentPageId(), "getSelectedTextRange", getSelectedTextRange);
D
DCloud_LXH 已提交
2836
};
Q
qiang 已提交
2837 2838 2839 2840
function getValueString(value, type) {
  if (type === "number" && isNaN(Number(value))) {
    value = "";
  }
D
DCloud_LXH 已提交
2841 2842
  return value === null ? "" : String(value);
}
2843
const props$k = /* @__PURE__ */ shared.extend({}, {
D
DCloud_LXH 已提交
2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906
  name: {
    type: String,
    default: ""
  },
  modelValue: {
    type: [String, Number],
    default: ""
  },
  value: {
    type: [String, Number],
    default: ""
  },
  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"
fxy060608's avatar
fxy060608 已提交
2907 2908 2909 2910
  },
  confirmHold: {
    type: Boolean,
    default: false
fxy060608's avatar
fxy060608 已提交
2911 2912 2913 2914
  },
  ignoreCompositionEvent: {
    type: Boolean,
    default: true
Q
qiang 已提交
2915
  }
2916
}, props$n);
D
DCloud_LXH 已提交
2917 2918 2919 2920 2921 2922 2923
const emit = [
  "input",
  "focus",
  "blur",
  "update:value",
  "update:modelValue",
  "update:focus",
fxy060608's avatar
fxy060608 已提交
2924 2925 2926
  "compositionstart",
  "compositionupdate",
  "compositionend",
D
DCloud_LXH 已提交
2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947
  ...emit$1
];
function useBase(props2, rootRef, emit2) {
  const fieldRef = vue.ref(null);
  const trigger = useCustomEvent(rootRef, emit2);
  const selectionStart = vue.computed(() => {
    const selectionStart2 = Number(props2.selectionStart);
    return isNaN(selectionStart2) ? -1 : selectionStart2;
  });
  const selectionEnd = vue.computed(() => {
    const selectionEnd2 = Number(props2.selectionEnd);
    return isNaN(selectionEnd2) ? -1 : selectionEnd2;
  });
  const cursor = vue.computed(() => {
    const cursor2 = Number(props2.cursor);
    return isNaN(cursor2) ? -1 : cursor2;
  });
  const maxlength = vue.computed(() => {
    var maxlength2 = Number(props2.maxlength);
    return isNaN(maxlength2) ? 140 : maxlength2;
  });
Q
qiang 已提交
2948
  const value = getValueString(props2.modelValue, props2.type) || getValueString(props2.value, props2.type);
D
DCloud_LXH 已提交
2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960
  const state = vue.reactive({
    value,
    valueOrigin: value,
    maxlength,
    focus: props2.focus,
    composing: false,
    selectionStart,
    selectionEnd,
    cursor
  });
  vue.watch(() => state.focus, (val) => emit2("update:focus", val));
  vue.watch(() => state.maxlength, (val) => state.value = state.value.slice(0, val));
Q
qiang 已提交
2961
  return {
D
DCloud_LXH 已提交
2962 2963 2964
    fieldRef,
    state,
    trigger
Q
qiang 已提交
2965
  };
D
DCloud_LXH 已提交
2966 2967 2968
}
function useValueSync(props2, state, emit2, trigger) {
  const valueChangeFn = uniShared.debounce((val) => {
Q
qiang 已提交
2969
    state.value = getValueString(val, props2.type);
fxy060608's avatar
fxy060608 已提交
2970
  }, 100, { setTimeout, clearTimeout });
D
DCloud_LXH 已提交
2971 2972 2973
  vue.watch(() => props2.modelValue, valueChangeFn);
  vue.watch(() => props2.value, valueChangeFn);
  const triggerInputFn = throttle((event, detail) => {
Q
qiang 已提交
2974
    valueChangeFn.cancel();
D
DCloud_LXH 已提交
2975 2976 2977 2978 2979 2980 2981 2982 2983 2984
    emit2("update:modelValue", detail.value);
    emit2("update:value", detail.value);
    trigger("input", event, detail);
  }, 100);
  const triggerInput = (event, detail, force) => {
    valueChangeFn.cancel();
    triggerInputFn(event, detail);
    if (force) {
      triggerInputFn.flush();
    }
Q
qiang 已提交
2985 2986
  };
  return {
D
DCloud_LXH 已提交
2987 2988
    trigger,
    triggerInput
Q
qiang 已提交
2989 2990
  };
}
D
DCloud_LXH 已提交
2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005
function useAutoFocus(props2, fieldRef) {
  useUserAction();
  const needFocus = vue.computed(() => props2.autoFocus || props2.focus);
  function focus() {
    if (!needFocus.value) {
      return;
    }
    const field = fieldRef.value;
    if (!field || false) {
      setTimeout(focus, 100);
      return;
    }
    {
      field.focus();
    }
D
DCloud_LXH 已提交
3006
  }
D
DCloud_LXH 已提交
3007 3008 3009 3010
  function blur() {
    const field = fieldRef.value;
    if (field) {
      field.blur();
D
DCloud_LXH 已提交
3011
    }
Q
qiang 已提交
3012
  }
D
DCloud_LXH 已提交
3013 3014 3015 3016 3017
  vue.watch(() => props2.focus, (value) => {
    if (value) {
      focus();
    } else {
      blur();
D
DCloud_LXH 已提交
3018
    }
D
DCloud_LXH 已提交
3019 3020
  });
}
fxy060608's avatar
fxy060608 已提交
3021
function useEvent(fieldRef, state, props2, trigger, triggerInput, beforeInput) {
D
DCloud_LXH 已提交
3022 3023
  function checkSelection() {
    const field = fieldRef.value;
fxy060608's avatar
fxy060608 已提交
3024
    if (field && state.focus && state.selectionStart > -1 && state.selectionEnd > -1 && field.type !== "number") {
D
DCloud_LXH 已提交
3025 3026
      field.selectionStart = state.selectionStart;
      field.selectionEnd = state.selectionEnd;
fxy060608's avatar
fxy060608 已提交
3027
    }
Q
qiang 已提交
3028
  }
D
DCloud_LXH 已提交
3029 3030
  function checkCursor() {
    const field = fieldRef.value;
fxy060608's avatar
fxy060608 已提交
3031
    if (field && state.focus && state.selectionStart < 0 && state.selectionEnd < 0 && state.cursor > -1 && field.type !== "number") {
D
DCloud_LXH 已提交
3032
      field.selectionEnd = field.selectionStart = state.cursor;
D
DCloud_LXH 已提交
3033 3034
    }
  }
fxy060608's avatar
fxy060608 已提交
3035 3036 3037 3038 3039 3040 3041
  function getFieldSelectionEnd(field) {
    if (field.type === "number") {
      return null;
    } else {
      return field.selectionEnd;
    }
  }
D
DCloud_LXH 已提交
3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053
  function initField() {
    const field = fieldRef.value;
    const onFocus = function(event) {
      state.focus = true;
      trigger("focus", event, {
        value: state.value
      });
      checkSelection();
      checkCursor();
    };
    const onInput = function(event, force) {
      event.stopPropagation();
3054
      if (typeof beforeInput === "function" && beforeInput(event, state) === false) {
D
DCloud_LXH 已提交
3055 3056 3057
        return;
      }
      state.value = field.value;
fxy060608's avatar
fxy060608 已提交
3058
      if (!state.composing || !props2.ignoreCompositionEvent) {
3059
        triggerInput(event, {
D
DCloud_LXH 已提交
3060
          value: field.value,
fxy060608's avatar
fxy060608 已提交
3061
          cursor: getFieldSelectionEnd(field)
3062
        }, force);
D
DCloud_LXH 已提交
3063 3064 3065 3066 3067 3068 3069 3070 3071 3072
      }
    };
    const onBlur = function(event) {
      if (state.composing) {
        state.composing = false;
        onInput(event, true);
      }
      state.focus = false;
      trigger("blur", event, {
        value: state.value,
fxy060608's avatar
fxy060608 已提交
3073
        cursor: getFieldSelectionEnd(event.target)
D
DCloud_LXH 已提交
3074 3075 3076 3077 3078 3079 3080 3081 3082
      });
    };
    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;
fxy060608's avatar
fxy060608 已提交
3083
      _onComposition(event);
D
DCloud_LXH 已提交
3084 3085 3086 3087 3088 3089 3090
    });
    field.addEventListener("compositionend", (event) => {
      event.stopPropagation();
      if (state.composing) {
        state.composing = false;
        onInput(event);
      }
fxy060608's avatar
fxy060608 已提交
3091
      _onComposition(event);
D
DCloud_LXH 已提交
3092
    });
fxy060608's avatar
fxy060608 已提交
3093 3094 3095 3096 3097 3098 3099 3100
    field.addEventListener("compositionupdate", _onComposition);
    function _onComposition(event) {
      if (!props2.ignoreCompositionEvent) {
        trigger(event.type, event, {
          value: event.data
        });
      }
    }
D
DCloud_LXH 已提交
3101
  }
D
DCloud_LXH 已提交
3102 3103 3104
  vue.watch([() => state.selectionStart, () => state.selectionEnd], checkSelection);
  vue.watch(() => state.cursor, checkCursor);
  vue.watch(() => fieldRef.value, initField);
D
DCloud_LXH 已提交
3105
}
D
DCloud_LXH 已提交
3106 3107
function useField(props2, rootRef, emit2, beforeInput) {
  UniViewJSBridgeSubscribe();
3108 3109
  const { fieldRef, state, trigger } = useBase(props2, rootRef, emit2);
  const { triggerInput } = useValueSync(props2, state, emit2, trigger);
D
DCloud_LXH 已提交
3110 3111
  useAutoFocus(props2, fieldRef);
  useKeyboard$1(props2, fieldRef);
3112
  const { state: scopedAttrsState } = useScopedAttrs();
D
DCloud_LXH 已提交
3113
  useFormField("name", state);
fxy060608's avatar
fxy060608 已提交
3114
  useEvent(fieldRef, state, props2, trigger, triggerInput, beforeInput);
D
DCloud_LXH 已提交
3115
  const fixDisabledColor = false;
D
DCloud_LXH 已提交
3116
  return {
D
DCloud_LXH 已提交
3117 3118 3119 3120 3121
    fieldRef,
    state,
    scopedAttrsState,
    fixDisabledColor,
    trigger
D
DCloud_LXH 已提交
3122
  };
D
DCloud_LXH 已提交
3123
}
3124
const props$j = /* @__PURE__ */ shared.extend({}, props$k, {
D
DCloud_LXH 已提交
3125
  placeholderClass: {
D
DCloud_LXH 已提交
3126
    type: String,
D
DCloud_LXH 已提交
3127
    default: "input-placeholder"
fxy060608's avatar
fxy060608 已提交
3128 3129 3130 3131
  },
  textContentType: {
    type: String,
    default: ""
3132
  }
D
DCloud_LXH 已提交
3133 3134 3135
});
var Input = /* @__PURE__ */ defineBuiltInComponent({
  name: "Input",
3136
  props: props$j,
D
DCloud_LXH 已提交
3137
  emits: ["confirm", ...emit],
3138
  setup(props2, {
D
DCloud_LXH 已提交
3139
    emit: emit2
3140
  }) {
fxy060608's avatar
fxy060608 已提交
3141 3142
    const INPUT_TYPES = ["text", "number", "idcard", "digit", "password", "tel"];
    const AUTOCOMPLETES = ["off", "one-time-code"];
D
DCloud_LXH 已提交
3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162
    const type = vue.computed(() => {
      let type2 = "";
      switch (props2.type) {
        case "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;
    });
fxy060608's avatar
fxy060608 已提交
3163 3164 3165 3166 3167 3168
    const autocomplete = vue.computed(() => {
      const camelizeIndex = AUTOCOMPLETES.indexOf(props2.textContentType);
      const kebabCaseIndex = AUTOCOMPLETES.indexOf(shared.hyphenate(props2.textContentType));
      const index2 = camelizeIndex !== -1 ? camelizeIndex : kebabCaseIndex !== -1 ? kebabCaseIndex : 0;
      return AUTOCOMPLETES[index2];
    });
3169 3170
    let cache = vue.ref("");
    let resetCache;
3171 3172
    const rootRef = vue.ref(null);
    const {
D
DCloud_LXH 已提交
3173 3174 3175 3176 3177 3178 3179
      fieldRef,
      state,
      scopedAttrsState,
      fixDisabledColor,
      trigger
    } = useField(props2, rootRef, emit2, (event, state2) => {
      const input = event.target;
3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192
      if (type.value === "number") {
        if (resetCache) {
          input.removeEventListener("blur", resetCache);
          resetCache = null;
        }
        if (input.validity && !input.validity.valid) {
          if (!cache.value && event.data === "-" || cache.value[0] === "-" && event.inputType === "deleteContentBackward") {
            cache.value = "-";
            state2.value = "";
            resetCache = () => {
              cache.value = input.value = "";
            };
            input.addEventListener("blur", resetCache);
fxy060608's avatar
fxy060608 已提交
3193 3194
            return false;
          }
3195 3196 3197 3198
          cache.value = state2.value = input.value = cache.value === "-" ? "" : cache.value;
          return false;
        } else {
          cache.value = input.value;
fxy060608's avatar
fxy060608 已提交
3199
        }
D
DCloud_LXH 已提交
3200 3201 3202 3203 3204 3205 3206 3207
        const maxlength = state2.maxlength;
        if (maxlength > 0 && input.value.length > maxlength) {
          input.value = input.value.slice(0, maxlength);
          state2.value = input.value;
          return false;
        }
      }
    });
Q
qiang 已提交
3208 3209 3210 3211 3212
    vue.watch(() => state.value, (value) => {
      if (props2.type === "number" && !(cache.value === "-" && value === "")) {
        cache.value = value;
      }
    });
D
DCloud_LXH 已提交
3213 3214 3215 3216 3217 3218
    const NUMBER_TYPES = ["number", "digit"];
    const step = vue.computed(() => NUMBER_TYPES.includes(props2.type) ? "0.000000000000000001" : "");
    function onKeyUpEnter(event) {
      if (event.key !== "Enter") {
        return;
      }
fxy060608's avatar
fxy060608 已提交
3219
      const input = event.target;
D
DCloud_LXH 已提交
3220 3221
      event.stopPropagation();
      trigger("confirm", event, {
fxy060608's avatar
fxy060608 已提交
3222
        value: input.value
D
DCloud_LXH 已提交
3223
      });
fxy060608's avatar
fxy060608 已提交
3224
      !props2.confirmHold && input.blur();
D
DCloud_LXH 已提交
3225
    }
3226
    return () => {
D
DCloud_LXH 已提交
3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244
      let inputNode = props2.disabled && fixDisabledColor ? vue.createVNode("input", {
        "ref": fieldRef,
        "value": state.value,
        "tabindex": "-1",
        "readonly": !!props2.disabled,
        "type": type.value,
        "maxlength": state.maxlength,
        "step": step.value,
        "class": "uni-input-input",
        "onFocus": (event) => event.target.blur()
      }, null, 40, ["value", "readonly", "type", "maxlength", "step", "onFocus"]) : vue.createVNode("input", {
        "ref": fieldRef,
        "value": state.value,
        "disabled": !!props2.disabled,
        "type": type.value,
        "maxlength": state.maxlength,
        "step": step.value,
        "enterkeyhint": props2.confirmType,
3245
        "pattern": props2.type === "number" ? "[0-9]*" : void 0,
D
DCloud_LXH 已提交
3246
        "class": "uni-input-input",
fxy060608's avatar
fxy060608 已提交
3247
        "autocomplete": autocomplete.value,
D
DCloud_LXH 已提交
3248
        "onKeyup": onKeyUpEnter
fxy060608's avatar
fxy060608 已提交
3249
      }, null, 40, ["value", "disabled", "type", "maxlength", "step", "enterkeyhint", "pattern", "autocomplete", "onKeyup"]);
fxy060608's avatar
fxy060608 已提交
3250
      return vue.createVNode("uni-input", {
fxy060608's avatar
fxy060608 已提交
3251
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
3252 3253 3254 3255 3256 3257 3258 3259 3260 3261
      }, [vue.createVNode("div", {
        "class": "uni-input-wrapper"
      }, [vue.withDirectives(vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {
        "style": props2.placeholderStyle,
        "class": ["uni-input-placeholder", props2.placeholderClass]
      }), [props2.placeholder], 16), [[vue.vShow, !(state.value.length || cache.value === "-")]]), props2.confirmType === "search" ? vue.createVNode("form", {
        "action": "",
        "onSubmit": (event) => event.preventDefault(),
        "class": "uni-input-form"
      }, [inputNode], 40, ["onSubmit"]) : inputNode])], 512);
3262 3263 3264
    };
  }
});
D
DCloud_LXH 已提交
3265 3266
function entries(obj) {
  return Object.keys(obj).map((key) => [key, obj[key]]);
D
DCloud_LXH 已提交
3267
}
D
DCloud_LXH 已提交
3268 3269 3270
const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
const LISTENER_PREFIX = /^on[A-Z]+/;
const useAttrs = (params = {}) => {
3271
  const { excludeListeners = false, excludeKeys = [] } = params;
D
DCloud_LXH 已提交
3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299
  const instance = vue.getCurrentInstance();
  const attrs = vue.shallowRef({});
  const listeners = vue.shallowRef({});
  const excludeAttrs = vue.shallowRef({});
  const allExcludeKeys = excludeKeys.concat(DEFAULT_EXCLUDE_KEYS);
  instance.attrs = vue.reactive(instance.attrs);
  vue.watchEffect(() => {
    const res = entries(instance.attrs).reduce((acc, [key, val]) => {
      if (allExcludeKeys.includes(key)) {
        acc.exclude[key] = val;
      } else if (LISTENER_PREFIX.test(key)) {
        if (!excludeListeners) {
          acc.attrs[key] = val;
        }
        acc.listeners[key] = val;
      } else {
        acc.attrs[key] = val;
      }
      return acc;
    }, {
      exclude: {},
      attrs: {},
      listeners: {}
    });
    attrs.value = res.attrs;
    listeners.value = res.listeners;
    excludeAttrs.value = res.exclude;
  });
3300
  return { $attrs: attrs, $listeners: listeners, $excludeAttrs: excludeAttrs };
D
DCloud_LXH 已提交
3301 3302 3303 3304 3305 3306 3307 3308 3309 3310
};
function flatVNode(nodes) {
  const array = [];
  if (Array.isArray(nodes)) {
    nodes.forEach((vnode) => {
      if (vue.isVNode(vnode)) {
        if (vnode.type === vue.Fragment) {
          array.push(...flatVNode(vnode.children));
        } else {
          array.push(vnode);
fxy060608's avatar
fxy060608 已提交
3311
        }
D
DCloud_LXH 已提交
3312 3313
      } else if (Array.isArray(vnode)) {
        array.push(...flatVNode(vnode));
3314
      }
D
DCloud_LXH 已提交
3315
    });
3316
  }
D
DCloud_LXH 已提交
3317
  return array;
3318
}
fxy060608's avatar
fxy060608 已提交
3319
const movableAreaProps = {
D
DCloud_LXH 已提交
3320 3321 3322
  scaleArea: {
    type: Boolean,
    default: false
D
DCloud_LXH 已提交
3323
  }
D
DCloud_LXH 已提交
3324
};
fxy060608's avatar
fxy060608 已提交
3325
var index$v = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
3326 3327
  inheritAttrs: false,
  name: "MovableArea",
fxy060608's avatar
fxy060608 已提交
3328
  props: movableAreaProps,
D
DCloud_LXH 已提交
3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354
  setup(props2, {
    slots
  }) {
    const rootRef = vue.ref(null);
    const _isMounted = vue.ref(false);
    let {
      setContexts,
      events: movableAreaEvents
    } = useMovableAreaState(props2, rootRef);
    const {
      $listeners,
      $attrs,
      $excludeAttrs
    } = useAttrs();
    const _listeners = $listeners.value;
    let events = ["onTouchstart", "onTouchmove", "onTouchend"];
    events.forEach((event) => {
      let existing = _listeners[event];
      let ours = movableAreaEvents[`_${event}`];
      _listeners[event] = existing ? [].concat(existing, ours) : ours;
    });
    let movableViewItems = [];
    const originMovableViewContexts = [];
    function updateMovableViewContexts() {
      const contexts = [];
      for (let index2 = 0; index2 < movableViewItems.length; index2++) {
3355
        let movableViewItem = movableViewItems[index2];
Q
qiang 已提交
3356
        {
3357 3358 3359
          movableViewItem = movableViewItem.el;
        }
        const movableViewContext = originMovableViewContexts.find((context) => movableViewItem === context.rootRef.value);
D
DCloud_LXH 已提交
3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382
        if (movableViewContext) {
          contexts.push(vue.markRaw(movableViewContext));
        }
      }
      setContexts(contexts);
    }
    const addMovableViewContext = (movableViewContext) => {
      originMovableViewContexts.push(movableViewContext);
      updateMovableViewContexts();
    };
    const removeMovableViewContext = (movableViewContext) => {
      const index2 = originMovableViewContexts.indexOf(movableViewContext);
      if (index2 >= 0) {
        originMovableViewContexts.splice(index2, 1);
        updateMovableViewContexts();
      }
    };
    vue.provide("_isMounted", _isMounted);
    vue.provide("movableAreaRootRef", rootRef);
    vue.provide("addMovableViewContext", addMovableViewContext);
    vue.provide("removeMovableViewContext", removeMovableViewContext);
    return () => {
      const defaultSlots = slots.default && slots.default();
3383 3384 3385
      {
        movableViewItems = flatVNode(defaultSlots);
      }
fxy060608's avatar
fxy060608 已提交
3386
      return vue.createVNode("uni-movable-area", vue.mergeProps({
D
DCloud_LXH 已提交
3387
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
3388 3389 3390
      }, $attrs.value, $excludeAttrs.value, _listeners), [vue.createVNode(ResizeSensor, {
        "onReize": movableAreaEvents._resize
      }, null, 8, ["onReize"]), movableViewItems], 16);
D
DCloud_LXH 已提交
3391 3392 3393 3394 3395
    };
  }
});
function calc(e2) {
  return Math.sqrt(e2.x * e2.x + e2.y * e2.y);
D
DCloud_LXH 已提交
3396
}
D
DCloud_LXH 已提交
3397
function useMovableAreaState(props2, rootRef) {
D
DCloud_LXH 已提交
3398 3399
  const width = vue.ref(0);
  const height = vue.ref(0);
D
DCloud_LXH 已提交
3400 3401 3402
  const gapV = vue.reactive({
    x: null,
    y: null
D
DCloud_LXH 已提交
3403
  });
D
DCloud_LXH 已提交
3404 3405 3406 3407 3408 3409 3410 3411 3412
  const pinchStartLen = vue.ref(null);
  let _scaleMovableView = null;
  let movableViewContexts = [];
  function _updateScale(e2) {
    if (e2 && e2 !== 1) {
      if (props2.scaleArea) {
        movableViewContexts.forEach(function(item) {
          item._setScale(e2);
        });
D
DCloud_LXH 已提交
3413
      } else {
D
DCloud_LXH 已提交
3414 3415
        if (_scaleMovableView) {
          _scaleMovableView._setScale(e2);
D
DCloud_LXH 已提交
3416 3417 3418
        }
      }
    }
fxy060608's avatar
fxy060608 已提交
3419
  }
D
DCloud_LXH 已提交
3420 3421 3422 3423 3424 3425 3426
  function _find(target, items = movableViewContexts) {
    let root = rootRef.value;
    function get(node) {
      for (let i = 0; i < items.length; i++) {
        const item = items[i];
        if (node === item.rootRef.value) {
          return item;
D
DCloud_LXH 已提交
3427 3428
        }
      }
D
DCloud_LXH 已提交
3429 3430 3431 3432
      if (node === root || node === document.body || node === document) {
        return null;
      }
      return get(node.parentNode);
D
DCloud_LXH 已提交
3433
    }
D
DCloud_LXH 已提交
3434
    return get(target);
fxy060608's avatar
fxy060608 已提交
3435
  }
D
DCloud_LXH 已提交
3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451
  const _onTouchstart = withWebEvent((t2) => {
    let i = t2.touches;
    if (i) {
      if (i.length > 1) {
        let r = {
          x: i[1].pageX - i[0].pageX,
          y: i[1].pageY - i[0].pageY
        };
        pinchStartLen.value = calc(r);
        gapV.x = r.x;
        gapV.y = r.y;
        if (!props2.scaleArea) {
          let touch0 = _find(i[0].target);
          let touch1 = _find(i[1].target);
          _scaleMovableView = touch0 && touch0 === touch1 ? touch0 : null;
        }
fxy060608's avatar
fxy060608 已提交
3452
      }
D
DCloud_LXH 已提交
3453
    }
D
DCloud_LXH 已提交
3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469
  });
  const _onTouchmove = withWebEvent((t2) => {
    let n = t2.touches;
    if (n) {
      if (n.length > 1) {
        t2.preventDefault();
        let i = {
          x: n[1].pageX - n[0].pageX,
          y: n[1].pageY - n[0].pageY
        };
        if (gapV.x !== null && pinchStartLen.value && pinchStartLen.value > 0) {
          let r = calc(i) / pinchStartLen.value;
          _updateScale(r);
        }
        gapV.x = i.x;
        gapV.y = i.y;
fxy060608's avatar
fxy060608 已提交
3470
      }
D
DCloud_LXH 已提交
3471
    }
D
DCloud_LXH 已提交
3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488
  });
  const _onTouchend = withWebEvent((e2) => {
    let 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();
          }
        }
fxy060608's avatar
fxy060608 已提交
3489
      }
D
DCloud_LXH 已提交
3490
    }
D
DCloud_LXH 已提交
3491 3492 3493 3494 3495 3496
  });
  function _resize() {
    _getWH();
    movableViewContexts.forEach(function(item, index2) {
      item.setParent();
    });
D
DCloud_LXH 已提交
3497
  }
D
DCloud_LXH 已提交
3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510
  function _getWH() {
    let style = window.getComputedStyle(rootRef.value);
    let rect = rootRef.value.getBoundingClientRect();
    width.value = rect.width - ["Left", "Right"].reduce(function(all, item) {
      const LEFT = "border" + item + "Width";
      const RIGHT = "padding" + item;
      return all + parseFloat(style[LEFT]) + parseFloat(style[RIGHT]);
    }, 0);
    height.value = rect.height - ["Top", "Bottom"].reduce(function(all, item) {
      const TOP = "border" + item + "Width";
      const BOTTOM = "padding" + item;
      return all + parseFloat(style[TOP]) + parseFloat(style[BOTTOM]);
    }, 0);
D
DCloud_LXH 已提交
3511
  }
D
DCloud_LXH 已提交
3512 3513 3514
  vue.provide("movableAreaWidth", width);
  vue.provide("movableAreaHeight", height);
  return {
fxy060608's avatar
fxy060608 已提交
3515 3516 3517 3518 3519 3520 3521 3522
    setContexts(contexts) {
      movableViewContexts = contexts;
    },
    events: {
      _onTouchstart,
      _onTouchmove,
      _onTouchend,
      _resize
fxy060608's avatar
fxy060608 已提交
3523
    }
D
DCloud_LXH 已提交
3524 3525 3526 3527 3528
  };
}
function e(e2, t2, n) {
  return e2 > t2 - n && e2 < t2 + n;
}
D
DCloud_LXH 已提交
3529
function t(t2, n) {
D
DCloud_LXH 已提交
3530 3531
  return e(t2, 0, n);
}
fxy060608's avatar
fxy060608 已提交
3532
function Friction(e2, t2) {
D
DCloud_LXH 已提交
3533 3534 3535 3536 3537
  this._m = e2;
  this._f = 1e3 * t2;
  this._startTime = 0;
  this._v = 0;
}
fxy060608's avatar
fxy060608 已提交
3538
Friction.prototype.setV = function(x, y) {
fxy060608's avatar
fxy060608 已提交
3539
  const n = Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5);
D
DCloud_LXH 已提交
3540 3541 3542 3543 3544 3545 3546 3547
  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 = new Date().getTime();
};
fxy060608's avatar
fxy060608 已提交
3548
Friction.prototype.setS = function(x, y) {
D
DCloud_LXH 已提交
3549 3550 3551
  this._x_s = x;
  this._y_s = y;
};
fxy060608's avatar
fxy060608 已提交
3552
Friction.prototype.s = function(t2) {
D
DCloud_LXH 已提交
3553 3554 3555 3556 3557 3558 3559
  if (t2 === void 0) {
    t2 = (new Date().getTime() - this._startTime) / 1e3;
  }
  if (t2 > this._t) {
    t2 = this._t;
    this._lastDt = t2;
  }
fxy060608's avatar
fxy060608 已提交
3560 3561
  let x = this._x_v * t2 + 0.5 * this._x_a * Math.pow(t2, 2) + this._x_s;
  let y = this._y_v * t2 + 0.5 * this._y_a * Math.pow(t2, 2) + this._y_s;
D
DCloud_LXH 已提交
3562 3563 3564 3565 3566
  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;
D
DCloud_LXH 已提交
3567
  }
fxy060608's avatar
fxy060608 已提交
3568
  return {
D
DCloud_LXH 已提交
3569 3570
    x,
    y
fxy060608's avatar
fxy060608 已提交
3571
  };
D
DCloud_LXH 已提交
3572
};
fxy060608's avatar
fxy060608 已提交
3573
Friction.prototype.ds = function(t2) {
D
DCloud_LXH 已提交
3574 3575 3576 3577 3578
  if (t2 === void 0) {
    t2 = (new Date().getTime() - this._startTime) / 1e3;
  }
  if (t2 > this._t) {
    t2 = this._t;
D
DCloud_LXH 已提交
3579
  }
D
DCloud_LXH 已提交
3580 3581 3582 3583
  return {
    dx: this._x_v + this._x_a * t2,
    dy: this._y_v + this._y_a * t2
  };
D
DCloud_LXH 已提交
3584
};
fxy060608's avatar
fxy060608 已提交
3585
Friction.prototype.delta = function() {
D
DCloud_LXH 已提交
3586 3587 3588 3589 3590
  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
  };
};
fxy060608's avatar
fxy060608 已提交
3591
Friction.prototype.dt = function() {
D
DCloud_LXH 已提交
3592 3593
  return -this._x_v / this._x_a;
};
fxy060608's avatar
fxy060608 已提交
3594
Friction.prototype.done = function() {
fxy060608's avatar
fxy060608 已提交
3595
  const t2 = e(this.s().x, this._endPositionX) || e(this.s().y, this._endPositionY) || this._lastDt === this._t;
D
DCloud_LXH 已提交
3596 3597 3598
  this._lastDt = null;
  return t2;
};
fxy060608's avatar
fxy060608 已提交
3599
Friction.prototype.setEnd = function(x, y) {
D
DCloud_LXH 已提交
3600 3601 3602
  this._endPositionX = x;
  this._endPositionY = y;
};
fxy060608's avatar
fxy060608 已提交
3603
Friction.prototype.reconfigure = function(m, f2) {
D
DCloud_LXH 已提交
3604 3605 3606
  this._m = m;
  this._f = 1e3 * f2;
};
fxy060608's avatar
fxy060608 已提交
3607
function Spring(m, k, c) {
D
DCloud_LXH 已提交
3608 3609 3610 3611 3612 3613 3614
  this._m = m;
  this._k = k;
  this._c = c;
  this._solution = null;
  this._endPosition = 0;
  this._startTime = 0;
}
fxy060608's avatar
fxy060608 已提交
3615
Spring.prototype._solve = function(e2, t2) {
fxy060608's avatar
fxy060608 已提交
3616 3617 3618 3619
  const n = this._c;
  const i = this._m;
  const r = this._k;
  const o = n * n - 4 * i * r;
fxy060608's avatar
fxy060608 已提交
3620 3621
  if (o === 0) {
    const a = -n / (2 * i);
D
DCloud_LXH 已提交
3622
    const s = e2;
fxy060608's avatar
fxy060608 已提交
3623
    const l = t2 / (a * e2);
D
DCloud_LXH 已提交
3624 3625
    return {
      x: function(e3) {
fxy060608's avatar
fxy060608 已提交
3626
        return (s + l * e3) * Math.pow(Math.E, a * e3);
D
DCloud_LXH 已提交
3627 3628
      },
      dx: function(e3) {
fxy060608's avatar
fxy060608 已提交
3629
        const t3 = Math.pow(Math.E, a * e3);
fxy060608's avatar
fxy060608 已提交
3630
        return a * (s + l * e3) * t3 + l * t3;
D
DCloud_LXH 已提交
3631
      }
D
DCloud_LXH 已提交
3632 3633
    };
  }
fxy060608's avatar
fxy060608 已提交
3634 3635 3636
  if (o > 0) {
    const c = (-n - Math.sqrt(o)) / (2 * i);
    const u = (-n + Math.sqrt(o)) / (2 * i);
D
DCloud_LXH 已提交
3637 3638 3639 3640
    const d = (t2 - c * e2) / (u - c);
    const h = e2 - d;
    return {
      x: function(e3) {
fxy060608's avatar
fxy060608 已提交
3641 3642
        let t3;
        let n2;
D
DCloud_LXH 已提交
3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656
        if (e3 === this._t) {
          t3 = this._powER1T;
          n2 = this._powER2T;
        }
        this._t = e3;
        if (!t3) {
          t3 = this._powER1T = Math.pow(Math.E, c * e3);
        }
        if (!n2) {
          n2 = this._powER2T = Math.pow(Math.E, u * e3);
        }
        return h * t3 + d * n2;
      },
      dx: function(e3) {
fxy060608's avatar
fxy060608 已提交
3657 3658
        let t3;
        let n2;
D
DCloud_LXH 已提交
3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670
        if (e3 === this._t) {
          t3 = this._powER1T;
          n2 = this._powER2T;
        }
        this._t = e3;
        if (!t3) {
          t3 = this._powER1T = Math.pow(Math.E, c * e3);
        }
        if (!n2) {
          n2 = this._powER2T = Math.pow(Math.E, u * e3);
        }
        return h * c * t3 + d * u * n2;
D
DCloud_LXH 已提交
3671 3672 3673
      }
    };
  }
fxy060608's avatar
fxy060608 已提交
3674 3675 3676 3677
  const p2 = Math.sqrt(4 * i * r - n * n) / (2 * i);
  const f2 = -n / 2 * i;
  const v2 = e2;
  const g2 = (t2 - f2 * e2) / p2;
D
DCloud_LXH 已提交
3678 3679 3680 3681 3682
  return {
    x: function(e3) {
      return Math.pow(Math.E, f2 * e3) * (v2 * Math.cos(p2 * e3) + g2 * Math.sin(p2 * e3));
    },
    dx: function(e3) {
fxy060608's avatar
fxy060608 已提交
3683 3684 3685
      const t3 = Math.pow(Math.E, f2 * e3);
      const n2 = Math.cos(p2 * e3);
      const i2 = Math.sin(p2 * e3);
D
DCloud_LXH 已提交
3686
      return t3 * (g2 * p2 * n2 - v2 * p2 * i2) + f2 * t3 * (g2 * i2 + v2 * n2);
D
DCloud_LXH 已提交
3687
    }
D
DCloud_LXH 已提交
3688 3689
  };
};
fxy060608's avatar
fxy060608 已提交
3690
Spring.prototype.x = function(e2) {
D
DCloud_LXH 已提交
3691 3692
  if (e2 === void 0) {
    e2 = (new Date().getTime() - this._startTime) / 1e3;
D
DCloud_LXH 已提交
3693
  }
D
DCloud_LXH 已提交
3694 3695
  return this._solution ? this._endPosition + this._solution.x(e2) : 0;
};
fxy060608's avatar
fxy060608 已提交
3696
Spring.prototype.dx = function(e2) {
D
DCloud_LXH 已提交
3697 3698
  if (e2 === void 0) {
    e2 = (new Date().getTime() - this._startTime) / 1e3;
D
DCloud_LXH 已提交
3699
  }
D
DCloud_LXH 已提交
3700 3701
  return this._solution ? this._solution.dx(e2) : 0;
};
fxy060608's avatar
fxy060608 已提交
3702
Spring.prototype.setEnd = function(e2, n, i) {
D
DCloud_LXH 已提交
3703 3704
  if (!i) {
    i = new Date().getTime();
D
DCloud_LXH 已提交
3705
  }
D
DCloud_LXH 已提交
3706
  if (e2 !== this._endPosition || !t(n, 0.1)) {
D
DCloud_LXH 已提交
3707
    n = n || 0;
fxy060608's avatar
fxy060608 已提交
3708
    let r = this._endPosition;
D
DCloud_LXH 已提交
3709
    if (this._solution) {
D
DCloud_LXH 已提交
3710
      if (t(n, 0.1)) {
D
DCloud_LXH 已提交
3711 3712 3713
        n = this._solution.dx((i - this._startTime) / 1e3);
      }
      r = this._solution.x((i - this._startTime) / 1e3);
D
DCloud_LXH 已提交
3714
      if (t(n, 0.1)) {
D
DCloud_LXH 已提交
3715 3716
        n = 0;
      }
D
DCloud_LXH 已提交
3717
      if (t(r, 0.1)) {
D
DCloud_LXH 已提交
3718 3719 3720 3721
        r = 0;
      }
      r += this._endPosition;
    }
D
DCloud_LXH 已提交
3722
    if (!(this._solution && t(r - e2, 0.1) && t(n, 0.1))) {
D
DCloud_LXH 已提交
3723 3724 3725
      this._endPosition = e2;
      this._solution = this._solve(r - this._endPosition, n);
      this._startTime = i;
D
DCloud_LXH 已提交
3726 3727
    }
  }
D
DCloud_LXH 已提交
3728
};
fxy060608's avatar
fxy060608 已提交
3729
Spring.prototype.snap = function(e2) {
D
DCloud_LXH 已提交
3730 3731 3732 3733 3734 3735 3736 3737
  this._startTime = new Date().getTime();
  this._endPosition = e2;
  this._solution = {
    x: function() {
      return 0;
    },
    dx: function() {
      return 0;
D
DCloud_LXH 已提交
3738
    }
D
DCloud_LXH 已提交
3739 3740
  };
};
fxy060608's avatar
fxy060608 已提交
3741
Spring.prototype.done = function(n) {
D
DCloud_LXH 已提交
3742 3743
  if (!n) {
    n = new Date().getTime();
D
DCloud_LXH 已提交
3744
  }
D
DCloud_LXH 已提交
3745
  return e(this.x(), this._endPosition, 0.1) && t(this.dx(), 0.1);
D
DCloud_LXH 已提交
3746
};
fxy060608's avatar
fxy060608 已提交
3747
Spring.prototype.reconfigure = function(m, t2, c) {
D
DCloud_LXH 已提交
3748 3749 3750 3751 3752 3753
  this._m = m;
  this._k = t2;
  this._c = c;
  if (!this.done()) {
    this._solution = this._solve(this.x() - this._endPosition, this.dx());
    this._startTime = new Date().getTime();
D
DCloud_LXH 已提交
3754
  }
D
DCloud_LXH 已提交
3755
};
fxy060608's avatar
fxy060608 已提交
3756
Spring.prototype.springConstant = function() {
D
DCloud_LXH 已提交
3757 3758
  return this._k;
};
fxy060608's avatar
fxy060608 已提交
3759
Spring.prototype.damping = function() {
D
DCloud_LXH 已提交
3760 3761
  return this._c;
};
fxy060608's avatar
fxy060608 已提交
3762
Spring.prototype.configuration = function() {
D
DCloud_LXH 已提交
3763 3764
  function e2(e3, t3) {
    e3.reconfigure(1, t3, e3.damping());
D
DCloud_LXH 已提交
3765
  }
D
DCloud_LXH 已提交
3766 3767
  function t2(e3, t3) {
    e3.reconfigure(1, e3.springConstant(), t3);
D
DCloud_LXH 已提交
3768
  }
D
DCloud_LXH 已提交
3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786
  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) {
fxy060608's avatar
fxy060608 已提交
3787 3788 3789
  this._springX = new Spring(e2, t2, n);
  this._springY = new Spring(e2, t2, n);
  this._springScale = new Spring(e2, t2, n);
D
DCloud_LXH 已提交
3790
  this._startTime = 0;
D
DCloud_LXH 已提交
3791
}
D
DCloud_LXH 已提交
3792
STD.prototype.setEnd = function(e2, t2, n, i) {
fxy060608's avatar
fxy060608 已提交
3793
  const r = new Date().getTime();
D
DCloud_LXH 已提交
3794 3795 3796 3797 3798 3799
  this._springX.setEnd(e2, i, r);
  this._springY.setEnd(t2, i, r);
  this._springScale.setEnd(n, i, r);
  this._startTime = r;
};
STD.prototype.x = function() {
fxy060608's avatar
fxy060608 已提交
3800
  const e2 = (new Date().getTime() - this._startTime) / 1e3;
D
DCloud_LXH 已提交
3801 3802 3803 3804 3805 3806 3807
  return {
    x: this._springX.x(e2),
    y: this._springY.x(e2),
    scale: this._springScale.x(e2)
  };
};
STD.prototype.done = function() {
fxy060608's avatar
fxy060608 已提交
3808
  const e2 = new Date().getTime();
D
DCloud_LXH 已提交
3809 3810 3811 3812 3813 3814 3815
  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);
};
fxy060608's avatar
fxy060608 已提交
3816
const movableViewProps = {
D
DCloud_LXH 已提交
3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867
  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
D
DCloud_LXH 已提交
3868
  }
D
DCloud_LXH 已提交
3869
};
fxy060608's avatar
fxy060608 已提交
3870 3871 3872
function v(a, b) {
  return +((1e3 * a - 1e3 * b) / 1e3).toFixed(1);
}
fxy060608's avatar
fxy060608 已提交
3873
var index$u = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
3874
  name: "MovableView",
fxy060608's avatar
fxy060608 已提交
3875
  props: movableViewProps,
D
DCloud_LXH 已提交
3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886
  emits: ["change", "scale"],
  setup(props2, {
    slots,
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const trigger = useCustomEvent(rootRef, emit2);
    const {
      setParent
    } = useMovableViewState(props2, trigger, rootRef);
    return () => {
fxy060608's avatar
fxy060608 已提交
3887
      return vue.createVNode("uni-movable-view", {
D
DCloud_LXH 已提交
3888
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
3889 3890 3891
      }, [vue.createVNode(ResizeSensor, {
        "onResize": setParent
      }, null, 8, ["onResize"]), slots.default && slots.default()], 512);
3892 3893
    };
  }
D
DCloud_LXH 已提交
3894 3895 3896 3897 3898 3899 3900 3901 3902
});
let requesting = false;
function _requestAnimationFrame(e2) {
  if (!requesting) {
    requesting = true;
    requestAnimationFrame(function() {
      e2();
      requesting = false;
    });
fxy060608's avatar
fxy060608 已提交
3903
  }
D
DCloud_LXH 已提交
3904 3905 3906 3907
}
function p(t2, n) {
  if (t2 === n) {
    return 0;
D
DCloud_LXH 已提交
3908
  }
D
DCloud_LXH 已提交
3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926
  let i = t2.offsetLeft;
  return t2.offsetParent ? i += p(t2.offsetParent, n) : 0;
}
function f(t2, n) {
  if (t2 === n) {
    return 0;
  }
  let i = t2.offsetTop;
  return t2.offsetParent ? i += f(t2.offsetParent, n) : 0;
}
function g(friction, execute, endCallback) {
  let record = {
    id: 0,
    cancelled: false
  };
  let cancel = function(record2) {
    if (record2 && record2.id) {
      cancelAnimationFrame(record2.id);
3927
    }
D
DCloud_LXH 已提交
3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938
    if (record2) {
      record2.cancelled = true;
    }
  };
  function fn(record2, friction2, execute2, endCallback2) {
    if (!record2 || !record2.cancelled) {
      execute2(friction2);
      let isDone = friction2.done();
      if (!isDone) {
        if (!record2.cancelled) {
          record2.id = requestAnimationFrame(fn.bind(null, record2, friction2, execute2, endCallback2));
D
DCloud_LXH 已提交
3939
        }
fxy060608's avatar
fxy060608 已提交
3940
      }
D
DCloud_LXH 已提交
3941 3942
      if (isDone && endCallback2) {
        endCallback2(friction2);
fxy060608's avatar
fxy060608 已提交
3943
      }
fxy060608's avatar
fxy060608 已提交
3944 3945
    }
  }
D
DCloud_LXH 已提交
3946 3947 3948 3949 3950 3951 3952 3953 3954
  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));
D
DCloud_LXH 已提交
3955
  }
D
DCloud_LXH 已提交
3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006
  return Number(val) || 0;
}
function useMovableViewState(props2, trigger, rootRef) {
  const movableAreaWidth = vue.inject("movableAreaWidth", vue.ref(0));
  const movableAreaHeight = vue.inject("movableAreaHeight", vue.ref(0));
  const _isMounted = vue.inject("_isMounted", vue.ref(false));
  const movableAreaRootRef = vue.inject("movableAreaRootRef");
  vue.inject("addMovableViewContext", () => {
  });
  vue.inject("removeMovableViewContext", () => {
  });
  const xSync = vue.ref(_getPx(props2.x));
  const ySync = vue.ref(_getPx(props2.y));
  const scaleValueSync = vue.ref(Number(props2.scaleValue) || 1);
  const width = vue.ref(0);
  const height = vue.ref(0);
  const minX = vue.ref(0);
  const minY = vue.ref(0);
  const maxX = vue.ref(0);
  const maxY = vue.ref(0);
  let _SFA = null;
  const _offset = {
    x: 0,
    y: 0
  };
  const _scaleOffset = {
    x: 0,
    y: 0
  };
  let _scale = 1;
  let _translateX = 0;
  let _translateY = 0;
  const dampingNumber = vue.computed(() => {
    let val = Number(props2.damping);
    return isNaN(val) ? 20 : val;
  });
  const frictionNumber = vue.computed(() => {
    let val = Number(props2.friction);
    return isNaN(val) || val <= 0 ? 2 : val;
  });
  const scaleMinNumber = vue.computed(() => {
    let val = Number(props2.scaleMin);
    return isNaN(val) ? 0.5 : val;
  });
  const scaleMaxNumber = vue.computed(() => {
    let val = Number(props2.scaleMax);
    return isNaN(val) ? 10 : val;
  });
  const xMove = vue.computed(() => props2.direction === "all" || props2.direction === "horizontal");
  const yMove = vue.computed(() => props2.direction === "all" || props2.direction === "vertical");
  const _STD = new STD(1, 9 * Math.pow(dampingNumber.value, 2) / 40, dampingNumber.value);
fxy060608's avatar
fxy060608 已提交
4007
  new Friction(1, frictionNumber.value);
D
DCloud_LXH 已提交
4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034
  vue.watch(() => props2.x, (val) => {
    xSync.value = _getPx(val);
  });
  vue.watch(() => props2.y, (val) => {
    ySync.value = _getPx(val);
  });
  vue.watch(xSync, (val) => {
    _setX(val);
  });
  vue.watch(ySync, (val) => {
    _setY(val);
  });
  vue.watch(() => props2.scaleValue, (val) => {
    scaleValueSync.value = Number(val) || 0;
  });
  vue.watch(scaleValueSync, (val) => {
    _setScaleValue(val);
  });
  vue.watch(scaleMinNumber, () => {
    _setScaleMinOrMax();
  });
  vue.watch(scaleMaxNumber, () => {
    _setScaleMinOrMax();
  });
  function FAandSFACancel() {
    if (_SFA) {
      _SFA.cancel();
D
DCloud_LXH 已提交
4035 4036
    }
  }
D
DCloud_LXH 已提交
4037 4038 4039 4040 4041 4042 4043 4044 4045
  function _setX(val) {
    if (xMove.value) {
      if (val + _scaleOffset.x === _translateX) {
        return _translateX;
      } else {
        if (_SFA) {
          _SFA.cancel();
        }
        _animationTo(val + _scaleOffset.x, ySync.value + _scaleOffset.y, _scale);
D
DCloud_LXH 已提交
4046
      }
D
DCloud_LXH 已提交
4047 4048
    }
    return val;
D
DCloud_LXH 已提交
4049
  }
D
DCloud_LXH 已提交
4050 4051 4052 4053
  function _setY(val) {
    if (yMove.value) {
      if (val + _scaleOffset.y === _translateY) {
        return _translateY;
D
DCloud_LXH 已提交
4054
      } else {
D
DCloud_LXH 已提交
4055 4056 4057 4058
        if (_SFA) {
          _SFA.cancel();
        }
        _animationTo(xSync.value + _scaleOffset.x, val + _scaleOffset.y, _scale);
D
DCloud_LXH 已提交
4059
      }
4060
    }
D
DCloud_LXH 已提交
4061
    return val;
4062
  }
D
DCloud_LXH 已提交
4063 4064 4065
  function _setScaleMinOrMax() {
    if (!props2.scale) {
      return false;
D
DCloud_LXH 已提交
4066
    }
D
DCloud_LXH 已提交
4067 4068 4069 4070 4071
    _updateScale(_scale, true);
  }
  function _setScaleValue(scale) {
    if (!props2.scale) {
      return false;
D
DCloud_LXH 已提交
4072
    }
D
DCloud_LXH 已提交
4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085
    scale = _adjustScale(scale);
    _updateScale(scale, true);
    return scale;
  }
  function _getLimitXY(x, y) {
    let outOfBounds = false;
    if (x > maxX.value) {
      x = maxX.value;
      outOfBounds = true;
    } else {
      if (x < minX.value) {
        x = minX.value;
        outOfBounds = true;
fxy060608's avatar
fxy060608 已提交
4086
      }
4087
    }
D
DCloud_LXH 已提交
4088 4089 4090
    if (y > maxY.value) {
      y = maxY.value;
      outOfBounds = true;
D
DCloud_LXH 已提交
4091
    } else {
D
DCloud_LXH 已提交
4092 4093 4094 4095
      if (y < minY.value) {
        y = minY.value;
        outOfBounds = true;
      }
D
DCloud_LXH 已提交
4096
    }
D
DCloud_LXH 已提交
4097 4098 4099 4100 4101
    return {
      x,
      y,
      outOfBounds
    };
D
DCloud_LXH 已提交
4102
  }
D
DCloud_LXH 已提交
4103 4104 4105
  function _updateOffset() {
    _offset.x = p(rootRef.value, movableAreaRootRef.value);
    _offset.y = f(rootRef.value, movableAreaRootRef.value);
D
DCloud_LXH 已提交
4106
  }
D
DCloud_LXH 已提交
4107 4108 4109 4110 4111 4112 4113 4114 4115 4116
  function _updateWH(scale) {
    scale = scale || _scale;
    scale = _adjustScale(scale);
    let rect = rootRef.value.getBoundingClientRect();
    height.value = rect.height / _scale;
    width.value = rect.width / _scale;
    let _height = height.value * scale;
    let _width = width.value * scale;
    _scaleOffset.x = (_width - width.value) / 2;
    _scaleOffset.y = (_height - height.value) / 2;
D
DCloud_LXH 已提交
4117
  }
D
DCloud_LXH 已提交
4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141
  function _updateBoundary() {
    let x = 0 - _offset.x + _scaleOffset.x;
    let _width = movableAreaWidth.value - width.value - _offset.x - _scaleOffset.x;
    minX.value = Math.min(x, _width);
    maxX.value = Math.max(x, _width);
    let y = 0 - _offset.y + _scaleOffset.y;
    let _height = movableAreaHeight.value - height.value - _offset.y - _scaleOffset.y;
    minY.value = Math.min(y, _height);
    maxY.value = Math.max(y, _height);
  }
  function _updateScale(scale, animat) {
    if (props2.scale) {
      scale = _adjustScale(scale);
      _updateWH(scale);
      _updateBoundary();
      const limitXY = _getLimitXY(_translateX, _translateY);
      const x = limitXY.x;
      const y = limitXY.y;
      if (animat) {
        _animationTo(x, y, scale, "", true, true);
      } else {
        _requestAnimationFrame(function() {
          _setTransform(x, y, scale, "", true, true);
        });
fxy060608's avatar
fxy060608 已提交
4142
      }
4143 4144
    }
  }
D
DCloud_LXH 已提交
4145 4146 4147 4148
  function _adjustScale(scale) {
    scale = Math.max(0.5, scaleMinNumber.value, scale);
    scale = Math.min(10, scaleMaxNumber.value, scale);
    return scale;
4149
  }
fxy060608's avatar
fxy060608 已提交
4150
  function _animationTo(x, y, scale, source, r, o) {
D
DCloud_LXH 已提交
4151 4152 4153
    FAandSFACancel();
    if (!xMove.value) {
      x = _translateX;
4154
    }
D
DCloud_LXH 已提交
4155 4156
    if (!yMove.value) {
      y = _translateY;
4157
    }
D
DCloud_LXH 已提交
4158 4159
    if (!props2.scale) {
      scale = _scale;
D
DCloud_LXH 已提交
4160
    }
D
DCloud_LXH 已提交
4161 4162 4163 4164
    let limitXY = _getLimitXY(x, y);
    x = limitXY.x;
    y = limitXY.y;
    if (!props2.animation) {
fxy060608's avatar
fxy060608 已提交
4165
      _setTransform(x, y, scale, source, r, o);
D
DCloud_LXH 已提交
4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179
      return;
    }
    _STD._springX._solution = null;
    _STD._springY._solution = null;
    _STD._springScale._solution = null;
    _STD._springX._endPosition = _translateX;
    _STD._springY._endPosition = _translateY;
    _STD._springScale._endPosition = _scale;
    _STD.setEnd(x, y, scale, 1);
    _SFA = g(_STD, function() {
      let data = _STD.x();
      let x2 = data.x;
      let y2 = data.y;
      let scale2 = data.scale;
fxy060608's avatar
fxy060608 已提交
4180
      _setTransform(x2, y2, scale2, source, r, o);
D
DCloud_LXH 已提交
4181 4182 4183
    }, function() {
      _SFA.cancel();
    });
4184
  }
fxy060608's avatar
fxy060608 已提交
4185
  function _setTransform(x, y, scale, source = "", r, o) {
D
DCloud_LXH 已提交
4186 4187
    if (!(x !== null && x.toString() !== "NaN" && typeof x === "number")) {
      x = _translateX || 0;
D
DCloud_LXH 已提交
4188
    }
D
DCloud_LXH 已提交
4189 4190
    if (!(y !== null && y.toString() !== "NaN" && typeof y === "number")) {
      y = _translateY || 0;
D
DCloud_LXH 已提交
4191
    }
D
DCloud_LXH 已提交
4192 4193 4194 4195 4196 4197 4198 4199 4200 4201
    x = Number(x.toFixed(1));
    y = Number(y.toFixed(1));
    scale = Number(scale.toFixed(1));
    if (!(_translateX === x && _translateY === y)) {
      if (!r) {
        trigger("change", {}, {
          x: v(x, _scaleOffset.x),
          y: v(y, _scaleOffset.y),
          source
        });
D
DCloud_LXH 已提交
4202 4203
      }
    }
D
DCloud_LXH 已提交
4204 4205
    if (!props2.scale) {
      scale = _scale;
D
DCloud_LXH 已提交
4206
    }
D
DCloud_LXH 已提交
4207 4208
    scale = _adjustScale(scale);
    scale = +scale.toFixed(3);
fxy060608's avatar
fxy060608 已提交
4209
    if (o && scale !== _scale) {
D
DCloud_LXH 已提交
4210 4211 4212 4213 4214
      trigger("scale", {}, {
        x,
        y,
        scale
      });
D
DCloud_LXH 已提交
4215
    }
D
DCloud_LXH 已提交
4216 4217 4218 4219 4220 4221
    let transform = "translateX(" + x + "px) translateY(" + y + "px) translateZ(0px) scale(" + scale + ")";
    rootRef.value.style.transform = transform;
    rootRef.value.style.webkitTransform = transform;
    _translateX = x;
    _translateY = y;
    _scale = scale;
D
DCloud_LXH 已提交
4222
  }
D
DCloud_LXH 已提交
4223 4224 4225
  function setParent() {
    if (!_isMounted.value) {
      return;
4226
    }
D
DCloud_LXH 已提交
4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237
    FAandSFACancel();
    let scale = props2.scale ? scaleValueSync.value : 1;
    _updateOffset();
    _updateWH(scale);
    _updateBoundary();
    _translateX = xSync.value + _scaleOffset.x;
    _translateY = ySync.value + _scaleOffset.y;
    let limitXY = _getLimitXY(_translateX, _translateY);
    let x = limitXY.x;
    let y = limitXY.y;
    _setTransform(x, y, scale, "", true);
4238
  }
D
DCloud_LXH 已提交
4239 4240 4241 4242
  return {
    setParent
  };
}
fxy060608's avatar
fxy060608 已提交
4243 4244 4245 4246 4247 4248 4249
const OPEN_TYPES = [
  "navigate",
  "redirect",
  "switchTab",
  "reLaunch",
  "navigateBack"
];
fxy060608's avatar
fxy060608 已提交
4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271
const ANIMATION_IN = [
  "slide-in-right",
  "slide-in-left",
  "slide-in-top",
  "slide-in-bottom",
  "fade-in",
  "zoom-out",
  "zoom-fade-out",
  "pop-in",
  "none"
];
const ANIMATION_OUT = [
  "slide-out-right",
  "slide-out-left",
  "slide-out-top",
  "slide-out-bottom",
  "fade-out",
  "zoom-in",
  "zoom-fade-in",
  "pop-out",
  "none"
];
fxy060608's avatar
fxy060608 已提交
4272
const navigatorProps = {
D
DCloud_LXH 已提交
4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285
  hoverClass: {
    type: String,
    default: "navigator-hover"
  },
  url: {
    type: String,
    default: ""
  },
  openType: {
    type: String,
    default: "navigate",
    validator(value) {
      return Boolean(~OPEN_TYPES.indexOf(value));
4286
    }
D
DCloud_LXH 已提交
4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306
  },
  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
fxy060608's avatar
fxy060608 已提交
4307 4308 4309 4310 4311 4312 4313 4314 4315 4316
  },
  animationType: {
    type: String,
    validator(value) {
      return !value || ANIMATION_IN.concat(ANIMATION_OUT).includes(value);
    }
  },
  animationDuration: {
    type: [String, Number],
    default: 300
4317
  }
D
DCloud_LXH 已提交
4318
};
fxy060608's avatar
fxy060608 已提交
4319 4320 4321 4322 4323 4324
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;
    }
fxy060608's avatar
fxy060608 已提交
4325
    const animationDuration = parseInt(props2.animationDuration);
fxy060608's avatar
fxy060608 已提交
4326 4327 4328
    switch (props2.openType) {
      case "navigate":
        uni.navigateTo({
fxy060608's avatar
fxy060608 已提交
4329 4330 4331
          url: props2.url,
          animationType: props2.animationType || "pop-in",
          animationDuration
fxy060608's avatar
fxy060608 已提交
4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351
        });
        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({
fxy060608's avatar
fxy060608 已提交
4352 4353 4354
          delta: props2.delta,
          animationType: props2.animationType || "pop-out",
          animationDuration
fxy060608's avatar
fxy060608 已提交
4355 4356 4357 4358 4359
        });
        break;
    }
  };
}
fxy060608's avatar
fxy060608 已提交
4360
var index$t = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
4361
  name: "Navigator",
fxy060608's avatar
fxy060608 已提交
4362
  inheritAttrs: false,
D
DCloud_LXH 已提交
4363 4364 4365
  compatConfig: {
    MODE: 3
  },
fxy060608's avatar
fxy060608 已提交
4366
  props: navigatorProps,
D
DCloud_LXH 已提交
4367 4368 4369
  setup(props2, {
    slots
  }) {
fxy060608's avatar
fxy060608 已提交
4370
    const vm = vue.getCurrentInstance();
fxy060608's avatar
fxy060608 已提交
4371
    const __scopeId = vm && vm.vnode.scopeId || "";
D
DCloud_LXH 已提交
4372 4373 4374 4375
    const {
      hovering,
      binding
    } = useHover(props2);
fxy060608's avatar
fxy060608 已提交
4376
    const onClick = createNavigatorOnClick(props2);
D
DCloud_LXH 已提交
4377 4378
    return () => {
      const {
fxy060608's avatar
fxy060608 已提交
4379 4380
        hoverClass,
        url
D
DCloud_LXH 已提交
4381 4382
      } = props2;
      const hasHoverClass = props2.hoverClass && props2.hoverClass !== "none";
fxy060608's avatar
fxy060608 已提交
4383 4384 4385 4386 4387
      return vue.createVNode("a", {
        "class": "navigator-wrap",
        "href": url,
        "onClick": onEventPrevent
      }, [vue.createVNode("uni-navigator", vue.mergeProps({
D
DCloud_LXH 已提交
4388
        "class": hasHoverClass && hovering.value ? hoverClass : ""
fxy060608's avatar
fxy060608 已提交
4389
      }, hasHoverClass && binding, vm ? vm.attrs : {}, {
fxy060608's avatar
fxy060608 已提交
4390 4391
        [__scopeId]: ""
      }, {
D
DCloud_LXH 已提交
4392
        "onClick": onClick
fxy060608's avatar
fxy060608 已提交
4393
      }), [slots.default && slots.default()], 16, ["onClick"])], 8, ["href", "onClick"]);
D
DCloud_LXH 已提交
4394
    };
fxy060608's avatar
fxy060608 已提交
4395
  }
D
DCloud_LXH 已提交
4396
});
fxy060608's avatar
fxy060608 已提交
4397
const pickerViewProps = {
D
DCloud_LXH 已提交
4398 4399 4400 4401 4402 4403 4404
  value: {
    type: Array,
    default() {
      return [];
    },
    validator: function(val) {
      return Array.isArray(val) && val.filter((val2) => typeof val2 === "number").length === val.length;
D
DCloud_LXH 已提交
4405
    }
D
DCloud_LXH 已提交
4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421
  },
  indicatorStyle: {
    type: String,
    default: ""
  },
  indicatorClass: {
    type: String,
    default: ""
  },
  maskStyle: {
    type: String,
    default: ""
  },
  maskClass: {
    type: String,
    default: ""
4422
  }
D
DCloud_LXH 已提交
4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435
};
function useState$2(props2) {
  const value = vue.reactive([...props2.value]);
  const state = vue.reactive({
    value,
    height: 34
  });
  vue.watch(() => props2.value, (val, oldVal) => {
    {
      state.value.length = val.length;
      val.forEach((val2, index2) => {
        if (val2 !== state.value[index2]) {
          state.value.splice(index2, 1, val2);
D
DCloud_LXH 已提交
4436
        }
D
DCloud_LXH 已提交
4437
      });
D
DCloud_LXH 已提交
4438
    }
D
DCloud_LXH 已提交
4439 4440
  });
  return state;
D
DCloud_LXH 已提交
4441
}
D
DCloud_LXH 已提交
4442 4443
var PickerView = /* @__PURE__ */ defineBuiltInComponent({
  name: "PickerView",
fxy060608's avatar
fxy060608 已提交
4444
  props: pickerViewProps,
D
DCloud_LXH 已提交
4445
  emits: ["change", "pickstart", "pickend", "update:value"],
4446 4447 4448 4449 4450
  setup(props2, {
    slots,
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
4451
    const wrapperRef = vue.ref(null);
D
DCloud_LXH 已提交
4452 4453
    const trigger = useCustomEvent(rootRef, emit2);
    const state = useState$2(props2);
Q
qiang 已提交
4454
    const resizeSensorRef = vue.ref(null);
Q
qiang 已提交
4455
    let ColumnsPreRef = vue.ref([]);
4456
    let columnsRef = vue.ref([]);
D
DCloud_LXH 已提交
4457
    function getItemIndex(vnode) {
Q
qiang 已提交
4458 4459
      let columnVNodes = columnsRef.value;
      {
4460
        columnVNodes = columnVNodes.filter((vnode2) => vnode2.type !== vue.Comment);
Q
qiang 已提交
4461
      }
Q
qiang 已提交
4462 4463
      let index2 = columnVNodes.indexOf(vnode);
      return index2 !== -1 ? index2 : ColumnsPreRef.value.indexOf(vnode);
D
DCloud_LXH 已提交
4464
    }
D
DCloud_LXH 已提交
4465 4466 4467 4468 4469 4470 4471 4472
    const getPickerViewColumn = function(columnInstance) {
      const ref = vue.computed({
        get() {
          const index2 = getItemIndex(columnInstance.vnode);
          return state.value[index2] || 0;
        },
        set(current) {
          const index2 = getItemIndex(columnInstance.vnode);
4473 4474 4475
          if (index2 < 0) {
            return;
          }
D
DCloud_LXH 已提交
4476 4477
          const oldCurrent = state.value[index2];
          if (oldCurrent !== current) {
4478
            state.value[index2] = current;
D
DCloud_LXH 已提交
4479 4480 4481 4482 4483 4484
            const value = state.value.map((val) => val);
            emit2("update:value", value);
            trigger("change", {}, {
              value
            });
          }
4485
        }
D
DCloud_LXH 已提交
4486 4487 4488 4489 4490 4491
      });
      return ref;
    };
    vue.provide("getPickerViewColumn", getPickerViewColumn);
    vue.provide("pickerViewProps", props2);
    vue.provide("pickerViewState", state);
4492 4493
    return () => {
      const defaultSlots = slots.default && slots.default();
4494
      {
Q
qiang 已提交
4495 4496 4497 4498 4499
        const vnode = flatVNode(defaultSlots);
        ColumnsPreRef.value = vnode;
        vue.nextTick(() => {
          columnsRef.value = vnode;
        });
4500
      }
fxy060608's avatar
fxy060608 已提交
4501
      return vue.createVNode("uni-picker-view", {
fxy060608's avatar
fxy060608 已提交
4502
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
4503 4504 4505 4506 4507 4508 4509 4510 4511
      }, [vue.createVNode(ResizeSensor, {
        "ref": resizeSensorRef,
        "onResize": ({
          height
        }) => state.height = height
      }, null, 8, ["onResize"]), vue.createVNode("div", {
        "ref": wrapperRef,
        "class": "uni-picker-view-wrapper"
      }, [defaultSlots], 512)], 512);
4512 4513
    };
  }
D
DCloud_LXH 已提交
4514
});
D
DCloud_LXH 已提交
4515 4516 4517 4518 4519 4520 4521
let scopedIndex = 0;
function useScopedClass(indicatorHeightRef) {
  const className = `uni-picker-view-content-${scopedIndex++}`;
  function updateStyle() {
    const style = document.createElement("style");
    style.innerText = `.uni-picker-view-content.${className}>*{height: ${indicatorHeightRef.value}px;overflow: hidden;}`;
    document.head.appendChild(style);
D
DCloud_LXH 已提交
4522
  }
D
DCloud_LXH 已提交
4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536
  vue.watch(() => indicatorHeightRef.value, updateStyle);
  return className;
}
var PickerViewColumn = /* @__PURE__ */ defineBuiltInComponent({
  name: "PickerViewColumn",
  setup(props2, {
    slots,
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const contentRef = vue.ref(null);
    const getPickerViewColumn = vue.inject("getPickerViewColumn");
    const instance = vue.getCurrentInstance();
    const currentRef = getPickerViewColumn ? getPickerViewColumn(instance) : vue.ref(0);
fxy060608's avatar
fxy060608 已提交
4537
    const pickerViewProps2 = vue.inject("pickerViewProps");
D
DCloud_LXH 已提交
4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551
    const pickerViewState = vue.inject("pickerViewState");
    const indicatorHeight = vue.ref(34);
    const resizeSensorRef = vue.ref(null);
    const maskSize = vue.computed(() => (pickerViewState.height - indicatorHeight.value) / 2);
    const {
      state: scopedAttrsState
    } = useScopedAttrs();
    const className = useScopedClass(indicatorHeight);
    let scroller;
    const state = vue.reactive({
      current: currentRef.value,
      length: 0
    });
    function updatesScroller() {
4552
    }
D
DCloud_LXH 已提交
4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571
    vue.watch(() => currentRef.value, (current) => {
      if (current !== state.current) {
        state.current = current;
      }
    });
    vue.watch(() => state.current, (current) => currentRef.value = current);
    vue.watch([() => indicatorHeight.value, () => state.length, () => pickerViewState.height], updatesScroller);
    let oldDeltaY = 0;
    function handleWheel(event) {
      const deltaY = oldDeltaY + event.deltaY;
      if (Math.abs(deltaY) > 10) {
        oldDeltaY = 0;
        let 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();
4572
    }
D
DCloud_LXH 已提交
4573 4574 4575 4576 4577 4578 4579
    function handleTap({
      clientY
    }) {
      const el = rootRef.value;
      if (!scroller.isScrolling()) {
        const rect = el.getBoundingClientRect();
        const r = clientY - rect.top - pickerViewState.height / 2;
fxy060608's avatar
fxy060608 已提交
4580 4581 4582 4583
        const o = indicatorHeight.value / 2;
        if (!(Math.abs(r) <= o)) {
          const a = Math.ceil((Math.abs(r) - o) / indicatorHeight.value);
          const s = r < 0 ? -a : a;
D
DCloud_LXH 已提交
4584 4585 4586 4587 4588
          let current = Math.min(state.current + s, state.length - 1);
          state.current = current = Math.max(current, 0);
          scroller.scrollTo(current * indicatorHeight.value);
        }
      }
fxy060608's avatar
fxy060608 已提交
4589
    }
D
DCloud_LXH 已提交
4590 4591
    return () => {
      const defaultSlots = slots.default && slots.default();
4592 4593 4594
      {
        state.length = flatVNode(defaultSlots).length;
      }
D
DCloud_LXH 已提交
4595
      const padding = `${maskSize.value}px 0`;
fxy060608's avatar
fxy060608 已提交
4596
      return vue.createVNode("uni-picker-view-column", {
D
DCloud_LXH 已提交
4597
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
4598 4599 4600 4601 4602
      }, [vue.createVNode("div", {
        "onWheel": handleWheel,
        "onClick": handleTap,
        "class": "uni-picker-view-group"
      }, [vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {
fxy060608's avatar
fxy060608 已提交
4603 4604
        "class": ["uni-picker-view-mask", pickerViewProps2.maskClass],
        "style": `background-size: 100% ${maskSize.value}px;${pickerViewProps2.maskStyle}`
fxy060608's avatar
fxy060608 已提交
4605
      }), null, 16), vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {
fxy060608's avatar
fxy060608 已提交
4606 4607
        "class": ["uni-picker-view-indicator", pickerViewProps2.indicatorClass],
        "style": pickerViewProps2.indicatorStyle
fxy060608's avatar
fxy060608 已提交
4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619
      }), [vue.createVNode(ResizeSensor, {
        "ref": resizeSensorRef,
        "onResize": ({
          height
        }) => indicatorHeight.value = height
      }, null, 8, ["onResize"])], 16), vue.createVNode("div", {
        "ref": contentRef,
        "class": ["uni-picker-view-content", className],
        "style": {
          padding
        }
      }, [defaultSlots], 6)], 40, ["onWheel", "onClick"])], 512);
D
DCloud_LXH 已提交
4620 4621 4622
    };
  }
});
fxy060608's avatar
fxy060608 已提交
4623 4624
const FONT_SIZE = 16;
const PROGRESS_VALUES = {
D
DCloud_LXH 已提交
4625 4626 4627 4628
  activeColor: uniShared.PRIMARY_COLOR,
  backgroundColor: "#EBEBEB",
  activeMode: "backwards"
};
fxy060608's avatar
fxy060608 已提交
4629
const progressProps = {
D
DCloud_LXH 已提交
4630
  percent: {
D
DCloud_LXH 已提交
4631
    type: [Number, String],
D
DCloud_LXH 已提交
4632 4633 4634 4635
    default: 0,
    validator(value) {
      return !isNaN(parseFloat(value));
    }
D
DCloud_LXH 已提交
4636
  },
fxy060608's avatar
fxy060608 已提交
4637 4638 4639 4640
  fontSize: {
    type: [String, Number],
    default: FONT_SIZE
  },
D
DCloud_LXH 已提交
4641
  showInfo: {
D
DCloud_LXH 已提交
4642 4643
    type: [Boolean, String],
    default: false
fxy060608's avatar
fxy060608 已提交
4644
  },
D
DCloud_LXH 已提交
4645 4646 4647 4648 4649 4650
  strokeWidth: {
    type: [Number, String],
    default: 6,
    validator(value) {
      return !isNaN(parseFloat(value));
    }
fxy060608's avatar
fxy060608 已提交
4651
  },
D
DCloud_LXH 已提交
4652
  color: {
D
DCloud_LXH 已提交
4653
    type: String,
fxy060608's avatar
fxy060608 已提交
4654
    default: PROGRESS_VALUES.activeColor
fxy060608's avatar
fxy060608 已提交
4655
  },
D
DCloud_LXH 已提交
4656
  activeColor: {
D
DCloud_LXH 已提交
4657
    type: String,
fxy060608's avatar
fxy060608 已提交
4658
    default: PROGRESS_VALUES.activeColor
D
DCloud_LXH 已提交
4659
  },
D
DCloud_LXH 已提交
4660
  backgroundColor: {
D
DCloud_LXH 已提交
4661
    type: String,
fxy060608's avatar
fxy060608 已提交
4662
    default: PROGRESS_VALUES.backgroundColor
D
DCloud_LXH 已提交
4663
  },
D
DCloud_LXH 已提交
4664 4665 4666 4667 4668
  active: {
    type: [Boolean, String],
    default: false
  },
  activeMode: {
D
DCloud_LXH 已提交
4669
    type: String,
fxy060608's avatar
fxy060608 已提交
4670
    default: PROGRESS_VALUES.activeMode
D
DCloud_LXH 已提交
4671
  },
D
DCloud_LXH 已提交
4672
  duration: {
D
DCloud_LXH 已提交
4673
    type: [Number, String],
D
DCloud_LXH 已提交
4674 4675 4676 4677
    default: 30,
    validator(value) {
      return !isNaN(parseFloat(value));
    }
fxy060608's avatar
fxy060608 已提交
4678 4679 4680 4681
  },
  borderRadius: {
    type: [Number, String],
    default: 0
fxy060608's avatar
fxy060608 已提交
4682 4683
  }
};
fxy060608's avatar
fxy060608 已提交
4684
var index$s = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
4685
  name: "Progress",
fxy060608's avatar
fxy060608 已提交
4686
  props: progressProps,
D
DCloud_LXH 已提交
4687 4688 4689 4690 4691 4692 4693 4694 4695
  setup(props2) {
    const state = useProgressState(props2);
    _activeAnimation(state, props2);
    vue.watch(() => state.realPercent, (newValue, oldValue) => {
      state.strokeTimer && clearInterval(state.strokeTimer);
      state.lastPercent = oldValue || 0;
      _activeAnimation(state, props2);
    });
    return () => {
D
DCloud_LXH 已提交
4696
      const {
D
DCloud_LXH 已提交
4697 4698 4699 4700 4701 4702
        showInfo
      } = props2;
      const {
        outerBarStyle,
        innerBarStyle,
        currentPercent
D
DCloud_LXH 已提交
4703
      } = state;
fxy060608's avatar
fxy060608 已提交
4704
      return vue.createVNode("uni-progress", {
D
DCloud_LXH 已提交
4705
        "class": "uni-progress"
fxy060608's avatar
fxy060608 已提交
4706 4707 4708 4709 4710 4711 4712 4713 4714
      }, [vue.createVNode("div", {
        "style": outerBarStyle,
        "class": "uni-progress-bar"
      }, [vue.createVNode("div", {
        "style": innerBarStyle,
        "class": "uni-progress-inner-bar"
      }, null, 4)], 4), showInfo ? vue.createVNode("p", {
        "class": "uni-progress-info"
      }, [currentPercent + "%"]) : ""]);
D
DCloud_LXH 已提交
4715 4716 4717
    };
  }
});
D
DCloud_LXH 已提交
4718 4719 4720 4721
function useProgressState(props2) {
  const currentPercent = vue.ref(0);
  const outerBarStyle = vue.computed(() => `background-color: ${props2.backgroundColor}; height: ${props2.strokeWidth}px;`);
  const innerBarStyle = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
4722
    const backgroundColor = props2.color !== PROGRESS_VALUES.activeColor && props2.activeColor === PROGRESS_VALUES.activeColor ? props2.color : props2.activeColor;
D
DCloud_LXH 已提交
4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738
    return `width: ${currentPercent.value}%;background-color: ${backgroundColor}`;
  });
  const realPercent = vue.computed(() => {
    let realValue = parseFloat(props2.percent);
    realValue < 0 && (realValue = 0);
    realValue > 100 && (realValue = 100);
    return realValue;
  });
  const state = vue.reactive({
    outerBarStyle,
    innerBarStyle,
    realPercent,
    currentPercent,
    strokeTimer: 0,
    lastPercent: 0
  });
D
DCloud_LXH 已提交
4739 4740
  return state;
}
D
DCloud_LXH 已提交
4741 4742
function _activeAnimation(state, props2) {
  if (props2.active) {
fxy060608's avatar
fxy060608 已提交
4743
    state.currentPercent = props2.activeMode === PROGRESS_VALUES.activeMode ? 0 : state.lastPercent;
D
DCloud_LXH 已提交
4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756
    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;
  }
}
const uniRadioGroupKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniCheckGroup" : "ucg");
Q
qiang 已提交
4757
const props$i = {
D
DCloud_LXH 已提交
4758 4759 4760 4761 4762
  name: {
    type: String,
    default: ""
  }
};
fxy060608's avatar
fxy060608 已提交
4763
var index$r = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
4764
  name: "RadioGroup",
Q
qiang 已提交
4765
  props: props$i,
D
DCloud_LXH 已提交
4766 4767 4768 4769 4770 4771 4772 4773
  setup(props2, {
    emit: emit2,
    slots
  }) {
    const rootRef = vue.ref(null);
    const trigger = useCustomEvent(rootRef, emit2);
    useProvideRadioGroup(props2, trigger);
    return () => {
fxy060608's avatar
fxy060608 已提交
4774
      return vue.createVNode("uni-radio-group", {
D
DCloud_LXH 已提交
4775
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
4776
      }, [slots.default && slots.default()], 512);
D
DCloud_LXH 已提交
4777 4778 4779 4780 4781 4782 4783 4784
    };
  }
});
function useProvideRadioGroup(props2, trigger) {
  const fields2 = [];
  const getFieldsValue = () => {
    var _a;
    return (_a = fields2.find((field) => field.value.radioChecked)) == null ? void 0 : _a.value.value;
fxy060608's avatar
fxy060608 已提交
4785
  };
D
DCloud_LXH 已提交
4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797
  vue.provide(uniRadioGroupKey, {
    addField(field) {
      fields2.push(field);
    },
    removeField(field) {
      fields2.splice(fields2.indexOf(field), 1);
    },
    radioChange($event, field) {
      const index2 = fields2.indexOf(field);
      _resetRadioGroupValue(index2, true);
      trigger("change", $event, {
        value: getFieldsValue()
4798
      });
fxy060608's avatar
fxy060608 已提交
4799
    }
D
DCloud_LXH 已提交
4800
  });
D
DCloud_LXH 已提交
4801
  const uniForm = vue.inject(uniFormKey, false);
4802 4803 4804 4805 4806 4807
  const formField = {
    submit: () => {
      let data = ["", null];
      if (props2.name !== "") {
        data[0] = props2.name;
        data[1] = getFieldsValue();
4808
      }
4809 4810 4811 4812 4813
      return data;
    }
  };
  if (uniForm) {
    uniForm.addField(formField);
D
DCloud_LXH 已提交
4814 4815 4816 4817 4818
  }
  function setFieldChecked(field, radioChecked) {
    field.value = {
      radioChecked,
      value: field.value.value
4819 4820
    };
  }
D
DCloud_LXH 已提交
4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838
  function _resetRadioGroupValue(key, change) {
    fields2.forEach((value, index2) => {
      if (index2 === key) {
        return;
      }
      if (change) {
        setFieldChecked(fields2[index2], false);
      } else {
        fields2.forEach((v2, i) => {
          if (index2 >= i) {
            return;
          }
          if (fields2[i].value.radioChecked) {
            setFieldChecked(fields2[index2], false);
          }
        });
      }
    });
fxy060608's avatar
fxy060608 已提交
4839
  }
D
DCloud_LXH 已提交
4840
  return fields2;
D
DCloud_LXH 已提交
4841
}
Q
qiang 已提交
4842
const props$h = {
D
DCloud_LXH 已提交
4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861
  checked: {
    type: [Boolean, String],
    default: false
  },
  id: {
    type: String,
    default: ""
  },
  disabled: {
    type: [Boolean, String],
    default: false
  },
  color: {
    type: String,
    default: "#007aff"
  },
  value: {
    type: String,
    default: ""
D
DCloud_LXH 已提交
4862
  }
D
DCloud_LXH 已提交
4863
};
fxy060608's avatar
fxy060608 已提交
4864
var index$q = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
4865
  name: "Radio",
Q
qiang 已提交
4866
  props: props$h,
D
DCloud_LXH 已提交
4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893
  setup(props2, {
    slots
  }) {
    const radioChecked = vue.ref(props2.checked);
    const radioValue = vue.ref(props2.value);
    const checkedStyle = vue.computed(() => `background-color: ${props2.color};border-color: ${props2.color};`);
    vue.watch([() => props2.checked, () => props2.value], ([newChecked, newModelValue]) => {
      radioChecked.value = newChecked;
      radioValue.value = newModelValue;
    });
    const reset = () => {
      radioChecked.value = false;
    };
    const {
      uniCheckGroup,
      uniLabel,
      field
    } = useRadioInject(radioChecked, radioValue, reset);
    const _onClick = ($event) => {
      if (props2.disabled) {
        return;
      }
      radioChecked.value = true;
      uniCheckGroup && uniCheckGroup.radioChange($event, field);
    };
    if (!!uniLabel) {
      uniLabel.addHandler(_onClick);
4894
    }
D
DCloud_LXH 已提交
4895
    return () => {
fxy060608's avatar
fxy060608 已提交
4896
      const booleanAttrs = useBooleanAttr(props2, "disabled");
fxy060608's avatar
fxy060608 已提交
4897
      return vue.createVNode("uni-radio", vue.mergeProps(booleanAttrs, {
D
DCloud_LXH 已提交
4898
        "onClick": _onClick
fxy060608's avatar
fxy060608 已提交
4899 4900 4901 4902 4903 4904 4905 4906
      }), [vue.createVNode("div", {
        "class": "uni-radio-wrapper"
      }, [vue.createVNode("div", {
        "class": ["uni-radio-input", {
          "uni-radio-input-disabled": props2.disabled
        }],
        "style": radioChecked.value ? checkedStyle.value : ""
      }, [radioChecked.value ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, "#fff", 18) : ""], 6), slots.default && slots.default()])], 16, ["onClick"]);
D
DCloud_LXH 已提交
4907
    };
D
DCloud_LXH 已提交
4908
  }
D
DCloud_LXH 已提交
4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919
});
function useRadioInject(radioChecked, radioValue, reset) {
  const field = vue.computed({
    get: () => ({
      radioChecked: Boolean(radioChecked.value),
      value: radioValue.value
    }),
    set: ({
      radioChecked: checked
    }) => {
      radioChecked.value = checked;
D
DCloud_LXH 已提交
4920
    }
D
DCloud_LXH 已提交
4921 4922 4923 4924 4925 4926 4927
  });
  const formField = {
    reset
  };
  const uniCheckGroup = vue.inject(uniRadioGroupKey, false);
  if (!!uniCheckGroup) {
    uniCheckGroup.addField(field);
D
DCloud_LXH 已提交
4928
  }
D
DCloud_LXH 已提交
4929 4930 4931
  const uniForm = vue.inject(uniFormKey, false);
  if (!!uniForm) {
    uniForm.addField(formField);
4932
  }
D
DCloud_LXH 已提交
4933
  const uniLabel = vue.inject(uniLabelKey, false);
4934
  return {
D
DCloud_LXH 已提交
4935 4936 4937 4938
    uniCheckGroup,
    uniForm,
    uniLabel,
    field
4939
  };
fxy060608's avatar
fxy060608 已提交
4940
}
D
DCloud_LXH 已提交
4941 4942 4943
const TAGS = {
  a: "",
  abbr: "",
4944 4945 4946
  address: "",
  article: "",
  aside: "",
D
DCloud_LXH 已提交
4947
  b: "",
4948 4949 4950
  bdi: "",
  bdo: ["dir"],
  big: "",
D
DCloud_LXH 已提交
4951 4952
  blockquote: "",
  br: "",
4953 4954 4955
  caption: "",
  center: "",
  cite: "",
D
DCloud_LXH 已提交
4956 4957 4958 4959 4960 4961 4962 4963 4964 4965
  code: "",
  col: ["span", "width"],
  colgroup: ["span", "width"],
  dd: "",
  del: "",
  div: "",
  dl: "",
  dt: "",
  em: "",
  fieldset: "",
4966 4967
  font: "",
  footer: "",
D
DCloud_LXH 已提交
4968 4969 4970 4971 4972 4973
  h1: "",
  h2: "",
  h3: "",
  h4: "",
  h5: "",
  h6: "",
4974
  header: "",
D
DCloud_LXH 已提交
4975 4976 4977 4978 4979 4980 4981
  hr: "",
  i: "",
  img: ["alt", "src", "height", "width"],
  ins: "",
  label: "",
  legend: "",
  li: "",
4982 4983
  mark: "",
  nav: "",
D
DCloud_LXH 已提交
4984 4985
  ol: ["start", "type"],
  p: "",
4986
  pre: "",
D
DCloud_LXH 已提交
4987
  q: "",
4988 4989 4990 4991 4992
  rt: "",
  ruby: "",
  s: "",
  section: "",
  small: "",
D
DCloud_LXH 已提交
4993 4994 4995 4996 4997 4998
  span: "",
  strong: "",
  sub: "",
  sup: "",
  table: ["width"],
  tbody: "",
4999
  td: ["colspan", "height", "rowspan", "width"],
D
DCloud_LXH 已提交
5000
  tfoot: "",
5001
  th: ["colspan", "height", "rowspan", "width"],
D
DCloud_LXH 已提交
5002
  thead: "",
5003 5004 5005
  tr: ["colspan", "height", "rowspan", "width"],
  tt: "",
  u: "",
D
DCloud_LXH 已提交
5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030
  ul: ""
};
const CHARS = {
  amp: "&",
  gt: ">",
  lt: "<",
  nbsp: " ",
  quot: '"',
  apos: "'"
};
function decodeEntities(htmlString) {
  return htmlString.replace(/&(([a-zA-Z]+)|(#x{0,1}[\da-zA-Z]+));/gi, function(match, stage) {
    if (shared.hasOwn(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));
    }
    const wrap = document.createElement("div");
    wrap.innerHTML = match;
    return wrap.innerText || wrap.textContent;
  });
D
DCloud_LXH 已提交
5031
}
fxy060608's avatar
fxy060608 已提交
5032 5033 5034 5035 5036
function normlizeValue(tagName, name, value) {
  if (tagName === "img" && name === "src")
    return getRealPath(value);
  return value;
}
5037
function parseNodes(nodes, parentNode, scopeId, triggerItemClick) {
D
DCloud_LXH 已提交
5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053
  nodes.forEach(function(node) {
    if (!shared.isPlainObject(node)) {
      return;
    }
    if (!shared.hasOwn(node, "type") || node.type === "node") {
      if (!(typeof node.name === "string" && node.name)) {
        return;
      }
      const tagName = node.name.toLowerCase();
      if (!shared.hasOwn(TAGS, tagName)) {
        return;
      }
      const elem = document.createElement(tagName);
      if (!elem) {
        return;
      }
fxy060608's avatar
fxy060608 已提交
5054
      scopeId && elem.setAttribute(scopeId, "");
D
DCloud_LXH 已提交
5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067
      const attrs = node.attrs;
      if (shared.isPlainObject(attrs)) {
        const tagAttrs = TAGS[tagName] || [];
        Object.keys(attrs).forEach(function(name) {
          let value = attrs[name];
          switch (name) {
            case "class":
              Array.isArray(value) && (value = value.join(" "));
            case "style":
              elem.setAttribute(name, value);
              break;
            default:
              if (tagAttrs.indexOf(name) !== -1) {
fxy060608's avatar
fxy060608 已提交
5068
                elem.setAttribute(name, normlizeValue(tagName, name, value));
D
DCloud_LXH 已提交
5069 5070 5071 5072
              }
          }
        });
      }
5073
      processClickEvent(node, elem, triggerItemClick);
D
DCloud_LXH 已提交
5074 5075
      const children = node.children;
      if (Array.isArray(children) && children.length) {
5076
        parseNodes(node.children, elem, scopeId, triggerItemClick);
D
DCloud_LXH 已提交
5077 5078 5079 5080 5081 5082 5083 5084 5085 5086
      }
      parentNode.appendChild(elem);
    } else {
      if (node.type === "text" && typeof node.text === "string" && node.text !== "") {
        parentNode.appendChild(document.createTextNode(decodeEntities(node.text)));
      }
    }
  });
  return parentNode;
}
5087 5088 5089 5090 5091 5092 5093 5094 5095
function processClickEvent(node, elem, triggerItemClick) {
  if (["a", "img"].includes(node.name) && triggerItemClick) {
    elem.setAttribute("onClick", "return false;");
    elem.addEventListener("click", (e2) => {
      triggerItemClick(e2, { node });
      e2.stopPropagation();
    }, true);
  }
}
5096 5097 5098 5099 5100 5101 5102
function removeDOCTYPE(html) {
  return html.replace(/<\?xml.*\?>\n/, "").replace(/<!doctype.*>\n/, "").replace(/<!DOCTYPE.*>\n/, "");
}
function parseAttrs(attrs) {
  return attrs.reduce(function(pre, attr2) {
    let value = attr2.value;
    const name = attr2.name;
fxy060608's avatar
fxy060608 已提交
5103
    if (value.match(/ /) && ["style", "src"].indexOf(name) === -1) {
5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185
      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);
  const stacks = [];
  const results = {
    node: "root",
    children: []
  };
  HTMLParser(html, {
    start: function(tag, attrs, unary) {
      const node = {
        name: tag
      };
      if (attrs.length !== 0) {
        node.attrs = parseAttrs(attrs);
      }
      if (unary) {
        const parent = stacks[0] || results;
        if (!parent.children) {
          parent.children = [];
        }
        parent.children.push(node);
      } else {
        stacks.unshift(node);
      }
    },
    end: function(tag) {
      const node = stacks.shift();
      if (node.name !== tag)
        console.error("invalid state: mismatch end tag");
      if (stacks.length === 0) {
        results.children.push(node);
      } else {
        const parent = stacks[0];
        if (!parent.children) {
          parent.children = [];
        }
        parent.children.push(node);
      }
    },
    chars: function(text) {
      const node = {
        type: "text",
        text
      };
      if (stacks.length === 0) {
        results.children.push(node);
      } else {
        const parent = stacks[0];
        if (!parent.children) {
          parent.children = [];
        }
        parent.children.push(node);
      }
    },
    comment: function(text) {
      const node = {
        node: "comment",
        text
      };
      const parent = stacks[0];
      if (!parent.children) {
        parent.children = [];
      }
      parent.children.push(node);
    }
  });
  return results.children;
}
Q
qiang 已提交
5186
const props$g = {
D
DCloud_LXH 已提交
5187 5188 5189 5190 5191
  nodes: {
    type: [Array, String],
    default: function() {
      return [];
    }
D
DCloud_LXH 已提交
5192
  }
D
DCloud_LXH 已提交
5193
};
fxy060608's avatar
fxy060608 已提交
5194
var index$p = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
5195 5196 5197 5198
  name: "RichText",
  compatConfig: {
    MODE: 3
  },
Q
qiang 已提交
5199
  props: props$g,
5200 5201 5202 5203 5204
  emits: ["click", "touchstart", "touchmove", "touchcancel", "touchend", "longpress"],
  setup(props2, {
    emit: emit2,
    attrs
  }) {
Q
qiang 已提交
5205
    const vm = vue.getCurrentInstance();
D
DCloud_LXH 已提交
5206
    const rootRef = vue.ref(null);
5207 5208 5209 5210 5211
    const trigger = useCustomEvent(rootRef, emit2);
    const hasItemClick = !!attrs.onItemclick;
    function triggerItemClick(e2, detail = {}) {
      trigger("itemclick", e2, detail);
    }
D
DCloud_LXH 已提交
5212 5213 5214 5215
    function _renderNodes(nodes) {
      if (typeof nodes === "string") {
        nodes = parseHtml(nodes);
      }
fxy060608's avatar
fxy060608 已提交
5216
      const nodeList = parseNodes(nodes, document.createDocumentFragment(), vm && vm.vnode.scopeId || "", hasItemClick && triggerItemClick);
D
DCloud_LXH 已提交
5217 5218 5219 5220 5221 5222 5223
      rootRef.value.firstElementChild.innerHTML = "";
      rootRef.value.firstElementChild.appendChild(nodeList);
    }
    vue.watch(() => props2.nodes, (value) => {
      _renderNodes(value);
    });
    return () => {
fxy060608's avatar
fxy060608 已提交
5224
      return vue.createVNode("uni-rich-text", {
D
DCloud_LXH 已提交
5225
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
5226
      }, [vue.createVNode("div", null, null)], 512);
D
DCloud_LXH 已提交
5227 5228 5229
    };
  }
});
Q
qiang 已提交
5230
const props$f = {
D
DCloud_LXH 已提交
5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287
  scrollX: {
    type: [Boolean, String],
    default: false
  },
  scrollY: {
    type: [Boolean, String],
    default: false
  },
  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: "back"
  },
  refresherBackground: {
    type: String,
    default: "#fff"
  },
  refresherTriggered: {
    type: [Boolean, String],
    default: false
  }
};
fxy060608's avatar
fxy060608 已提交
5288
var index$o = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
5289 5290 5291 5292
  name: "ScrollView",
  compatConfig: {
    MODE: 3
  },
Q
qiang 已提交
5293
  props: props$f,
fxy060608's avatar
fxy060608 已提交
5294
  emits: ["scroll", "scrolltoupper", "scrolltolower", "refresherrefresh", "refresherrestore", "refresherpulling", "refresherabort", "update:refresherTriggered"],
D
DCloud_LXH 已提交
5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309
  setup(props2, {
    emit: emit2,
    slots
  }) {
    const rootRef = vue.ref(null);
    const main = vue.ref(null);
    const wrap = vue.ref(null);
    const content = vue.ref(null);
    const refresherinner = vue.ref(null);
    const trigger = useCustomEvent(rootRef, emit2);
    const {
      state,
      scrollTopNumber,
      scrollLeftNumber
    } = useScrollViewState(props2);
fxy060608's avatar
fxy060608 已提交
5310
    useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger, rootRef, main, content, emit2);
D
DCloud_LXH 已提交
5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327
    const mainStyle = vue.computed(() => {
      let style = "";
      props2.scrollX ? style += "overflow-x:auto;" : style += "overflow-x:hidden;";
      props2.scrollY ? style += "overflow-y:auto;" : style += "overflow-y:hidden;";
      return style;
    });
    return () => {
      const {
        refresherEnabled,
        refresherBackground,
        refresherDefaultStyle
      } = props2;
      const {
        refresherHeight,
        refreshState,
        refreshRotate
      } = state;
fxy060608's avatar
fxy060608 已提交
5328
      return vue.createVNode("uni-scroll-view", {
D
DCloud_LXH 已提交
5329
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379
      }, [vue.createVNode("div", {
        "ref": wrap,
        "class": "uni-scroll-view"
      }, [vue.createVNode("div", {
        "ref": main,
        "style": mainStyle.value,
        "class": "uni-scroll-view"
      }, [vue.createVNode("div", {
        "ref": content,
        "class": "uni-scroll-view-content"
      }, [refresherEnabled ? vue.createVNode("div", {
        "ref": refresherinner,
        "style": {
          backgroundColor: refresherBackground,
          height: refresherHeight + "px"
        },
        "class": "uni-scroll-view-refresher"
      }, [refresherDefaultStyle !== "none" ? vue.createVNode("div", {
        "class": "uni-scroll-view-refresh"
      }, [vue.createVNode("div", {
        "class": "uni-scroll-view-refresh-inner"
      }, [refreshState == "pulling" ? vue.createVNode("svg", {
        "key": "refresh__icon",
        "style": {
          transform: "rotate(" + refreshRotate + "deg)"
        },
        "fill": "#2BD009",
        "class": "uni-scroll-view-refresh__icon",
        "width": "24",
        "height": "24",
        "viewBox": "0 0 24 24"
      }, [vue.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), vue.createVNode("path", {
        "d": "M0 0h24v24H0z",
        "fill": "none"
      }, null)], 4) : null, refreshState == "refreshing" ? vue.createVNode("svg", {
        "key": "refresh__spinner",
        "class": "uni-scroll-view-refresh__spinner",
        "width": "24",
        "height": "24",
        "viewBox": "25 25 50 50"
      }, [vue.createVNode("circle", {
        "cx": "50",
        "cy": "50",
        "r": "20",
        "fill": "none",
        "style": "color: #2bd009",
        "stroke-width": "3"
      }, null)]) : null])]) : null, refresherDefaultStyle == "none" ? slots.refresher && slots.refresher() : null], 4) : null, slots.default && slots.default()], 512)], 4)], 512)], 512);
D
DCloud_LXH 已提交
5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404
    };
  }
});
function useScrollViewState(props2) {
  const scrollTopNumber = vue.computed(() => {
    return Number(props2.scrollTop) || 0;
  });
  const scrollLeftNumber = vue.computed(() => {
    return Number(props2.scrollLeft) || 0;
  });
  const state = vue.reactive({
    lastScrollTop: scrollTopNumber.value,
    lastScrollLeft: scrollLeftNumber.value,
    lastScrollToUpperTime: 0,
    lastScrollToLowerTime: 0,
    refresherHeight: 0,
    refreshRotate: 0,
    refreshState: ""
  });
  return {
    state,
    scrollTopNumber,
    scrollLeftNumber
  };
}
fxy060608's avatar
fxy060608 已提交
5405
function useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger, rootRef, main, content, emit2) {
D
DCloud_LXH 已提交
5406 5407
  let beforeRefreshing = false;
  let triggerAbort = false;
D
DCloud_LXH 已提交
5408 5409 5410
  let __transitionEnd = () => {
  };
  vue.computed(() => {
5411
    let val = Number(props2.upperThreshold);
D
DCloud_LXH 已提交
5412 5413 5414
    return isNaN(val) ? 50 : val;
  });
  vue.computed(() => {
5415
    let val = Number(props2.lowerThreshold);
D
DCloud_LXH 已提交
5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430
    return isNaN(val) ? 50 : val;
  });
  function scrollTo(scrollToValue, direction) {
    const container = main.value;
    let transformValue = 0;
    let transform = "";
    scrollToValue < 0 ? scrollToValue = 0 : direction === "x" && scrollToValue > container.scrollWidth - container.offsetWidth ? scrollToValue = container.scrollWidth - container.offsetWidth : direction === "y" && scrollToValue > container.scrollHeight - container.offsetHeight && (scrollToValue = container.scrollHeight - container.offsetHeight);
    direction === "x" ? transformValue = container.scrollLeft - scrollToValue : direction === "y" && (transformValue = container.scrollTop - scrollToValue);
    if (transformValue === 0)
      return;
    let _content = content.value;
    _content.style.transition = "transform .3s ease-out";
    _content.style.webkitTransition = "-webkit-transform .3s ease-out";
    if (direction === "x") {
      transform = "translateX(" + transformValue + "px) translateZ(0)";
5431
    } else {
D
DCloud_LXH 已提交
5432
      direction === "y" && (transform = "translateY(" + transformValue + "px) translateZ(0)");
D
DCloud_LXH 已提交
5433
    }
D
DCloud_LXH 已提交
5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445
    _content.removeEventListener("transitionend", __transitionEnd);
    _content.removeEventListener("webkitTransitionEnd", __transitionEnd);
    __transitionEnd = () => _transitionEnd(scrollToValue, direction);
    _content.addEventListener("transitionend", __transitionEnd);
    _content.addEventListener("webkitTransitionEnd", __transitionEnd);
    if (direction === "x") {
      container.style.overflowX = "hidden";
    } else if (direction === "y") {
      container.style.overflowY = "hidden";
    }
    _content.style.transform = transform;
    _content.style.webkitTransform = transform;
D
DCloud_LXH 已提交
5446
  }
D
DCloud_LXH 已提交
5447 5448 5449 5450 5451 5452 5453 5454 5455 5456
  function _scrollTopChanged(val) {
    if (props2.scrollY) {
      {
        if (props2.scrollWithAnimation) {
          scrollTo(val, "y");
        } else {
          main.value.scrollTop = val;
        }
      }
    }
D
DCloud_LXH 已提交
5457
  }
D
DCloud_LXH 已提交
5458 5459 5460 5461 5462 5463 5464 5465 5466
  function _scrollLeftChanged(val) {
    if (props2.scrollX) {
      {
        if (props2.scrollWithAnimation) {
          scrollTo(val, "x");
        } else {
          main.value.scrollLeft = val;
        }
      }
D
DCloud_LXH 已提交
5467 5468
    }
  }
D
DCloud_LXH 已提交
5469 5470 5471 5472 5473
  function _scrollIntoViewChanged(val) {
    if (val) {
      if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) {
        console.error(`id error: scroll-into-view=${val}`);
        return;
fxy060608's avatar
fxy060608 已提交
5474
      }
5475
      let element = rootRef.value.querySelector("#" + val);
D
DCloud_LXH 已提交
5476
      if (element) {
5477 5478
        let mainRect = main.value.getBoundingClientRect();
        let elRect = element.getBoundingClientRect();
D
DCloud_LXH 已提交
5479
        if (props2.scrollX) {
5480 5481 5482
          let left = elRect.left - mainRect.left;
          let scrollLeft = main.value.scrollLeft;
          let x = scrollLeft + left;
D
DCloud_LXH 已提交
5483 5484 5485 5486 5487 5488 5489
          if (props2.scrollWithAnimation) {
            scrollTo(x, "x");
          } else {
            main.value.scrollLeft = x;
          }
        }
        if (props2.scrollY) {
5490 5491 5492
          let top = elRect.top - mainRect.top;
          let scrollTop = main.value.scrollTop;
          let y = scrollTop + top;
D
DCloud_LXH 已提交
5493 5494 5495 5496 5497 5498
          if (props2.scrollWithAnimation) {
            scrollTo(y, "y");
          } else {
            main.value.scrollTop = y;
          }
        }
fxy060608's avatar
fxy060608 已提交
5499 5500
      }
    }
fxy060608's avatar
fxy060608 已提交
5501
  }
D
DCloud_LXH 已提交
5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513
  function _transitionEnd(val, direction) {
    content.value.style.transition = "";
    content.value.style.webkitTransition = "";
    content.value.style.transform = "";
    content.value.style.webkitTransform = "";
    let _main = main.value;
    if (direction === "x") {
      _main.style.overflowX = props2.scrollX ? "auto" : "hidden";
      _main.scrollLeft = val;
    } else if (direction === "y") {
      _main.style.overflowY = props2.scrollY ? "auto" : "hidden";
      _main.scrollTop = val;
D
DCloud_LXH 已提交
5514
    }
D
DCloud_LXH 已提交
5515 5516
    content.value.removeEventListener("transitionend", __transitionEnd);
    content.value.removeEventListener("webkitTransitionEnd", __transitionEnd);
D
DCloud_LXH 已提交
5517
  }
D
DCloud_LXH 已提交
5518 5519 5520 5521
  function _setRefreshState(_state) {
    switch (_state) {
      case "refreshing":
        state.refresherHeight = props2.refresherThreshold;
D
DCloud_LXH 已提交
5522 5523 5524
        if (!beforeRefreshing) {
          beforeRefreshing = true;
          trigger("refresherrefresh", {}, {});
fxy060608's avatar
fxy060608 已提交
5525
          emit2("update:refresherTriggered", true);
D
DCloud_LXH 已提交
5526
        }
D
DCloud_LXH 已提交
5527 5528
        break;
      case "restore":
D
DCloud_LXH 已提交
5529 5530
      case "refresherabort":
        beforeRefreshing = false;
D
DCloud_LXH 已提交
5531
        state.refresherHeight = 0;
D
DCloud_LXH 已提交
5532 5533 5534 5535 5536 5537 5538 5539
        if (_state === "restore") {
          triggerAbort = false;
          trigger("refresherrestore", {}, {});
        }
        if (_state === "refresherabort" && triggerAbort) {
          triggerAbort = false;
          trigger("refresherabort", {}, {});
        }
D
DCloud_LXH 已提交
5540
        break;
D
DCloud_LXH 已提交
5541
    }
D
DCloud_LXH 已提交
5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557
    state.refreshState = _state;
  }
  vue.watch(scrollTopNumber, (val) => {
    _scrollTopChanged(val);
  });
  vue.watch(scrollLeftNumber, (val) => {
    _scrollLeftChanged(val);
  });
  vue.watch(() => props2.scrollIntoView, (val) => {
    _scrollIntoViewChanged(val);
  });
  vue.watch(() => props2.refresherTriggered, (val) => {
    if (val === true) {
      _setRefreshState("refreshing");
    } else if (val === false) {
      _setRefreshState("restore");
D
DCloud_LXH 已提交
5558
    }
D
DCloud_LXH 已提交
5559
  });
D
DCloud_LXH 已提交
5560
}
Q
qiang 已提交
5561
const props$e = {
D
DCloud_LXH 已提交
5562 5563 5564 5565 5566
  name: {
    type: String,
    default: ""
  },
  min: {
D
DCloud_LXH 已提交
5567
    type: [Number, String],
D
DCloud_LXH 已提交
5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586
    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: {
D
DCloud_LXH 已提交
5587
    type: String,
D
DCloud_LXH 已提交
5588 5589 5590
    default: "#e9e9e9"
  },
  backgroundColor: {
D
DCloud_LXH 已提交
5591
    type: String,
D
DCloud_LXH 已提交
5592 5593 5594
    default: "#e9e9e9"
  },
  activeColor: {
D
DCloud_LXH 已提交
5595
    type: String,
D
DCloud_LXH 已提交
5596
    default: "#007aff"
D
DCloud_LXH 已提交
5597
  },
D
DCloud_LXH 已提交
5598
  selectedColor: {
D
DCloud_LXH 已提交
5599
    type: String,
D
DCloud_LXH 已提交
5600
    default: "#007aff"
D
DCloud_LXH 已提交
5601
  },
D
DCloud_LXH 已提交
5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612
  blockColor: {
    type: String,
    default: "#ffffff"
  },
  blockSize: {
    type: [Number, String],
    default: 28
  },
  showValue: {
    type: [Boolean, String],
    default: false
D
DCloud_LXH 已提交
5613 5614
  }
};
fxy060608's avatar
fxy060608 已提交
5615
var index$n = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
5616
  name: "Slider",
Q
qiang 已提交
5617
  props: props$e,
D
DCloud_LXH 已提交
5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641
  emits: ["changing", "change"],
  setup(props2, {
    emit: emit2
  }) {
    const sliderRef = vue.ref(null);
    const sliderValueRef = vue.ref(null);
    const sliderHandleRef = vue.ref(null);
    const sliderValue = vue.ref(Number(props2.value));
    vue.watch(() => props2.value, (val) => {
      sliderValue.value = Number(val);
    });
    const trigger = useCustomEvent(sliderRef, emit2);
    const state = useSliderState(props2, sliderValue);
    const {
      _onClick,
      _onTrack
    } = useSliderLoader(props2, sliderValue, sliderRef, sliderValueRef, trigger);
    return () => {
      const {
        setBgColor,
        setBlockBg,
        setActiveColor,
        setBlockStyle
      } = state;
fxy060608's avatar
fxy060608 已提交
5642
      return vue.createVNode("uni-slider", {
D
DCloud_LXH 已提交
5643 5644
        "ref": sliderRef,
        "onClick": withWebEvent(_onClick)
fxy060608's avatar
fxy060608 已提交
5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665
      }, [vue.createVNode("div", {
        "class": "uni-slider-wrapper"
      }, [vue.createVNode("div", {
        "class": "uni-slider-tap-area"
      }, [vue.createVNode("div", {
        "style": setBgColor.value,
        "class": "uni-slider-handle-wrapper"
      }, [vue.createVNode("div", {
        "ref": sliderHandleRef,
        "style": setBlockBg.value,
        "class": "uni-slider-handle"
      }, null, 4), vue.createVNode("div", {
        "style": setBlockStyle.value,
        "class": "uni-slider-thumb"
      }, null, 4), vue.createVNode("div", {
        "style": setActiveColor.value,
        "class": "uni-slider-track"
      }, null, 4)], 4)]), vue.withDirectives(vue.createVNode("span", {
        "ref": sliderValueRef,
        "class": "uni-slider-value"
      }, [sliderValue.value], 512), [[vue.vShow, props2.showValue]])]), vue.createVNode("slot", null, null)], 8, ["onClick"]);
D
DCloud_LXH 已提交
5666
    };
D
DCloud_LXH 已提交
5667
  }
D
DCloud_LXH 已提交
5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701
});
function useSliderState(props2, sliderValue) {
  const _getValueWidth = () => {
    const max = Number(props2.max);
    const min = Number(props2.min);
    return 100 * (sliderValue.value - min) / (max - min) + "%";
  };
  const _getBgColor = () => {
    return props2.backgroundColor !== "#e9e9e9" ? props2.backgroundColor : props2.color !== "#007aff" ? props2.color : "#007aff";
  };
  const _getActiveColor = () => {
    return props2.activeColor !== "#007aff" ? props2.activeColor : props2.selectedColor !== "#e9e9e9" ? props2.selectedColor : "#e9e9e9";
  };
  const state = {
    setBgColor: vue.computed(() => ({
      backgroundColor: _getBgColor()
    })),
    setBlockBg: vue.computed(() => ({
      left: _getValueWidth()
    })),
    setActiveColor: vue.computed(() => ({
      backgroundColor: _getActiveColor(),
      width: _getValueWidth()
    })),
    setBlockStyle: vue.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;
D
DCloud_LXH 已提交
5702
}
D
DCloud_LXH 已提交
5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716
function useSliderLoader(props2, sliderValue, sliderRef, sliderValueRef, trigger) {
  const _onClick = ($event) => {
    if (props2.disabled) {
      return;
    }
    _onUserChangedValue($event);
    trigger("change", $event, {
      value: sliderValue.value
    });
  };
  const _filterValue = (e2) => {
    const max = Number(props2.max);
    const min = Number(props2.min);
    const step = Number(props2.step);
fxy060608's avatar
fxy060608 已提交
5717
    return e2 < min ? min : e2 > max ? max : computeController.mul.call(Math.round((e2 - min) / step), step) + min;
D
DCloud_LXH 已提交
5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753
  };
  const _onUserChangedValue = (e2) => {
    const max = Number(props2.max);
    const min = Number(props2.min);
    const sliderRightBox = sliderValueRef.value;
    const sliderRightBoxLeft = getComputedStyle(sliderRightBox, null).marginLeft;
    let sliderRightBoxWidth = sliderRightBox.offsetWidth;
    sliderRightBoxWidth = sliderRightBoxWidth + parseInt(sliderRightBoxLeft);
    const slider = sliderRef.value;
    const offsetWidth = slider.offsetWidth - (props2.showValue ? sliderRightBoxWidth : 0);
    const boxLeft = slider.getBoundingClientRect().left;
    const value = (e2.x - boxLeft) * (max - min) / offsetWidth + min;
    sliderValue.value = _filterValue(value);
  };
  const _onTrack = (e2) => {
    if (!props2.disabled) {
      return e2.detail.state === "move" ? (_onUserChangedValue({
        x: e2.detail.x
      }), trigger("changing", e2, {
        value: sliderValue.value
      }), false) : e2.detail.state === "end" && trigger("change", e2, {
        value: sliderValue.value
      });
    }
  };
  const uniForm = vue.inject(uniFormKey, false);
  if (!!uniForm) {
    const field = {
      reset: () => sliderValue.value = Number(props2.min),
      submit: () => {
        const data = ["", null];
        if (props2.name !== "") {
          data[0] = props2.name;
          data[1] = sliderValue.value;
        }
        return data;
D
DCloud_LXH 已提交
5754
      }
D
DCloud_LXH 已提交
5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774
    };
    uniForm.addField(field);
  }
  return {
    _onClick,
    _onTrack
  };
}
var computeController = {
  mul: function(arg) {
    let m = 0;
    let s1 = this.toString();
    let s2 = arg.toString();
    try {
      m += s1.split(".")[1].length;
    } catch (e2) {
    }
    try {
      m += s2.split(".")[1].length;
    } catch (e2) {
fxy060608's avatar
fxy060608 已提交
5775
    }
D
DCloud_LXH 已提交
5776
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
fxy060608's avatar
fxy060608 已提交
5777 5778
  }
};
Q
qiang 已提交
5779
const props$d = {
Q
qiang 已提交
5780 5781 5782
  indicatorDots: {
    type: [Boolean, String],
    default: false
fxy060608's avatar
fxy060608 已提交
5783
  },
Q
qiang 已提交
5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840
  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
  }
};
5841
function useState$1(props2) {
Q
qiang 已提交
5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882
  const interval = vue.computed(() => {
    const interval2 = Number(props2.interval);
    return isNaN(interval2) ? 5e3 : interval2;
  });
  const duration = vue.computed(() => {
    const duration2 = Number(props2.duration);
    return isNaN(duration2) ? 500 : duration2;
  });
  const displayMultipleItems = vue.computed(() => {
    const displayMultipleItems2 = Math.round(props2.displayMultipleItems);
    return isNaN(displayMultipleItems2) ? 1 : displayMultipleItems2;
  });
  const state = vue.reactive({
    interval,
    duration,
    displayMultipleItems,
    current: Math.round(props2.current) || 0,
    currentItemId: props2.currentItemId,
    userTracking: false
  });
  return state;
}
function useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger) {
  function cancelSchedule() {
    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
  }
  let timer = null;
  let invalid = true;
  let viewportPosition = 0;
  let viewportMoveRatio = 1;
  let animating = null;
  let requestedAnimation = false;
  let contentTrackViewport = 0;
  let transitionStart;
  let currentChangeSource = "";
  const circularEnabled = vue.computed(() => props2.circular && swiperContexts.value.length > state.displayMultipleItems);
  function checkCircularLayout(index2) {
    if (!invalid) {
5883
      for (let items = swiperContexts.value, n = items.length, i = index2 + state.displayMultipleItems, r = 0; r < n; r++) {
Q
qiang 已提交
5884 5885 5886 5887
        const item = items[r];
        const s = Math.floor(index2 / n) * n + r;
        const l = s + n;
        const c = s - n;
5888 5889 5890
        const u = Math.max(index2 - (s + 1), s - i, 0);
        const d = Math.max(index2 - (l + 1), l - i, 0);
        const h = Math.max(index2 - (c + 1), c - i, 0);
Q
qiang 已提交
5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006
        const p2 = Math.min(u, d, h);
        const position = [s, l, c][[u, d, h].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);
      }
    }
    const x = props2.vertical ? "0" : 100 * -index2 * viewportMoveRatio + "%";
    const y = props2.vertical ? 100 * -index2 * viewportMoveRatio + "%" : "0";
    const transform = "translate(" + x + ", " + y + ") translateZ(0)";
    const 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);
    const 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;
    trigger("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) {
    const length = swiperContexts.value.length;
    if (!length) {
      return -1;
    }
    const 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;
    }
    const _animating = animating;
    const toPos = _animating.toPos;
    const acc = _animating.acc;
    const endTime = _animating.endTime;
    const source = _animating.source;
    const time = endTime - Date.now();
    if (time <= 0) {
      updateViewport(toPos);
      animating = null;
      requestedAnimation = false;
      transitionStart = null;
      const item = swiperContexts.value[state.current];
      if (item) {
        const currentItemId = item.getItemId();
        trigger("animationfinish", {}, {
          current: state.current,
          currentItemId,
          source
        });
      }
      return;
    }
    const s = acc * time * time / 2;
    const l = toPos + s;
    updateViewport(l);
    requestAnimationFrame(animateFrameFuncProto);
  }
  function animateViewport(current, source, n) {
    cancelViewportAnimation();
    const duration = state.duration;
    const length = swiperContexts.value.length;
    let 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;
        }
Q
qiang 已提交
6007 6008 6009
        if (position + length - current < current - position) {
          position += length;
        }
Q
qiang 已提交
6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035
      } else {
        for (; position + length < current; ) {
          position += length;
        }
        for (; position - length > current; ) {
          position -= length;
        }
        if (position + length - current < current - position) {
          position += length;
        }
      }
    }
    animating = {
      toPos: current,
      acc: 2 * (position - current) / (duration * duration),
      endTime: Date.now() + duration,
      source
    };
    if (!requestedAnimation) {
      requestedAnimation = true;
      requestAnimationFrame(animateFrameFuncProto);
    }
  }
  function scheduleAutoplay() {
    cancelSchedule();
    const items = swiperContexts.value;
Q
qiang 已提交
6036
    const callback = function() {
Q
qiang 已提交
6037 6038 6039 6040 6041 6042 6043 6044
      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);
Q
qiang 已提交
6045
      timer = setTimeout(callback, state.interval);
Q
qiang 已提交
6046 6047
    };
    if (!(invalid || items.length <= state.displayMultipleItems)) {
Q
qiang 已提交
6048
      timer = setTimeout(callback, state.interval);
Q
qiang 已提交
6049 6050 6051 6052 6053 6054
    }
  }
  function resetLayout() {
    cancelSchedule();
    endViewportAnimation();
    const items = swiperContexts.value;
6055 6056
    for (let i = 0; i < items.length; i++) {
      items[i].updatePosition(i, props2.vertical);
Q
qiang 已提交
6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089
    }
    viewportMoveRatio = 1;
    const slideFrameEl = slideFrameRef.value;
    if (state.displayMultipleItems === 1 && items.length) {
      const itemRect = items[0].getBoundingClientRect();
      const slideFrameRect = slideFrameEl.getBoundingClientRect();
      viewportMoveRatio = itemRect.width / slideFrameRect.width;
      if (!(viewportMoveRatio > 0 && viewportMoveRatio < 1)) {
        viewportMoveRatio = 1;
      }
    }
    const position = viewportPosition;
    viewportPosition = -2;
    const 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);
    }
  }
  vue.watch([() => props2.current, () => props2.currentItemId, () => [...swiperContexts.value]], () => {
    let current = -1;
    if (props2.currentItemId) {
6090 6091
      for (let i = 0, items = swiperContexts.value; i < items.length; i++) {
        const itemId = items[i].getItemId();
Q
qiang 已提交
6092
        if (itemId === props2.currentItemId) {
6093
          current = i;
Q
qiang 已提交
6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128
          break;
        }
      }
    }
    if (current < 0) {
      current = Math.round(props2.current) || 0;
    }
    current = current < 0 ? 0 : current;
    if (state.current !== current) {
      currentChangeSource = "";
      state.current = current;
    }
  });
  vue.watch([() => props2.vertical, () => circularEnabled.value, () => state.displayMultipleItems, () => [...swiperContexts.value]], resetLayout);
  vue.watch(() => state.interval, () => {
    if (timer) {
      cancelSchedule();
      scheduleAutoplay();
    }
  });
  function currentChanged(current, history) {
    const source = currentChangeSource;
    currentChangeSource = "";
    const items = swiperContexts.value;
    if (!source) {
      const length = items.length;
      animateViewport(current, "", circularEnabled.value && history + (length - current) % length > length / 2 ? 1 : 0);
    }
    const item = items[current];
    if (item) {
      const currentItemId = state.currentItemId = item.getItemId();
      trigger("change", {}, {
        current: state.current,
        currentItemId,
        source
fxy060608's avatar
fxy060608 已提交
6129
      });
fxy060608's avatar
fxy060608 已提交
6130
    }
fxy060608's avatar
fxy060608 已提交
6131
  }
Q
qiang 已提交
6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145
  vue.watch(() => state.current, (val, oldVal) => {
    currentChanged(val, oldVal);
    emit2("update:current", val);
  });
  vue.watch(() => state.currentItemId, (val) => {
    emit2("update:currentItemId", val);
  });
  function inintAutoplay(enable) {
    if (enable) {
      scheduleAutoplay();
    } else {
      cancelSchedule();
    }
  }
Q
qiang 已提交
6146 6147 6148 6149 6150 6151 6152 6153 6154
  vue.watch(() => props2.autoplay && !state.userTracking, inintAutoplay);
  inintAutoplay(props2.autoplay && !state.userTracking);
  function onSwiperDotClick(index2) {
    animateViewport(state.current = index2, currentChangeSource = "click", circularEnabled.value ? 1 : 0);
  }
  return {
    onSwiperDotClick
  };
}
fxy060608's avatar
fxy060608 已提交
6155
var index$m = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6156
  name: "Swiper",
Q
qiang 已提交
6157
  props: props$d,
Q
qiang 已提交
6158 6159 6160 6161 6162 6163 6164 6165 6166
  emits: ["change", "transition", "animationfinish", "update:current", "update:currentItemId"],
  setup(props2, {
    slots,
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const trigger = useCustomEvent(rootRef, emit2);
    const slidesWrapperRef = vue.ref(null);
    const slideFrameRef = vue.ref(null);
6167
    const state = useState$1(props2);
Q
qiang 已提交
6168 6169 6170 6171 6172 6173
    const slidesStyle = vue.computed(() => {
      let style = {};
      if (props2.nextMargin || props2.previousMargin) {
        style = props2.vertical ? {
          left: 0,
          right: 0,
fxy060608's avatar
fxy060608 已提交
6174 6175
          top: rpx2px(props2.previousMargin, true),
          bottom: rpx2px(props2.nextMargin, true)
Q
qiang 已提交
6176 6177 6178
        } : {
          top: 0,
          bottom: 0,
fxy060608's avatar
fxy060608 已提交
6179 6180
          left: rpx2px(props2.previousMargin, true),
          right: rpx2px(props2.nextMargin, true)
Q
qiang 已提交
6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197
        };
      }
      return style;
    });
    const slideFrameStyle = vue.computed(() => {
      const value = Math.abs(100 / state.displayMultipleItems) + "%";
      return {
        width: props2.vertical ? "100%" : value,
        height: !props2.vertical ? "100%" : value
      };
    });
    let swiperItems = [];
    const originSwiperContexts = [];
    const swiperContexts = vue.ref([]);
    function updateSwiperContexts() {
      const contexts = [];
      for (let index2 = 0; index2 < swiperItems.length; index2++) {
Q
qiang 已提交
6198 6199 6200 6201 6202
        let swiperItem = swiperItems[index2];
        if (!(swiperItem instanceof Element)) {
          swiperItem = swiperItem.el;
        }
        const swiperContext = originSwiperContexts.find((context) => swiperItem === context.rootRef.value);
Q
qiang 已提交
6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227
        if (swiperContext) {
          contexts.push(vue.markRaw(swiperContext));
        }
      }
      swiperContexts.value = contexts;
    }
    const addSwiperContext = function(swiperContext) {
      originSwiperContexts.push(swiperContext);
      updateSwiperContexts();
    };
    vue.provide("addSwiperContext", addSwiperContext);
    const removeSwiperContext = function(swiperContext) {
      const index2 = originSwiperContexts.indexOf(swiperContext);
      if (index2 >= 0) {
        originSwiperContexts.splice(index2, 1);
        updateSwiperContexts();
      }
    };
    vue.provide("removeSwiperContext", removeSwiperContext);
    const {
      onSwiperDotClick
    } = useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger);
    return () => {
      const defaultSlots = slots.default && slots.default();
      swiperItems = flatVNode(defaultSlots);
fxy060608's avatar
fxy060608 已提交
6228
      return vue.createVNode("uni-swiper", {
Q
qiang 已提交
6229
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251
      }, [vue.createVNode("div", {
        "ref": slidesWrapperRef,
        "class": "uni-swiper-wrapper"
      }, [vue.createVNode("div", {
        "class": "uni-swiper-slides",
        "style": slidesStyle.value
      }, [vue.createVNode("div", {
        "ref": slideFrameRef,
        "class": "uni-swiper-slide-frame",
        "style": slideFrameStyle.value
      }, [defaultSlots], 4)], 4), props2.indicatorDots && vue.createVNode("div", {
        "class": ["uni-swiper-dots", props2.vertical ? "uni-swiper-dots-vertical" : "uni-swiper-dots-horizontal"]
      }, [swiperContexts.value.map((_, index2, array) => vue.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)], 512)], 512);
Q
qiang 已提交
6252 6253 6254
    };
  }
});
Q
qiang 已提交
6255
const props$c = {
Q
qiang 已提交
6256 6257 6258 6259 6260
  itemId: {
    type: String,
    default: ""
  }
};
fxy060608's avatar
fxy060608 已提交
6261
var index$l = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6262
  name: "SwiperItem",
Q
qiang 已提交
6263
  props: props$c,
Q
qiang 已提交
6264 6265 6266 6267 6268
  setup(props2, {
    slots
  }) {
    const rootRef = vue.ref(null);
    return () => {
fxy060608's avatar
fxy060608 已提交
6269
      return vue.createVNode("uni-swiper-item", {
Q
qiang 已提交
6270 6271 6272 6273 6274 6275
        "ref": rootRef,
        "style": {
          position: "absolute",
          width: "100%",
          height: "100%"
        }
fxy060608's avatar
fxy060608 已提交
6276
      }, [slots.default && slots.default()], 512);
Q
qiang 已提交
6277 6278 6279
    };
  }
});
Q
qiang 已提交
6280
const props$b = {
Q
qiang 已提交
6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305
  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: "#007aff"
  }
};
fxy060608's avatar
fxy060608 已提交
6306
var index$k = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6307
  name: "Switch",
Q
qiang 已提交
6308
  props: props$b,
Q
qiang 已提交
6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336
  emits: ["change"],
  setup(props2, {
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
    const switchChecked = vue.ref(props2.checked);
    const uniLabel = useSwitchInject(props2, switchChecked);
    const trigger = useCustomEvent(rootRef, emit2);
    vue.watch(() => props2.checked, (val) => {
      switchChecked.value = val;
    });
    const _onClick = ($event) => {
      if (props2.disabled) {
        return;
      }
      switchChecked.value = !switchChecked.value;
      trigger("change", $event, {
        value: switchChecked.value
      });
    };
    if (!!uniLabel) {
      uniLabel.addHandler(_onClick);
    }
    return () => {
      const {
        color,
        type
      } = props2;
fxy060608's avatar
fxy060608 已提交
6337
      const booleanAttrs = useBooleanAttr(props2, "disabled");
fxy060608's avatar
fxy060608 已提交
6338
      return vue.createVNode("uni-switch", vue.mergeProps({
Q
qiang 已提交
6339 6340 6341
        "ref": rootRef
      }, booleanAttrs, {
        "onClick": _onClick
fxy060608's avatar
fxy060608 已提交
6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352
      }), [vue.createVNode("div", {
        "class": "uni-switch-wrapper"
      }, [vue.withDirectives(vue.createVNode("div", {
        "class": ["uni-switch-input", [switchChecked.value ? "uni-switch-input-checked" : ""]],
        "style": {
          backgroundColor: switchChecked.value ? color : "#DFDFDF",
          borderColor: switchChecked.value ? color : "#DFDFDF"
        }
      }, null, 6), [[vue.vShow, type === "switch"]]), vue.withDirectives(vue.createVNode("div", {
        "class": "uni-checkbox-input"
      }, [switchChecked.value ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.color, 22) : ""], 512), [[vue.vShow, type === "checkbox"]])])], 16, ["onClick"]);
Q
qiang 已提交
6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381
    };
  }
});
function useSwitchInject(props2, switchChecked) {
  const uniForm = vue.inject(uniFormKey, false);
  const uniLabel = vue.inject(uniLabelKey, false);
  const formField = {
    submit: () => {
      const data = ["", null];
      if (props2.name) {
        data[0] = props2.name;
        data[1] = switchChecked.value;
      }
      return data;
    },
    reset: () => {
      switchChecked.value = false;
    }
  };
  if (!!uniForm) {
    uniForm.addField(formField);
  }
  return uniLabel;
}
const SPACE_UNICODE = {
  ensp: "\u2002",
  emsp: "\u2003",
  nbsp: "\xA0"
};
fxy060608's avatar
fxy060608 已提交
6382
function parseText(text, options) {
fxy060608's avatar
fxy060608 已提交
6383
  return text.replace(/\\n/g, uniShared.LINEFEED).split(uniShared.LINEFEED).map((text2) => {
fxy060608's avatar
fxy060608 已提交
6384 6385 6386 6387 6388 6389 6390
    return normalizeText(text2, options);
  });
}
function normalizeText(text, { space, decode }) {
  if (!text) {
    return text;
  }
Q
qiang 已提交
6391 6392
  if (space && SPACE_UNICODE[space]) {
    text = text.replace(/ /g, SPACE_UNICODE[space]);
Q
qiang 已提交
6393
  }
Q
qiang 已提交
6394 6395 6396 6397
  if (!decode) {
    return text;
  }
  return text.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, "'");
fxy060608's avatar
fxy060608 已提交
6398
}
fxy060608's avatar
fxy060608 已提交
6399
var index$j = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421
  name: "Text",
  props: {
    selectable: {
      type: [Boolean, String],
      default: false
    },
    space: {
      type: String,
      default: ""
    },
    decode: {
      type: [Boolean, String],
      default: false
    }
  },
  setup(props2, {
    slots
  }) {
    return () => {
      const children = [];
      if (slots.default) {
        slots.default().forEach((vnode) => {
fxy060608's avatar
fxy060608 已提交
6422
          if (vnode.shapeFlag & 8 && vnode.type !== vue.Comment) {
fxy060608's avatar
fxy060608 已提交
6423 6424 6425 6426
            const lines = parseText(vnode.children, {
              space: props2.space,
              decode: props2.decode
            });
Q
qiang 已提交
6427
            const len = lines.length - 1;
fxy060608's avatar
fxy060608 已提交
6428 6429
            lines.forEach((line, index2) => {
              if (index2 === 0 && !line)
Q
qiang 已提交
6430 6431
                ;
              else {
fxy060608's avatar
fxy060608 已提交
6432
                children.push(vue.createTextVNode(line));
Q
qiang 已提交
6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445
              }
              if (index2 !== len) {
                children.push(vue.createVNode("br"));
              }
            });
          } else {
            if (process.env.NODE_ENV !== "production" && vnode.shapeFlag & 6 && vnode.type.name !== "Text") {
              console.warn("Do not nest other components in the text component, as there may be display differences on different platforms.");
            }
            children.push(vnode);
          }
        });
      }
fxy060608's avatar
fxy060608 已提交
6446
      return vue.createVNode("uni-text", {
fxy060608's avatar
fxy060608 已提交
6447
        "selectable": props2.selectable ? true : null
fxy060608's avatar
fxy060608 已提交
6448
      }, [vue.createVNode("span", null, children)], 8, ["selectable"]);
Q
qiang 已提交
6449 6450 6451
    };
  }
});
6452
const props$a = /* @__PURE__ */ shared.extend({}, props$k, {
Q
qiang 已提交
6453 6454 6455 6456 6457 6458 6459 6460 6461 6462
  placeholderClass: {
    type: String,
    default: "input-placeholder"
  },
  autoHeight: {
    type: [Boolean, String],
    default: false
  },
  confirmType: {
    type: String,
fxy060608's avatar
fxy060608 已提交
6463 6464 6465 6466
    default: "return",
    validator(val) {
      return ConfirmTypes.concat("return").includes(val);
    }
Q
qiang 已提交
6467 6468
  }
});
fxy060608's avatar
fxy060608 已提交
6469
let fixMargin = false;
fxy060608's avatar
fxy060608 已提交
6470
const ConfirmTypes = ["done", "go", "next", "search", "send"];
fxy060608's avatar
fxy060608 已提交
6471
var index$i = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6472
  name: "Textarea",
Q
qiang 已提交
6473
  props: props$a,
fxy060608's avatar
fxy060608 已提交
6474
  emits: ["confirm", "linechange", ...emit],
Q
qiang 已提交
6475 6476 6477 6478
  setup(props2, {
    emit: emit2
  }) {
    const rootRef = vue.ref(null);
Q
qiang 已提交
6479 6480 6481 6482 6483 6484 6485
    const {
      fieldRef,
      state,
      scopedAttrsState,
      fixDisabledColor,
      trigger
    } = useField(props2, rootRef, emit2);
fxy060608's avatar
fxy060608 已提交
6486
    const valueCompute = vue.computed(() => state.value.split(uniShared.LINEFEED));
fxy060608's avatar
fxy060608 已提交
6487
    const isDone = vue.computed(() => ConfirmTypes.includes(props2.confirmType));
Q
qiang 已提交
6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504
    const heightRef = vue.ref(0);
    const lineRef = vue.ref(null);
    vue.watch(() => heightRef.value, (height) => {
      const el = rootRef.value;
      const lineEl = lineRef.value;
      let lineHeight = parseFloat(getComputedStyle(el).lineHeight);
      if (isNaN(lineHeight)) {
        lineHeight = lineEl.offsetHeight;
      }
      var lineCount = Math.round(height / lineHeight);
      trigger("linechange", {}, {
        height,
        heightRpx: 750 / window.innerWidth * height,
        lineCount
      });
      if (props2.autoHeight) {
        el.style.height = height + "px";
Q
qiang 已提交
6505 6506
      }
    });
Q
qiang 已提交
6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522
    function onResize({
      height
    }) {
      heightRef.value = height;
    }
    function confirm(event) {
      trigger("confirm", event, {
        value: state.value
      });
    }
    function onKeyDownEnter(event) {
      if (event.key !== "Enter") {
        return;
      }
      if (isDone.value) {
        event.preventDefault();
Q
qiang 已提交
6523 6524
      }
    }
Q
qiang 已提交
6525 6526 6527
    function onKeyUpEnter(event) {
      if (event.key !== "Enter") {
        return;
Q
qiang 已提交
6528
      }
Q
qiang 已提交
6529 6530 6531
      if (isDone.value) {
        confirm(event);
        const textarea = event.target;
fxy060608's avatar
fxy060608 已提交
6532
        !props2.confirmHold && textarea.blur();
Q
qiang 已提交
6533 6534
      }
    }
Q
qiang 已提交
6535
    return () => {
Q
qiang 已提交
6536 6537 6538 6539 6540 6541
      let textareaNode = props2.disabled && fixDisabledColor ? vue.createVNode("textarea", {
        "ref": fieldRef,
        "value": state.value,
        "tabindex": "-1",
        "readonly": !!props2.disabled,
        "maxlength": state.maxlength,
fxy060608's avatar
fxy060608 已提交
6542
        "class": {
Q
qiang 已提交
6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558
          "uni-textarea-textarea": true,
          "uni-textarea-textarea-fix-margin": fixMargin
        },
        "style": {
          overflowY: props2.autoHeight ? "hidden" : "auto"
        },
        "onFocus": (event) => event.target.blur()
      }, null, 46, ["value", "readonly", "maxlength", "onFocus"]) : vue.createVNode("textarea", {
        "ref": fieldRef,
        "value": state.value,
        "disabled": !!props2.disabled,
        "maxlength": state.maxlength,
        "enterkeyhint": props2.confirmType,
        "class": {
          "uni-textarea-textarea": true,
          "uni-textarea-textarea-fix-margin": fixMargin
Q
qiang 已提交
6559
        },
fxy060608's avatar
fxy060608 已提交
6560
        "style": {
Q
qiang 已提交
6561 6562 6563 6564 6565
          overflowY: props2.autoHeight ? "hidden" : "auto"
        },
        "onKeydown": onKeyDownEnter,
        "onKeyup": onKeyUpEnter
      }, null, 46, ["value", "disabled", "maxlength", "enterkeyhint", "onKeydown", "onKeyup"]);
fxy060608's avatar
fxy060608 已提交
6566
      return vue.createVNode("uni-textarea", {
Q
qiang 已提交
6567
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585
      }, [vue.createVNode("div", {
        "class": "uni-textarea-wrapper"
      }, [vue.withDirectives(vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {
        "style": props2.placeholderStyle,
        "class": ["uni-textarea-placeholder", props2.placeholderClass]
      }), [props2.placeholder], 16), [[vue.vShow, !state.value.length]]), vue.createVNode("div", {
        "ref": lineRef,
        "class": "uni-textarea-line"
      }, [" "], 512), vue.createVNode("div", {
        "class": "uni-textarea-compute"
      }, [valueCompute.value.map((item) => vue.createVNode("div", null, [item.trim() ? item : "."])), vue.createVNode(ResizeSensor, {
        "initial": true,
        "onResize": onResize
      }, null, 8, ["initial", "onResize"])]), props2.confirmType === "search" ? vue.createVNode("form", {
        "action": "",
        "onSubmit": () => false,
        "class": "uni-input-form"
      }, [textareaNode], 40, ["onSubmit"]) : textareaNode])], 512);
Q
qiang 已提交
6586 6587 6588
    };
  }
});
fxy060608's avatar
fxy060608 已提交
6589
var index$h = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
6590 6591
  name: "View",
  props: shared.extend({}, hoverProps),
Q
qiang 已提交
6592 6593 6594
  setup(props2, {
    slots
  }) {
Q
qiang 已提交
6595 6596 6597 6598
    const {
      hovering,
      binding
    } = useHover(props2);
Q
qiang 已提交
6599
    return () => {
Q
qiang 已提交
6600 6601
      const hoverClass = props2.hoverClass;
      if (hoverClass && hoverClass !== "none") {
fxy060608's avatar
fxy060608 已提交
6602
        return vue.createVNode("uni-view", vue.mergeProps({
Q
qiang 已提交
6603
          "class": hovering.value ? hoverClass : ""
fxy060608's avatar
fxy060608 已提交
6604
        }, binding), [slots.default && slots.default()], 16);
Q
qiang 已提交
6605
      }
fxy060608's avatar
fxy060608 已提交
6606
      return vue.createVNode("uni-view", null, [slots.default && slots.default()]);
Q
qiang 已提交
6607 6608 6609
    };
  }
});
6610
function useSubscribe(callback, name, multiple, pageId) {
Q
qiang 已提交
6611 6612 6613
  const instance = vue.getCurrentInstance();
  instance.proxy;
}
fxy060608's avatar
fxy060608 已提交
6614
let index$g = 0;
D
DCloud_LXH 已提交
6615
function useContextInfo(_id) {
6616
  useCurrentPageId();
Q
qiang 已提交
6617 6618 6619
  const instance = vue.getCurrentInstance();
  const vm = instance.proxy;
  const type = vm.$options.name.toLowerCase();
fxy060608's avatar
fxy060608 已提交
6620
  const id = _id || vm.id || `context${index$g++}`;
6621
  return `${type}.${id}`;
fxy060608's avatar
fxy060608 已提交
6622
}
fxy060608's avatar
fxy060608 已提交
6623 6624 6625 6626 6627 6628 6629
function injectLifecycleHook(name, hook, publicThis, instance) {
  if (shared.isFunction(hook)) {
    vue.injectHook(name, hook.bind(publicThis), instance);
  }
}
function initHooks(options, instance, publicThis) {
  const mpType = options.mpType || publicThis.$mpType;
fxy060608's avatar
fxy060608 已提交
6630 6631 6632
  if (!mpType) {
    return;
  }
fxy060608's avatar
fxy060608 已提交
6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647
  Object.keys(options).forEach((name) => {
    if (name.indexOf("on") === 0) {
      const hooks = options[name];
      if (shared.isArray(hooks)) {
        hooks.forEach((hook) => injectLifecycleHook(name, hook, publicThis, instance));
      } else {
        injectLifecycleHook(name, hooks, publicThis, instance);
      }
    }
  });
  if (mpType === "page") {
    instance.__isVisible = true;
    try {
      invokeHook(publicThis, uniShared.ON_LOAD, instance.attrs.__pageQuery);
      delete instance.attrs.__pageQuery;
fxy060608's avatar
fxy060608 已提交
6648
      invokeHook(publicThis, uniShared.ON_SHOW);
fxy060608's avatar
fxy060608 已提交
6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764
    } catch (e2) {
      console.error(e2.message + uniShared.LINEFEED + e2.stack);
    }
  }
}
function applyOptions(options, instance, publicThis) {
  initHooks(options, instance, publicThis);
}
function set(target, key, val) {
  return target[key] = val;
}
function errorHandler(err, instance, info) {
  if (!instance) {
    throw err;
  }
  const app = getApp();
  if (!app || !app.$vm) {
    throw err;
  }
  {
    invokeHook(app.$vm, uniShared.ON_ERROR, err);
  }
}
function mergeAsArray(to, from) {
  return to ? [...new Set([].concat(to, from))] : from;
}
function initOptionMergeStrategies(optionMergeStrategies) {
  uniShared.UniLifecycleHooks.forEach((name) => {
    optionMergeStrategies[name] = mergeAsArray;
  });
}
let realAtob;
const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
const b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;
if (typeof atob !== "function") {
  realAtob = function(str) {
    str = String(str).replace(/[\t\n\f\r ]+/g, "");
    if (!b64re.test(str)) {
      throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
    }
    str += "==".slice(2 - (str.length & 3));
    var bitmap;
    var result = "";
    var r1;
    var r2;
    var i = 0;
    for (; i < str.length; ) {
      bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 | (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));
      result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
    }
    return result;
  };
} else {
  realAtob = atob;
}
function b64DecodeUnicode(str) {
  return decodeURIComponent(realAtob(str).split("").map(function(c) {
    return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
  }).join(""));
}
function getCurrentUserInfo() {
  const token = uni.getStorageSync("uni_id_token") || "";
  const tokenArr = token.split(".");
  if (!token || tokenArr.length !== 3) {
    return {
      uid: null,
      role: [],
      permission: [],
      tokenExpired: 0
    };
  }
  let userInfo;
  try {
    userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));
  } catch (error) {
    throw new Error("\u83B7\u53D6\u5F53\u524D\u7528\u6237\u4FE1\u606F\u51FA\u9519\uFF0C\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F\u4E3A\uFF1A" + error.message);
  }
  userInfo.tokenExpired = userInfo.exp * 1e3;
  delete userInfo.exp;
  delete userInfo.iat;
  return userInfo;
}
function uniIdMixin(globalProperties) {
  globalProperties.uniIDHasRole = function(roleId) {
    const { role } = getCurrentUserInfo();
    return role.indexOf(roleId) > -1;
  };
  globalProperties.uniIDHasPermission = function(permissionId) {
    const { permission } = getCurrentUserInfo();
    return this.uniIDHasRole("admin") || permission.indexOf(permissionId) > -1;
  };
  globalProperties.uniIDTokenValid = function() {
    const { tokenExpired } = getCurrentUserInfo();
    return tokenExpired > Date.now();
  };
}
function initApp$1(app) {
  const appConfig = app._context.config;
  if (shared.isFunction(app._component.onError)) {
    appConfig.errorHandler = errorHandler;
  }
  initOptionMergeStrategies(appConfig.optionMergeStrategies);
  const globalProperties = appConfig.globalProperties;
  {
    if (__UNI_FEATURE_UNI_CLOUD__) {
      uniIdMixin(globalProperties);
    }
  }
  {
    globalProperties.$set = set;
    globalProperties.$applyOptions = applyOptions;
  }
  {
    uniShared.invokeCreateVueAppHook(app);
  }
}
fxy060608's avatar
fxy060608 已提交
6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776
const pageMetaKey = PolySymbol(process.env.NODE_ENV !== "production" ? "UniPageMeta" : "upm");
function usePageMeta() {
  return vue.inject(pageMetaKey);
}
function providePageMeta(id) {
  const pageMeta = initPageMeta(id);
  vue.provide(pageMetaKey, pageMeta);
  return pageMeta;
}
function usePageRoute() {
  if (__UNI_FEATURE_PAGES__) {
    return vueRouter.useRoute();
D
DCloud_LXH 已提交
6777
  }
fxy060608's avatar
fxy060608 已提交
6778 6779 6780 6781 6782 6783 6784 6785
  const url = location.href;
  const searchPos = url.indexOf("?");
  const hashPos = url.indexOf("#", searchPos > -1 ? searchPos : 0);
  let query = {};
  if (searchPos > -1) {
    query = uniShared.parseQuery(url.slice(searchPos + 1, hashPos > -1 ? hashPos : url.length));
  }
  const { meta } = __uniRoutes[0];
fxy060608's avatar
fxy060608 已提交
6786
  const path = uniShared.addLeadingSlash(meta.route);
fxy060608's avatar
fxy060608 已提交
6787 6788 6789
  return {
    meta,
    query,
fxy060608's avatar
fxy060608 已提交
6790 6791
    path,
    matched: [{ path }]
fxy060608's avatar
fxy060608 已提交
6792 6793 6794 6795
  };
}
function initPageMeta(id) {
  if (__UNI_FEATURE_PAGES__) {
fxy060608's avatar
fxy060608 已提交
6796
    return vue.reactive(normalizePageMeta(JSON.parse(JSON.stringify(initRouteMeta(vueRouter.useRoute().meta, id)))));
D
DCloud_LXH 已提交
6797
  }
fxy060608's avatar
fxy060608 已提交
6798
  return vue.reactive(normalizePageMeta(JSON.parse(JSON.stringify(initRouteMeta(__uniRoutes[0].meta, id)))));
fxy060608's avatar
fxy060608 已提交
6799 6800 6801 6802 6803
}
function normalizePageMeta(pageMeta) {
  if (__UNI_FEATURE_PULL_DOWN_REFRESH__) {
    const { enablePullDownRefresh, navigationBar } = pageMeta;
    if (enablePullDownRefresh) {
fxy060608's avatar
fxy060608 已提交
6804
      const pullToRefresh = normalizePullToRefreshRpx(shared.extend({
fxy060608's avatar
fxy060608 已提交
6805 6806 6807 6808 6809 6810
        support: true,
        color: "#2BD009",
        style: "circle",
        height: 70,
        range: 150,
        offset: 0
fxy060608's avatar
fxy060608 已提交
6811 6812 6813 6814
      }, pageMeta.pullToRefresh));
      const { type, style } = navigationBar;
      if (style !== "custom" && type !== "transparent") {
        pullToRefresh.offset += uniShared.NAVBAR_HEIGHT + 0;
fxy060608's avatar
fxy060608 已提交
6815
      }
fxy060608's avatar
fxy060608 已提交
6816
      pageMeta.pullToRefresh = pullToRefresh;
D
DCloud_LXH 已提交
6817 6818
    }
  }
fxy060608's avatar
fxy060608 已提交
6819 6820 6821
  if (__UNI_FEATURE_NAVIGATIONBAR__) {
    const { navigationBar } = pageMeta;
    const { titleSize, titleColor, backgroundColor } = navigationBar;
fxy060608's avatar
fxy060608 已提交
6822
    navigationBar.titleText = navigationBar.titleText || "";
fxy060608's avatar
fxy060608 已提交
6823 6824
    navigationBar.type = navigationBar.type || "default";
    navigationBar.titleSize = titleSize || "16px";
fxy060608's avatar
fxy060608 已提交
6825
    navigationBar.titleColor = titleColor || "#ffffff";
fxy060608's avatar
fxy060608 已提交
6826
    navigationBar.backgroundColor = backgroundColor || "#F7F7F7";
6827
    __UNI_FEATURE_I18N_LOCALE__ && initNavigationBarI18n(navigationBar);
fxy060608's avatar
fxy060608 已提交
6828 6829
  }
  return pageMeta;
D
DCloud_LXH 已提交
6830
}
fxy060608's avatar
fxy060608 已提交
6831 6832 6833
function getStateId() {
  {
    return 1;
D
DCloud_LXH 已提交
6834
  }
fxy060608's avatar
fxy060608 已提交
6835 6836 6837 6838 6839
}
PolySymbol(process.env.NODE_ENV !== "production" ? "layout" : "l");
let tabBar;
function useTabBar() {
  if (!tabBar) {
fxy060608's avatar
fxy060608 已提交
6840
    tabBar = __uniConfig.tabBar && vue.reactive(initTabBarI18n(__uniConfig.tabBar));
Q
qiang 已提交
6841
  }
fxy060608's avatar
fxy060608 已提交
6842 6843
  return tabBar;
}
Q
qiang 已提交
6844 6845 6846
const envMethod = /* @__PURE__ */ (() => "env")();
function normalizeWindowBottom(windowBottom) {
  return `calc(${windowBottom}px + ${envMethod}(safe-area-inset-bottom))`;
fxy060608's avatar
fxy060608 已提交
6847
}
Q
qiang 已提交
6848
const SEP = "$$";
6849
const currentPagesMap = /* @__PURE__ */ new Map();
Q
qiang 已提交
6850 6851 6852 6853
function pruneCurrentPages() {
  currentPagesMap.forEach((page, id2) => {
    if (page.$.isUnmounted) {
      currentPagesMap.delete(id2);
fxy060608's avatar
fxy060608 已提交
6854
    }
Q
qiang 已提交
6855 6856 6857 6858 6859 6860
  });
}
function getCurrentPages$1() {
  const curPages = [];
  const pages = currentPagesMap.values();
  for (const page of pages) {
fxy060608's avatar
fxy060608 已提交
6861
    if (page.$.__isTabBar) {
Q
qiang 已提交
6862 6863
      if (page.$.__isActive) {
        curPages.push(page);
fxy060608's avatar
fxy060608 已提交
6864
      }
Q
qiang 已提交
6865 6866 6867 6868 6869 6870 6871 6872 6873
    } else {
      curPages.push(page);
    }
  }
  return curPages;
}
function initPublicPage(route) {
  const meta = usePageMeta();
  if (!__UNI_FEATURE_PAGES__) {
fxy060608's avatar
fxy060608 已提交
6874
    return initPageInternalInstance("navigateTo", __uniRoutes[0].path, {}, meta);
fxy060608's avatar
fxy060608 已提交
6875
  }
fxy060608's avatar
fxy060608 已提交
6876
  return initPageInternalInstance("navigateTo", route.fullPath, {}, meta);
Q
qiang 已提交
6877 6878 6879 6880
}
function initPage(vm) {
  const route = vm.$route;
  const page = initPublicPage(route);
fxy060608's avatar
fxy060608 已提交
6881
  initPageVm(vm, page);
Q
qiang 已提交
6882 6883 6884 6885 6886 6887 6888
  currentPagesMap.set(normalizeRouteKey(page.path, page.id), vm);
}
function normalizeRouteKey(path, id2) {
  return path + SEP + id2;
}
function useKeepAliveRoute() {
  const route = vueRouter.useRoute();
fxy060608's avatar
fxy060608 已提交
6889
  const routeKey = vue.computed(() => normalizeRouteKey("/" + route.meta.route, getStateId()));
Q
qiang 已提交
6890 6891 6892 6893 6894 6895 6896
  const isTabBar = vue.computed(() => route.meta.isTabBar);
  return {
    routeKey,
    isTabBar,
    routeCache
  };
}
6897
const pageCacheMap = /* @__PURE__ */ new Map();
Q
qiang 已提交
6898 6899 6900
const routeCache = {
  get(key) {
    return pageCacheMap.get(key);
fxy060608's avatar
fxy060608 已提交
6901
  },
Q
qiang 已提交
6902 6903 6904
  set(key, value) {
    pruneRouteCache(key);
    pageCacheMap.set(key, value);
fxy060608's avatar
fxy060608 已提交
6905
  },
Q
qiang 已提交
6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923
  delete(key) {
    const vnode = pageCacheMap.get(key);
    if (!vnode) {
      return;
    }
    pageCacheMap.delete(key);
  },
  forEach(fn) {
    pageCacheMap.forEach(fn);
  }
};
function isTabBarVNode(vnode) {
  return vnode.props.type === "tabBar";
}
function pruneRouteCache(key) {
  const pageId = parseInt(key.split(SEP)[1]);
  if (!pageId) {
    return;
Q
qiang 已提交
6924
  }
Q
qiang 已提交
6925 6926 6927 6928 6929
  routeCache.forEach((vnode, key2) => {
    const cPageId = parseInt(key2.split(SEP)[1]);
    if (cPageId && cPageId > pageId) {
      if (__UNI_FEATURE_TABBAR__ && isTabBarVNode(vnode)) {
        return;
fxy060608's avatar
fxy060608 已提交
6930
      }
Q
qiang 已提交
6931 6932 6933
      routeCache.delete(key2);
      routeCache.pruneCacheEntry(vnode);
      vue.nextTick(() => pruneCurrentPages());
fxy060608's avatar
fxy060608 已提交
6934
    }
Q
qiang 已提交
6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955
  });
}
function initRouter(app) {
  const router = vueRouter.createRouter(createRouterOptions());
  app.router = router;
  app.use(router);
}
const scrollBehavior = (_to, _from, savedPosition) => {
  if (savedPosition) {
    return savedPosition;
  }
};
function createRouterOptions() {
  return {
    history: initHistory(),
    strict: !!__uniConfig.router.strict,
    routes: __uniRoutes,
    scrollBehavior
  };
}
function initHistory() {
6956
  let { base } = __uniConfig.router;
Q
qiang 已提交
6957 6958 6959 6960 6961 6962 6963
  if (base === "/") {
    base = "";
  }
  {
    return vueRouter.createMemoryHistory(base);
  }
}
fxy060608's avatar
fxy060608 已提交
6964
var index$f = {
Q
qiang 已提交
6965 6966
  install(app) {
    initApp$1(app);
fxy060608's avatar
fxy060608 已提交
6967
    app.config.warnHandler = warnHandler;
Q
qiang 已提交
6968 6969
    if (__UNI_FEATURE_PAGES__) {
      initRouter(app);
Q
qiang 已提交
6970
    }
Q
qiang 已提交
6971 6972
  }
};
fxy060608's avatar
fxy060608 已提交
6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990
function warnHandler(msg, instance, trace) {
  if (instance) {
    const name = instance.$.type.name;
    if (name === "PageMetaHead") {
      return;
    }
    const parent = instance.$.parent;
    if (parent && parent.type.name === "PageMeta") {
      return;
    }
  }
  const warnArgs = [`[Vue warn]: ${msg}`];
  if (trace.length) {
    warnArgs.push(`
`, trace);
  }
  console.warn(...warnArgs);
}
Q
qiang 已提交
6991 6992 6993 6994 6995 6996
let appVm;
function getApp$1() {
  return appVm;
}
function initApp(vm) {
  appVm = vm;
fxy060608's avatar
fxy060608 已提交
6997
  initAppVm(appVm);
fxy060608's avatar
fxy060608 已提交
6998
  defineGlobalData(appVm);
Q
qiang 已提交
6999
}
7000 7001 7002 7003
function wrapperComponentSetup(comp, { clone, init, setup, before }) {
  if (clone) {
    comp = shared.extend({}, comp);
  }
fxy060608's avatar
fxy060608 已提交
7004
  before && before(comp);
Q
qiang 已提交
7005 7006 7007 7008 7009 7010
  const oldSetup = comp.setup;
  comp.setup = (props2, ctx) => {
    const instance = vue.getCurrentInstance();
    init(instance.proxy);
    const query = setup(instance);
    if (oldSetup) {
fxy060608's avatar
fxy060608 已提交
7011
      return oldSetup(query || props2, ctx);
Q
qiang 已提交
7012
    }
Q
qiang 已提交
7013
  };
7014
  return comp;
Q
qiang 已提交
7015 7016 7017
}
function setupComponent(comp, options) {
  if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {
7018
    return wrapperComponentSetup(comp.default, options);
Q
qiang 已提交
7019
  }
7020
  return wrapperComponentSetup(comp, options);
Q
qiang 已提交
7021
}
fxy060608's avatar
fxy060608 已提交
7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033
function setupWindow(comp, id) {
  return setupComponent(comp, {
    init: (vm) => {
      vm.$page = {
        id
      };
    },
    setup(instance) {
      instance.root = instance;
    }
  });
}
Q
qiang 已提交
7034
function setupPage(comp) {
fxy060608's avatar
fxy060608 已提交
7035 7036 7037
  if (process.env.NODE_ENV !== "production") {
    comp.__mpType = "page";
  }
Q
qiang 已提交
7038
  return setupComponent(comp, {
7039
    clone: true,
Q
qiang 已提交
7040 7041
    init: initPage,
    setup(instance) {
fxy060608's avatar
fxy060608 已提交
7042
      instance.$pageInstance = instance;
Q
qiang 已提交
7043
      const route = usePageRoute();
fxy060608's avatar
fxy060608 已提交
7044 7045 7046
      const query = uniShared.decodedQuery(route.query);
      instance.attrs.__pageQuery = query;
      instance.proxy.$page.options = query;
Q
qiang 已提交
7047
      {
fxy060608's avatar
fxy060608 已提交
7048
        return query;
Q
qiang 已提交
7049
      }
fxy060608's avatar
fxy060608 已提交
7050
    }
Q
qiang 已提交
7051
  });
fxy060608's avatar
fxy060608 已提交
7052
}
Q
qiang 已提交
7053
function setupApp(comp) {
fxy060608's avatar
fxy060608 已提交
7054 7055 7056
  if (process.env.NODE_ENV !== "production") {
    comp.__mpType = "app";
  }
Q
qiang 已提交
7057 7058 7059 7060 7061 7062 7063 7064
  return setupComponent(comp, {
    init: initApp,
    setup(instance) {
      const route = usePageRoute();
      {
        return route.query;
      }
    },
fxy060608's avatar
fxy060608 已提交
7065
    before(comp2) {
Q
qiang 已提交
7066
      comp2.mpType = "app";
fxy060608's avatar
fxy060608 已提交
7067 7068
      const { setup } = comp2;
      comp2.setup = (props2, ctx) => {
7069 7070 7071 7072
        return setup && setup(props2, ctx);
      };
      comp2.render = () => {
        return vue.openBlock(), vue.createBlock(LayoutComponent);
fxy060608's avatar
fxy060608 已提交
7073
      };
Q
qiang 已提交
7074 7075
    }
  });
fxy060608's avatar
fxy060608 已提交
7076
}
Q
qiang 已提交
7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091
function formatTime(val) {
  val = val > 0 && val < Infinity ? val : 0;
  const h = Math.floor(val / 3600);
  const m = Math.floor(val % 3600 / 60);
  const s = Math.floor(val % 3600 % 60);
  const hStr = (h < 10 ? "0" : "") + h;
  const mStr = (m < 10 ? "0" : "") + m;
  const sStr = (s < 10 ? "0" : "") + s;
  let str = mStr + ":" + sStr;
  if (hStr !== "00") {
    str = hStr + ":" + str;
  }
  return str;
}
function useGesture(props2, videoRef, fullscreenState) {
fxy060608's avatar
fxy060608 已提交
7092
  const state = vue.reactive({
Q
qiang 已提交
7093 7094 7095 7096 7097 7098 7099 7100 7101 7102
    gestureType: "none",
    volumeOld: 0,
    volumeNew: 0,
    currentTimeOld: 0,
    currentTimeNew: 0
  });
  const touchStartOrigin = {
    x: 0,
    y: 0
  };
Q
qiang 已提交
7103 7104
  function onTouchstart(event) {
    const toucher = event.targetTouches[0];
Q
qiang 已提交
7105 7106 7107 7108 7109 7110
    touchStartOrigin.x = toucher.pageX;
    touchStartOrigin.y = toucher.pageY;
    state.gestureType = "none";
    state.volumeOld = 0;
    state.currentTimeOld = state.currentTimeNew = 0;
  }
Q
qiang 已提交
7111
  function onTouchmove(event) {
fxy060608's avatar
fxy060608 已提交
7112
    function stop() {
Q
qiang 已提交
7113 7114
      event.stopPropagation();
      event.preventDefault();
Q
qiang 已提交
7115 7116
    }
    if (fullscreenState.fullscreen) {
fxy060608's avatar
fxy060608 已提交
7117
      stop();
Q
qiang 已提交
7118 7119 7120 7121 7122
    }
    const gestureType = state.gestureType;
    if (gestureType === "stop") {
      return;
    }
Q
qiang 已提交
7123
    const toucher = event.targetTouches[0];
Q
qiang 已提交
7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138
    const pageX = toucher.pageX;
    const pageY = toucher.pageY;
    const origin = touchStartOrigin;
    const 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";
fxy060608's avatar
fxy060608 已提交
7139 7140
        return;
      }
Q
qiang 已提交
7141 7142 7143
      state.gestureType = "progress";
      state.currentTimeOld = state.currentTimeNew = video.currentTime;
      if (!fullscreenState.fullscreen) {
fxy060608's avatar
fxy060608 已提交
7144
        stop();
Q
qiang 已提交
7145 7146 7147 7148 7149 7150 7151 7152 7153
      }
    } else {
      if (!props2.pageGesture) {
        state.gestureType = "stop";
        return;
      }
      state.gestureType = "volume";
      state.volumeOld = video.volume;
      if (!fullscreenState.fullscreen) {
fxy060608's avatar
fxy060608 已提交
7154
        stop();
Q
qiang 已提交
7155 7156 7157
      }
    }
  }
Q
qiang 已提交
7158
  function onTouchend(event) {
Q
qiang 已提交
7159 7160
    const video = videoRef.value;
    if (state.gestureType !== "none" && state.gestureType !== "stop") {
Q
qiang 已提交
7161 7162
      event.stopPropagation();
      event.preventDefault();
Q
qiang 已提交
7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201
    }
    if (state.gestureType === "progress" && state.currentTimeOld !== state.currentTimeNew) {
      video.currentTime = state.currentTimeNew;
    }
    state.gestureType = "none";
  }
  function changeProgress(x) {
    const video = videoRef.value;
    const duration = video.duration;
    let currentTimeNew = x / 600 * duration + state.currentTimeOld;
    if (currentTimeNew < 0) {
      currentTimeNew = 0;
    } else if (currentTimeNew > duration) {
      currentTimeNew = duration;
    }
    state.currentTimeNew = currentTimeNew;
  }
  function changeVolume(y) {
    const video = videoRef.value;
    const valueOld = state.volumeOld;
    let 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
  };
}
fxy060608's avatar
fxy060608 已提交
7202
function useFullscreen(trigger, containerRef, videoRef, userActionState, rootRef) {
fxy060608's avatar
fxy060608 已提交
7203
  const state = vue.reactive({
Q
qiang 已提交
7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214
    fullscreen: false
  });
  const 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;
fxy060608's avatar
fxy060608 已提交
7215
    trigger("fullscreenchange", {}, {
Q
qiang 已提交
7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270
      fullScreen: val,
      direction: "vertical"
    });
  }
  function toggleFullscreen(val) {
    const root = rootRef.value;
    const container = containerRef.value;
    const video = videoRef.value;
    let 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);
  }
  return {
    state,
    onFullscreenChange,
    emitFullscreenChange,
    toggleFullscreen,
    requestFullScreen,
    exitFullScreen
  };
}
fxy060608's avatar
fxy060608 已提交
7271
function useVideo(props2, attrs, trigger) {
fxy060608's avatar
fxy060608 已提交
7272 7273 7274
  const videoRef = vue.ref(null);
  const src = vue.computed(() => getRealPath(props2.src));
  const state = vue.reactive({
Q
qiang 已提交
7275 7276 7277 7278 7279 7280 7281 7282
    start: false,
    src,
    playing: false,
    currentTime: 0,
    duration: 0,
    progress: 0,
    buffered: 0
  });
fxy060608's avatar
fxy060608 已提交
7283
  vue.watch(() => src.value, () => {
Q
qiang 已提交
7284 7285 7286
    state.playing = false;
    state.currentTime = 0;
  });
fxy060608's avatar
fxy060608 已提交
7287
  vue.watch(() => state.buffered, (buffered) => {
fxy060608's avatar
fxy060608 已提交
7288
    trigger("progress", {}, {
Q
qiang 已提交
7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302
      buffered
    });
  });
  function onDurationChange({
    target
  }) {
    state.duration = target.duration;
  }
  function onLoadedMetadata($event) {
    const initialTime = Number(props2.initialTime) || 0;
    const video = $event.target;
    if (initialTime > 0) {
      video.currentTime = initialTime;
    }
fxy060608's avatar
fxy060608 已提交
7303
    trigger("loadedmetadata", $event, {
Q
qiang 已提交
7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317
      width: video.videoWidth,
      height: video.videoHeight,
      duration: video.duration
    });
    onProgress($event);
  }
  function onProgress($event) {
    const video = $event.target;
    const buffered = video.buffered;
    if (buffered.length) {
      state.buffered = buffered.end(buffered.length - 1) / video.duration * 100;
    }
  }
  function onWaiting($event) {
fxy060608's avatar
fxy060608 已提交
7318
    trigger("waiting", $event, {});
Q
qiang 已提交
7319 7320 7321
  }
  function onVideoError($event) {
    state.playing = false;
fxy060608's avatar
fxy060608 已提交
7322
    trigger("error", $event, {});
Q
qiang 已提交
7323 7324 7325 7326
  }
  function onPlay($event) {
    state.start = true;
    state.playing = true;
fxy060608's avatar
fxy060608 已提交
7327
    trigger("play", $event, {});
Q
qiang 已提交
7328 7329 7330
  }
  function onPause($event) {
    state.playing = false;
fxy060608's avatar
fxy060608 已提交
7331
    trigger("pause", $event, {});
Q
qiang 已提交
7332 7333 7334
  }
  function onEnded($event) {
    state.playing = false;
fxy060608's avatar
fxy060608 已提交
7335
    trigger("ended", $event, {});
Q
qiang 已提交
7336 7337 7338 7339
  }
  function onTimeUpdate($event) {
    const video = $event.target;
    const currentTime = state.currentTime = video.currentTime;
fxy060608's avatar
fxy060608 已提交
7340
    trigger("timeupdate", $event, {
Q
qiang 已提交
7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392
      currentTime,
      duration: video.duration
    });
  }
  function toggle() {
    const video = videoRef.value;
    if (state.playing) {
      video.pause();
    } else {
      video.play();
    }
  }
  function play() {
    const video = videoRef.value;
    state.start = true;
    video.play();
  }
  function pause() {
    const video = videoRef.value;
    video.pause();
  }
  function seek(position) {
    const video = videoRef.value;
    position = Number(position);
    if (typeof position === "number" && !isNaN(position)) {
      video.currentTime = position;
    }
  }
  function playbackRate(rate) {
    const video = videoRef.value;
    video.playbackRate = rate;
  }
  return {
    videoRef,
    state,
    play,
    pause,
    seek,
    playbackRate,
    toggle,
    onDurationChange,
    onLoadedMetadata,
    onProgress,
    onWaiting,
    onVideoError,
    onPlay,
    onPause,
    onEnded,
    onTimeUpdate
  };
}
function useControls(props2, videoState, seek) {
fxy060608's avatar
fxy060608 已提交
7393 7394 7395 7396 7397 7398
  const progressRef = vue.ref(null);
  const ballRef = vue.ref(null);
  const centerPlayBtnShow = vue.computed(() => props2.showCenterPlayBtn && !videoState.start);
  const controlsVisible = vue.ref(true);
  const controlsShow = vue.computed(() => !centerPlayBtnShow.value && props2.controls && controlsVisible.value);
  const state = vue.reactive({
Q
qiang 已提交
7399 7400 7401 7402 7403 7404
    touching: false,
    controlsTouching: false,
    centerPlayBtnShow,
    controlsShow,
    controlsVisible
  });
Q
qiang 已提交
7405
  function clickProgress(event) {
Q
qiang 已提交
7406
    const $progress = progressRef.value;
Q
qiang 已提交
7407 7408
    let element = event.target;
    let x = event.offsetX;
Q
qiang 已提交
7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434
    while (element && element !== $progress) {
      x += element.offsetLeft;
      element = element.parentNode;
    }
    const w = $progress.offsetWidth;
    let progress = 0;
    if (x >= 0 && x <= w) {
      progress = x / w;
      seek(videoState.duration * progress);
    }
  }
  function toggleControls() {
    state.controlsVisible = !state.controlsVisible;
  }
  let hideTiming;
  function autoHideStart() {
    hideTiming = setTimeout(() => {
      state.controlsVisible = false;
    }, 3e3);
  }
  function autoHideEnd() {
    if (hideTiming) {
      clearTimeout(hideTiming);
      hideTiming = null;
    }
  }
fxy060608's avatar
fxy060608 已提交
7435
  vue.watch(() => state.controlsShow && videoState.playing && !state.controlsTouching, (val) => {
Q
qiang 已提交
7436 7437 7438 7439 7440 7441
    if (val) {
      autoHideStart();
    } else {
      autoHideEnd();
    }
  });
fxy060608's avatar
fxy060608 已提交
7442
  vue.watch([() => videoState.currentTime, () => {
Q
qiang 已提交
7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459
    props2.duration;
  }], function updateProgress() {
    if (!state.touching) {
      videoState.progress = videoState.currentTime / videoState.duration * 100;
    }
  });
  return {
    state,
    progressRef,
    ballRef,
    clickProgress,
    toggleControls,
    autoHideStart,
    autoHideEnd
  };
}
function useDanmu(props2, videoState) {
fxy060608's avatar
fxy060608 已提交
7460 7461
  const danmuRef = vue.ref(null);
  const state = vue.reactive({
Q
qiang 已提交
7462 7463 7464 7465 7466 7467 7468
    enable: Boolean(props2.enableDanmu)
  });
  let danmuIndex = {
    time: 0,
    index: -1
  };
  const danmuList = Array.isArray(props2.danmuList) ? JSON.parse(JSON.stringify(props2.danmuList)) : [];
fxy060608's avatar
fxy060608 已提交
7469 7470
  danmuList.sort(function(a, b) {
    return (a.time || 0) - (b.time || 0);
Q
qiang 已提交
7471 7472 7473 7474
  });
  function toggleDanmu() {
    state.enable = !state.enable;
  }
Q
qiang 已提交
7475 7476
  function updateDanmu(event) {
    const video = event.target;
Q
qiang 已提交
7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492
    const currentTime = video.currentTime;
    const oldDanmuIndex = danmuIndex;
    const newDanmuIndex = {
      time: currentTime,
      index: oldDanmuIndex.index
    };
    if (currentTime > oldDanmuIndex.time) {
      for (let index2 = oldDanmuIndex.index + 1; index2 < danmuList.length; index2++) {
        const element = danmuList[index2];
        if (currentTime >= (element.time || 0)) {
          newDanmuIndex.index = index2;
          if (videoState.playing && state.enable) {
            playDanmu(element);
          }
        } else {
          break;
fxy060608's avatar
fxy060608 已提交
7493 7494
        }
      }
Q
qiang 已提交
7495 7496 7497 7498 7499 7500 7501 7502
    } else if (currentTime < oldDanmuIndex.time) {
      for (let index2 = oldDanmuIndex.index - 1; index2 > -1; index2--) {
        const element = danmuList[index2];
        if (currentTime <= (element.time || 0)) {
          newDanmuIndex.index = index2 - 1;
        } else {
          break;
        }
fxy060608's avatar
fxy060608 已提交
7503
      }
Q
qiang 已提交
7504 7505 7506 7507 7508 7509 7510
    }
    danmuIndex = newDanmuIndex;
  }
  function playDanmu(danmu) {
    const p2 = document.createElement("p");
    p2.className = "uni-video-danmu-item";
    p2.innerText = danmu.text;
fxy060608's avatar
fxy060608 已提交
7511 7512
    let style = `bottom: ${Math.random() * 100}%;color: ${danmu.color};`;
    p2.setAttribute("style", style);
Q
qiang 已提交
7513 7514 7515
    const danmuEl = danmuRef.value;
    danmuEl.appendChild(p2);
    setTimeout(function() {
fxy060608's avatar
fxy060608 已提交
7516 7517
      style += "left: 0;-webkit-transform: translateX(-100%);transform: translateX(-100%);";
      p2.setAttribute("style", style);
Q
qiang 已提交
7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538
      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, seek, sendDanmu, playbackRate, requestFullScreen, exitFullScreen) {
7539 7540
  useContextInfo();
  useSubscribe();
Q
qiang 已提交
7541
}
Q
qiang 已提交
7542
const props$9 = {
Q
qiang 已提交
7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625
  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
  }
};
fxy060608's avatar
fxy060608 已提交
7626
var index$e = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
7627
  name: "Video",
Q
qiang 已提交
7628
  props: props$9,
Q
qiang 已提交
7629 7630
  emits: ["fullscreenchange", "progress", "loadedmetadata", "waiting", "error", "play", "pause", "ended", "timeupdate"],
  setup(props2, {
Q
qiang 已提交
7631
    emit: emit2,
fxy060608's avatar
fxy060608 已提交
7632
    attrs,
Q
qiang 已提交
7633 7634
    slots
  }) {
fxy060608's avatar
fxy060608 已提交
7635 7636
    const rootRef = vue.ref(null);
    const containerRef = vue.ref(null);
Q
qiang 已提交
7637
    const trigger = useCustomEvent(rootRef, emit2);
Q
qiang 已提交
7638 7639 7640
    const {
      state: userActionState
    } = useUserAction();
fxy060608's avatar
fxy060608 已提交
7641 7642 7643 7644 7645
    const {
      $attrs: videoAttrs
    } = useAttrs({
      excludeListeners: true
    });
Q
qiang 已提交
7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666
    const {
      t: t2
    } = useI18n();
    initI18nVideoMsgsOnce();
    const {
      videoRef,
      state: videoState,
      play,
      pause,
      seek,
      playbackRate,
      toggle,
      onDurationChange,
      onLoadedMetadata,
      onProgress,
      onWaiting,
      onVideoError,
      onPlay,
      onPause,
      onEnded,
      onTimeUpdate
fxy060608's avatar
fxy060608 已提交
7667
    } = useVideo(props2, attrs, trigger);
Q
qiang 已提交
7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681
    const {
      state: danmuState,
      danmuRef,
      updateDanmu,
      toggleDanmu,
      sendDanmu
    } = useDanmu(props2, videoState);
    const {
      state: fullscreenState,
      onFullscreenChange,
      emitFullscreenChange,
      toggleFullscreen,
      requestFullScreen,
      exitFullScreen
fxy060608's avatar
fxy060608 已提交
7682
    } = useFullscreen(trigger, containerRef, videoRef, userActionState, rootRef);
Q
qiang 已提交
7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695
    const {
      state: gestureState,
      onTouchstart,
      onTouchend,
      onTouchmove
    } = useGesture(props2, videoRef, fullscreenState);
    const {
      state: controlsState,
      progressRef,
      ballRef,
      clickProgress,
      toggleControls
    } = useControls(props2, videoState, seek);
7696
    useContext();
Q
qiang 已提交
7697
    return () => {
fxy060608's avatar
fxy060608 已提交
7698
      return vue.createVNode("uni-video", {
fxy060608's avatar
fxy060608 已提交
7699 7700
        "ref": rootRef,
        "id": props2.id
fxy060608's avatar
fxy060608 已提交
7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837
      }, [vue.createVNode("div", {
        "ref": containerRef,
        "class": "uni-video-container",
        "onTouchstart": onTouchstart,
        "onTouchend": onTouchend,
        "onTouchmove": onTouchmove,
        "onFullscreenchange": vue.withModifiers(onFullscreenChange, ["stop"]),
        "onWebkitfullscreenchange": vue.withModifiers(($event) => onFullscreenChange($event, true), ["stop"])
      }, [vue.createVNode("video", vue.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,
        "onClick": toggleControls,
        "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", "onClick", "onDurationchange", "onLoadedmetadata", "onProgress", "onWaiting", "onError", "onPlay", "onPause", "onEnded", "onTimeupdate", "onWebkitbeginfullscreen", "onX5videoenterfullscreen", "onWebkitendfullscreen", "onX5videoexitfullscreen"]), vue.withDirectives(vue.createVNode("div", {
        "class": "uni-video-bar uni-video-bar-full",
        "onClick": vue.withModifiers(() => {
        }, ["stop"])
      }, [vue.createVNode("div", {
        "class": "uni-video-controls"
      }, [vue.withDirectives(vue.createVNode("div", {
        "class": {
          "uni-video-control-button": true,
          "uni-video-control-button-play": !videoState.playing,
          "uni-video-control-button-pause": videoState.playing
        },
        "onClick": vue.withModifiers(toggle, ["stop"])
      }, null, 10, ["onClick"]), [[vue.vShow, props2.showPlayBtn]]), vue.createVNode("div", {
        "class": "uni-video-current-time"
      }, [formatTime(videoState.currentTime)]), vue.createVNode("div", {
        "ref": progressRef,
        "class": "uni-video-progress-container",
        "onClick": vue.withModifiers(clickProgress, ["stop"])
      }, [vue.createVNode("div", {
        "class": "uni-video-progress"
      }, [vue.createVNode("div", {
        "style": {
          width: videoState.buffered + "%"
        },
        "class": "uni-video-progress-buffered"
      }, null, 4), vue.createVNode("div", {
        "ref": ballRef,
        "style": {
          left: videoState.progress + "%"
        },
        "class": "uni-video-ball"
      }, [vue.createVNode("div", {
        "class": "uni-video-inner"
      }, null)], 4)])], 8, ["onClick"]), vue.createVNode("div", {
        "class": "uni-video-duration"
      }, [formatTime(Number(props2.duration) || videoState.duration)])]), vue.withDirectives(vue.createVNode("div", {
        "class": {
          "uni-video-danmu-button": true,
          "uni-video-danmu-button-active": danmuState.enable
        },
        "onClick": vue.withModifiers(toggleDanmu, ["stop"])
      }, [t2("uni.video.danmu")], 10, ["onClick"]), [[vue.vShow, props2.danmuBtn]]), vue.withDirectives(vue.createVNode("div", {
        "class": {
          "uni-video-fullscreen": true,
          "uni-video-type-fullscreen": fullscreenState.fullscreen
        },
        "onClick": vue.withModifiers(() => toggleFullscreen(!fullscreenState.fullscreen), ["stop"])
      }, null, 10, ["onClick"]), [[vue.vShow, props2.showFullscreenBtn]])], 8, ["onClick"]), [[vue.vShow, controlsState.controlsShow]]), vue.withDirectives(vue.createVNode("div", {
        "ref": danmuRef,
        "style": "z-index: 0;",
        "class": "uni-video-danmu"
      }, null, 512), [[vue.vShow, videoState.start && danmuState.enable]]), controlsState.centerPlayBtnShow && vue.createVNode("div", {
        "class": "uni-video-cover",
        "onClick": vue.withModifiers(() => {
        }, ["stop"])
      }, [vue.createVNode("div", {
        "class": "uni-video-cover-play-button",
        "onClick": vue.withModifiers(play, ["stop"])
      }, null, 8, ["onClick"]), vue.createVNode("p", {
        "class": "uni-video-cover-duration"
      }, [formatTime(Number(props2.duration) || videoState.duration)])], 8, ["onClick"]), vue.createVNode("div", {
        "class": {
          "uni-video-toast": true,
          "uni-video-toast-volume": gestureState.gestureType === "volume"
        }
      }, [vue.createVNode("div", {
        "class": "uni-video-toast-title"
      }, [t2("uni.video.volume")]), vue.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"
      }, [vue.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)]), vue.createVNode("div", {
        "class": "uni-video-toast-value"
      }, [vue.createVNode("div", {
        "style": {
          width: gestureState.volumeNew * 100 + "%"
        },
        "class": "uni-video-toast-value-content"
      }, [vue.createVNode("div", {
        "class": "uni-video-toast-volume-grids"
      }, [vue.renderList(10, () => vue.createVNode("div", {
        "class": "uni-video-toast-volume-grids-item"
      }, null))])], 4)])], 2), vue.createVNode("div", {
        "class": {
          "uni-video-toast": true,
          "uni-video-toast-progress": gestureState.gestureType === "progress"
        }
      }, [vue.createVNode("div", {
        "class": "uni-video-toast-title"
      }, [formatTime(gestureState.currentTimeNew), " / ", formatTime(videoState.duration)])], 2), vue.createVNode("div", {
        "class": "uni-video-slots"
      }, [slots.default && slots.default()])], 40, ["onTouchstart", "onTouchend", "onTouchmove", "onFullscreenchange", "onWebkitfullscreenchange"])], 8, ["id"]);
fxy060608's avatar
fxy060608 已提交
7838
    };
fxy060608's avatar
fxy060608 已提交
7839 7840
  }
});
fxy060608's avatar
fxy060608 已提交
7841
const onWebInvokeAppService = ({ name, arg }) => {
D
DCloud_LXH 已提交
7842 7843 7844 7845 7846 7847
  if (name === "postMessage")
    ;
  else {
    uni[name](arg);
  }
};
fxy060608's avatar
fxy060608 已提交
7848
const Invoke = /* @__PURE__ */ uniShared.once(() => UniServiceJSBridge.on(uniShared.ON_WEB_INVOKE_APP_SERVICE, onWebInvokeAppService));
Q
qiang 已提交
7849
const props$8 = {
fxy060608's avatar
fxy060608 已提交
7850 7851 7852
  src: {
    type: String,
    default: ""
Q
qiang 已提交
7853
  }
fxy060608's avatar
fxy060608 已提交
7854
};
fxy060608's avatar
fxy060608 已提交
7855
var index$d = /* @__PURE__ */ defineBuiltInComponent({
fxy060608's avatar
fxy060608 已提交
7856 7857
  inheritAttrs: false,
  name: "WebView",
Q
qiang 已提交
7858
  props: props$8,
D
DCloud_LXH 已提交
7859
  setup(props2) {
D
DCloud_LXH 已提交
7860
    Invoke();
fxy060608's avatar
fxy060608 已提交
7861
    const rootRef = vue.ref(null);
D
DCloud_LXH 已提交
7862
    vue.ref(null);
fxy060608's avatar
fxy060608 已提交
7863 7864 7865 7866 7867 7868
    const {
      $attrs,
      $excludeAttrs,
      $listeners
    } = useAttrs({
      excludeListeners: true
Q
qiang 已提交
7869
    });
D
DCloud_LXH 已提交
7870
    let _resize;
fxy060608's avatar
fxy060608 已提交
7871
    return () => {
fxy060608's avatar
fxy060608 已提交
7872
      return vue.createVNode(vue.Fragment, null, [vue.createVNode("uni-web-view", vue.mergeProps($listeners.value, $excludeAttrs.value, {
fxy060608's avatar
fxy060608 已提交
7873
        "ref": rootRef
fxy060608's avatar
fxy060608 已提交
7874 7875 7876
      }), [vue.createVNode(ResizeSensor, {
        "onResize": _resize
      }, null, 8, ["onResize"])], 16)]);
fxy060608's avatar
fxy060608 已提交
7877
    };
fxy060608's avatar
fxy060608 已提交
7878
  }
fxy060608's avatar
fxy060608 已提交
7879
});
Q
qiang 已提交
7880
const 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=";
Q
qiang 已提交
7881
const props$7 = {
fxy060608's avatar
fxy060608 已提交
7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940
  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: ""
Q
qiang 已提交
7941
  }
fxy060608's avatar
fxy060608 已提交
7942
};
Q
qiang 已提交
7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955
function useMarkerLabelStyle(id) {
  const className = "uni-map-marker-label-" + id;
  const styleEl = document.createElement("style");
  styleEl.id = className;
  document.head.appendChild(styleEl);
  return function updateMarkerLabelStyle(style) {
    const newStyle = Object.assign({}, style, {
      position: "absolute",
      top: "70px",
      borderStyle: "solid"
    });
    const div = document.createElement("div");
    Object.keys(newStyle).forEach((key) => {
fxy060608's avatar
fxy060608 已提交
7956
      div.style[key] = newStyle[key] || "";
Q
qiang 已提交
7957 7958 7959 7960 7961
    });
    styleEl.innerText = `.${className}{${div.getAttribute("style")}}`;
    return className;
  };
}
7962
var MapMarker = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
7963
  name: "MapMarker",
Q
qiang 已提交
7964
  props: props$7,
fxy060608's avatar
fxy060608 已提交
7965 7966 7967
  setup(props2) {
    const id = String(Number(props2.id) !== NaN ? props2.id : "");
    const onMapReady = vue.inject("onMapReady");
Q
qiang 已提交
7968
    const updateMarkerLabelStyle = useMarkerLabelStyle(id);
fxy060608's avatar
fxy060608 已提交
7969
    let marker;
fxy060608's avatar
fxy060608 已提交
7970
    onMapReady((map, maps, trigger) => {
fxy060608's avatar
fxy060608 已提交
7971 7972
      function updateMarker(option) {
        const title = option.title;
fxy060608's avatar
fxy060608 已提交
7973
        const position = new maps.LatLng(option.latitude, option.longitude);
fxy060608's avatar
fxy060608 已提交
7974 7975 7976 7977 7978 7979 7980
        const img = new Image();
        img.onload = () => {
          const anchor = option.anchor || {};
          let icon;
          let w;
          let h;
          let top;
Q
qiang 已提交
7981 7982
          let x = typeof anchor.x === "number" ? anchor.x : 0.5;
          let y = typeof anchor.y === "number" ? anchor.y : 1;
fxy060608's avatar
fxy060608 已提交
7983 7984 7985 7986 7987 7988 7989
          if (option.iconPath && (option.width || option.height)) {
            w = option.width || img.width / img.height * option.height;
            h = option.height || img.height / img.width * option.width;
          } else {
            w = img.width / 2;
            h = img.height / 2;
          }
Q
qiang 已提交
7990
          top = h - (h - y * h);
Q
qiang 已提交
7991 7992 7993 7994 7995 7996 7997 7998 7999
          if ("MarkerImage" in maps) {
            icon = new maps.MarkerImage(img.src, null, null, new maps.Point(x * w, y * h), new maps.Size(w, h));
          } else {
            icon = {
              url: img.src,
              anchor: new maps.Point(x, y),
              size: new maps.Size(w, h)
            };
          }
fxy060608's avatar
fxy060608 已提交
8000 8001
          marker.setPosition(position);
          marker.setIcon(icon);
Q
qiang 已提交
8002 8003 8004
          if ("setRotation" in marker) {
            marker.setRotation(option.rotate || 0);
          }
fxy060608's avatar
fxy060608 已提交
8005
          const labelOpt = option.label || {};
Q
qiang 已提交
8006
          if ("label" in marker) {
fxy060608's avatar
fxy060608 已提交
8007 8008 8009 8010 8011
            marker.label.setMap(null);
            delete marker.label;
          }
          let label;
          if (labelOpt.content) {
Q
qiang 已提交
8012 8013 8014 8015 8016 8017 8018 8019 8020
            const 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",
Q
qiang 已提交
8021 8022
              marginLeft: (Number(labelOpt.anchorX || labelOpt.x) || 0) + "px",
              marginTop: (Number(labelOpt.anchorY || labelOpt.y) || 0) + "px"
Q
qiang 已提交
8023
            };
Q
qiang 已提交
8024 8025 8026 8027 8028 8029
            if ("Label" in maps) {
              label = new maps.Label({
                position,
                map,
                clickable: false,
                content: labelOpt.content,
Q
qiang 已提交
8030
                style: labelStyle
Q
qiang 已提交
8031 8032 8033
              });
              marker.label = label;
            } else if ("setLabel" in marker) {
Q
qiang 已提交
8034
              const className = updateMarkerLabelStyle(labelStyle);
Q
qiang 已提交
8035 8036
              marker.setLabel({
                text: labelOpt.content,
Q
qiang 已提交
8037 8038 8039
                color: labelStyle.color,
                fontSize: labelStyle.fontSize,
                className
Q
qiang 已提交
8040 8041
              });
            }
Q
qiang 已提交
8042
          }
fxy060608's avatar
fxy060608 已提交
8043 8044 8045 8046
          const calloutOpt = option.callout || {};
          let callout = marker.callout;
          let calloutStyle;
          if (calloutOpt.content || title) {
Q
qiang 已提交
8047
            const boxShadow = "0px 0px 3px 1px rgba(0,0,0,0.5)";
fxy060608's avatar
fxy060608 已提交
8048 8049 8050 8051 8052 8053 8054 8055 8056 8057
            calloutStyle = calloutOpt.content ? {
              position,
              map,
              top,
              content: calloutOpt.content,
              color: calloutOpt.color,
              fontSize: calloutOpt.fontSize,
              borderRadius: calloutOpt.borderRadius,
              bgColor: calloutOpt.bgColor,
              padding: calloutOpt.padding,
Q
qiang 已提交
8058
              boxShadow: calloutOpt.boxShadow || boxShadow,
fxy060608's avatar
fxy060608 已提交
8059 8060 8061 8062 8063 8064
              display: calloutOpt.display
            } : {
              position,
              map,
              top,
              content: title,
Q
qiang 已提交
8065
              boxShadow
fxy060608's avatar
fxy060608 已提交
8066 8067 8068 8069
            };
            if (callout) {
              callout.setOption(calloutStyle);
            } else {
fxy060608's avatar
fxy060608 已提交
8070
              callout = marker.callout = new maps.Callout(calloutStyle);
fxy060608's avatar
fxy060608 已提交
8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084
              callout.div.onclick = function($event) {
                if (id !== "") {
                  trigger("callouttap", $event, {
                    markerId: Number(id)
                  });
                }
                $event.stopPropagation();
                $event.preventDefault();
              };
            }
          } else {
            if (callout) {
              callout.setMap(null);
              delete marker.callout;
Q
qiang 已提交
8085 8086
            }
          }
fxy060608's avatar
fxy060608 已提交
8087
        };
Q
qiang 已提交
8088 8089 8090 8091 8092
        if (option.iconPath) {
          img.src = getRealPath(option.iconPath);
        } else {
          console.error("Marker.iconPath is required.");
        }
fxy060608's avatar
fxy060608 已提交
8093 8094
      }
      function addMarker(props3) {
fxy060608's avatar
fxy060608 已提交
8095
        marker = new maps.Marker({
fxy060608's avatar
fxy060608 已提交
8096 8097 8098
          map,
          flat: true,
          autoRotation: false
Q
qiang 已提交
8099
        });
fxy060608's avatar
fxy060608 已提交
8100
        updateMarker(props3);
fxy060608's avatar
fxy060608 已提交
8101
        maps.event.addListener(marker, "click", () => {
fxy060608's avatar
fxy060608 已提交
8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117
          const callout = marker.callout;
          if (callout) {
            const div = callout.div;
            const parent = div.parentNode;
            if (!callout.alwaysVisible) {
              callout.set("visible", !callout.visible);
            }
            if (callout.visible) {
              parent.removeChild(div);
              parent.appendChild(div);
            }
          }
          if (id) {
            trigger("markertap", {}, {
              markerId: Number(id)
            });
Q
qiang 已提交
8118 8119 8120
          }
        });
      }
fxy060608's avatar
fxy060608 已提交
8121 8122
      addMarker(props2);
      vue.watch(props2, updateMarker);
Q
qiang 已提交
8123
    });
fxy060608's avatar
fxy060608 已提交
8124 8125
    if (id) {
      const addMapChidlContext = vue.inject("addMapChidlContext");
fxy060608's avatar
fxy060608 已提交
8126
      vue.inject("removeMapChidlContext");
fxy060608's avatar
fxy060608 已提交
8127 8128 8129
      const context = {
        id,
        translate(data) {
fxy060608's avatar
fxy060608 已提交
8130
          onMapReady((map, maps, trigger) => {
fxy060608's avatar
fxy060608 已提交
8131 8132 8133 8134
            const destination = data.destination;
            const duration = data.duration;
            const autoRotate = !!data.autoRotate;
            let rotate = Number(data.rotate) || 0;
Q
qiang 已提交
8135 8136 8137 8138
            let rotation = 0;
            if ("getRotation" in marker) {
              rotation = marker.getRotation();
            }
fxy060608's avatar
fxy060608 已提交
8139
            const a = marker.getPosition();
fxy060608's avatar
fxy060608 已提交
8140
            const b = new maps.LatLng(destination.latitude, destination.longitude);
fxy060608's avatar
fxy060608 已提交
8141
            const distance = maps.geometry.spherical.computeDistanceBetween(a, b) / 1e3;
fxy060608's avatar
fxy060608 已提交
8142 8143
            const time = (typeof duration === "number" ? duration : 1e3) / (1e3 * 60 * 60);
            const speed = distance / time;
fxy060608's avatar
fxy060608 已提交
8144
            const movingEvent = maps.event.addListener(marker, "moving", (e2) => {
fxy060608's avatar
fxy060608 已提交
8145 8146 8147 8148 8149 8150 8151 8152 8153 8154
              const latLng = e2.latLng;
              const label = marker.label;
              if (label) {
                label.setPosition(latLng);
              }
              const callout = marker.callout;
              if (callout) {
                callout.setPosition(latLng);
              }
            });
fxy060608's avatar
fxy060608 已提交
8155
            const event = maps.event.addListener(marker, "moveend", () => {
fxy060608's avatar
fxy060608 已提交
8156 8157
              event.remove();
              movingEvent.remove();
fxy060608's avatar
fxy060608 已提交
8158
              marker.lastPosition = a;
fxy060608's avatar
fxy060608 已提交
8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175
              marker.setPosition(b);
              const label = marker.label;
              if (label) {
                label.setPosition(b);
              }
              const callout = marker.callout;
              if (callout) {
                callout.setPosition(b);
              }
              const cb = data.animationEnd;
              if (typeof cb === "function") {
                cb();
              }
            });
            let lastRtate = 0;
            if (autoRotate) {
              if (marker.lastPosition) {
fxy060608's avatar
fxy060608 已提交
8176
                lastRtate = maps.geometry.spherical.computeHeading(marker.lastPosition, a);
fxy060608's avatar
fxy060608 已提交
8177
              }
fxy060608's avatar
fxy060608 已提交
8178
              rotate = maps.geometry.spherical.computeHeading(a, b) - lastRtate;
fxy060608's avatar
fxy060608 已提交
8179
            }
Q
qiang 已提交
8180 8181 8182 8183 8184 8185 8186 8187 8188
            if ("setRotation" in marker) {
              marker.setRotation(rotation + rotate);
            }
            if ("moveTo" in marker) {
              marker.moveTo(b, speed);
            } else {
              marker.setPosition(b);
              maps.event.trigger(marker, "moveend", {});
            }
fxy060608's avatar
fxy060608 已提交
8189
          });
Q
qiang 已提交
8190
        }
fxy060608's avatar
fxy060608 已提交
8191 8192
      };
      addMapChidlContext(context);
fxy060608's avatar
fxy060608 已提交
8193
    }
fxy060608's avatar
fxy060608 已提交
8194 8195 8196
    return () => {
      return null;
    };
fxy060608's avatar
fxy060608 已提交
8197
  }
fxy060608's avatar
fxy060608 已提交
8198
});
Q
qiang 已提交
8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232
function hexToRgba(hex) {
  if (!hex) {
    return {
      r: 0,
      g: 0,
      b: 0,
      a: 0
    };
  }
  let tmpHex = hex.slice(1);
  const 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");
  }
  let [sr, sg, sb, sa] = tmpHex.match(/(\w{2})/g);
  const 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${sa}` - 65536) / 255
  };
}
Q
qiang 已提交
8233
const props$6 = {
fxy060608's avatar
fxy060608 已提交
8234 8235 8236
  points: {
    type: Array,
    require: true
fxy060608's avatar
fxy060608 已提交
8237
  },
fxy060608's avatar
fxy060608 已提交
8238
  color: {
fxy060608's avatar
fxy060608 已提交
8239
    type: String,
fxy060608's avatar
fxy060608 已提交
8240 8241 8242 8243
    default: "#000000"
  },
  width: {
    type: [Number, String],
fxy060608's avatar
fxy060608 已提交
8244 8245
    default: ""
  },
fxy060608's avatar
fxy060608 已提交
8246 8247 8248 8249 8250 8251 8252
  dottedLine: {
    type: [Boolean, String],
    default: false
  },
  arrowLine: {
    type: [Boolean, String],
    default: false
fxy060608's avatar
fxy060608 已提交
8253
  },
fxy060608's avatar
fxy060608 已提交
8254
  arrowIconPath: {
fxy060608's avatar
fxy060608 已提交
8255
    type: String,
fxy060608's avatar
fxy060608 已提交
8256
    default: ""
fxy060608's avatar
fxy060608 已提交
8257
  },
fxy060608's avatar
fxy060608 已提交
8258
  borderColor: {
fxy060608's avatar
fxy060608 已提交
8259 8260 8261
    type: String,
    default: "#000000"
  },
fxy060608's avatar
fxy060608 已提交
8262 8263 8264
  borderWidth: {
    type: [Number, String],
    default: ""
fxy060608's avatar
fxy060608 已提交
8265
  },
fxy060608's avatar
fxy060608 已提交
8266 8267 8268 8269 8270
  colorList: {
    type: Array,
    default() {
      return [];
    }
fxy060608's avatar
fxy060608 已提交
8271
  },
fxy060608's avatar
fxy060608 已提交
8272 8273 8274
  level: {
    type: String,
    default: ""
fxy060608's avatar
fxy060608 已提交
8275 8276
  }
};
8277
var MapPolyline = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
8278
  name: "MapPolyline",
Q
qiang 已提交
8279
  props: props$6,
fxy060608's avatar
fxy060608 已提交
8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291
  setup(props2) {
    const onMapReady = vue.inject("onMapReady");
    let polyline;
    let polylineBorder;
    function removePolyline() {
      if (polyline) {
        polyline.setMap(null);
      }
      if (polylineBorder) {
        polylineBorder.setMap(null);
      }
    }
fxy060608's avatar
fxy060608 已提交
8292
    onMapReady((map, maps) => {
fxy060608's avatar
fxy060608 已提交
8293 8294 8295 8296 8297 8298 8299
      function updatePolyline(option) {
        removePolyline();
        addPolyline(option);
      }
      function addPolyline(option) {
        const path = [];
        option.points.forEach((point) => {
fxy060608's avatar
fxy060608 已提交
8300
          path.push(new maps.LatLng(point.latitude, point.longitude));
fxy060608's avatar
fxy060608 已提交
8301 8302
        });
        const strokeWeight = Number(option.width) || 1;
Q
qiang 已提交
8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315
        const {
          r: sr,
          g: sg,
          b: sb,
          a: sa
        } = hexToRgba(option.color);
        const {
          r: br,
          g: bg,
          b: bb,
          a: ba
        } = hexToRgba(option.borderColor);
        const polylineOptions = {
fxy060608's avatar
fxy060608 已提交
8316 8317 8318 8319 8320 8321
          map,
          clickable: false,
          path,
          strokeWeight,
          strokeColor: option.color || void 0,
          strokeDashStyle: option.dottedLine ? "dash" : "solid"
Q
qiang 已提交
8322
        };
fxy060608's avatar
fxy060608 已提交
8323
        const borderWidth = Number(option.borderWidth) || 0;
Q
qiang 已提交
8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340
        const polylineBorderOptions = {
          map,
          clickable: false,
          path,
          strokeWeight: strokeWeight + borderWidth * 2,
          strokeColor: option.borderColor || void 0,
          strokeDashStyle: option.dottedLine ? "dash" : "solid"
        };
        if ("Color" in maps) {
          polylineOptions.strokeColor = new maps.Color(sr, sg, sb, sa);
          polylineBorderOptions.strokeColor = new maps.Color(br, bg, bb, ba);
        } else {
          polylineOptions.strokeColor = `rgb(${sr}, ${sg}, ${sb})`;
          polylineOptions.strokeOpacity = sa;
          polylineBorderOptions.strokeColor = `rgb(${br}, ${bg}, ${bb})`;
          polylineBorderOptions.strokeOpacity = ba;
        }
fxy060608's avatar
fxy060608 已提交
8341
        if (borderWidth) {
Q
qiang 已提交
8342
          polylineBorder = new maps.Polyline(polylineBorderOptions);
fxy060608's avatar
fxy060608 已提交
8343
        }
Q
qiang 已提交
8344
        polyline = new maps.Polyline(polylineOptions);
fxy060608's avatar
fxy060608 已提交
8345 8346 8347
      }
      addPolyline(props2);
      vue.watch(props2, updatePolyline);
fxy060608's avatar
fxy060608 已提交
8348 8349
    });
    return () => {
fxy060608's avatar
fxy060608 已提交
8350
      return null;
fxy060608's avatar
fxy060608 已提交
8351 8352 8353
    };
  }
});
Q
qiang 已提交
8354
const props$5 = {
fxy060608's avatar
fxy060608 已提交
8355 8356 8357 8358 8359 8360 8361 8362 8363
  latitude: {
    type: [Number, String],
    require: true
  },
  longitude: {
    type: [Number, String],
    require: true
  },
  color: {
D
DCloud_LXH 已提交
8364
    type: String,
Q
qiang 已提交
8365
    default: "#000000"
D
DCloud_LXH 已提交
8366
  },
fxy060608's avatar
fxy060608 已提交
8367
  fillColor: {
D
DCloud_LXH 已提交
8368
    type: String,
Q
qiang 已提交
8369
    default: "#00000000"
D
DCloud_LXH 已提交
8370
  },
fxy060608's avatar
fxy060608 已提交
8371 8372 8373
  radius: {
    type: [Number, String],
    require: true
D
DCloud_LXH 已提交
8374
  },
fxy060608's avatar
fxy060608 已提交
8375 8376 8377
  strokeWidth: {
    type: [Number, String],
    default: ""
D
DCloud_LXH 已提交
8378
  },
fxy060608's avatar
fxy060608 已提交
8379 8380 8381
  level: {
    type: String,
    default: ""
D
DCloud_LXH 已提交
8382 8383
  }
};
8384
var MapCircle = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
8385
  name: "MapCircle",
Q
qiang 已提交
8386
  props: props$5,
D
DCloud_LXH 已提交
8387
  setup(props2) {
fxy060608's avatar
fxy060608 已提交
8388 8389 8390 8391 8392 8393 8394
    const onMapReady = vue.inject("onMapReady");
    let circle;
    function removeCircle() {
      if (circle) {
        circle.setMap(null);
      }
    }
fxy060608's avatar
fxy060608 已提交
8395
    onMapReady((map, maps) => {
fxy060608's avatar
fxy060608 已提交
8396 8397 8398 8399 8400
      function updateCircle(option) {
        removeCircle();
        addCircle(option);
      }
      function addCircle(option) {
fxy060608's avatar
fxy060608 已提交
8401
        const center = new maps.LatLng(option.latitude, option.longitude);
Q
qiang 已提交
8402
        const circleOptions = {
fxy060608's avatar
fxy060608 已提交
8403 8404 8405 8406 8407 8408
          map,
          center,
          clickable: false,
          radius: option.radius,
          strokeWeight: Number(option.strokeWidth) || 1,
          strokeDashStyle: "solid"
Q
qiang 已提交
8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431
        };
        const {
          r: fr,
          g: fg,
          b: fb,
          a: fa
        } = hexToRgba(option.fillColor);
        const {
          r: sr,
          g: sg,
          b: sb,
          a: sa
        } = hexToRgba(option.color);
        if ("Color" in maps) {
          circleOptions.fillColor = new maps.Color(fr, fg, fb, fa);
          circleOptions.strokeColor = new maps.Color(sr, sg, sb, sa);
        } else {
          circleOptions.fillColor = `rgb(${fr}, ${fg}, ${fb})`;
          circleOptions.fillOpacity = fa;
          circleOptions.strokeColor = `rgb(${sr}, ${sg}, ${sb})`;
          circleOptions.strokeOpacity = sa;
        }
        circle = new maps.Circle(circleOptions);
fxy060608's avatar
fxy060608 已提交
8432 8433 8434 8435
      }
      addCircle(props2);
      vue.watch(props2, updateCircle);
    });
D
DCloud_LXH 已提交
8436
    return () => {
fxy060608's avatar
fxy060608 已提交
8437
      return null;
D
DCloud_LXH 已提交
8438 8439 8440
    };
  }
});
Q
qiang 已提交
8441
const props$4 = {
fxy060608's avatar
fxy060608 已提交
8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456
  id: {
    type: [Number, String],
    default: ""
  },
  position: {
    type: Object,
    require: true
  },
  iconPath: {
    type: String,
    require: true
  },
  clickable: {
    type: [Boolean, String],
    default: ""
D
DCloud_LXH 已提交
8457 8458
  }
};
8459
var MapControl = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
8460
  name: "MapControl",
Q
qiang 已提交
8461
  props: props$4,
fxy060608's avatar
fxy060608 已提交
8462 8463 8464 8465 8466 8467 8468
  setup(props2) {
    const onMapReady = vue.inject("onMapReady");
    let control;
    function removeControl() {
      if (control) {
        control.remove();
      }
fxy060608's avatar
fxy060608 已提交
8469
    }
fxy060608's avatar
fxy060608 已提交
8470
    onMapReady((map, maps, trigger) => {
fxy060608's avatar
fxy060608 已提交
8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504
      function updateControl(option) {
        removeControl();
        addControl(option);
      }
      function addControl(option) {
        const position = option.position || {};
        control = document.createElement("div");
        const img = new Image();
        control.appendChild(img);
        const style = control.style;
        style.position = "absolute";
        style.width = "0";
        style.height = "0";
        img.onload = () => {
          if (option.position.width) {
            img.width = option.position.width;
          }
          if (option.position.height) {
            img.height = option.position.height;
          }
          const style2 = img.style;
          style2.position = "absolute";
          style2.left = (position.left || 0) + "px";
          style2.top = (position.top || 0) + "px";
          style2.maxWidth = "initial";
        };
        img.src = getRealPath(option.iconPath);
        img.onclick = function($event) {
          if (option.clickable) {
            trigger("controltap", $event, {
              controlId: option.id
            });
          }
        };
fxy060608's avatar
fxy060608 已提交
8505
        map.controls[maps.ControlPosition.TOP_LEFT].push(control);
fxy060608's avatar
fxy060608 已提交
8506 8507 8508 8509 8510 8511 8512
      }
      addControl(props2);
      vue.watch(props2, updateControl);
    });
    return () => {
      return null;
    };
fxy060608's avatar
fxy060608 已提交
8513
  }
fxy060608's avatar
fxy060608 已提交
8514
});
Q
qiang 已提交
8515
const CONTEXT_ID = "MAP_LOCATION";
8516
var MapLocation = /* @__PURE__ */ defineSystemComponent({
Q
qiang 已提交
8517 8518 8519 8520 8521 8522 8523 8524 8525
  name: "MapLocation",
  setup() {
    const state = vue.reactive({
      latitude: 0,
      longitude: 0,
      rotate: 0
    });
    return () => {
      return state.latitude ? vue.createVNode(MapMarker, vue.mergeProps({
fxy060608's avatar
fxy060608 已提交
8526
        "anchor": {
Q
qiang 已提交
8527 8528 8529
          x: 0.5,
          y: 0.5
        },
fxy060608's avatar
fxy060608 已提交
8530 8531
        "width": "44",
        "height": "44",
Q
qiang 已提交
8532
        "iconPath": ICON_PATH_ORIGIN
Q
qiang 已提交
8533 8534 8535 8536
      }, state), null, 16, ["iconPath"]) : null;
    };
  }
});
Q
qiang 已提交
8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562
var props$3 = {
  dashArray: {
    type: Array,
    default: () => [0, 0]
  },
  points: {
    type: Array,
    required: true
  },
  strokeWidth: {
    type: Number,
    default: 1
  },
  strokeColor: {
    type: String,
    default: "#000000"
  },
  fillColor: {
    type: String,
    default: "#00000000"
  },
  zIndex: {
    type: Number,
    default: 0
  }
};
fxy060608's avatar
fxy060608 已提交
8563
var MapPolygon = /* @__PURE__ */ defineSystemComponent({
Q
qiang 已提交
8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631
  name: "MapPolygon",
  props: props$3,
  setup(props2) {
    let polygonIns;
    const onMapReady = vue.inject("onMapReady");
    onMapReady((map, maps, trigger) => {
      function drawPolygon() {
        const {
          points,
          strokeWidth,
          strokeColor,
          dashArray,
          fillColor,
          zIndex
        } = props2;
        const path = points.map((item) => {
          const {
            latitude,
            longitude
          } = item;
          return new maps.LatLng(latitude, longitude);
        });
        const {
          r: fcR,
          g: fcG,
          b: fcB,
          a: fcA
        } = hexToRgba(fillColor);
        const {
          r: scR,
          g: scG,
          b: scB,
          a: scA
        } = hexToRgba(strokeColor);
        const polygonOptions = {
          clickable: true,
          cursor: "crosshair",
          editable: false,
          map,
          fillColor: "",
          path,
          strokeColor: "",
          strokeDashStyle: dashArray.some((item) => item > 0) ? "dash" : "solid",
          strokeWeight: strokeWidth,
          visible: true,
          zIndex
        };
        if (maps.Color) {
          polygonOptions.fillColor = new maps.Color(fcR, fcG, fcB, fcA);
          polygonOptions.strokeColor = new maps.Color(scR, scG, scB, scA);
        } else {
          polygonOptions.fillColor = `rgb(${fcR}, ${fcG}, ${fcB})`;
          polygonOptions.fillOpacity = fcA;
          polygonOptions.strokeColor = `rgb(${scR}, ${scG}, ${scB})`;
          polygonOptions.strokeOpacity = scA;
        }
        if (polygonIns) {
          polygonIns.setOptions(polygonOptions);
          return;
        }
        polygonIns = new maps.Polygon(polygonOptions);
      }
      drawPolygon();
      vue.watch(props2, drawPolygon);
    });
    return () => null;
  }
});
D
DCloud_LXH 已提交
8632
const props$2 = {
Q
qiang 已提交
8633 8634 8635 8636 8637 8638
  id: {
    type: String,
    default: ""
  },
  latitude: {
    type: [String, Number],
Q
qiang 已提交
8639
    default: 0
Q
qiang 已提交
8640 8641 8642
  },
  longitude: {
    type: [String, Number],
Q
qiang 已提交
8643
    default: 0
Q
qiang 已提交
8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681
  },
  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
Q
qiang 已提交
8682 8683 8684 8685 8686 8687
  },
  libraries: {
    type: Array,
    default() {
      return [];
    }
Q
qiang 已提交
8688 8689 8690 8691
  },
  polygons: {
    type: Array,
    default: () => []
Q
qiang 已提交
8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707
  }
};
function getPoints(points) {
  const newPoints = [];
  if (Array.isArray(points)) {
    points.forEach((point) => {
      if (point && point.latitude && point.longitude) {
        newPoints.push({
          latitude: point.latitude,
          longitude: point.longitude
        });
      }
    });
  }
  return newPoints;
}
Q
qiang 已提交
8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721
function getLat(latLng) {
  if ("getLat" in latLng) {
    return latLng.getLat();
  } else {
    return latLng.lat();
  }
}
function getLng(latLng) {
  if ("getLng" in latLng) {
    return latLng.getLng();
  } else {
    return latLng.lng();
  }
}
Q
qiang 已提交
8722 8723
function useMap(props2, rootRef, emit2) {
  const mapRef = vue.ref(null);
Q
qiang 已提交
8724 8725
  let maps;
  let map;
Q
qiang 已提交
8726 8727 8728 8729 8730
  const state = vue.reactive({
    latitude: Number(props2.latitude),
    longitude: Number(props2.longitude),
    includePoints: getPoints(props2.includePoints)
  });
Q
qiang 已提交
8731
  function onMapReady(callback) {
Q
qiang 已提交
8732 8733
  }
  let isBoundsReady;
Q
qiang 已提交
8734
  function onBoundsReady(callback) {
Q
qiang 已提交
8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755
  }
  const contexts = {};
  function addMapChidlContext(context) {
    contexts[context.id] = context;
  }
  function removeMapChidlContext(context) {
    delete contexts[context.id];
  }
  vue.watch([() => props2.latitude, () => props2.longitude], ([latitudeVlaue, longitudeVlaue]) => {
    const latitude = Number(latitudeVlaue);
    const longitude = Number(longitudeVlaue);
    if (latitude !== state.latitude || longitude !== state.longitude) {
      state.latitude = latitude;
      state.longitude = longitude;
    }
  });
  vue.watch(() => props2.includePoints, (points) => {
    state.includePoints = getPoints(points);
  }, {
    deep: true
  });
Q
qiang 已提交
8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767
  function updateBounds() {
    const bounds = new maps.LatLngBounds();
    state.includePoints.forEach(({
      latitude,
      longitude
    }) => {
      const latLng = new maps.LatLng(latitude, longitude);
      bounds.extend(latLng);
    });
    map.fitBounds(bounds);
  }
  try {
Q
qiang 已提交
8768
    const id = useContextInfo();
Q
qiang 已提交
8769 8770 8771 8772 8773
    useSubscribe((type, data = {}) => {
      switch (type) {
        case "getCenterLocation":
          onMapReady(() => {
            const center = map.getCenter();
Q
qiang 已提交
8774
            uniShared.callOptions(data, {
Q
qiang 已提交
8775 8776
              latitude: getLat(center),
              longitude: getLng(center),
Q
qiang 已提交
8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797
              errMsg: `${type}:ok`
            });
          });
          break;
        case "moveToLocation":
          {
            let latitude = Number(data.latitude);
            let longitude = Number(data.longitude);
            if (!latitude || !longitude) {
              const 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)
                ;
              onMapReady(() => {
Q
qiang 已提交
8798
                uniShared.callOptions(data, `${type}:ok`);
Q
qiang 已提交
8799 8800
              });
            } else {
Q
qiang 已提交
8801
              uniShared.callOptions(data, `${type}:fail`);
Q
qiang 已提交
8802 8803 8804 8805 8806 8807 8808 8809 8810 8811
            }
          }
          break;
        case "translateMarker":
          onMapReady(() => {
            const context = contexts[data.markerId];
            if (context) {
              try {
                context.translate(data);
              } catch (error) {
Q
qiang 已提交
8812
                uniShared.callOptions(data, `${type}:fail ${error.message}`);
Q
qiang 已提交
8813
              }
Q
qiang 已提交
8814
              uniShared.callOptions(data, `${type}:ok`);
Q
qiang 已提交
8815
            } else {
Q
qiang 已提交
8816
              uniShared.callOptions(data, `${type}:fail not found`);
Q
qiang 已提交
8817 8818 8819 8820 8821 8822 8823 8824
            }
          });
          break;
        case "includePoints":
          state.includePoints = getPoints(data.includePoints);
          if (isBoundsReady)
            ;
          onBoundsReady(() => {
Q
qiang 已提交
8825
            uniShared.callOptions(data, `${type}:ok`);
Q
qiang 已提交
8826 8827 8828 8829 8830 8831 8832
          });
          break;
        case "getRegion":
          onBoundsReady(() => {
            const latLngBounds = map.getBounds();
            const southwest = latLngBounds.getSouthWest();
            const northeast = latLngBounds.getNorthEast();
Q
qiang 已提交
8833
            uniShared.callOptions(data, {
Q
qiang 已提交
8834
              southwest: {
Q
qiang 已提交
8835 8836
                latitude: getLat(southwest),
                longitude: getLng(southwest)
Q
qiang 已提交
8837 8838
              },
              northeast: {
Q
qiang 已提交
8839 8840
                latitude: getLat(northeast),
                longitude: getLng(northeast)
Q
qiang 已提交
8841 8842 8843 8844 8845 8846 8847
              },
              errMsg: `${type}:ok`
            });
          });
          break;
        case "getScale":
          onMapReady(() => {
Q
qiang 已提交
8848
            uniShared.callOptions(data, {
Q
qiang 已提交
8849 8850 8851 8852 8853 8854
              scale: map.getZoom(),
              errMsg: `${type}:ok`
            });
          });
          break;
      }
Q
qiang 已提交
8855
    }, id, true);
Q
qiang 已提交
8856 8857
  } catch (error) {
  }
Q
qiang 已提交
8858 8859 8860 8861 8862 8863 8864 8865
  vue.provide("onMapReady", onMapReady);
  vue.provide("addMapChidlContext", addMapChidlContext);
  vue.provide("removeMapChidlContext", removeMapChidlContext);
  return {
    state,
    mapRef
  };
}
fxy060608's avatar
fxy060608 已提交
8866
var index$c = /* @__PURE__ */ defineBuiltInComponent({
Q
qiang 已提交
8867
  name: "Map",
D
DCloud_LXH 已提交
8868
  props: props$2,
Q
qiang 已提交
8869 8870 8871 8872 8873 8874 8875 8876
  emits: ["markertap", "labeltap", "callouttap", "controltap", "regionchange", "tap", "click", "updated", "update:scale", "update:latitude", "update:longitude"],
  setup(props2, {
    emit: emit2,
    slots
  }) {
    const rootRef = vue.ref(null);
    const {
      mapRef
fxy060608's avatar
fxy060608 已提交
8877
    } = useMap(props2);
Q
qiang 已提交
8878
    return () => {
fxy060608's avatar
fxy060608 已提交
8879
      return vue.createVNode("uni-map", {
fxy060608's avatar
fxy060608 已提交
8880 8881
        "ref": rootRef,
        "id": props2.id
fxy060608's avatar
fxy060608 已提交
8882 8883 8884
      }, [vue.createVNode("div", {
        "ref": mapRef,
        "style": "width: 100%; height: 100%; position: relative; overflow: hidden"
Q
qiang 已提交
8885
      }, null, 512), props2.markers.map((item) => vue.createVNode(MapMarker, vue.mergeProps({
fxy060608's avatar
fxy060608 已提交
8886
        "key": item.id
Q
qiang 已提交
8887
      }, item), null, 16)), props2.polyline.map((item) => vue.createVNode(MapPolyline, item, null, 16)), props2.circles.map((item) => vue.createVNode(MapCircle, item, null, 16)), props2.controls.map((item) => vue.createVNode(MapControl, item, null, 16)), props2.showLocation && vue.createVNode(MapLocation, null, null), props2.polygons.map((item) => vue.createVNode(MapPolygon, item, null, 16)), vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
8888 8889
        "style": "position: absolute;top: 0;width: 100%;height: 100%;overflow: hidden;pointer-events: none;"
      }, [slots.default && slots.default()])], 8, ["id"]);
Q
qiang 已提交
8890 8891 8892
    };
  }
});
D
DCloud_LXH 已提交
8893
const props$1 = {
8894 8895 8896 8897 8898
  scrollTop: {
    type: [String, Number],
    default: 0
  }
};
fxy060608's avatar
fxy060608 已提交
8899
var index$b = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
8900
  name: "CoverView",
8901 8902 8903
  compatConfig: {
    MODE: 3
  },
D
DCloud_LXH 已提交
8904
  props: props$1,
8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915
  setup(props2, {
    slots
  }) {
    const content = vue.ref(null);
    vue.watch(() => props2.scrollTop, (val) => {
      setScrollTop(val);
    });
    function setScrollTop(val) {
      let _content = content.value;
      if (getComputedStyle(_content).overflowY === "scroll") {
        _content.scrollTop = _upx2pxNum(val);
D
DCloud_LXH 已提交
8916
      }
8917 8918 8919 8920 8921 8922
    }
    function _upx2pxNum(val) {
      let _val = String(val);
      if (/\d+[ur]px$/i.test(_val)) {
        _val.replace(/\d+[ur]px$/i, (text) => {
          return String(uni.upx2px(parseFloat(text)));
D
DCloud_LXH 已提交
8923 8924
        });
      }
8925
      return parseFloat(_val) || 0;
D
DCloud_LXH 已提交
8926
    }
8927
    return () => {
fxy060608's avatar
fxy060608 已提交
8928
      return vue.createVNode("uni-cover-view", {
8929
        "scroll-top": props2.scrollTop
fxy060608's avatar
fxy060608 已提交
8930 8931 8932 8933
      }, [vue.createVNode("div", {
        "ref": content,
        "class": "uni-cover-view"
      }, [slots.default && slots.default()], 512)], 8, ["scroll-top"]);
D
DCloud_LXH 已提交
8934 8935
    };
  }
8936
});
fxy060608's avatar
fxy060608 已提交
8937
var index$a = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
8938
  name: "CoverImage",
8939 8940 8941
  compatConfig: {
    MODE: 3
  },
D
DCloud_LXH 已提交
8942 8943 8944 8945 8946 8947
  props: {
    src: {
      type: String,
      default: ""
    }
  },
8948 8949 8950 8951
  emits: ["load", "error"],
  setup(props2, {
    emit: emit2
  }) {
D
DCloud_LXH 已提交
8952
    const root = vue.ref(null);
8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963
    const trigger = useCustomEvent(root, emit2);
    function load($event) {
      trigger("load", $event);
    }
    function error($event) {
      trigger("error", $event);
    }
    return () => {
      const {
        src
      } = props2;
fxy060608's avatar
fxy060608 已提交
8964
      return vue.createVNode("uni-cover-image", {
8965 8966
        "ref": root,
        "src": src
fxy060608's avatar
fxy060608 已提交
8967 8968 8969 8970 8971 8972 8973
      }, [vue.createVNode("div", {
        "class": "uni-cover-image"
      }, [src ? vue.createVNode("img", {
        "src": getRealPath(src),
        "onLoad": load,
        "onError": error
      }, null, 40, ["src", "onLoad", "onError"]) : null])], 8, ["src"]);
D
DCloud_LXH 已提交
8974 8975
    };
  }
8976
});
D
DCloud_LXH 已提交
8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003
function usePopupStyle(props2) {
  const popupWidth = vue.ref(0);
  const popupHeight = vue.ref(0);
  const isDesktop = vue.computed(() => popupWidth.value >= 500 && popupHeight.value >= 500);
  const popupStyle = vue.computed(() => {
    const style = {
      content: {
        transform: "",
        left: "",
        top: "",
        bottom: ""
      },
      triangle: {
        left: "",
        top: "",
        bottom: "",
        "border-width": "",
        "border-color": ""
      }
    };
    const contentStyle = style.content;
    const triangleStyle = style.triangle;
    const popover = props2.popover;
    function getNumber(value) {
      return Number(value) || 0;
    }
    if (isDesktop.value && popover) {
fxy060608's avatar
fxy060608 已提交
9004
      shared.extend(triangleStyle, {
D
DCloud_LXH 已提交
9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042
        position: "absolute",
        width: "0",
        height: "0",
        "margin-left": "-6px",
        "border-style": "solid"
      });
      const popoverLeft = getNumber(popover.left);
      const popoverWidth = getNumber(popover.width);
      const popoverTop = getNumber(popover.top);
      const popoverHeight = getNumber(popover.height);
      const center = popoverLeft + popoverWidth / 2;
      contentStyle.transform = "none !important";
      const contentLeft = Math.max(0, center - 300 / 2);
      contentStyle.left = `${contentLeft}px`;
      let triangleLeft = Math.max(12, center - contentLeft);
      triangleLeft = Math.min(300 - 12, triangleLeft);
      triangleStyle.left = `${triangleLeft}px`;
      const vcl = popupHeight.value / 2;
      if (popoverTop + popoverHeight - vcl > vcl - popoverTop) {
        contentStyle.top = "auto";
        contentStyle.bottom = `${popupHeight.value - popoverTop + 6}px`;
        triangleStyle.bottom = "-6px";
        triangleStyle["border-width"] = "6px 6px 0 6px";
        triangleStyle["border-color"] = "#fcfcfd transparent transparent transparent";
      } else {
        contentStyle.top = `${popoverTop + popoverHeight + 6}px`;
        triangleStyle.top = "-6px";
        triangleStyle["border-width"] = "0 6px 6px 6px";
        triangleStyle["border-color"] = "transparent transparent #fcfcfd transparent";
      }
    }
    return style;
  });
  return {
    isDesktop,
    popupStyle
  };
}
D
DCloud_LXH 已提交
9043 9044 9045 9046 9047 9048 9049 9050
function useKeyboard() {
  const key = vue.ref("");
  const disable = vue.ref(false);
  return {
    key,
    disable
  };
}
fxy060608's avatar
fxy060608 已提交
9051
function _isSlot(s) {
D
DCloud_LXH 已提交
9052 9053 9054 9055
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
}
function getDefaultStartValue(props2) {
  if (props2.mode === mode.TIME) {
D
DCloud_LXH 已提交
9056 9057
    return "00:00";
  }
D
DCloud_LXH 已提交
9058
  if (props2.mode === mode.DATE) {
D
DCloud_LXH 已提交
9059
    const year = new Date().getFullYear() - 100;
D
DCloud_LXH 已提交
9060
    switch (props2.fields) {
D
DCloud_LXH 已提交
9061 9062 9063 9064 9065 9066 9067 9068 9069 9070
      case fields.YEAR:
        return year.toString();
      case fields.MONTH:
        return year + "-01";
      default:
        return year + "-01-01";
    }
  }
  return "";
}
D
DCloud_LXH 已提交
9071 9072
function getDefaultEndValue(props2) {
  if (props2.mode === mode.TIME) {
D
DCloud_LXH 已提交
9073 9074
    return "23:59";
  }
D
DCloud_LXH 已提交
9075
  if (props2.mode === mode.DATE) {
D
DCloud_LXH 已提交
9076
    const year = new Date().getFullYear() + 100;
D
DCloud_LXH 已提交
9077
    switch (props2.fields) {
D
DCloud_LXH 已提交
9078 9079 9080 9081 9082 9083 9084 9085 9086 9087
      case fields.YEAR:
        return year.toString();
      case fields.MONTH:
        return year + "-12";
      default:
        return year + "-12-31";
    }
  }
  return "";
}
D
DCloud_LXH 已提交
9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117
function getDateValueArray(props2, state, valueStr, defaultValue) {
  const splitStr = props2.mode === mode.DATE ? "-" : ":";
  const array = props2.mode === mode.DATE ? state.dateArray : state.timeArray;
  let max;
  if (props2.mode === mode.TIME) {
    max = 2;
  } else {
    switch (props2.fields) {
      case fields.YEAR:
        max = 1;
        break;
      case fields.MONTH:
        max = 2;
        break;
      default:
        max = 3;
        break;
    }
  }
  const inputArray = String(valueStr).split(splitStr);
  let value = [];
  for (let i = 0; i < max; i++) {
    const val = inputArray[i];
    value.push(array[i].indexOf(val));
  }
  if (value.indexOf(-1) >= 0) {
    value = defaultValue ? getDateValueArray(props2, state, defaultValue) : value.map(() => 0);
  }
  return value;
}
D
DCloud_LXH 已提交
9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132
const mode = {
  SELECTOR: "selector",
  MULTISELECTOR: "multiSelector",
  TIME: "time",
  DATE: "date"
};
const fields = {
  YEAR: "year",
  MONTH: "month",
  DAY: "day"
};
const selectorType = {
  PICKER: "picker",
  SELECT: "select"
};
D
DCloud_LXH 已提交
9133 9134 9135 9136
const props = {
  name: {
    type: String,
    default: ""
fxy060608's avatar
fxy060608 已提交
9137
  },
D
DCloud_LXH 已提交
9138 9139 9140 9141
  range: {
    type: Array,
    default() {
      return [];
D
DCloud_LXH 已提交
9142 9143
    }
  },
D
DCloud_LXH 已提交
9144 9145 9146
  rangeKey: {
    type: String,
    default: ""
D
DCloud_LXH 已提交
9147
  },
D
DCloud_LXH 已提交
9148 9149 9150 9151 9152 9153 9154 9155 9156
  value: {
    type: [Number, String, Array],
    default: 0
  },
  mode: {
    type: String,
    default: mode.SELECTOR,
    validator(val) {
      return Object.values(mode).includes(val);
D
DCloud_LXH 已提交
9157 9158
    }
  },
D
DCloud_LXH 已提交
9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183
  fields: {
    type: String,
    default: ""
  },
  start: {
    type: String,
    default: (props2) => {
      return getDefaultStartValue(props2);
    }
  },
  end: {
    type: String,
    default: (props2) => {
      return getDefaultEndValue(props2);
    }
  },
  disabled: {
    type: [Boolean, String],
    default: false
  },
  selectorType: {
    type: String,
    default: ""
  }
};
fxy060608's avatar
fxy060608 已提交
9184
var index$9 = /* @__PURE__ */ defineBuiltInComponent({
D
DCloud_LXH 已提交
9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202
  name: "Picker",
  compatConfig: {
    MODE: 3
  },
  props,
  emits: ["change", "cancel", "columnchange"],
  setup(props2, {
    emit: emit2,
    slots
  }) {
    initI18nPickerMsgsOnce();
    const {
      t: t2
    } = useI18n();
    const rootRef = vue.ref(null);
    const pickerRef = vue.ref(null);
    const selectRef = vue.ref(null);
    const inputRef = vue.ref(null);
D
DCloud_LXH 已提交
9203
    const pickerRender = vue.ref(false);
D
DCloud_LXH 已提交
9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230
    const {
      state,
      rangeArray
    } = usePickerState(props2);
    const trigger = useCustomEvent(rootRef, emit2);
    const {
      system,
      selectorTypeComputed,
      _show,
      _l10nColumn,
      _l10nItem,
      _input,
      _fixInputPosition,
      _pickerViewChange,
      _cancel,
      _change,
      _resetFormData,
      _getFormData,
      _createTime,
      _createDate,
      _setValueSync
    } = usePickerMethods(props2, state, trigger, rootRef, pickerRef, selectRef, inputRef);
    usePickerWatch(state, _cancel, _change);
    usePickerForm(_resetFormData, _getFormData);
    _createTime();
    _createDate();
    _setValueSync();
fxy060608's avatar
fxy060608 已提交
9231
    const popup = usePopupStyle(state);
D
DCloud_LXH 已提交
9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251
    vue.watchEffect(() => {
      state.isDesktop = popup.isDesktop.value;
      state.popupStyle = popup.popupStyle.value;
    });
    return () => {
      let _slot2;
      const {
        visible,
        contentVisible,
        valueArray,
        popupStyle,
        valueSync
      } = state;
      const {
        rangeKey,
        mode: mode2,
        start,
        end
      } = props2;
      const booleanAttrs = useBooleanAttr(props2, "disabled");
fxy060608's avatar
fxy060608 已提交
9252
      return vue.createVNode("uni-picker", vue.mergeProps({
D
DCloud_LXH 已提交
9253 9254 9255
        "ref": rootRef
      }, booleanAttrs, {
        "onClick": withWebEvent(_show)
fxy060608's avatar
fxy060608 已提交
9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291
      }), [pickerRender.value ? vue.createVNode("div", {
        "ref": pickerRef,
        "class": ["uni-picker-container", `uni-${mode2}-${selectorTypeComputed.value}`],
        "onWheel": onEventPrevent,
        "onTouchmove": onEventPrevent
      }, [vue.createVNode(vue.Transition, {
        "name": "uni-fade"
      }, {
        default: () => [vue.withDirectives(vue.createVNode("div", {
          "class": "uni-mask uni-picker-mask",
          "onClick": withWebEvent(_cancel),
          "onMousemove": _fixInputPosition
        }, null, 40, ["onClick", "onMousemove"]), [[vue.vShow, visible]])]
      }), !system.value ? vue.createVNode("div", {
        "class": [{
          "uni-picker-toggle": visible
        }, "uni-picker-custom"],
        "style": popupStyle.content
      }, [vue.createVNode("div", {
        "class": "uni-picker-header",
        "onClick": onEventStop
      }, [vue.createVNode("div", {
        "class": "uni-picker-action uni-picker-action-cancel",
        "onClick": withWebEvent(_cancel)
      }, [t2("uni.picker.cancel")], 8, ["onClick"]), vue.createVNode("div", {
        "class": "uni-picker-action uni-picker-action-confirm",
        "onClick": _change
      }, [t2("uni.picker.done")], 8, ["onClick"])], 8, ["onClick"]), contentVisible ? vue.createVNode(PickerView, {
        "value": _l10nColumn(valueArray),
        "class": "uni-picker-content",
        "onChange": _pickerViewChange
      }, _isSlot(_slot2 = vue.renderList(_l10nColumn(rangeArray.value), (rangeItem, index0) => {
        let _slot;
        return vue.createVNode(PickerViewColumn, {
          "key": index0
        }, _isSlot(_slot = vue.renderList(rangeItem, (item, index2) => vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
9292
          "key": index2,
fxy060608's avatar
fxy060608 已提交
9293 9294 9295 9296 9297 9298 9299
          "class": "uni-picker-item"
        }, [typeof item === "object" ? item[rangeKey] || "" : _l10nItem(item, index0)]))) ? _slot : {
          default: () => [_slot],
          _: 1
        });
      })) ? _slot2 : {
        default: () => [_slot2],
D
DCloud_LXH 已提交
9300
        _: 1
fxy060608's avatar
fxy060608 已提交
9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332
      }, 8, ["value", "onChange"]) : null, vue.createVNode("div", {
        "ref": selectRef,
        "class": "uni-picker-select",
        "onWheel": onEventStop,
        "onTouchmove": onEventStop
      }, [vue.renderList(rangeArray.value[0], (item, index2) => vue.createVNode("div", {
        "key": index2,
        "class": ["uni-picker-item", {
          selected: valueArray[0] === index2
        }],
        "onClick": () => {
          valueArray[0] = index2;
          _change();
        }
      }, [typeof item === "object" ? item[rangeKey] || "" : item], 10, ["onClick"]))], 40, ["onWheel", "onTouchmove"]), vue.createVNode("div", {
        "style": popupStyle.triangle
      }, null, 4)], 6) : null], 40, ["onWheel", "onTouchmove"]) : null, vue.createVNode("div", null, [slots.default && slots.default()]), system.value ? vue.createVNode("div", {
        "class": "uni-picker-system",
        "onMousemove": withWebEvent(_fixInputPosition)
      }, [vue.createVNode("input", {
        "class": ["uni-picker-system_input", system.value],
        "ref": inputRef,
        "value": valueSync,
        "type": mode2,
        "tabindex": "-1",
        "min": start,
        "max": end,
        "onChange": ($event) => {
          _input($event);
          onEventStop($event);
        }
      }, null, 42, ["value", "type", "min", "max", "onChange"])], 40, ["onMousemove"]) : null], 16, ["onClick"]);
D
DCloud_LXH 已提交
9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371
    };
  }
});
function usePickerState(props2) {
  const state = vue.reactive({
    valueSync: void 0,
    visible: false,
    contentVisible: false,
    popover: null,
    valueChangeSource: "",
    timeArray: [],
    dateArray: [],
    valueArray: [],
    oldValueArray: [],
    isDesktop: false,
    popupStyle: {
      content: {},
      triangle: {}
    }
  });
  const rangeArray = vue.computed(() => {
    let val = props2.range;
    switch (props2.mode) {
      case mode.SELECTOR:
        return [val];
      case mode.MULTISELECTOR:
        return val;
      case mode.TIME:
        return state.timeArray;
      case mode.DATE: {
        const dateArray = state.dateArray;
        switch (props2.fields) {
          case fields.YEAR:
            return [dateArray[0]];
          case fields.MONTH:
            return [dateArray[0], dateArray[1]];
          default:
            return [dateArray[0], dateArray[1], dateArray[2]];
        }
Q
qiang 已提交
9372
      }
D
DCloud_LXH 已提交
9373 9374 9375 9376 9377 9378 9379 9380
    }
    return [];
  });
  return {
    state,
    rangeArray
  };
}
fxy060608's avatar
fxy060608 已提交
9381 9382 9383 9384 9385 9386 9387 9388
function useIsiPad() {
  const isiPad = vue.ref(false);
  return isiPad;
}
function useSystem() {
  const _system = vue.ref("");
  return _system;
}
D
DCloud_LXH 已提交
9389 9390
let __contentVisibleDelay;
function usePickerMethods(props2, state, trigger, rootRef, pickerRef, selectRef, inputRef) {
fxy060608's avatar
fxy060608 已提交
9391 9392
  const isiPad = useIsiPad();
  const _system = useSystem();
D
DCloud_LXH 已提交
9393 9394 9395 9396 9397
  const selectorTypeComputed = vue.computed(() => {
    const type = props2.selectorType;
    if (Object.values(selectorType).includes(type)) {
      return type;
    }
fxy060608's avatar
fxy060608 已提交
9398
    return isiPad.value ? selectorType.PICKER : selectorType.SELECT;
D
DCloud_LXH 已提交
9399 9400
  });
  const system = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
9401 9402 9403
    if (props2.mode === mode.DATE && !Object.values(fields).includes(props2.fields) && state.isDesktop) {
      return _system.value;
    }
D
DCloud_LXH 已提交
9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497
    return "";
  });
  const startArray = vue.computed(() => {
    return getDateValueArray(props2, state, props2.start, getDefaultStartValue(props2));
  });
  const endArray = vue.computed(() => {
    return getDateValueArray(props2, state, props2.end, getDefaultEndValue(props2));
  });
  function _show(event) {
    if (props2.disabled) {
      return;
    }
    state.valueChangeSource = "";
    let $picker = pickerRef.value;
    let _currentTarget = event.currentTarget;
    $picker.remove();
    (document.querySelector("uni-app") || document.body).appendChild($picker);
    $picker.style.display = "block";
    const rect = _currentTarget.getBoundingClientRect();
    state.popover = {
      top: rect.top,
      left: rect.left,
      width: rect.width,
      height: rect.height
    };
    setTimeout(() => {
      state.visible = true;
    }, 20);
  }
  function _getFormData() {
    return {
      value: state.valueSync,
      key: props2.name
    };
  }
  function _resetFormData() {
    switch (props2.mode) {
      case mode.SELECTOR:
        state.valueSync = 0;
        break;
      case mode.MULTISELECTOR:
        state.valueSync = props2.value.map((val) => 0);
        break;
      case mode.DATE:
      case mode.TIME:
        state.valueSync = "";
        break;
    }
  }
  function _createTime() {
    let hours = [];
    let minutes = [];
    for (let i = 0; i < 24; i++) {
      hours.push((i < 10 ? "0" : "") + i);
    }
    for (let i = 0; i < 60; i++) {
      minutes.push((i < 10 ? "0" : "") + i);
    }
    state.timeArray.push(hours, minutes);
  }
  function _createDate() {
    let years = [];
    let year = new Date().getFullYear();
    for (let i = year - 150, end = year + 150; i <= end; i++) {
      years.push(String(i));
    }
    let months = [];
    for (let i = 1; i <= 12; i++) {
      months.push((i < 10 ? "0" : "") + i);
    }
    let days = [];
    for (let i = 1; i <= 31; i++) {
      days.push((i < 10 ? "0" : "") + i);
    }
    state.dateArray.push(years, months, days);
  }
  function _getTimeValue(val) {
    return val[0] * 60 + val[1];
  }
  function _getDateValue(val) {
    const DAY = 31;
    return val[0] * DAY * 12 + (val[1] || 0) * DAY + (val[2] || 0);
  }
  function _cloneArray(val1, val2) {
    for (let i = 0; i < val1.length && i < val2.length; i++) {
      val1[i] = val2[i];
    }
  }
  function _setValueSync() {
    let val = props2.value;
    switch (props2.mode) {
      case mode.MULTISELECTOR:
        {
          if (!Array.isArray(val)) {
fxy060608's avatar
fxy060608 已提交
9498
            val = state.valueArray;
D
DCloud_LXH 已提交
9499
          }
D
DCloud_LXH 已提交
9500 9501
          if (!Array.isArray(state.valueSync)) {
            state.valueSync = [];
D
DCloud_LXH 已提交
9502
          }
D
DCloud_LXH 已提交
9503 9504 9505 9506 9507 9508 9509
          const length = state.valueSync.length = Math.max(val.length, props2.range.length);
          for (let index2 = 0; index2 < length; index2++) {
            const val0 = Number(val[index2]);
            const val1 = Number(state.valueSync[index2]);
            const val2 = isNaN(val0) ? isNaN(val1) ? 0 : val1 : val0;
            const maxVal = props2.range[index2] ? props2.range[index2].length - 1 : 0;
            state.valueSync.splice(index2, 1, val2 < 0 || val2 > maxVal ? 0 : val2);
Q
qiang 已提交
9510
          }
D
DCloud_LXH 已提交
9511 9512 9513 9514 9515 9516 9517 9518 9519 9520
        }
        break;
      case mode.TIME:
      case mode.DATE:
        state.valueSync = String(val);
        break;
      default: {
        const valueSync = Number(val);
        state.valueSync = valueSync < 0 ? 0 : valueSync;
        break;
Q
qiang 已提交
9521
      }
D
DCloud_LXH 已提交
9522
    }
D
DCloud_LXH 已提交
9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582
  }
  function _setValueArray() {
    let val = state.valueSync;
    let valueArray;
    switch (props2.mode) {
      case mode.MULTISELECTOR:
        valueArray = [...val];
        break;
      case mode.TIME:
        valueArray = getDateValueArray(props2, state, val, uniShared.formatDateTime({
          mode: mode.TIME
        }));
        break;
      case mode.DATE:
        valueArray = getDateValueArray(props2, state, val, uniShared.formatDateTime({
          mode: mode.DATE
        }));
        break;
      default:
        valueArray = [val];
        break;
    }
    state.oldValueArray = [...valueArray];
    state.valueArray = [...valueArray];
  }
  function _getValue() {
    let val = state.valueArray;
    switch (props2.mode) {
      case mode.SELECTOR:
        return val[0];
      case mode.MULTISELECTOR:
        return val.map((val2) => val2);
      case mode.TIME:
        return state.valueArray.map((val2, i) => state.timeArray[i][val2]).join(":");
      case mode.DATE:
        return state.valueArray.map((val2, i) => state.dateArray[i][val2]).join("-");
    }
  }
  function _change() {
    _close();
    state.valueChangeSource = "click";
    const value = _getValue();
    state.valueSync = Array.isArray(value) ? value.map((val) => val) : value;
    trigger("change", {}, {
      value
    });
  }
  function _cancel($event) {
    if (system.value === "firefox" && $event) {
      const {
        top,
        left,
        width,
        height
      } = state.popover;
      const {
        pageX,
        pageY
      } = $event;
      if (pageX > left && pageX < left + width && pageY > top && pageY < top + height) {
D
DCloud_LXH 已提交
9583 9584
        return;
      }
D
DCloud_LXH 已提交
9585 9586 9587 9588 9589 9590 9591 9592
    }
    _close();
    trigger("cancel", {}, {});
  }
  function _close() {
    state.visible = false;
    setTimeout(() => {
      let $picker = pickerRef.value;
D
DCloud_LXH 已提交
9593
      $picker.remove();
D
DCloud_LXH 已提交
9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639
      rootRef.value.prepend($picker);
      $picker.style.display = "none";
    }, 260);
  }
  function _select() {
    if (props2.mode === mode.SELECTOR && selectorTypeComputed.value === selectorType.SELECT) {
      selectRef.value.scrollTop = state.valueArray[0] * 34;
    }
  }
  function _input($event) {
    const EventTarget = $event.target;
    state.valueSync = EventTarget.value;
    vue.nextTick(() => {
      _change();
    });
  }
  function _fixInputPosition($event) {
    if (system.value === "chrome") {
      const rect = rootRef.value.getBoundingClientRect();
      const fontSize = 32;
      inputRef.value.style.left = `${$event.clientX - rect.left - fontSize * 1.5}px`;
      inputRef.value.style.top = `${$event.clientY - rect.top - fontSize * 0.5}px`;
    }
  }
  function _pickerViewChange(event) {
    state.valueArray = _l10nColumn(event.detail.value, true);
  }
  function _l10nColumn(array, normalize) {
    const {
      getLocale
    } = useI18n();
    if (props2.mode === mode.DATE) {
      const locale = getLocale();
      if (!locale.startsWith("zh")) {
        switch (props2.fields) {
          case fields.YEAR:
            return array;
          case fields.MONTH:
            return [array[1], array[0]];
          default:
            switch (locale) {
              case "es":
              case "fr":
                return [array[2], array[1], array[0]];
              default:
                return normalize ? [array[2], array[0], array[1]] : [array[1], array[2], array[0]];
D
DCloud_LXH 已提交
9640 9641 9642
            }
        }
      }
D
DCloud_LXH 已提交
9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659
    }
    return array;
  }
  function _l10nItem(item, index2) {
    const {
      getLocale
    } = useI18n();
    if (props2.mode === mode.DATE) {
      const locale = getLocale();
      if (locale.startsWith("zh")) {
        const array = ["\u5E74", "\u6708", "\u65E5"];
        return item + array[index2];
      } else if (props2.fields !== fields.YEAR && index2 === (props2.fields !== fields.MONTH && (locale === "es" || locale === "fr") ? 1 : 0)) {
        let array;
        switch (locale) {
          case "es":
            array = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "\u200B\u200Bjulio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"];
D
DCloud_LXH 已提交
9660
            break;
D
DCloud_LXH 已提交
9661 9662
          case "fr":
            array = ["janvier", "f\xE9vrier", "mars", "avril", "mai", "juin", "juillet", "ao\xFBt", "septembre", "octobre", "novembre", "d\xE9cembre"];
D
DCloud_LXH 已提交
9663 9664
            break;
          default:
D
DCloud_LXH 已提交
9665
            array = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
D
DCloud_LXH 已提交
9666 9667
            break;
        }
D
DCloud_LXH 已提交
9668
        return array[Number(item) - 1];
D
DCloud_LXH 已提交
9669
      }
D
DCloud_LXH 已提交
9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702
    }
    return item;
  }
  vue.watch(() => state.visible, (val) => {
    if (val) {
      clearTimeout(__contentVisibleDelay);
      state.contentVisible = val;
      _select();
    } else {
      __contentVisibleDelay = setTimeout(() => {
        state.contentVisible = val;
      }, 300);
    }
  });
  vue.watch([() => props2.mode, () => props2.value, () => props2.range], _setValueSync, {
    deep: true
  });
  vue.watch(() => state.valueSync, _setValueArray, {
    deep: true
  });
  vue.watch(() => state.valueArray, (val) => {
    if (props2.mode === mode.TIME || props2.mode === mode.DATE) {
      const getValue = props2.mode === mode.TIME ? _getTimeValue : _getDateValue;
      const valueArray = state.valueArray;
      const _startArray = startArray.value;
      const _endArray = endArray.value;
      if (props2.mode === mode.DATE) {
        const dateArray = state.dateArray;
        const max = dateArray[2].length;
        const day = Number(dateArray[2][valueArray[2]]) || 1;
        const realDay = new Date(`${dateArray[0][valueArray[0]]}/${dateArray[1][valueArray[1]]}/${day}`).getDate();
        if (realDay < day) {
          valueArray[2] -= realDay + max - day;
D
DCloud_LXH 已提交
9703 9704
        }
      }
D
DCloud_LXH 已提交
9705 9706 9707 9708
      if (getValue(valueArray) < getValue(_startArray)) {
        _cloneArray(valueArray, _startArray);
      } else if (getValue(valueArray) > getValue(_endArray)) {
        _cloneArray(valueArray, _endArray);
D
DCloud_LXH 已提交
9709
      }
D
DCloud_LXH 已提交
9710 9711 9712 9713 9714 9715 9716 9717 9718
    }
    val.forEach((value, column) => {
      if (value !== state.oldValueArray[column]) {
        state.oldValueArray[column] = value;
        if (props2.mode === mode.MULTISELECTOR) {
          trigger("columnchange", {}, {
            column,
            value
          });
D
DCloud_LXH 已提交
9719 9720
        }
      }
D
DCloud_LXH 已提交
9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745
    });
  });
  return {
    selectorTypeComputed,
    system,
    _show,
    _cancel,
    _change,
    _l10nColumn,
    _l10nItem,
    _input,
    _resetFormData,
    _getFormData,
    _createTime,
    _createDate,
    _setValueSync,
    _fixInputPosition,
    _pickerViewChange
  };
}
function usePickerWatch(state, _cancel, _change) {
  const {
    key,
    disable
  } = useKeyboard();
D
DCloud_LXH 已提交
9746
  vue.watchEffect(() => {
D
DCloud_LXH 已提交
9747 9748 9749
    disable.value = !state.visible;
  });
  vue.watch(key, (value) => {
D
DCloud_LXH 已提交
9750
    if (value === "esc") {
D
DCloud_LXH 已提交
9751
      _cancel();
D
DCloud_LXH 已提交
9752
    } else if (value === "enter") {
D
DCloud_LXH 已提交
9753
      _change();
D
DCloud_LXH 已提交
9754 9755 9756
    }
  });
}
D
DCloud_LXH 已提交
9757
function usePickerForm(_resetFormData, _getFormData) {
D
DCloud_LXH 已提交
9758
  const uniForm = vue.inject(uniFormKey, false);
D
DCloud_LXH 已提交
9759
  if (uniForm) {
D
DCloud_LXH 已提交
9760
    const field = {
D
DCloud_LXH 已提交
9761
      reset: _resetFormData,
D
DCloud_LXH 已提交
9762 9763
      submit: () => {
        const data = ["", null];
D
DCloud_LXH 已提交
9764 9765 9766 9767
        const {
          key,
          value
        } = _getFormData();
D
DCloud_LXH 已提交
9768 9769 9770 9771 9772 9773 9774 9775 9776 9777
        if (key !== "") {
          data[0] = key;
          data[1] = value;
        }
        return data;
      }
    };
    uniForm.addField(field);
  }
}
fxy060608's avatar
fxy060608 已提交
9778 9779 9780 9781 9782 9783
var index$8 = /* @__PURE__ */ defineUnsupportedComponent("ad");
var index$7 = /* @__PURE__ */ defineUnsupportedComponent("ad-content-page");
var index$6 = /* @__PURE__ */ defineUnsupportedComponent("ad-draw");
var index$5 = /* @__PURE__ */ defineUnsupportedComponent("camera");
var index$4 = /* @__PURE__ */ defineUnsupportedComponent("live-player");
var index$3 = /* @__PURE__ */ defineUnsupportedComponent("live-pusher");
Q
qiang 已提交
9784
const UniViewJSBridge$1 = /* @__PURE__ */ shared.extend(ViewJSBridge, {
Q
qiang 已提交
9785
  publishHandler(event, args, pageId) {
D
DCloud_LXH 已提交
9786
    UniServiceJSBridge.subscribeHandler(event, args, pageId);
Q
qiang 已提交
9787 9788
  }
});
fxy060608's avatar
fxy060608 已提交
9789 9790 9791 9792 9793 9794 9795 9796 9797
const request = /* @__PURE__ */ defineTaskApi(API_REQUEST, ({
  url,
  data,
  header,
  method,
  dataType: dataType2,
  responseType,
  withCredentials,
  timeout = __uniConfig.networkTimeout.request
9798
}, { resolve, reject }) => {
fxy060608's avatar
fxy060608 已提交
9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872
  let body = null;
  const contentType = normalizeContentType(header);
  if (method !== "GET") {
    if (typeof data === "string" || data instanceof ArrayBuffer) {
      body = data;
    } else {
      if (contentType === "json") {
        try {
          body = JSON.stringify(data);
        } catch (error) {
          body = data.toString();
        }
      } else if (contentType === "urlencoded") {
        const bodyArray = [];
        for (const key in data) {
          if (shared.hasOwn(data, key)) {
            bodyArray.push(encodeURIComponent(key) + "=" + encodeURIComponent(data[key]));
          }
        }
        body = bodyArray.join("&");
      } else {
        body = data.toString();
      }
    }
  }
  const xhr = new XMLHttpRequest();
  const requestTask = new RequestTask(xhr);
  xhr.open(method, url);
  for (const key in header) {
    if (shared.hasOwn(header, key)) {
      xhr.setRequestHeader(key, header[key]);
    }
  }
  const timer = setTimeout(function() {
    xhr.onload = xhr.onabort = xhr.onerror = null;
    requestTask.abort();
    reject("timeout");
  }, timeout);
  xhr.responseType = responseType;
  xhr.onload = function() {
    clearTimeout(timer);
    const statusCode = xhr.status;
    let res = responseType === "text" ? xhr.responseText : xhr.response;
    if (responseType === "text" && dataType2 === "json") {
      try {
        res = JSON.parse(res);
      } catch (error) {
      }
    }
    resolve({
      data: res,
      statusCode,
      header: parseHeaders(xhr.getAllResponseHeaders()),
      cookies: []
    });
  };
  xhr.onabort = function() {
    clearTimeout(timer);
    reject("abort");
  };
  xhr.onerror = function() {
    clearTimeout(timer);
    reject();
  };
  xhr.withCredentials = withCredentials;
  xhr.send(body);
  return requestTask;
}, RequestProtocol, RequestOptions);
function normalizeContentType(header) {
  const name = Object.keys(header).find((name2) => name2.toLowerCase() === "content-type");
  if (!name) {
    return;
  }
  const contentType = header[name];
fxy060608's avatar
fxy060608 已提交
9873 9874 9875 9876
  if (name !== "Content-Type") {
    header["Content-Type"] = header[name];
    delete header[name];
  }
fxy060608's avatar
fxy060608 已提交
9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893
  if (contentType.indexOf("application/json") === 0) {
    return "json";
  } else if (contentType.indexOf("application/x-www-form-urlencoded") === 0) {
    return "urlencoded";
  }
  return "string";
}
class RequestTask {
  constructor(xhr) {
    this._xhr = xhr;
  }
  abort() {
    if (this._xhr) {
      this._xhr.abort();
      delete this._xhr;
    }
  }
Q
qiang 已提交
9894
  onHeadersReceived(callback) {
fxy060608's avatar
fxy060608 已提交
9895 9896
    throw new Error("Method not implemented.");
  }
Q
qiang 已提交
9897
  offHeadersReceived(callback) {
fxy060608's avatar
fxy060608 已提交
9898 9899 9900 9901 9902
    throw new Error("Method not implemented.");
  }
}
function parseHeaders(headers) {
  const headersObject = {};
fxy060608's avatar
fxy060608 已提交
9903
  headers.split(uniShared.LINEFEED).forEach((header) => {
fxy060608's avatar
fxy060608 已提交
9904 9905 9906 9907 9908 9909 9910 9911
    const find = header.match(/(\S+\s*):\s*(.*)/);
    if (!find || find.length !== 3) {
      return;
    }
    headersObject[find[1]] = find[2];
  });
  return headersObject;
}
fxy060608's avatar
fxy060608 已提交
9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941
const STORAGE_KEYS = "uni-storage-keys";
function parseValue(value) {
  const types = ["object", "string", "number", "boolean", "undefined"];
  try {
    const object = typeof value === "string" ? JSON.parse(value) : value;
    const type = object.type;
    if (types.indexOf(type) >= 0) {
      const keys = Object.keys(object);
      if (keys.length === 2 && "data" in object) {
        if (typeof object.data === type) {
          return object.data;
        }
        if (type === "object" && /^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\.\d{3}Z$/.test(object.data)) {
          return new Date(object.data);
        }
      } else if (keys.length === 1) {
        return "";
      }
    }
  } catch (error) {
  }
}
const setStorageSync = /* @__PURE__ */ defineSyncApi(API_SET_STORAGE_SYNC, (key, data) => {
  const type = typeof data;
  const value = type === "string" ? data : JSON.stringify({
    type,
    data
  });
  localStorage.setItem(key, value);
}, SetStorageSyncProtocol);
9942
const setStorage = /* @__PURE__ */ defineAsyncApi(API_SET_STORAGE, ({ key, data }, { resolve, reject }) => {
fxy060608's avatar
fxy060608 已提交
9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972
  try {
    setStorageSync(key, data);
    resolve();
  } catch (error) {
    reject(error.message);
  }
}, SetStorageProtocol);
function getStorageOrigin(key) {
  const value = localStorage && localStorage.getItem(key);
  if (typeof value !== "string") {
    throw new Error("data not found");
  }
  let data = value;
  try {
    const object = JSON.parse(value);
    const result = parseValue(object);
    if (result !== void 0) {
      data = result;
    }
  } catch (error) {
  }
  return data;
}
const getStorageSync = /* @__PURE__ */ defineSyncApi(API_GET_STORAGE_SYNC, (key, t2) => {
  try {
    return getStorageOrigin(key);
  } catch (error) {
    return "";
  }
}, GetStorageSyncProtocol);
9973
const getStorage = /* @__PURE__ */ defineAsyncApi(API_GET_STORAGE, ({ key }, { resolve, reject }) => {
fxy060608's avatar
fxy060608 已提交
9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987
  try {
    const data = getStorageOrigin(key);
    resolve({
      data
    });
  } catch (error) {
    reject(error.message);
  }
}, GetStorageProtocol);
const removeStorageSync = /* @__PURE__ */ defineSyncApi(API_REMOVE_STORAGE, (key) => {
  if (localStorage) {
    localStorage.removeItem(key);
  }
}, RemoveStorageSyncProtocol);
9988
const removeStorage = /* @__PURE__ */ defineAsyncApi(API_REMOVE_STORAGE, ({ key }, { resolve }) => {
fxy060608's avatar
fxy060608 已提交
9989 9990 9991 9992 9993 9994 9995 9996
  removeStorageSync(key);
  resolve();
}, RemoveStorageProtocol);
const clearStorageSync = /* @__PURE__ */ defineSyncApi("clearStorageSync", () => {
  if (localStorage) {
    localStorage.clear();
  }
});
9997
const clearStorage = /* @__PURE__ */ defineAsyncApi("clearStorage", (_, { resolve }) => {
fxy060608's avatar
fxy060608 已提交
9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018
  clearStorageSync();
  resolve();
});
const getStorageInfoSync = /* @__PURE__ */ defineSyncApi("getStorageInfoSync", () => {
  const length = localStorage && localStorage.length || 0;
  const keys = [];
  let currentSize = 0;
  for (let index2 = 0; index2 < length; index2++) {
    const key = localStorage.key(index2);
    const value = localStorage.getItem(key) || "";
    currentSize += key.length + value.length;
    if (key !== STORAGE_KEYS) {
      keys.push(key);
    }
  }
  return {
    keys,
    currentSize: Math.ceil(currentSize * 2 / 1024),
    limitSize: Number.MAX_VALUE
  };
});
10019
const getStorageInfo = /* @__PURE__ */ defineAsyncApi("getStorageInfo", (_, { resolve }) => {
fxy060608's avatar
fxy060608 已提交
10020 10021 10022 10023 10024 10025 10026 10027 10028 10029
  resolve(getStorageInfoSync());
});
const getSystemInfoSync = /* @__PURE__ */ defineSyncApi("getSystemInfoSync", () => {
  {
    return {
      deviceId: Date.now() + "" + Math.floor(Math.random() * 1e7),
      platform: "nodejs"
    };
  }
});
Q
qiang 已提交
10030 10031
function updateDocumentTitle(title) {
  {
fxy060608's avatar
fxy060608 已提交
10032 10033 10034 10035
    const ssrContext = getApp$1().$.appContext.provides[vue.ssrContextKey];
    if (ssrContext) {
      ssrContext[uniShared.UNI_SSR_TITLE] = title;
    }
Q
qiang 已提交
10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047
  }
}
function useDocumentTitle(pageMeta) {
  function update() {
    updateDocumentTitle(pageMeta.navigationBar.titleText);
  }
  vue.watchEffect(update);
}
function setNavigationBar(pageMeta, type, args, resolve, reject) {
  if (!pageMeta) {
    return reject("page not found");
  }
10048
  const { navigationBar } = pageMeta;
Q
qiang 已提交
10049 10050
  switch (type) {
    case API_SET_NAVIGATION_BAR_COLOR:
10051 10052
      const { frontColor, backgroundColor, animation: animation2 } = args;
      const { duration, timingFunc } = animation2;
Q
qiang 已提交
10053
      if (frontColor) {
fxy060608's avatar
fxy060608 已提交
10054
        navigationBar.titleColor = frontColor === "#000000" ? "#000000" : "#ffffff";
Q
qiang 已提交
10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068
      }
      if (backgroundColor) {
        navigationBar.backgroundColor = backgroundColor;
      }
      navigationBar.duration = duration + "ms";
      navigationBar.timingFunc = timingFunc;
      break;
    case API_SHOW_NAVIGATION_BAR_LOADING:
      navigationBar.loading = true;
      break;
    case API_HIDE_NAVIGATION_BAR_LOADING:
      navigationBar.loading = false;
      break;
    case API_SET_NAVIGATION_BAR_TITLE:
10069
      const { title } = args;
Q
qiang 已提交
10070 10071 10072 10073 10074 10075 10076 10077
      navigationBar.titleText = title;
      {
        updateDocumentTitle(args.title);
      }
      break;
  }
  resolve();
}
10078
const setNavigationBarTitle = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_TITLE, (args, { resolve, reject }) => {
Q
qiang 已提交
10079 10080
  setNavigationBar(getCurrentPageMeta(), API_SET_NAVIGATION_BAR_TITLE, args, resolve, reject);
}, SetNavigationBarTitleProtocol);
fxy060608's avatar
fxy060608 已提交
10081 10082
require("localstorage-polyfill");
global.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
fxy060608's avatar
fxy060608 已提交
10083
var api = /* @__PURE__ */ Object.defineProperty({
fxy060608's avatar
fxy060608 已提交
10084
  __proto__: null,
Q
qiang 已提交
10085
  setNavigationBarTitle,
fxy060608's avatar
fxy060608 已提交
10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097
  request,
  setStorageSync,
  setStorage,
  getStorageSync,
  getStorage,
  removeStorageSync,
  removeStorage,
  clearStorageSync,
  clearStorage,
  getStorageInfoSync,
  getStorageInfo,
  getSystemInfoSync
fxy060608's avatar
fxy060608 已提交
10098
}, Symbol.toStringTag, { value: "Module" });
fxy060608's avatar
fxy060608 已提交
10099
const uni$1 = api;
fxy060608's avatar
fxy060608 已提交
10100
const UniServiceJSBridge$1 = /* @__PURE__ */ shared.extend(ServiceJSBridge, {
Q
qiang 已提交
10101
  publishHandler(event, args, pageId) {
10102
    UniViewJSBridge.subscribeHandler(event, args, pageId);
fxy060608's avatar
fxy060608 已提交
10103 10104
  }
});
10105
var TabBar = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
10106 10107
  name: "TabBar",
  setup() {
10108
    const visibleList = vue.ref([]);
fxy060608's avatar
fxy060608 已提交
10109
    const tabBar2 = useTabBar();
10110
    useVisibleList(tabBar2, visibleList);
fxy060608's avatar
fxy060608 已提交
10111
    useTabBarCssVar(tabBar2);
10112
    const onSwitchTab = useSwitchTab(vueRouter.useRoute(), tabBar2, visibleList);
fxy060608's avatar
fxy060608 已提交
10113
    const {
fxy060608's avatar
fxy060608 已提交
10114
      style,
fxy060608's avatar
fxy060608 已提交
10115 10116 10117 10118
      borderStyle,
      placeholderStyle
    } = useTabBarStyle(tabBar2);
    return () => {
10119
      const tabBarItemsTsx = createTabBarItemsTsx(tabBar2, onSwitchTab, visibleList);
fxy060608's avatar
fxy060608 已提交
10120
      return vue.createVNode("uni-tabbar", {
fxy060608's avatar
fxy060608 已提交
10121
        "class": "uni-tabbar-" + tabBar2.position
fxy060608's avatar
fxy060608 已提交
10122 10123 10124 10125 10126 10127 10128 10129 10130 10131
      }, [vue.createVNode("div", {
        "class": "uni-tabbar",
        "style": style.value
      }, [vue.createVNode("div", {
        "class": "uni-tabbar-border",
        "style": borderStyle.value
      }, null, 4), tabBarItemsTsx], 4), vue.createVNode("div", {
        "class": "uni-placeholder",
        "style": placeholderStyle.value
      }, null, 4)], 2);
fxy060608's avatar
fxy060608 已提交
10132
    };
fxy060608's avatar
fxy060608 已提交
10133 10134
  }
});
fxy060608's avatar
fxy060608 已提交
10135
function useTabBarCssVar(tabBar2) {
fxy060608's avatar
fxy060608 已提交
10136
  vue.watch(() => tabBar2.shown, (value) => {
fxy060608's avatar
fxy060608 已提交
10137 10138 10139 10140 10141
    updatePageCssVar({
      "--window-bottom": normalizeWindowBottom(value ? parseInt(tabBar2.height) : 0)
    });
  });
}
10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156
function useVisibleList(tabBar2, visibleList) {
  function setVisibleList() {
    let tempList = [];
    tempList = tabBar2.list.filter((item) => item.visible !== false);
    if (__UNI_FEATURE_TABBAR_MIDBUTTON__) {
      tempList = tempList.filter((item) => !isMidButton(item));
      if (tempList.length % 2 === 0) {
        tempList.splice(Math.floor(tempList.length / 2), 0, tabBar2.list[Math.floor(tabBar2.list.length / 2)]);
      }
    }
    visibleList.value = tempList;
  }
  vue.watchEffect(setVisibleList);
}
function useSwitchTab(route, tabBar2, visibleList) {
fxy060608's avatar
fxy060608 已提交
10157
  vue.watchEffect(() => {
fxy060608's avatar
fxy060608 已提交
10158 10159 10160
    const meta = route.meta;
    if (meta.isTabBar) {
      const pagePath = meta.route;
10161
      const index2 = visibleList.value.findIndex((item) => item.pagePath === pagePath);
fxy060608's avatar
fxy060608 已提交
10162
      tabBar2.selectedIndex = index2;
fxy060608's avatar
fxy060608 已提交
10163
    }
fxy060608's avatar
fxy060608 已提交
10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174
  });
  return (tabBarItem, index2) => {
    const {
      type
    } = tabBarItem;
    return () => {
      if (__UNI_FEATURE_TABBAR_MIDBUTTON__ && type === "midButton") {
        return UniServiceJSBridge.invokeOnCallback(API_ON_TAB_BAR_MID_BUTTON_TAP);
      }
      const {
        pagePath,
fxy060608's avatar
fxy060608 已提交
10175
        text
fxy060608's avatar
fxy060608 已提交
10176
      } = tabBarItem;
fxy060608's avatar
fxy060608 已提交
10177
      let url = uniShared.addLeadingSlash(pagePath);
fxy060608's avatar
fxy060608 已提交
10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188
      if (url === __uniRoutes[0].alias) {
        url = "/";
      }
      if (route.path !== url) {
        uni.switchTab({
          from: "tabBar",
          url
        });
      } else {
        invokeHook("onTabItemTap", {
          index: index2,
fxy060608's avatar
fxy060608 已提交
10189
          text,
fxy060608's avatar
fxy060608 已提交
10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208
          pagePath
        });
      }
    };
  };
}
const DEFAULT_BG_COLOR = "#f7f7fa";
const BLUR_EFFECT_COLOR_DARK = "rgb(0, 0, 0, 0.8)";
const BLUR_EFFECT_COLOR_LIGHT = "rgb(250, 250, 250, 0.8)";
const BLUR_EFFECT_COLORS = {
  dark: BLUR_EFFECT_COLOR_DARK,
  light: BLUR_EFFECT_COLOR_LIGHT,
  extralight: BLUR_EFFECT_COLOR_LIGHT
};
const BORDER_COLORS = {
  white: "rgba(255, 255, 255, 0.33)",
  black: "rgba(0, 0, 0, 0.33)"
};
function useTabBarStyle(tabBar2) {
fxy060608's avatar
fxy060608 已提交
10209
  const style = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10210 10211 10212
    let backgroundColor = tabBar2.backgroundColor;
    const blurEffect = tabBar2.blurEffect;
    if (!backgroundColor) {
fxy060608's avatar
fxy060608 已提交
10213
      if (blurEffect && blurEffect !== "none") {
fxy060608's avatar
fxy060608 已提交
10214
        backgroundColor = BLUR_EFFECT_COLORS[blurEffect];
fxy060608's avatar
fxy060608 已提交
10215 10216
      }
    }
fxy060608's avatar
fxy060608 已提交
10217 10218 10219 10220 10221
    return {
      backgroundColor: backgroundColor || DEFAULT_BG_COLOR,
      backdropFilter: blurEffect !== "none" ? "blur(10px)" : blurEffect
    };
  });
fxy060608's avatar
fxy060608 已提交
10222
  const borderStyle = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10223 10224 10225 10226 10227 10228 10229
    const {
      borderStyle: borderStyle2
    } = tabBar2;
    return {
      backgroundColor: BORDER_COLORS[borderStyle2] || borderStyle2
    };
  });
fxy060608's avatar
fxy060608 已提交
10230
  const placeholderStyle = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10231 10232 10233 10234 10235
    return {
      height: tabBar2.height
    };
  });
  return {
fxy060608's avatar
fxy060608 已提交
10236
    style,
fxy060608's avatar
fxy060608 已提交
10237 10238
    borderStyle,
    placeholderStyle
fxy060608's avatar
fxy060608 已提交
10239 10240
  };
}
fxy060608's avatar
fxy060608 已提交
10241 10242
function isMidButton(item) {
  return item.type === "midButton";
fxy060608's avatar
fxy060608 已提交
10243
}
10244
function createTabBarItemsTsx(tabBar2, onSwitchTab, visibleList) {
fxy060608's avatar
fxy060608 已提交
10245 10246 10247 10248 10249
  const {
    selectedIndex,
    selectedColor,
    color
  } = tabBar2;
10250
  return visibleList.value.map((item, index2) => {
fxy060608's avatar
fxy060608 已提交
10251 10252 10253
    const selected = selectedIndex === index2;
    const textColor = selected ? selectedColor : color;
    const iconPath = (selected ? item.selectedIconPath || item.iconPath : item.iconPath) || "";
fxy060608's avatar
fxy060608 已提交
10254 10255
    const iconfontText = item.iconfont ? selected ? item.iconfont.selectedText || item.iconfont.text : item.iconfont.text : void 0;
    const iconfontColor = item.iconfont ? selected ? item.iconfont.selectedColor || item.iconfont.color : item.iconfont.color : void 0;
fxy060608's avatar
fxy060608 已提交
10256
    if (!__UNI_FEATURE_TABBAR_MIDBUTTON__) {
fxy060608's avatar
fxy060608 已提交
10257
      return createTabBarItemTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab);
fxy060608's avatar
fxy060608 已提交
10258
    }
fxy060608's avatar
fxy060608 已提交
10259
    return isMidButton(item) ? createTabBarMidButtonTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab) : createTabBarItemTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab);
fxy060608's avatar
fxy060608 已提交
10260 10261
  });
}
fxy060608's avatar
fxy060608 已提交
10262
function createTabBarItemTsx(color, iconPath, iconfontText, iconfontColor, tabBarItem, tabBar2, index2, onSwitchTab) {
fxy060608's avatar
fxy060608 已提交
10263
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10264 10265 10266
    "key": index2,
    "class": "uni-tabbar__item",
    "onClick": onSwitchTab(tabBarItem, index2)
fxy060608's avatar
fxy060608 已提交
10267
  }, [createTabBarItemBdTsx(color, iconPath || "", iconfontText, iconfontColor, tabBarItem, tabBar2)], 8, ["onClick"]);
fxy060608's avatar
fxy060608 已提交
10268
}
fxy060608's avatar
fxy060608 已提交
10269
function createTabBarItemBdTsx(color, iconPath, iconfontText, iconfontColor, tabBarItem, tabBar2) {
fxy060608's avatar
fxy060608 已提交
10270 10271 10272
  const {
    height
  } = tabBar2;
fxy060608's avatar
fxy060608 已提交
10273
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10274 10275
    "class": "uni-tabbar__bd",
    "style": {
fxy060608's avatar
fxy060608 已提交
10276 10277
      height
    }
fxy060608's avatar
fxy060608 已提交
10278
  }, [iconfontText ? createTabBarItemIconfontTsx(iconfontText, iconfontColor || BLUR_EFFECT_COLOR_DARK, tabBarItem, tabBar2) : iconPath && createTabBarItemIconTsx(iconPath, tabBarItem, tabBar2), tabBarItem.text && createTabBarItemTextTsx(color, tabBarItem, tabBar2)], 4);
fxy060608's avatar
fxy060608 已提交
10279 10280 10281 10282
}
function createTabBarItemIconTsx(iconPath, tabBarItem, tabBar2) {
  const {
    type,
fxy060608's avatar
fxy060608 已提交
10283
    text,
fxy060608's avatar
fxy060608 已提交
10284 10285 10286 10287 10288
    redDot
  } = tabBarItem;
  const {
    iconWidth
  } = tabBar2;
fxy060608's avatar
fxy060608 已提交
10289
  const clazz2 = "uni-tabbar__icon" + (text ? " uni-tabbar__icon__diff" : "");
fxy060608's avatar
fxy060608 已提交
10290
  const style = {
fxy060608's avatar
fxy060608 已提交
10291 10292 10293
    width: iconWidth,
    height: iconWidth
  };
fxy060608's avatar
fxy060608 已提交
10294
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10295 10296
    "class": clazz2,
    "style": style
fxy060608's avatar
fxy060608 已提交
10297
  }, [type !== "midButton" && vue.createVNode("img", {
fxy060608's avatar
fxy060608 已提交
10298
    "src": getRealPath(iconPath)
fxy060608's avatar
fxy060608 已提交
10299 10300
  }, null, 8, ["src"]), redDot && createTabBarItemRedDotTsx(tabBarItem.badge)], 6);
}
fxy060608's avatar
fxy060608 已提交
10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327
function createTabBarItemIconfontTsx(iconfontText, iconfontColor, tabBarItem, tabBar2) {
  var _a;
  const {
    type,
    text,
    redDot
  } = tabBarItem;
  const {
    iconWidth
  } = tabBar2;
  const clazz2 = "uni-tabbar__icon" + (text ? " uni-tabbar__icon__diff" : "");
  const style = {
    width: iconWidth,
    height: iconWidth
  };
  const iconfontStyle = {
    fontSize: ((_a = tabBarItem.iconfont) == null ? void 0 : _a.fontSize) || iconWidth,
    color: iconfontColor
  };
  return vue.createVNode("div", {
    "class": clazz2,
    "style": style
  }, [type !== "midButton" && vue.createVNode("div", {
    "class": "uni-tabbar__iconfont",
    "style": iconfontStyle
  }, [iconfontText], 4), redDot && createTabBarItemRedDotTsx(tabBarItem.badge)], 6);
}
fxy060608's avatar
fxy060608 已提交
10328 10329 10330 10331
function createTabBarItemTextTsx(color, tabBarItem, tabBar2) {
  const {
    redDot,
    iconPath,
fxy060608's avatar
fxy060608 已提交
10332
    text
fxy060608's avatar
fxy060608 已提交
10333 10334 10335 10336 10337
  } = tabBarItem;
  const {
    fontSize,
    spacing
  } = tabBar2;
fxy060608's avatar
fxy060608 已提交
10338
  const style = {
fxy060608's avatar
fxy060608 已提交
10339 10340 10341 10342 10343
    color,
    fontSize,
    lineHeight: !iconPath ? 1.8 : "normal",
    marginTop: !iconPath ? "inherit" : spacing
  };
fxy060608's avatar
fxy060608 已提交
10344
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10345 10346
    "class": "uni-tabbar__label",
    "style": style
fxy060608's avatar
fxy060608 已提交
10347
  }, [text, redDot && !iconPath && createTabBarItemRedDotTsx(tabBarItem.badge)], 4);
fxy060608's avatar
fxy060608 已提交
10348 10349
}
function createTabBarItemRedDotTsx(badge) {
fxy060608's avatar
fxy060608 已提交
10350
  const clazz2 = "uni-tabbar__reddot" + (badge ? " uni-tabbar__badge" : "");
fxy060608's avatar
fxy060608 已提交
10351
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10352
    "class": clazz2
fxy060608's avatar
fxy060608 已提交
10353 10354
  }, [badge], 2);
}
fxy060608's avatar
fxy060608 已提交
10355
function createTabBarMidButtonTsx(color, iconPath, iconfontText, iconfontColor, midButton, tabBar2, index2, onSwitchTab) {
fxy060608's avatar
fxy060608 已提交
10356 10357 10358 10359 10360 10361
  const {
    width,
    height,
    backgroundImage,
    iconWidth
  } = midButton;
fxy060608's avatar
fxy060608 已提交
10362
  return vue.createVNode("div", {
10363
    "key": "midButton",
fxy060608's avatar
fxy060608 已提交
10364 10365
    "class": "uni-tabbar__item",
    "style": {
fxy060608's avatar
fxy060608 已提交
10366 10367 10368
      flex: "0 0 " + width,
      position: "relative"
    },
fxy060608's avatar
fxy060608 已提交
10369
    "onClick": onSwitchTab(midButton, index2)
fxy060608's avatar
fxy060608 已提交
10370
  }, [vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10371 10372
    "class": "uni-tabbar__mid",
    "style": {
fxy060608's avatar
fxy060608 已提交
10373 10374 10375 10376
      width,
      height,
      backgroundImage: backgroundImage ? "url('" + getRealPath(backgroundImage) + "')" : "none"
    }
fxy060608's avatar
fxy060608 已提交
10377
  }, [iconPath && vue.createVNode("img", {
fxy060608's avatar
fxy060608 已提交
10378
    "style": {
fxy060608's avatar
fxy060608 已提交
10379 10380 10381
      width: iconWidth,
      height: iconWidth
    },
fxy060608's avatar
fxy060608 已提交
10382
    "src": getRealPath(iconPath)
fxy060608's avatar
fxy060608 已提交
10383
  }, null, 12, ["src"])], 4), createTabBarItemBdTsx(color, iconPath, iconfontText, iconfontColor, midButton, tabBar2)], 12, ["onClick"]);
10384
}
10385
var LayoutComponent = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
10386
  name: "Layout",
fxy060608's avatar
fxy060608 已提交
10387
  setup(_props, {
Q
qiang 已提交
10388
    emit: emit2
fxy060608's avatar
fxy060608 已提交
10389
  }) {
10390
    const rootRef = vue.ref(null);
fxy060608's avatar
fxy060608 已提交
10391
    const keepAliveRoute = __UNI_FEATURE_PAGES__ && useKeepAliveRoute();
10392 10393 10394
    const {
      layoutState,
      windowState
fxy060608's avatar
fxy060608 已提交
10395 10396
    } = useState();
    useMaxWidth(layoutState, rootRef);
10397 10398 10399
    const topWindow = __UNI_FEATURE_TOPWINDOW__ && useTopWindow(layoutState);
    const leftWindow = __UNI_FEATURE_LEFTWINDOW__ && useLeftWindow(layoutState);
    const rightWindow = __UNI_FEATURE_RIGHTWINDOW__ && useRightWindow(layoutState);
fxy060608's avatar
fxy060608 已提交
10400 10401
    const showTabBar = __UNI_FEATURE_TABBAR__ && useShowTabBar();
    const clazz2 = useAppClass(showTabBar);
fxy060608's avatar
fxy060608 已提交
10402
    return () => {
10403
      const layoutTsx = createLayoutTsx(keepAliveRoute, layoutState, windowState, topWindow, leftWindow, rightWindow);
fxy060608's avatar
fxy060608 已提交
10404
      const tabBarTsx = __UNI_FEATURE_TABBAR__ && createTabBarTsx(showTabBar);
fxy060608's avatar
fxy060608 已提交
10405
      return vue.createVNode("uni-app", {
10406
        "ref": rootRef,
fxy060608's avatar
fxy060608 已提交
10407
        "class": clazz2.value
fxy060608's avatar
fxy060608 已提交
10408
      }, [layoutTsx, tabBarTsx], 2);
fxy060608's avatar
fxy060608 已提交
10409 10410
    };
  }
10411
});
fxy060608's avatar
fxy060608 已提交
10412
function useAppClass(showTabBar) {
fxy060608's avatar
fxy060608 已提交
10413 10414
  const showMaxWidth = vue.ref(false);
  return vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10415
    return {
fxy060608's avatar
fxy060608 已提交
10416
      "uni-app--showtabbar": showTabBar && showTabBar.value,
fxy060608's avatar
fxy060608 已提交
10417 10418 10419 10420
      "uni-app--maxwidth": showMaxWidth.value
    };
  });
}
10421
function initMediaQuery(minWidth, callback) {
Q
qiang 已提交
10422 10423
  {
    return false;
10424 10425 10426
  }
}
function useMaxWidth(layoutState, rootRef) {
fxy060608's avatar
fxy060608 已提交
10427
  const route = usePageRoute();
10428 10429
  function checkMaxWidth() {
    const windowWidth = document.body.clientWidth;
Q
qiang 已提交
10430
    const maxWidth = parseInt(String(__uniConfig.globalStyle.maxWidth || Number.MAX_SAFE_INTEGER));
10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457
    let showMaxWidth = false;
    if (windowWidth > maxWidth) {
      showMaxWidth = true;
    } else {
      showMaxWidth = false;
    }
    if (showMaxWidth && maxWidth) {
      layoutState.marginWidth = (windowWidth - maxWidth) / 2;
      vue.nextTick(() => {
        const rootEl = rootRef.value;
        if (rootEl) {
          rootEl.setAttribute("style", "max-width:" + maxWidth + "px;margin:0 auto;");
        }
      });
    } else {
      layoutState.marginWidth = 0;
      vue.nextTick(() => {
        const rootEl = rootRef.value;
        if (rootEl) {
          rootEl.removeAttribute("style");
        }
      });
    }
  }
  vue.watch([() => route.path], checkMaxWidth);
}
function useState() {
10458
  const route = usePageRoute();
fxy060608's avatar
fxy060608 已提交
10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469
  if (!__UNI_FEATURE_RESPONSIVE__) {
    const layoutState2 = vue.reactive({
      marginWidth: 0
    });
    vue.watch(() => layoutState2.marginWidth, (value) => updateCssVar({
      "--window-margin": value + "px"
    }));
    return {
      layoutState: layoutState2
    };
  }
10470 10471 10472
  const topWindowMediaQuery = vue.ref(false);
  const leftWindowMediaQuery = vue.ref(false);
  const rightWindowMediaQuery = vue.ref(false);
10473 10474 10475
  const showTopWindow = vue.computed(() => __UNI_FEATURE_TOPWINDOW__ && route.meta.topWindow !== false && topWindowMediaQuery.value);
  const showLeftWindow = vue.computed(() => __UNI_FEATURE_LEFTWINDOW__ && route.meta.leftWindow !== false && leftWindowMediaQuery.value);
  const showRightWindow = vue.computed(() => __UNI_FEATURE_RIGHTWINDOW__ && route.meta.rightWindow !== false && rightWindowMediaQuery.value);
10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498
  const layoutState = vue.reactive({
    topWindowMediaQuery,
    showTopWindow,
    apiShowTopWindow: false,
    leftWindowMediaQuery,
    showLeftWindow,
    apiShowLeftWindow: false,
    rightWindowMediaQuery,
    showRightWindow,
    apiShowRightWindow: false,
    topWindowHeight: 0,
    marginWidth: 0,
    leftWindowWidth: 0,
    rightWindowWidth: 0,
    topWindowStyle: {},
    leftWindowStyle: {},
    rightWindowStyle: {}
  });
  const props2 = ["topWindow", "leftWindow", "rightWindow"];
  props2.forEach((prop) => {
    var _a;
    const matchMedia = (_a = __uniConfig[prop]) == null ? void 0 : _a.matchMedia;
    if (matchMedia && shared.hasOwn(matchMedia, "minWidth")) {
Q
qiang 已提交
10499
      matchMedia.minWidth;
10500
    }
Q
qiang 已提交
10501
    const matches = initMediaQuery();
10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529
    layoutState[`${prop}MediaQuery`] = matches;
  });
  vue.watch(() => layoutState.topWindowHeight, (value) => updateCssVar({
    "--top-window-height": value + "px"
  }));
  vue.watch(() => layoutState.marginWidth, (value) => updateCssVar({
    "--window-margin": value + "px"
  }));
  vue.watch(() => layoutState.leftWindowWidth + layoutState.marginWidth, (value) => updateCssVar({
    "--window-left": value + "px"
  }));
  vue.watch(() => layoutState.rightWindowWidth + layoutState.marginWidth, (value) => updateCssVar({
    "--window-right": value + "px"
  }));
  const windowState = vue.reactive({
    matchTopWindow: layoutState.topWindowMediaQuery,
    showTopWindow: layoutState.showTopWindow || layoutState.apiShowTopWindow,
    matchLeftWindow: layoutState.leftWindowMediaQuery,
    showLeftWindow: layoutState.showLeftWindow || layoutState.apiShowLeftWindow,
    matchRightWindow: layoutState.rightWindowMediaQuery,
    showRightWindow: layoutState.showRightWindow || layoutState.apiShowRightWindow
  });
  return {
    layoutState,
    windowState
  };
}
function createLayoutTsx(keepAliveRoute, layoutState, windowState, topWindow, leftWindow, rightWindow) {
fxy060608's avatar
fxy060608 已提交
10530 10531 10532
  const routerVNode = __UNI_FEATURE_PAGES__ ? createRouterViewVNode(keepAliveRoute) : createPageVNode();
  if (!__UNI_FEATURE_RESPONSIVE__) {
    return routerVNode;
fxy060608's avatar
fxy060608 已提交
10533
  }
10534 10535 10536
  const topWindowTsx = __UNI_FEATURE_TOPWINDOW__ ? createTopWindowTsx(topWindow, layoutState, windowState) : null;
  const leftWindowTsx = __UNI_FEATURE_LEFTWINDOW__ ? createLeftWindowTsx(leftWindow, layoutState, windowState) : null;
  const rightWindowTsx = __UNI_FEATURE_RIGHTWINDOW__ ? createRightWindowTsx(rightWindow, layoutState, windowState) : null;
fxy060608's avatar
fxy060608 已提交
10537
  return vue.createVNode("uni-layout", {
Q
qiang 已提交
10538 10539 10540 10541 10542
    "class": {
      "uni-app--showtopwindow": __UNI_FEATURE_TOPWINDOW__ && layoutState.showTopWindow,
      "uni-app--showleftwindow": __UNI_FEATURE_LEFTWINDOW__ && layoutState.showLeftWindow,
      "uni-app--showrightwindow": __UNI_FEATURE_RIGHTWINDOW__ && layoutState.showRightWindow
    }
fxy060608's avatar
fxy060608 已提交
10543
  }, [topWindowTsx, vue.createVNode("uni-content", null, [vue.createVNode("uni-main", null, [routerVNode]), leftWindowTsx, rightWindowTsx])], 2);
fxy060608's avatar
fxy060608 已提交
10544
}
Q
qiang 已提交
10545
function useShowTabBar(emit2) {
fxy060608's avatar
fxy060608 已提交
10546
  const route = usePageRoute();
fxy060608's avatar
fxy060608 已提交
10547
  const tabBar2 = useTabBar();
fxy060608's avatar
fxy060608 已提交
10548 10549
  const showTabBar = vue.computed(() => route.meta.isTabBar && tabBar2.shown);
  return showTabBar;
fxy060608's avatar
fxy060608 已提交
10550
}
fxy060608's avatar
fxy060608 已提交
10551 10552
function createTabBarTsx(showTabBar) {
  return vue.withDirectives(vue.createVNode(TabBar, null, null, 512), [[vue.vShow, showTabBar.value]]);
fxy060608's avatar
fxy060608 已提交
10553 10554
}
function createPageVNode() {
fxy060608's avatar
fxy060608 已提交
10555
  return vue.createVNode(__uniRoutes[0].component);
fxy060608's avatar
fxy060608 已提交
10556
}
fxy060608's avatar
fxy060608 已提交
10557 10558 10559 10560 10561
function createRouterViewVNode({
  routeKey,
  isTabBar,
  routeCache: routeCache2
}) {
fxy060608's avatar
fxy060608 已提交
10562 10563
  return vue.createVNode(vueRouter.RouterView, null, {
    default: vue.withCtx(({
fxy060608's avatar
fxy060608 已提交
10564
      Component
fxy060608's avatar
fxy060608 已提交
10565
    }) => [(vue.openBlock(), vue.createBlock(vue.KeepAlive, {
fxy060608's avatar
fxy060608 已提交
10566
      matchBy: "key",
fxy060608's avatar
fxy060608 已提交
10567
      cache: routeCache2
fxy060608's avatar
fxy060608 已提交
10568
    }, [(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {
fxy060608's avatar
fxy060608 已提交
10569 10570
      type: isTabBar.value ? "tabBar" : "",
      key: routeKey.value
fxy060608's avatar
fxy060608 已提交
10571 10572 10573 10574
    }))], 1032, ["cache"]))]),
    _: 1
  });
}
10575 10576 10577 10578 10579 10580 10581
function useTopWindow(layoutState) {
  const {
    component,
    style
  } = __uniConfig.topWindow;
  const windowRef = vue.ref(null);
  function updateWindow() {
Q
qiang 已提交
10582 10583
    const instance = windowRef.value;
    const el = uniShared.resolveOwnerEl(instance.$);
10584 10585 10586 10587 10588
    const height = el.getBoundingClientRect().height;
    layoutState.topWindowHeight = height;
  }
  vue.watch(() => layoutState.showTopWindow || layoutState.apiShowTopWindow, () => vue.nextTick(updateWindow));
  layoutState.topWindowStyle = style;
fxy060608's avatar
fxy060608 已提交
10589 10590
  return {
    component,
10591
    windowRef
fxy060608's avatar
fxy060608 已提交
10592 10593
  };
}
10594 10595 10596 10597 10598 10599 10600
function useLeftWindow(layoutState) {
  const {
    component,
    style
  } = __uniConfig.leftWindow;
  const windowRef = vue.ref(null);
  function updateWindow() {
Q
qiang 已提交
10601 10602
    const instance = windowRef.value;
    const el = uniShared.resolveOwnerEl(instance.$);
10603 10604 10605 10606 10607
    const width = el.getBoundingClientRect().width;
    layoutState.leftWindowWidth = width;
  }
  vue.watch(() => layoutState.showLeftWindow || layoutState.apiShowLeftWindow, () => vue.nextTick(updateWindow));
  layoutState.leftWindowStyle = style;
fxy060608's avatar
fxy060608 已提交
10608 10609
  return {
    component,
10610
    windowRef
fxy060608's avatar
fxy060608 已提交
10611 10612
  };
}
10613 10614 10615 10616 10617 10618 10619
function useRightWindow(layoutState) {
  const {
    component,
    style
  } = __uniConfig.rightWindow;
  const windowRef = vue.ref(null);
  function updateWindow() {
Q
qiang 已提交
10620 10621
    const instance = windowRef.value;
    const el = uniShared.resolveOwnerEl(instance.$);
10622 10623 10624 10625 10626
    const width = el.getBoundingClientRect().width;
    layoutState.rightWindowWidth = width;
  }
  vue.watch(() => layoutState.showRightWindow || layoutState.apiShowRightWindow, () => vue.nextTick(updateWindow));
  layoutState.rightWindowStyle = style;
fxy060608's avatar
fxy060608 已提交
10627 10628
  return {
    component,
10629
    windowRef
fxy060608's avatar
fxy060608 已提交
10630 10631
  };
}
10632 10633 10634 10635 10636 10637
function createTopWindowTsx(topWindow, layoutState, windowState) {
  if (topWindow) {
    const {
      component: TopWindow,
      windowRef
    } = topWindow;
fxy060608's avatar
fxy060608 已提交
10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648
    return vue.withDirectives(vue.createVNode("uni-top-window", null, [vue.createVNode("div", {
      "class": "uni-top-window",
      "style": layoutState.topWindowStyle
    }, [vue.createVNode(TopWindow, vue.mergeProps({
      "ref": windowRef
    }, windowState), null, 16)], 4), vue.createVNode("div", {
      "class": "uni-top-window--placeholder",
      "style": {
        height: layoutState.topWindowHeight + "px"
      }
    }, null, 4)], 512), [[vue.vShow, layoutState.showTopWindow || layoutState.apiShowTopWindow]]);
10649 10650 10651 10652 10653 10654 10655 10656
  }
}
function createLeftWindowTsx(leftWindow, layoutState, windowState) {
  if (leftWindow) {
    const {
      component: LeftWindow,
      windowRef
    } = leftWindow;
fxy060608's avatar
fxy060608 已提交
10657
    return vue.withDirectives(vue.createVNode("uni-left-window", {
10658 10659
      "data-show": layoutState.apiShowLeftWindow || void 0,
      "style": layoutState.leftWindowStyle
fxy060608's avatar
fxy060608 已提交
10660 10661 10662 10663 10664 10665 10666 10667
    }, [layoutState.apiShowLeftWindow ? vue.createVNode("div", {
      "class": "uni-mask",
      "onClick": () => layoutState.apiShowLeftWindow = false
    }, null, 8, ["onClick"]) : null, vue.createVNode("div", {
      "class": "uni-left-window"
    }, [vue.createVNode(LeftWindow, vue.mergeProps({
      "ref": windowRef
    }, windowState), null, 16)])], 12, ["data-show"]), [[vue.vShow, layoutState.showLeftWindow || layoutState.apiShowLeftWindow]]);
10668 10669 10670 10671 10672 10673 10674 10675
  }
}
function createRightWindowTsx(rightWindow, layoutState, windowState) {
  if (rightWindow) {
    const {
      component: RightWindow,
      windowRef
    } = rightWindow;
fxy060608's avatar
fxy060608 已提交
10676
    return vue.withDirectives(vue.createVNode("uni-right-window", {
10677 10678
      "data-show": layoutState.apiShowRightWindow || void 0,
      "style": layoutState.rightWindowStyle
fxy060608's avatar
fxy060608 已提交
10679 10680 10681 10682 10683 10684 10685 10686
    }, [layoutState.apiShowRightWindow ? vue.createVNode("div", {
      "class": "uni-mask",
      "onClick": () => layoutState.apiShowRightWindow = false
    }, null, 8, ["onClick"]) : null, vue.createVNode("div", {
      "class": "uni-right-window"
    }, [vue.createVNode(RightWindow, vue.mergeProps({
      "ref": windowRef
    }, windowState), null, 16)])], 12, ["data-show"]), [[vue.vShow, layoutState.showRightWindow || layoutState.apiShowRightWindow]]);
10687
  }
fxy060608's avatar
fxy060608 已提交
10688
}
fxy060608's avatar
fxy060608 已提交
10689
function usePageHeadTransparentBackgroundColor(backgroundColor) {
10690
  const { r, g: g2, b } = hexToRgba(backgroundColor);
fxy060608's avatar
fxy060608 已提交
10691 10692
  return `rgba(${r},${g2},${b},0)`;
}
fxy060608's avatar
fxy060608 已提交
10693
function usePageHeadTransparent(headRef, {
fxy060608's avatar
fxy060608 已提交
10694
  id,
10695
  navigationBar: { titleColor, coverage, backgroundColor }
fxy060608's avatar
fxy060608 已提交
10696
}) {
fxy060608's avatar
fxy060608 已提交
10697
  vue.computed(() => hexToRgba(backgroundColor));
fxy060608's avatar
fxy060608 已提交
10698 10699
}
const ICON_PATHS = {
fxy060608's avatar
fxy060608 已提交
10700
  none: "",
fxy060608's avatar
fxy060608 已提交
10701 10702 10703 10704 10705 10706
  forward: "M11 7.844q-0.25-0.219-0.25-0.578t0.25-0.578q0.219-0.25 0.563-0.25t0.563 0.25l9.656 9.125q0.125 0.125 0.188 0.297t0.063 0.328q0 0.188-0.063 0.359t-0.188 0.297l-9.656 9.125q-0.219 0.25-0.563 0.25t-0.563-0.25q-0.25-0.219-0.25-0.578t0.25-0.609l9.063-8.594-9.063-8.594z",
  back: ICON_PATH_BACK,
  share: "M26.563 24.844q0 0.125-0.109 0.234t-0.234 0.109h-17.938q-0.125 0-0.219-0.109t-0.094-0.234v-13.25q0-0.156 0.094-0.25t0.219-0.094h5.5v-1.531h-6q-0.531 0-0.906 0.391t-0.375 0.922v14.375q0 0.531 0.375 0.922t0.906 0.391h18.969q0.531 0 0.891-0.391t0.359-0.953v-5.156h-1.438v4.625zM29.813 10.969l-5.125-5.375-1.031 1.094 3.438 3.594-3.719 0.031q-2.313 0.188-4.344 1.125t-3.578 2.422-2.5 3.453-1.109 4.188l-0.031 0.25h1.469v-0.219q0.156-1.875 1-3.594t2.25-3.063 3.234-2.125 3.828-0.906l0.188-0.031 3.313-0.031-3.438 3.625 1.031 1.063 5.125-5.375-0.031-0.063 0.031-0.063z",
  favorite: "M27.594 13.375q-0.063-0.188-0.219-0.313t-0.344-0.156l-7.094-0.969-3.219-6.406q-0.094-0.188-0.25-0.281t-0.375-0.094q-0.188 0-0.344 0.094t-0.25 0.281l-3.125 6.438-7.094 1.094q-0.188 0.031-0.344 0.156t-0.219 0.313q-0.031 0.188 0.016 0.375t0.172 0.313l5.156 4.969-1.156 7.063q-0.031 0.188 0.047 0.375t0.234 0.313q0.094 0.063 0.188 0.094t0.219 0.031q0.063 0 0.141-0.031t0.172-0.063l6.313-3.375 6.375 3.313q0.063 0.031 0.141 0.047t0.172 0.016q0.188 0 0.344-0.094t0.25-0.281q0.063-0.094 0.078-0.234t-0.016-0.234q0-0.031 0-0.063l-1.25-6.938 5.094-5.031q0.156-0.156 0.203-0.344t-0.016-0.375zM11.469 19.063q0.031-0.188-0.016-0.344t-0.172-0.281l-4.406-4.25 6.063-0.906q0.156-0.031 0.297-0.125t0.203-0.25l2.688-5.531 2.75 5.5q0.063 0.156 0.203 0.25t0.297 0.125l6.094 0.844-4.375 4.281q-0.125 0.125-0.172 0.297t-0.016 0.328l1.063 6.031-5.438-2.813q-0.156-0.094-0.328-0.078t-0.297 0.078l-5.438 2.875 1-6.031z",
  home: "M23.719 16.5q-0.313 0-0.531 0.219t-0.219 0.5v7.063q0 0.219-0.172 0.391t-0.391 0.172h-12.344q-0.25 0-0.422-0.172t-0.172-0.391v-7.063q0-0.281-0.219-0.5t-0.531-0.219q-0.281 0-0.516 0.219t-0.234 0.5v7.063q0.031 0.844 0.625 1.453t1.438 0.609h12.375q0.844 0 1.453-0.609t0.609-1.453v-7.063q0-0.125-0.063-0.266t-0.156-0.234q-0.094-0.125-0.234-0.172t-0.297-0.047zM26.5 14.875l-8.813-8.813q-0.313-0.313-0.688-0.453t-0.781-0.141-0.781 0.141-0.656 0.422l-8.813 8.844q-0.188 0.219-0.188 0.516t0.219 0.484q0.094 0.125 0.234 0.172t0.297 0.047q0.125 0 0.25-0.047t0.25-0.141l8.781-8.781q0.156-0.156 0.406-0.156t0.406 0.156l8.813 8.781q0.219 0.188 0.516 0.188t0.516-0.219q0.188-0.188 0.203-0.484t-0.172-0.516z",
  menu: "M8.938 18.313q0.875 0 1.484-0.609t0.609-1.453-0.609-1.453-1.484-0.609q-0.844 0-1.453 0.609t-0.609 1.453 0.609 1.453 1.453 0.609zM16.188 18.313q0.875 0 1.484-0.609t0.609-1.453-0.609-1.453-1.484-0.609q-0.844 0-1.453 0.609t-0.609 1.453 0.609 1.453 1.453 0.609zM23.469 18.313q0.844 0 1.453-0.609t0.609-1.453-0.609-1.453-1.453-0.609q-0.875 0-1.484 0.609t-0.609 1.453 0.609 1.453 1.484 0.609z",
Q
qiang 已提交
10707
  close: ICON_PATH_CLOSE
fxy060608's avatar
fxy060608 已提交
10708
};
10709
var PageHead = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
10710 10711
  name: "PageHead",
  setup() {
fxy060608's avatar
fxy060608 已提交
10712
    const headRef = vue.ref(null);
fxy060608's avatar
fxy060608 已提交
10713
    const pageMeta = usePageMeta();
fxy060608's avatar
fxy060608 已提交
10714 10715
    const navigationBar = pageMeta.navigationBar;
    const {
fxy060608's avatar
fxy060608 已提交
10716
      clazz: clazz2,
fxy060608's avatar
fxy060608 已提交
10717
      style
fxy060608's avatar
fxy060608 已提交
10718
    } = usePageHead(navigationBar);
fxy060608's avatar
fxy060608 已提交
10719
    const buttons = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ && usePageHeadButtons(pageMeta);
fxy060608's avatar
fxy060608 已提交
10720
    const searchInput = __UNI_FEATURE_NAVIGATIONBAR_SEARCHINPUT__ && navigationBar.searchInput && usePageHeadSearchInput(pageMeta);
10721
    __UNI_FEATURE_NAVIGATIONBAR_TRANSPARENT__ && navigationBar.type === "transparent" && usePageHeadTransparent(headRef, pageMeta);
fxy060608's avatar
fxy060608 已提交
10722
    return () => {
fxy060608's avatar
fxy060608 已提交
10723
      const backButtonTsx = __UNI_FEATURE_PAGES__ ? createBackButtonTsx(pageMeta) : null;
fxy060608's avatar
fxy060608 已提交
10724 10725
      const leftButtonsTsx = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ ? createButtonsTsx(buttons.left) : [];
      const rightButtonsTsx = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ ? createButtonsTsx(buttons.right) : [];
fxy060608's avatar
fxy060608 已提交
10726
      const type = navigationBar.type || "default";
fxy060608's avatar
fxy060608 已提交
10727
      const placeholderTsx = type !== "transparent" && type !== "float" && vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10728
        "class": {
fxy060608's avatar
fxy060608 已提交
10729 10730 10731 10732
          "uni-placeholder": true,
          "uni-placeholder-titlePenetrate": navigationBar.titlePenetrate
        }
      }, null, 2);
fxy060608's avatar
fxy060608 已提交
10733
      return vue.createVNode("uni-page-head", {
fxy060608's avatar
fxy060608 已提交
10734
        "uni-page-head-type": type
fxy060608's avatar
fxy060608 已提交
10735 10736 10737 10738 10739 10740 10741 10742 10743
      }, [vue.createVNode("div", {
        "ref": headRef,
        "class": clazz2.value,
        "style": style.value
      }, [vue.createVNode("div", {
        "class": "uni-page-head-hd"
      }, [backButtonTsx, ...leftButtonsTsx]), createPageHeadBdTsx(navigationBar, searchInput), vue.createVNode("div", {
        "class": "uni-page-head-ft"
      }, [...rightButtonsTsx])], 6), placeholderTsx], 8, ["uni-page-head-type"]);
fxy060608's avatar
fxy060608 已提交
10744
    };
fxy060608's avatar
fxy060608 已提交
10745 10746
  }
});
fxy060608's avatar
fxy060608 已提交
10747 10748 10749 10750 10751
function createBackButtonTsx(pageMeta) {
  const {
    navigationBar,
    isQuit
  } = pageMeta;
fxy060608's avatar
fxy060608 已提交
10752
  if (!isQuit) {
fxy060608's avatar
fxy060608 已提交
10753
    return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10754 10755
      "class": "uni-page-head-btn",
      "onClick": onPageHeadBackButton
fxy060608's avatar
fxy060608 已提交
10756
    }, [createSvgIconVNode(ICON_PATH_BACK, navigationBar.type === "transparent" ? "#fff" : navigationBar.titleColor, 27)], 8, ["onClick"]);
fxy060608's avatar
fxy060608 已提交
10757 10758
  }
}
fxy060608's avatar
fxy060608 已提交
10759
function createButtonsTsx(btns) {
fxy060608's avatar
fxy060608 已提交
10760
  return btns.map(({
fxy060608's avatar
fxy060608 已提交
10761
    onClick,
fxy060608's avatar
fxy060608 已提交
10762 10763 10764
    btnClass,
    btnStyle,
    btnText,
fxy060608's avatar
fxy060608 已提交
10765
    btnIconPath,
fxy060608's avatar
fxy060608 已提交
10766 10767 10768
    badgeText,
    iconStyle
  }, index2) => {
fxy060608's avatar
fxy060608 已提交
10769
    return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10770 10771 10772 10773
      "key": index2,
      "class": btnClass,
      "style": btnStyle,
      "onClick": onClick,
fxy060608's avatar
fxy060608 已提交
10774
      "badge-text": badgeText
fxy060608's avatar
fxy060608 已提交
10775
    }, [btnIconPath ? createSvgIconVNode(btnIconPath, iconStyle.color, iconStyle.fontSize) : vue.createVNode("i", {
fxy060608's avatar
fxy060608 已提交
10776 10777 10778
      "class": "uni-btn-icon",
      "style": iconStyle,
      "innerHTML": btnText
fxy060608's avatar
fxy060608 已提交
10779
    }, null, 12, ["innerHTML"])], 14, ["onClick", "badge-text"]);
fxy060608's avatar
fxy060608 已提交
10780
  });
fxy060608's avatar
fxy060608 已提交
10781
}
fxy060608's avatar
fxy060608 已提交
10782 10783 10784 10785 10786 10787 10788
function createPageHeadBdTsx(navigationBar, searchInput) {
  if (!__UNI_FEATURE_NAVIGATIONBAR_SEARCHINPUT__ || !navigationBar.searchInput) {
    return createPageHeadTitleTextTsx(navigationBar);
  }
  return createPageHeadSearchInputTsx(navigationBar, searchInput);
}
function createPageHeadTitleTextTsx({
fxy060608's avatar
fxy060608 已提交
10789
  type,
fxy060608's avatar
fxy060608 已提交
10790
  loading,
fxy060608's avatar
fxy060608 已提交
10791
  titleSize,
fxy060608's avatar
fxy060608 已提交
10792 10793 10794
  titleText,
  titleImage
}) {
fxy060608's avatar
fxy060608 已提交
10795
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10796
    "class": "uni-page-head-bd"
fxy060608's avatar
fxy060608 已提交
10797
  }, [vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10798
    "style": {
fxy060608's avatar
fxy060608 已提交
10799 10800 10801
      fontSize: titleSize,
      opacity: type === "transparent" ? 0 : 1
    },
fxy060608's avatar
fxy060608 已提交
10802
    "class": "uni-page-head__title"
fxy060608's avatar
fxy060608 已提交
10803
  }, [loading ? vue.createVNode("i", {
fxy060608's avatar
fxy060608 已提交
10804
    "class": "uni-loading"
fxy060608's avatar
fxy060608 已提交
10805
  }, null) : titleImage ? vue.createVNode("img", {
fxy060608's avatar
fxy060608 已提交
10806 10807
    "src": titleImage,
    "class": "uni-page-head__title_image"
fxy060608's avatar
fxy060608 已提交
10808
  }, null, 8, ["src"]) : titleText], 4)]);
fxy060608's avatar
fxy060608 已提交
10809 10810
}
function createPageHeadSearchInputTsx(navigationBar, {
fxy060608's avatar
fxy060608 已提交
10811
  text,
fxy060608's avatar
fxy060608 已提交
10812 10813 10814 10815
  focus,
  composing,
  onBlur,
  onFocus,
fxy060608's avatar
fxy060608 已提交
10816 10817 10818
  onInput,
  onKeyup,
  onClick
fxy060608's avatar
fxy060608 已提交
10819 10820 10821
}) {
  const {
    color,
fxy060608's avatar
fxy060608 已提交
10822
    align,
fxy060608's avatar
fxy060608 已提交
10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833
    autoFocus,
    disabled,
    borderRadius,
    backgroundColor,
    placeholder,
    placeholderColor
  } = navigationBar.searchInput;
  const searchStyle = {
    borderRadius,
    backgroundColor
  };
fxy060608's avatar
fxy060608 已提交
10834
  const placeholderClass = ["uni-page-head-search-placeholder", `uni-page-head-search-placeholder-${focus.value || text.value ? "left" : align}`];
fxy060608's avatar
fxy060608 已提交
10835
  return vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10836 10837
    "class": "uni-page-head-search",
    "style": searchStyle
fxy060608's avatar
fxy060608 已提交
10838
  }, [vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10839
    "style": {
fxy060608's avatar
fxy060608 已提交
10840 10841
      color: placeholderColor
    },
fxy060608's avatar
fxy060608 已提交
10842
    "class": placeholderClass
fxy060608's avatar
fxy060608 已提交
10843
  }, [vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
10844
    "class": "uni-page-head-search-icon"
fxy060608's avatar
fxy060608 已提交
10845
  }, [createSvgIconVNode(ICON_PATH_SEARCH, placeholderColor, 20)]), text.value || composing.value ? "" : placeholder], 6), disabled ? vue.createVNode(Input, {
fxy060608's avatar
fxy060608 已提交
10846 10847
    "disabled": true,
    "style": {
fxy060608's avatar
fxy060608 已提交
10848 10849
      color
    },
fxy060608's avatar
fxy060608 已提交
10850
    "placeholder-style": "color: " + placeholderColor,
fxy060608's avatar
fxy060608 已提交
10851
    "class": "uni-page-head-search-input",
fxy060608's avatar
fxy060608 已提交
10852
    "confirm-type": "search",
fxy060608's avatar
fxy060608 已提交
10853
    "onClick": onClick
fxy060608's avatar
fxy060608 已提交
10854
  }, null, 8, ["style", "placeholder-style", "onClick"]) : vue.createVNode(Input, {
fxy060608's avatar
fxy060608 已提交
10855 10856
    "focus": autoFocus,
    "style": {
fxy060608's avatar
fxy060608 已提交
10857 10858
      color
    },
fxy060608's avatar
fxy060608 已提交
10859
    "placeholder-style": "color: " + placeholderColor,
fxy060608's avatar
fxy060608 已提交
10860
    "class": "uni-page-head-search-input",
fxy060608's avatar
fxy060608 已提交
10861
    "confirm-type": "search",
fxy060608's avatar
fxy060608 已提交
10862 10863 10864 10865
    "onFocus": onFocus,
    "onBlur": onBlur,
    "onInput": onInput,
    "onKeyup": onKeyup
fxy060608's avatar
fxy060608 已提交
10866
  }, null, 8, ["focus", "style", "placeholder-style", "onFocus", "onBlur", "onInput", "onKeyup"])], 4);
fxy060608's avatar
fxy060608 已提交
10867
}
fxy060608's avatar
fxy060608 已提交
10868 10869 10870 10871 10872 10873 10874
function onPageHeadBackButton() {
  if (getCurrentPages().length === 1) {
    uni.reLaunch({
      url: "/"
    });
  } else {
    uni.navigateBack({
fxy060608's avatar
fxy060608 已提交
10875 10876 10877
      from: "backbutton",
      success() {
      }
fxy060608's avatar
fxy060608 已提交
10878 10879 10880
    });
  }
}
fxy060608's avatar
fxy060608 已提交
10881
function usePageHead(navigationBar) {
fxy060608's avatar
fxy060608 已提交
10882
  const clazz2 = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10883 10884 10885 10886 10887
    const {
      type,
      titlePenetrate,
      shadowColorType
    } = navigationBar;
fxy060608's avatar
fxy060608 已提交
10888
    const clazz3 = {
fxy060608's avatar
fxy060608 已提交
10889 10890 10891 10892 10893 10894
      "uni-page-head": true,
      "uni-page-head-transparent": type === "transparent",
      "uni-page-head-titlePenetrate": titlePenetrate === "YES",
      "uni-page-head-shadow": !!shadowColorType
    };
    if (shadowColorType) {
fxy060608's avatar
fxy060608 已提交
10895
      clazz3[`uni-page-head-shadow-${shadowColorType}`] = true;
fxy060608's avatar
fxy060608 已提交
10896
    }
fxy060608's avatar
fxy060608 已提交
10897
    return clazz3;
fxy060608's avatar
fxy060608 已提交
10898
  });
fxy060608's avatar
fxy060608 已提交
10899
  const style = vue.computed(() => {
fxy060608's avatar
fxy060608 已提交
10900
    const backgroundColor = __UNI_FEATURE_NAVIGATIONBAR_TRANSPARENT__ && navigationBar.type === "transparent" ? usePageHeadTransparentBackgroundColor(navigationBar.backgroundColor) : navigationBar.backgroundColor;
fxy060608's avatar
fxy060608 已提交
10901
    return {
fxy060608's avatar
fxy060608 已提交
10902 10903
      backgroundColor,
      color: navigationBar.titleColor,
fxy060608's avatar
fxy060608 已提交
10904
      transitionDuration: navigationBar.duration,
fxy060608's avatar
fxy060608 已提交
10905
      transitionTimingFunction: navigationBar.timingFunc
fxy060608's avatar
fxy060608 已提交
10906 10907 10908
    };
  });
  return {
fxy060608's avatar
fxy060608 已提交
10909
    clazz: clazz2,
fxy060608's avatar
fxy060608 已提交
10910
    style
fxy060608's avatar
fxy060608 已提交
10911 10912
  };
}
fxy060608's avatar
fxy060608 已提交
10913
function usePageHeadButtons({
fxy060608's avatar
fxy060608 已提交
10914
  id,
fxy060608's avatar
fxy060608 已提交
10915 10916
  navigationBar
}) {
fxy060608's avatar
fxy060608 已提交
10917 10918 10919 10920 10921
  const left = [];
  const right = [];
  const {
    buttons
  } = navigationBar;
fxy060608's avatar
fxy060608 已提交
10922
  if (shared.isArray(buttons)) {
fxy060608's avatar
fxy060608 已提交
10923 10924 10925 10926
    const {
      type
    } = navigationBar;
    const isTransparent = type === "transparent";
10927
    const fonts = /* @__PURE__ */ Object.create(null);
fxy060608's avatar
fxy060608 已提交
10928
    buttons.forEach((btn, index2) => {
fxy060608's avatar
fxy060608 已提交
10929
      if (btn.fontSrc && !btn.fontFamily) {
fxy060608's avatar
fxy060608 已提交
10930
        const fontSrc = getRealPath(btn.fontSrc);
fxy060608's avatar
fxy060608 已提交
10931 10932 10933 10934 10935 10936 10937
        let fontFamily = fonts[fontSrc];
        if (!fontFamily) {
          fontFamily = `font${Date.now()}`;
          fonts[fontSrc] = fontFamily;
        }
        btn.fontFamily = fontFamily;
      }
fxy060608's avatar
fxy060608 已提交
10938
      const pageHeadBtn = usePageHeadButton(id, index2, btn, isTransparent);
fxy060608's avatar
fxy060608 已提交
10939 10940 10941 10942 10943 10944
      if (btn.float === "left") {
        left.push(pageHeadBtn);
      } else {
        right.push(pageHeadBtn);
      }
    });
fxy060608's avatar
fxy060608 已提交
10945
  }
fxy060608's avatar
fxy060608 已提交
10946 10947 10948 10949
  return {
    left,
    right
  };
fxy060608's avatar
fxy060608 已提交
10950
}
fxy060608's avatar
fxy060608 已提交
10951
function usePageHeadButton(pageId, index2, btn, isTransparent) {
fxy060608's avatar
fxy060608 已提交
10952 10953 10954 10955 10956 10957 10958 10959
  const iconStyle = {
    color: btn.color,
    fontSize: btn.fontSize,
    fontWeight: btn.fontWeight
  };
  if (btn.fontFamily) {
    iconStyle.fontFamily = btn.fontFamily;
  }
fxy060608's avatar
fxy060608 已提交
10960 10961 10962 10963 10964 10965 10966 10967 10968 10969
  return {
    btnClass: {
      "uni-page-head-btn": true,
      "uni-page-head-btn-red-dot": !!(btn.redDot || btn.badgeText),
      "uni-page-head-btn-select": !!btn.select
    },
    btnStyle: {
      backgroundColor: isTransparent ? btn.background : "transparent",
      width: btn.width
    },
fxy060608's avatar
fxy060608 已提交
10970 10971
    btnText: btn.fontSrc && btn.fontFamily ? btn.text.replace("\\u", "&#x") : btn.text,
    btnIconPath: ICON_PATHS[btn.type],
fxy060608's avatar
fxy060608 已提交
10972
    badgeText: btn.badgeText,
fxy060608's avatar
fxy060608 已提交
10973 10974
    iconStyle,
    onClick() {
fxy060608's avatar
fxy060608 已提交
10975
      invokeHook(pageId, uniShared.ON_NAVIGATION_BAR_BUTTON_TAP, shared.extend({
fxy060608's avatar
fxy060608 已提交
10976 10977 10978
        index: index2
      }, btn));
    }
fxy060608's avatar
fxy060608 已提交
10979 10980
  };
}
fxy060608's avatar
fxy060608 已提交
10981
function usePageHeadSearchInput({
fxy060608's avatar
fxy060608 已提交
10982
  id,
fxy060608's avatar
fxy060608 已提交
10983 10984 10985 10986
  navigationBar: {
    searchInput
  }
}) {
fxy060608's avatar
fxy060608 已提交
10987
  const focus = vue.ref(false);
fxy060608's avatar
fxy060608 已提交
10988
  const text = vue.ref("");
fxy060608's avatar
fxy060608 已提交
10989
  const composing = vue.ref(false);
fxy060608's avatar
fxy060608 已提交
10990 10991 10992 10993 10994
  const {
    disabled
  } = searchInput;
  if (disabled) {
    const onClick = () => {
fxy060608's avatar
fxy060608 已提交
10995
      invokeHook(id, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);
fxy060608's avatar
fxy060608 已提交
10996 10997 10998
    };
    return {
      focus,
fxy060608's avatar
fxy060608 已提交
10999
      text,
fxy060608's avatar
fxy060608 已提交
11000 11001 11002
      composing,
      onClick
    };
fxy060608's avatar
fxy060608 已提交
11003
  }
fxy060608's avatar
fxy060608 已提交
11004 11005
  const onFocus = () => {
    focus.value = true;
fxy060608's avatar
fxy060608 已提交
11006
    invokeHook(id, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, {
fxy060608's avatar
fxy060608 已提交
11007 11008 11009 11010
      focus: true
    });
  };
  const onBlur = () => {
fxy060608's avatar
fxy060608 已提交
11011
    focus.value = false;
fxy060608's avatar
fxy060608 已提交
11012
    invokeHook(id, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, {
fxy060608's avatar
fxy060608 已提交
11013 11014 11015 11016
      focus: false
    });
  };
  const onInput = (evt) => {
fxy060608's avatar
fxy060608 已提交
11017
    text.value = evt.detail.value;
fxy060608's avatar
fxy060608 已提交
11018
    invokeHook(id, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, {
fxy060608's avatar
fxy060608 已提交
11019
      text: text.value
fxy060608's avatar
fxy060608 已提交
11020 11021 11022 11023
    });
  };
  const onKeyup = (evt) => {
    if (evt.key === "Enter" || evt.keyCode === 13) {
fxy060608's avatar
fxy060608 已提交
11024
      invokeHook(id, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, {
fxy060608's avatar
fxy060608 已提交
11025
        text: text.value
fxy060608's avatar
fxy060608 已提交
11026 11027 11028
      });
    }
  };
fxy060608's avatar
fxy060608 已提交
11029 11030
  return {
    focus,
fxy060608's avatar
fxy060608 已提交
11031
    text,
fxy060608's avatar
fxy060608 已提交
11032 11033 11034
    composing,
    onFocus,
    onBlur,
fxy060608's avatar
fxy060608 已提交
11035 11036
    onInput,
    onKeyup
fxy060608's avatar
fxy060608 已提交
11037 11038
  };
}
fxy060608's avatar
fxy060608 已提交
11039
var _export_sfc = (sfc, props2) => {
fxy060608's avatar
fxy060608 已提交
11040
  const target = sfc.__vccOpts || sfc;
fxy060608's avatar
fxy060608 已提交
11041
  for (const [key, val] of props2) {
fxy060608's avatar
fxy060608 已提交
11042
    target[key] = val;
fxy060608's avatar
fxy060608 已提交
11043
  }
fxy060608's avatar
fxy060608 已提交
11044
  return target;
fxy060608's avatar
fxy060608 已提交
11045 11046
};
const _sfc_main = {
fxy060608's avatar
fxy060608 已提交
11047 11048
  name: "PageRefresh",
  setup() {
fxy060608's avatar
fxy060608 已提交
11049
    const { pullToRefresh } = usePageMeta();
fxy060608's avatar
fxy060608 已提交
11050
    return {
fxy060608's avatar
fxy060608 已提交
11051 11052
      offset: pullToRefresh.offset,
      color: pullToRefresh.color
fxy060608's avatar
fxy060608 已提交
11053
    };
fxy060608's avatar
fxy060608 已提交
11054
  }
fxy060608's avatar
fxy060608 已提交
11055
};
11056
const _hoisted_1 = { class: "uni-page-refresh-inner" };
11057 11058 11059
const _hoisted_2 = ["fill"];
const _hoisted_3 = /* @__PURE__ */ vue.createElementVNode("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, -1);
const _hoisted_4 = /* @__PURE__ */ vue.createElementVNode("path", {
fxy060608's avatar
fxy060608 已提交
11060 11061 11062
  d: "M0 0h24v24H0z",
  fill: "none"
}, null, -1);
11063 11064 11065 11066 11067
const _hoisted_5 = [
  _hoisted_3,
  _hoisted_4
];
const _hoisted_6 = {
fxy060608's avatar
fxy060608 已提交
11068 11069 11070 11071
  class: "uni-page-refresh__spinner",
  width: "24",
  height: "24",
  viewBox: "25 25 50 50"
fxy060608's avatar
fxy060608 已提交
11072
};
11073
const _hoisted_7 = ["stroke"];
fxy060608's avatar
fxy060608 已提交
11074
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
fxy060608's avatar
fxy060608 已提交
11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102
  return vue.openBlock(), vue.createElementBlock("uni-page-refresh", null, [
    vue.createElementVNode("div", {
      style: vue.normalizeStyle({ "margin-top": $setup.offset + "px" }),
      class: "uni-page-refresh"
    }, [
      vue.createElementVNode("div", _hoisted_1, [
        (vue.openBlock(), vue.createElementBlock("svg", {
          fill: $setup.color,
          class: "uni-page-refresh__icon",
          width: "24",
          height: "24",
          viewBox: "0 0 24 24"
        }, _hoisted_5, 8, _hoisted_2)),
        (vue.openBlock(), vue.createElementBlock("svg", _hoisted_6, [
          vue.createElementVNode("circle", {
            stroke: $setup.color,
            class: "uni-page-refresh__path",
            cx: "50",
            cy: "50",
            r: "20",
            fill: "none",
            "stroke-width": "4",
            "stroke-miterlimit": "10"
          }, null, 8, _hoisted_7)
        ]))
      ])
    ], 4)
  ]);
fxy060608's avatar
fxy060608 已提交
11103
}
fxy060608's avatar
fxy060608 已提交
11104
var PageRefresh = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
11105
var PageBody = defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
11106
  name: "PageBody",
fxy060608's avatar
fxy060608 已提交
11107
  setup(props2, ctx) {
fxy060608's avatar
fxy060608 已提交
11108
    const pageMeta = __UNI_FEATURE_PULL_DOWN_REFRESH__ && usePageMeta();
fxy060608's avatar
fxy060608 已提交
11109
    const refreshRef = __UNI_FEATURE_PULL_DOWN_REFRESH__ && vue.ref(null);
fxy060608's avatar
fxy060608 已提交
11110
    const pageRefresh = null;
fxy060608's avatar
fxy060608 已提交
11111
    return () => {
fxy060608's avatar
fxy060608 已提交
11112
      const pageRefreshTsx = __UNI_FEATURE_PULL_DOWN_REFRESH__ && createPageRefreshTsx(refreshRef, pageMeta);
fxy060608's avatar
fxy060608 已提交
11113
      return vue.createVNode(vue.Fragment, null, [pageRefreshTsx, vue.createVNode("uni-page-wrapper", pageRefresh, [vue.createVNode("uni-page-body", null, [vue.renderSlot(ctx.slots, "default")])], 16)]);
fxy060608's avatar
fxy060608 已提交
11114 11115 11116 11117 11118 11119 11120
    };
  }
});
function createPageRefreshTsx(refreshRef, pageMeta) {
  if (!__UNI_FEATURE_PULL_DOWN_REFRESH__ || !pageMeta.enablePullDownRefresh) {
    return null;
  }
fxy060608's avatar
fxy060608 已提交
11121
  return vue.createVNode(PageRefresh, {
fxy060608's avatar
fxy060608 已提交
11122
    "ref": refreshRef
fxy060608's avatar
fxy060608 已提交
11123 11124
  }, null, 512);
}
11125
var index$2 = defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
11126
  name: "Page",
fxy060608's avatar
fxy060608 已提交
11127
  setup(_props, ctx) {
Q
qiang 已提交
11128 11129 11130
    const pageMeta = providePageMeta(getStateId());
    const navigationBar = pageMeta.navigationBar;
    useDocumentTitle(pageMeta);
fxy060608's avatar
fxy060608 已提交
11131
    return () => vue.createVNode("uni-page", { "data-page": pageMeta.route }, __UNI_FEATURE_NAVIGATIONBAR__ && navigationBar.style !== "custom" ? [vue.createVNode(PageHead), createPageBodyVNode(ctx)] : [createPageBodyVNode(ctx)]);
fxy060608's avatar
fxy060608 已提交
11132 11133 11134
  }
});
function createPageBodyVNode(ctx) {
11135
  return vue.openBlock(), vue.createBlock(PageBody, { key: 0 }, {
fxy060608's avatar
fxy060608 已提交
11136
    default: vue.withCtx(() => [vue.renderSlot(ctx.slots, "page")]),
fxy060608's avatar
fxy060608 已提交
11137 11138 11139
    _: 3
  });
}
fxy060608's avatar
fxy060608 已提交
11140 11141 11142
function reload() {
  window.location.reload();
}
11143
var index$1 = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
11144
  name: "AsyncError",
fxy060608's avatar
fxy060608 已提交
11145
  setup() {
fxy060608's avatar
fxy060608 已提交
11146
    initI18nAsyncMsgsOnce();
fxy060608's avatar
fxy060608 已提交
11147 11148 11149
    const {
      t: t2
    } = useI18n();
fxy060608's avatar
fxy060608 已提交
11150
    return () => vue.createVNode("div", {
fxy060608's avatar
fxy060608 已提交
11151 11152
      "class": "uni-async-error",
      "onClick": reload
fxy060608's avatar
fxy060608 已提交
11153
    }, [t2("uni.async.error")], 8, ["onClick"]);
fxy060608's avatar
fxy060608 已提交
11154
  }
fxy060608's avatar
fxy060608 已提交
11155
});
11156 11157
const clazz = { class: "uni-async-loading" };
const loadingVNode = /* @__PURE__ */ vue.createVNode("i", { class: "uni-loading" }, null, -1);
11158
var index = /* @__PURE__ */ defineSystemComponent({
fxy060608's avatar
fxy060608 已提交
11159 11160
  name: "AsyncLoading",
  render() {
fxy060608's avatar
fxy060608 已提交
11161
    return vue.openBlock(), vue.createBlock("div", clazz, [loadingVNode]);
fxy060608's avatar
fxy060608 已提交
11162 11163
  }
});
fxy060608's avatar
fxy060608 已提交
11164 11165 11166
exports.Ad = index$8;
exports.AdContentPage = index$7;
exports.AdDraw = index$6;
fxy060608's avatar
fxy060608 已提交
11167 11168
exports.AsyncErrorComponent = index$1;
exports.AsyncLoadingComponent = index;
fxy060608's avatar
fxy060608 已提交
11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179
exports.Button = index$C;
exports.Camera = index$5;
exports.Canvas = index$B;
exports.Checkbox = index$z;
exports.CheckboxGroup = index$A;
exports.CoverImage = index$a;
exports.CoverView = index$b;
exports.Editor = index$y;
exports.Form = index$E;
exports.Icon = index$x;
exports.Image = index$w;
fxy060608's avatar
fxy060608 已提交
11180
exports.Input = Input;
fxy060608's avatar
fxy060608 已提交
11181
exports.Label = index$D;
fxy060608's avatar
fxy060608 已提交
11182
exports.LayoutComponent = LayoutComponent;
fxy060608's avatar
fxy060608 已提交
11183 11184 11185 11186 11187 11188
exports.LivePlayer = index$4;
exports.LivePusher = index$3;
exports.Map = index$c;
exports.MovableArea = index$v;
exports.MovableView = index$u;
exports.Navigator = index$t;
fxy060608's avatar
fxy060608 已提交
11189
exports.PageComponent = index$2;
fxy060608's avatar
fxy060608 已提交
11190
exports.Picker = index$9;
D
DCloud_LXH 已提交
11191 11192
exports.PickerView = PickerView;
exports.PickerViewColumn = PickerViewColumn;
fxy060608's avatar
fxy060608 已提交
11193 11194 11195
exports.Progress = index$s;
exports.Radio = index$q;
exports.RadioGroup = index$r;
fxy060608's avatar
fxy060608 已提交
11196
exports.ResizeSensor = ResizeSensor;
fxy060608's avatar
fxy060608 已提交
11197 11198 11199 11200 11201 11202 11203 11204
exports.RichText = index$p;
exports.ScrollView = index$o;
exports.Slider = index$n;
exports.Swiper = index$m;
exports.SwiperItem = index$l;
exports.Switch = index$k;
exports.Text = index$j;
exports.Textarea = index$i;
fxy060608's avatar
fxy060608 已提交
11205 11206
exports.UniServiceJSBridge = UniServiceJSBridge$1;
exports.UniViewJSBridge = UniViewJSBridge$1;
fxy060608's avatar
fxy060608 已提交
11207 11208 11209
exports.Video = index$e;
exports.View = index$h;
exports.WebView = index$d;
fxy060608's avatar
fxy060608 已提交
11210 11211
exports.clearStorage = clearStorage;
exports.clearStorageSync = clearStorageSync;
fxy060608's avatar
fxy060608 已提交
11212 11213
exports.getApp = getApp$1;
exports.getCurrentPages = getCurrentPages$1;
Q
qiang 已提交
11214
exports.getRealPath = getRealPath;
fxy060608's avatar
fxy060608 已提交
11215 11216 11217 11218 11219
exports.getStorage = getStorage;
exports.getStorageInfo = getStorageInfo;
exports.getStorageInfoSync = getStorageInfoSync;
exports.getStorageSync = getStorageSync;
exports.getSystemInfoSync = getSystemInfoSync;
fxy060608's avatar
fxy060608 已提交
11220
exports.plugin = index$f;
fxy060608's avatar
fxy060608 已提交
11221 11222
exports.removeStorage = removeStorage;
exports.removeStorageSync = removeStorageSync;
fxy060608's avatar
fxy060608 已提交
11223
exports.request = request;
Q
qiang 已提交
11224
exports.setNavigationBarTitle = setNavigationBarTitle;
fxy060608's avatar
fxy060608 已提交
11225 11226
exports.setStorage = setStorage;
exports.setStorageSync = setStorageSync;
fxy060608's avatar
fxy060608 已提交
11227 11228
exports.setupApp = setupApp;
exports.setupPage = setupPage;
fxy060608's avatar
fxy060608 已提交
11229
exports.setupWindow = setupWindow;
fxy060608's avatar
fxy060608 已提交
11230
exports.uni = uni$1;
fxy060608's avatar
fxy060608 已提交
11231
exports.useI18n = useI18n;
Q
qiang 已提交
11232
exports.useTabBar = useTabBar;