(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/vendor"],{ /***/ 1: /*!*********************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var objectKeys = ['qy', 'env', 'error', 'version', 'lanDebug', 'cloud', 'serviceMarket', 'router', 'worklet', '__webpack_require_UNI_MP_PLUGIN__']; var singlePageDisableKey = ['lanDebug', 'router', 'worklet']; var target = typeof globalThis !== 'undefined' ? globalThis : function () { return this; }(); var key = ['w', 'x'].join(''); var oldWx = target[key]; var launchOption = oldWx.getLaunchOptionsSync ? oldWx.getLaunchOptionsSync() : null; function isWxKey(key) { if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) { return false; } return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'; } function initWx() { var newWx = {}; for (var _key in oldWx) { if (isWxKey(_key)) { // TODO wrapper function newWx[_key] = oldWx[_key]; } } return newWx; } target[key] = initWx(); if (!target[key].canIUse('getAppBaseInfo')) { target[key].getAppBaseInfo = target[key].getSystemInfoSync; } if (!target[key].canIUse('getWindowInfo')) { target[key].getWindowInfo = target[key].getSystemInfoSync; } if (!target[key].canIUse('getDeviceInfo')) { target[key].getDeviceInfo = target[key].getSystemInfoSync; } var _default = target[key]; exports.default = _default; /***/ }), /***/ 10: /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableRest.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 11: /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 12); function _defineProperty(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 12: /*!**************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***! \**************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 13)["default"]; var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ 14); function toPropertyKey(t) { var i = toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 13: /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _typeof(o) { "@babel/helpers - typeof"; return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); } module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 14: /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var _typeof = __webpack_require__(/*! ./typeof.js */ 13)["default"]; function toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 15: /*!**********************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/construct.js ***! \**********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ 16); var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ 17); function _construct(t, e, r) { if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && setPrototypeOf(p, r.prototype), p; } module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 16: /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _setPrototypeOf(o, p) { module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }, module.exports.__esModule = true, module.exports["default"] = module.exports; return _setPrototypeOf(o, p); } module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 17: /*!*************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***! \*************************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; }, module.exports.__esModule = true, module.exports["default"] = module.exports)(); } module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 18: /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles.js */ 19); var iterableToArray = __webpack_require__(/*! ./iterableToArray.js */ 20); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ 8); var nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread.js */ 21); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 19: /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ 9); function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return arrayLikeToArray(arr); } module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 2: /*!************************************************************!*\ !*** ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(wx, global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4); Object.defineProperty(exports, "__esModule", { value: true }); exports.createApp = createApp; exports.createComponent = createComponent; exports.createPage = createPage; exports.createPlugin = createPlugin; exports.createSubpackageApp = createSubpackageApp; exports.default = void 0; var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 5)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11)); var _construct2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/construct */ 15)); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 18)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); var _uniI18n = __webpack_require__(/*! @dcloudio/uni-i18n */ 22); var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 25)); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var realAtob; var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; if (typeof atob !== 'function') { realAtob = function realAtob(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."); } // Adding the padding if missing, for semplicity 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 { // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法 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() { var token = wx.getStorageSync('uni_id_token') || ''; var tokenArr = token.split('.'); if (!token || tokenArr.length !== 3) { return { uid: null, role: [], permission: [], tokenExpired: 0 }; } var userInfo; try { userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1])); } catch (error) { throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message); } userInfo.tokenExpired = userInfo.exp * 1000; delete userInfo.exp; delete userInfo.iat; return userInfo; } function uniIdMixin(Vue) { Vue.prototype.uniIDHasRole = function (roleId) { var _getCurrentUserInfo = getCurrentUserInfo(), role = _getCurrentUserInfo.role; return role.indexOf(roleId) > -1; }; Vue.prototype.uniIDHasPermission = function (permissionId) { var _getCurrentUserInfo2 = getCurrentUserInfo(), permission = _getCurrentUserInfo2.permission; return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1; }; Vue.prototype.uniIDTokenValid = function () { var _getCurrentUserInfo3 = getCurrentUserInfo(), tokenExpired = _getCurrentUserInfo3.tokenExpired; return tokenExpired > Date.now(); }; } var _toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; function isFn(fn) { return typeof fn === 'function'; } function isStr(str) { return typeof str === 'string'; } function isObject(obj) { return obj !== null && (0, _typeof2.default)(obj) === 'object'; } function isPlainObject(obj) { return _toString.call(obj) === '[object Object]'; } function hasOwn(obj, key) { return hasOwnProperty.call(obj, key); } function noop() {} /** * Create a cached version of a pure function. */ function cached(fn) { var cache = Object.create(null); return function cachedFn(str) { var hit = cache[str]; return hit || (cache[str] = fn(str)); }; } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }); }); function sortObject(obj) { var sortObj = {}; if (isPlainObject(obj)) { Object.keys(obj).sort().forEach(function (key) { sortObj[key] = obj[key]; }); } return !Object.keys(sortObj) ? obj : sortObj; } var HOOKS = ['invoke', 'success', 'fail', 'complete', 'returnValue']; var globalInterceptors = {}; var scopedInterceptors = {}; function mergeHook(parentVal, childVal) { var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal; return res ? dedupeHooks(res) : res; } function dedupeHooks(hooks) { var res = []; for (var i = 0; i < hooks.length; i++) { if (res.indexOf(hooks[i]) === -1) { res.push(hooks[i]); } } return res; } function removeHook(hooks, hook) { var index = hooks.indexOf(hook); if (index !== -1) { hooks.splice(index, 1); } } function mergeInterceptorHook(interceptor, option) { Object.keys(option).forEach(function (hook) { if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { interceptor[hook] = mergeHook(interceptor[hook], option[hook]); } }); } function removeInterceptorHook(interceptor, option) { if (!interceptor || !option) { return; } Object.keys(option).forEach(function (hook) { if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) { removeHook(interceptor[hook], option[hook]); } }); } function addInterceptor(method, option) { if (typeof method === 'string' && isPlainObject(option)) { mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option); } else if (isPlainObject(method)) { mergeInterceptorHook(globalInterceptors, method); } } function removeInterceptor(method, option) { if (typeof method === 'string') { if (isPlainObject(option)) { removeInterceptorHook(scopedInterceptors[method], option); } else { delete scopedInterceptors[method]; } } else if (isPlainObject(method)) { removeInterceptorHook(globalInterceptors, method); } } function wrapperHook(hook, params) { return function (data) { return hook(data, params) || data; }; } function isPromise(obj) { return !!obj && ((0, _typeof2.default)(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; } function queue(hooks, data, params) { var promise = false; for (var i = 0; i < hooks.length; i++) { var hook = hooks[i]; if (promise) { promise = Promise.resolve(wrapperHook(hook, params)); } else { var res = hook(data, params); if (isPromise(res)) { promise = Promise.resolve(res); } if (res === false) { return { then: function then() {} }; } } } return promise || { then: function then(callback) { return callback(data); } }; } function wrapperOptions(interceptor) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; ['success', 'fail', 'complete'].forEach(function (name) { if (Array.isArray(interceptor[name])) { var oldCallback = options[name]; options[name] = function callbackInterceptor(res) { queue(interceptor[name], res, options).then(function (res) { /* eslint-disable no-mixed-operators */ return isFn(oldCallback) && oldCallback(res) || res; }); }; } }); return options; } function wrapperReturnValue(method, returnValue) { var returnValueHooks = []; if (Array.isArray(globalInterceptors.returnValue)) { returnValueHooks.push.apply(returnValueHooks, (0, _toConsumableArray2.default)(globalInterceptors.returnValue)); } var interceptor = scopedInterceptors[method]; if (interceptor && Array.isArray(interceptor.returnValue)) { returnValueHooks.push.apply(returnValueHooks, (0, _toConsumableArray2.default)(interceptor.returnValue)); } returnValueHooks.forEach(function (hook) { returnValue = hook(returnValue) || returnValue; }); return returnValue; } function getApiInterceptorHooks(method) { var interceptor = Object.create(null); Object.keys(globalInterceptors).forEach(function (hook) { if (hook !== 'returnValue') { interceptor[hook] = globalInterceptors[hook].slice(); } }); var scopedInterceptor = scopedInterceptors[method]; if (scopedInterceptor) { Object.keys(scopedInterceptor).forEach(function (hook) { if (hook !== 'returnValue') { interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]); } }); } return interceptor; } function invokeApi(method, api, options) { for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { params[_key - 3] = arguments[_key]; } var interceptor = getApiInterceptorHooks(method); if (interceptor && Object.keys(interceptor).length) { if (Array.isArray(interceptor.invoke)) { var res = queue(interceptor.invoke, options); return res.then(function (options) { // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor return api.apply(void 0, [wrapperOptions(getApiInterceptorHooks(method), options)].concat(params)); }); } else { return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params)); } } return api.apply(void 0, [options].concat(params)); } var promiseInterceptor = { returnValue: function returnValue(res) { if (!isPromise(res)) { return res; } return new Promise(function (resolve, reject) { res.then(function (res) { if (!res) { resolve(res); return; } if (res[0]) { reject(res[0]); } else { resolve(res[1]); } }); }); } }; var SYNC_API_RE = /^\$|__f__|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|rpx2px|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting|initUTS|requireUTS|registerUTS|getFacialRecognitionMetaInfo/; var CONTEXT_API_RE = /^create|Manager$/; // Context例外情况 var CONTEXT_API_RE_EXC = ['createBLEConnection']; // 同步例外情况 var ASYNC_API = ['createBLEConnection', 'createPushMessage']; var CALLBACK_API_RE = /^on|^off/; function isContextApi(name) { return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1; } function isSyncApi(name) { return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1; } function isCallbackApi(name) { return CALLBACK_API_RE.test(name) && name !== 'onPush'; } function handlePromise(promise) { return promise.then(function (data) { return [null, data]; }).catch(function (err) { return [err]; }); } function shouldPromise(name) { if (isContextApi(name) || isSyncApi(name) || isCallbackApi(name)) { return false; } return true; } /* eslint-disable no-extend-native */ if (!Promise.prototype.finally) { Promise.prototype.finally = function (callback) { var promise = this.constructor; return this.then(function (value) { return promise.resolve(callback()).then(function () { return value; }); }, function (reason) { return promise.resolve(callback()).then(function () { throw reason; }); }); }; } function promisify(name, api) { if (!shouldPromise(name) || !isFn(api)) { return api; } return function promiseApi() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { params[_key2 - 1] = arguments[_key2]; } if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) { return wrapperReturnValue(name, invokeApi.apply(void 0, [name, api, Object.assign({}, options)].concat(params))); } return wrapperReturnValue(name, handlePromise(new Promise(function (resolve, reject) { invokeApi.apply(void 0, [name, api, Object.assign({}, options, { success: resolve, fail: reject })].concat(params)); }))); }; } var EPS = 1e-4; var BASE_DEVICE_WIDTH = 750; var isIOS = false; var deviceWidth = 0; var deviceDPR = 0; function checkDeviceWidth() { var windowWidth, pixelRatio, platform; { var windowInfo = typeof wx.getWindowInfo === 'function' && wx.getWindowInfo() ? wx.getWindowInfo() : wx.getSystemInfoSync(); var deviceInfo = typeof wx.getDeviceInfo === 'function' && wx.getDeviceInfo() ? wx.getDeviceInfo() : wx.getSystemInfoSync(); windowWidth = windowInfo.windowWidth; pixelRatio = windowInfo.pixelRatio; platform = deviceInfo.platform; } deviceWidth = windowWidth; deviceDPR = pixelRatio; isIOS = platform === 'ios'; } function upx2px(number, newDeviceWidth) { if (deviceWidth === 0) { checkDeviceWidth(); } number = Number(number); if (number === 0) { return 0; } var result = number / BASE_DEVICE_WIDTH * (newDeviceWidth || deviceWidth); if (result < 0) { result = -result; } result = Math.floor(result + EPS); if (result === 0) { if (deviceDPR === 1 || !isIOS) { result = 1; } else { result = 0.5; } } return number < 0 ? -result : result; } var LOCALE_ZH_HANS = 'zh-Hans'; var LOCALE_ZH_HANT = 'zh-Hant'; var LOCALE_EN = 'en'; var LOCALE_FR = 'fr'; var LOCALE_ES = 'es'; var messages = {}; function getLocaleLanguage() { var localeLanguage = ''; { var appBaseInfo = typeof wx.getAppBaseInfo === 'function' && wx.getAppBaseInfo() ? wx.getAppBaseInfo() : wx.getSystemInfoSync(); var language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN; localeLanguage = normalizeLocale(language) || LOCALE_EN; } return localeLanguage; } var locale; { locale = getLocaleLanguage(); } function initI18nMessages() { if (!isEnableLocale()) { return; } var localeKeys = Object.keys(__uniConfig.locales); if (localeKeys.length) { localeKeys.forEach(function (locale) { var curMessages = messages[locale]; var userMessages = __uniConfig.locales[locale]; if (curMessages) { Object.assign(curMessages, userMessages); } else { messages[locale] = userMessages; } }); } } initI18nMessages(); var i18n = (0, _uniI18n.initVueI18n)(locale, {}); var t = i18n.t; var i18nMixin = i18n.mixin = { beforeCreate: function beforeCreate() { var _this = this; var unwatch = i18n.i18n.watchLocale(function () { _this.$forceUpdate(); }); this.$once('hook:beforeDestroy', function () { unwatch(); }); }, methods: { $$t: function $$t(key, values) { return t(key, values); } } }; var setLocale = i18n.setLocale; var getLocale = i18n.getLocale; function initAppLocale(Vue, appVm, locale) { var state = Vue.observable({ locale: locale || i18n.getLocale() }); var localeWatchers = []; appVm.$watchLocale = function (fn) { localeWatchers.push(fn); }; Object.defineProperty(appVm, '$locale', { get: function get() { return state.locale; }, set: function set(v) { state.locale = v; localeWatchers.forEach(function (watch) { return watch(v); }); } }); } function isEnableLocale() { return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length; } function include(str, parts) { return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); } function startsWith(str, parts) { return parts.find(function (part) { return str.indexOf(part) === 0; }); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, '-'); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale === 'chinese') { // 支付宝 return LOCALE_ZH_HANS; } if (locale.indexOf('zh') === 0) { if (locale.indexOf('-hans') > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf('-hant') > -1) { return LOCALE_ZH_HANT; } if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } var lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]); if (lang) { return lang; } } // export function initI18n() { // const localeKeys = Object.keys(__uniConfig.locales || {}) // if (localeKeys.length) { // localeKeys.forEach((locale) => // i18n.add(locale, __uniConfig.locales[locale]) // ) // } // } function getLocale$1() { // 优先使用 $locale if (isFn(getApp)) { var app = getApp({ allowDefault: true }); if (app && app.$vm) { return app.$vm.$locale; } } return getLocaleLanguage(); } function setLocale$1(locale) { var app = isFn(getApp) ? getApp() : false; if (!app) { return false; } var oldLocale = app.$vm.$locale; if (oldLocale !== locale) { app.$vm.$locale = locale; onLocaleChangeCallbacks.forEach(function (fn) { return fn({ locale: locale }); }); return true; } return false; } var onLocaleChangeCallbacks = []; function onLocaleChange(fn) { if (onLocaleChangeCallbacks.indexOf(fn) === -1) { onLocaleChangeCallbacks.push(fn); } } if (typeof global !== 'undefined') { global.getLocale = getLocale$1; } var interceptors = { promiseInterceptor: promiseInterceptor }; var baseApi = /*#__PURE__*/Object.freeze({ __proto__: null, upx2px: upx2px, rpx2px: upx2px, getLocale: getLocale$1, setLocale: setLocale$1, onLocaleChange: onLocaleChange, addInterceptor: addInterceptor, removeInterceptor: removeInterceptor, interceptors: interceptors }); function findExistsPageIndex(url) { var pages = getCurrentPages(); var len = pages.length; while (len--) { var page = pages[len]; if (page.$page && page.$page.fullPath === url) { return len; } } return -1; } var redirectTo = { name: function name(fromArgs) { if (fromArgs.exists === 'back' && fromArgs.delta) { return 'navigateBack'; } return 'redirectTo'; }, args: function args(fromArgs) { if (fromArgs.exists === 'back' && fromArgs.url) { var existsPageIndex = findExistsPageIndex(fromArgs.url); if (existsPageIndex !== -1) { var delta = getCurrentPages().length - 1 - existsPageIndex; if (delta > 0) { fromArgs.delta = delta; } } } } }; var previewImage = { args: function args(fromArgs) { var currentIndex = parseInt(fromArgs.current); if (isNaN(currentIndex)) { return; } var urls = fromArgs.urls; if (!Array.isArray(urls)) { return; } var len = urls.length; if (!len) { return; } if (currentIndex < 0) { currentIndex = 0; } else if (currentIndex >= len) { currentIndex = len - 1; } if (currentIndex > 0) { fromArgs.current = urls[currentIndex]; fromArgs.urls = urls.filter(function (item, index) { return index < currentIndex ? item !== urls[currentIndex] : true; }); } else { fromArgs.current = urls[0]; } return { indicator: false, loop: false }; } }; var UUID_KEY = '__DC_STAT_UUID'; var deviceId; function useDeviceId(result) { deviceId = deviceId || wx.getStorageSync(UUID_KEY); if (!deviceId) { deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7); wx.setStorage({ key: UUID_KEY, data: deviceId }); } result.deviceId = deviceId; } function addSafeAreaInsets(result) { if (result.safeArea) { var safeArea = result.safeArea; result.safeAreaInsets = { top: safeArea.top, left: safeArea.left, right: result.windowWidth - safeArea.right, bottom: result.screenHeight - safeArea.bottom }; } } function getOSInfo(system, platform) { var osName = ''; var osVersion = ''; if (platform && "mp-weixin" === 'mp-baidu') { osName = platform; osVersion = system; } else { osName = system.split(' ')[0] || platform; osVersion = system.split(' ')[1] || ''; } osName = osName.toLocaleLowerCase(); switch (osName) { case 'harmony': // alipay case 'ohos': // weixin case 'openharmony': // feishu osName = 'harmonyos'; break; case 'iphone os': // alipay osName = 'ios'; break; case 'mac': // weixin qq case 'darwin': // feishu osName = 'macos'; break; case 'windows_nt': // feishu osName = 'windows'; break; } return { osName: osName, osVersion: osVersion }; } function populateParameters(result) { var _result$brand = result.brand, brand = _result$brand === void 0 ? '' : _result$brand, _result$model = result.model, model = _result$model === void 0 ? '' : _result$model, _result$system = result.system, system = _result$system === void 0 ? '' : _result$system, _result$language = result.language, language = _result$language === void 0 ? '' : _result$language, theme = result.theme, version = result.version, platform = result.platform, fontSizeSetting = result.fontSizeSetting, SDKVersion = result.SDKVersion, pixelRatio = result.pixelRatio, deviceOrientation = result.deviceOrientation; // const isQuickApp = "mp-weixin".indexOf('quickapp-webview') !== -1 var extraParam = {}; // osName osVersion var _getOSInfo = getOSInfo(system, platform), osName = _getOSInfo.osName, osVersion = _getOSInfo.osVersion; var hostVersion = version; // deviceType var deviceType = getGetDeviceType(result, model); // deviceModel var deviceBrand = getDeviceBrand(brand); // hostName var _hostName = getHostName(result); // deviceOrientation var _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持 // devicePixelRatio var _devicePixelRatio = pixelRatio; // SDKVersion var _SDKVersion = SDKVersion; // hostLanguage var hostLanguage = (language || '').replace(/_/g, '-'); // wx.getAccountInfoSync var parameters = { appId: "__UNI__C0ABCC1", appName: "chargingPile", appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), uniCompileVersion: "4.85", uniCompilerVersion: "4.85", uniRuntimeVersion: "4.85", uniPlatform: undefined || "mp-weixin", deviceBrand: deviceBrand, deviceModel: model, deviceType: deviceType, devicePixelRatio: _devicePixelRatio, deviceOrientation: _deviceOrientation, osName: osName.toLocaleLowerCase(), osVersion: osVersion, hostTheme: theme, hostVersion: hostVersion, hostLanguage: hostLanguage, hostName: _hostName, hostSDKVersion: _SDKVersion, hostFontSizeSetting: fontSizeSetting, windowTop: 0, windowBottom: 0, // TODO osLanguage: undefined, osTheme: undefined, ua: undefined, hostPackageName: undefined, browserName: undefined, browserVersion: undefined, isUniAppX: false }; Object.assign(result, parameters, extraParam); } function getGetDeviceType(result, model) { var deviceType = result.deviceType || 'phone'; { var deviceTypeMaps = { ipad: 'pad', windows: 'pc', mac: 'pc' }; var deviceTypeMapsKeys = Object.keys(deviceTypeMaps); var _model = model.toLocaleLowerCase(); for (var index = 0; index < deviceTypeMapsKeys.length; index++) { var _m = deviceTypeMapsKeys[index]; if (_model.indexOf(_m) !== -1) { deviceType = deviceTypeMaps[_m]; break; } } } return deviceType; } function getDeviceBrand(brand) { var deviceBrand = brand; if (deviceBrand) { deviceBrand = brand.toLocaleLowerCase(); } return deviceBrand; } function getAppLanguage(defaultLanguage) { return getLocale$1 ? getLocale$1() : defaultLanguage; } function getHostName(result) { var _platform = 'WeChat'; var _hostName = result.hostName || _platform; // mp-jd { if (result.environment) { _hostName = result.environment; } else if (result.host && result.host.env) { _hostName = result.host.env; } } return _hostName; } var getSystemInfo = { returnValue: function returnValue(result) { useDeviceId(result); addSafeAreaInsets(result); populateParameters(result); } }; var showActionSheet = { args: function args(fromArgs) { if ((0, _typeof2.default)(fromArgs) === 'object') { fromArgs.alertText = fromArgs.title; } } }; var getAppBaseInfo = { returnValue: function returnValue(result) { var _result = result, version = _result.version, language = _result.language, SDKVersion = _result.SDKVersion, theme = _result.theme; var _hostName = getHostName(result); var hostLanguage = (language || '').replace('_', '-'); result = sortObject(Object.assign(result, { appId: "__UNI__C0ABCC1", appName: "chargingPile", appVersion: "1.0.0", appVersionCode: "100", appLanguage: getAppLanguage(hostLanguage), hostVersion: version, hostLanguage: hostLanguage, hostName: _hostName, hostSDKVersion: SDKVersion, hostTheme: theme, isUniAppX: false, uniPlatform: undefined || "mp-weixin", uniCompileVersion: "4.85", uniCompilerVersion: "4.85", uniRuntimeVersion: "4.85" })); } }; var getDeviceInfo = { returnValue: function returnValue(result) { var _result2 = result, brand = _result2.brand, model = _result2.model, _result2$system = _result2.system, system = _result2$system === void 0 ? '' : _result2$system, _result2$platform = _result2.platform, platform = _result2$platform === void 0 ? '' : _result2$platform; var deviceType = getGetDeviceType(result, model); var deviceBrand = getDeviceBrand(brand); useDeviceId(result); var _getOSInfo2 = getOSInfo(system, platform), osName = _getOSInfo2.osName, osVersion = _getOSInfo2.osVersion; result = sortObject(Object.assign(result, { deviceType: deviceType, deviceBrand: deviceBrand, deviceModel: model, osName: osName, osVersion: osVersion })); } }; var getWindowInfo = { returnValue: function returnValue(result) { addSafeAreaInsets(result); result = sortObject(Object.assign(result, { windowTop: 0, windowBottom: 0 })); } }; var getAppAuthorizeSetting = { returnValue: function returnValue(result) { var locationReducedAccuracy = result.locationReducedAccuracy; result.locationAccuracy = 'unsupported'; if (locationReducedAccuracy === true) { result.locationAccuracy = 'reduced'; } else if (locationReducedAccuracy === false) { result.locationAccuracy = 'full'; } } }; // import navigateTo from 'uni-helpers/navigate-to' var compressImage = { args: function args(fromArgs) { // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight if (fromArgs.compressedHeight && !fromArgs.compressHeight) { fromArgs.compressHeight = fromArgs.compressedHeight; } if (fromArgs.compressedWidth && !fromArgs.compressWidth) { fromArgs.compressWidth = fromArgs.compressedWidth; } } }; var protocols = { redirectTo: redirectTo, // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP previewImage: previewImage, getSystemInfo: getSystemInfo, getSystemInfoSync: getSystemInfo, showActionSheet: showActionSheet, getAppBaseInfo: getAppBaseInfo, getDeviceInfo: getDeviceInfo, getWindowInfo: getWindowInfo, getAppAuthorizeSetting: getAppAuthorizeSetting, compressImage: compressImage }; var todos = ['vibrate', 'preloadPage', 'unPreloadPage', 'loadSubPackage']; var canIUses = []; var CALLBACKS = ['success', 'fail', 'cancel', 'complete']; function processCallback(methodName, method, returnValue) { return function (res) { return method(processReturnValue(methodName, res, returnValue)); }; } function processArgs(methodName, fromArgs) { var argsOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var returnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; var keepFromArgs = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; if (isPlainObject(fromArgs)) { // 一般 api 的参数解析 var toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值 if (isFn(argsOption)) { argsOption = argsOption(fromArgs, toArgs) || {}; } for (var key in fromArgs) { if (hasOwn(argsOption, key)) { var keyOption = argsOption[key]; if (isFn(keyOption)) { keyOption = keyOption(fromArgs[key], fromArgs, toArgs); } if (!keyOption) { // 不支持的参数 console.warn("The '".concat(methodName, "' method of platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support option '").concat(key, "'")); } else if (isStr(keyOption)) { // 重写参数 key toArgs[keyOption] = fromArgs[key]; } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value toArgs[keyOption.name ? keyOption.name : key] = keyOption.value; } } else if (CALLBACKS.indexOf(key) !== -1) { if (isFn(fromArgs[key])) { toArgs[key] = processCallback(methodName, fromArgs[key], returnValue); } } else { if (!keepFromArgs) { toArgs[key] = fromArgs[key]; } } } return toArgs; } else if (isFn(fromArgs)) { fromArgs = processCallback(methodName, fromArgs, returnValue); } return fromArgs; } function processReturnValue(methodName, res, returnValue) { var keepReturnValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; if (isFn(protocols.returnValue)) { // 处理通用 returnValue res = protocols.returnValue(methodName, res); } return processArgs(methodName, res, returnValue, {}, keepReturnValue); } function wrapper(methodName, method) { if (hasOwn(protocols, methodName)) { var protocol = protocols[methodName]; if (!protocol) { // 暂不支持的 api return function () { console.error("Platform '\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F' does not support '".concat(methodName, "'.")); }; } return function (arg1, arg2) { // 目前 api 最多两个参数 var options = protocol; if (isFn(protocol)) { options = protocol(arg1); } arg1 = processArgs(methodName, arg1, options.args, options.returnValue); var args = [arg1]; if (typeof arg2 !== 'undefined') { args.push(arg2); } if (isFn(options.name)) { methodName = options.name(arg1); } else if (isStr(options.name)) { methodName = options.name; } var returnValue = wx[methodName].apply(wx, args); if (isSyncApi(methodName)) { // 同步 api return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName)); } return returnValue; }; } return method; } var todoApis = Object.create(null); var TODOS = ['onTabBarMidButtonTap', 'subscribePush', 'unsubscribePush', 'onPush', 'offPush', 'share']; function createTodoApi(name) { return function todoApi(_ref) { var fail = _ref.fail, complete = _ref.complete; var res = { errMsg: "".concat(name, ":fail method '").concat(name, "' not supported") }; isFn(fail) && fail(res); isFn(complete) && complete(res); }; } TODOS.forEach(function (name) { todoApis[name] = createTodoApi(name); }); var providers = { oauth: ['weixin'], share: ['weixin'], payment: ['wxpay'], push: ['weixin'] }; function getProvider(_ref2) { var service = _ref2.service, success = _ref2.success, fail = _ref2.fail, complete = _ref2.complete; var res = false; if (providers[service]) { res = { errMsg: 'getProvider:ok', service: service, provider: providers[service] }; isFn(success) && success(res); } else { res = { errMsg: 'getProvider:fail service not found' }; isFn(fail) && fail(res); } isFn(complete) && complete(res); } var extraApi = /*#__PURE__*/Object.freeze({ __proto__: null, getProvider: getProvider }); var getEmitter = function () { var Emitter; return function getUniEmitter() { if (!Emitter) { Emitter = new _vue.default(); } return Emitter; }; }(); function apply(ctx, method, args) { return ctx[method].apply(ctx, args); } function $on() { return apply(getEmitter(), '$on', Array.prototype.slice.call(arguments)); } function $off() { return apply(getEmitter(), '$off', Array.prototype.slice.call(arguments)); } function $once() { return apply(getEmitter(), '$once', Array.prototype.slice.call(arguments)); } function $emit() { return apply(getEmitter(), '$emit', Array.prototype.slice.call(arguments)); } var eventApi = /*#__PURE__*/Object.freeze({ __proto__: null, $on: $on, $off: $off, $once: $once, $emit: $emit }); /** * 框架内 try-catch */ /** * 开发者 try-catch */ function tryCatch(fn) { return function () { try { return fn.apply(fn, arguments); } catch (e) { // TODO console.error(e); } }; } function getApiCallbacks(params) { var apiCallbacks = {}; for (var name in params) { var param = params[name]; if (isFn(param)) { apiCallbacks[name] = tryCatch(param); delete params[name]; } } return apiCallbacks; } var cid; var cidErrMsg; var enabled; function normalizePushMessage(message) { try { return JSON.parse(message); } catch (e) {} return message; } function invokePushCallback(args) { if (args.type === 'enabled') { enabled = true; } else if (args.type === 'clientId') { cid = args.cid; cidErrMsg = args.errMsg; invokeGetPushCidCallbacks(cid, args.errMsg); } else if (args.type === 'pushMsg') { var message = { type: 'receive', data: normalizePushMessage(args.message) }; for (var i = 0; i < onPushMessageCallbacks.length; i++) { var callback = onPushMessageCallbacks[i]; callback(message); // 该消息已被阻止 if (message.stopped) { break; } } } else if (args.type === 'click') { onPushMessageCallbacks.forEach(function (callback) { callback({ type: 'click', data: normalizePushMessage(args.message) }); }); } } var getPushCidCallbacks = []; function invokeGetPushCidCallbacks(cid, errMsg) { getPushCidCallbacks.forEach(function (callback) { callback(cid, errMsg); }); getPushCidCallbacks.length = 0; } function getPushClientId(args) { if (!isPlainObject(args)) { args = {}; } var _getApiCallbacks = getApiCallbacks(args), success = _getApiCallbacks.success, fail = _getApiCallbacks.fail, complete = _getApiCallbacks.complete; var hasSuccess = isFn(success); var hasFail = isFn(fail); var hasComplete = isFn(complete); Promise.resolve().then(function () { if (typeof enabled === 'undefined') { enabled = false; cid = ''; cidErrMsg = 'uniPush is not enabled'; } getPushCidCallbacks.push(function (cid, errMsg) { var res; if (cid) { res = { errMsg: 'getPushClientId:ok', cid: cid }; hasSuccess && success(res); } else { res = { errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '') }; hasFail && fail(res); } hasComplete && complete(res); }); if (typeof cid !== 'undefined') { invokeGetPushCidCallbacks(cid, cidErrMsg); } }); } var onPushMessageCallbacks = []; // 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现 var onPushMessage = function onPushMessage(fn) { if (onPushMessageCallbacks.indexOf(fn) === -1) { onPushMessageCallbacks.push(fn); } }; var offPushMessage = function offPushMessage(fn) { if (!fn) { onPushMessageCallbacks.length = 0; } else { var index = onPushMessageCallbacks.indexOf(fn); if (index > -1) { onPushMessageCallbacks.splice(index, 1); } } }; function __f__(type) { for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { args[_key3 - 1] = arguments[_key3]; } console[type].apply(console, args); } var baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo(); if (!baseInfo) { baseInfo = wx.getSystemInfoSync(); } var host = baseInfo ? baseInfo.host : null; var shareVideoMessage = host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage; var api = /*#__PURE__*/Object.freeze({ __proto__: null, shareVideoMessage: shareVideoMessage, getPushClientId: getPushClientId, onPushMessage: onPushMessage, offPushMessage: offPushMessage, invokePushCallback: invokePushCallback, __f__: __f__ }); var mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__']; function findVmByVueId(vm, vuePid) { var $children = vm.$children; // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200) for (var i = $children.length - 1; i >= 0; i--) { var childVm = $children[i]; if (childVm.$scope._$vueId === vuePid) { return childVm; } } // 反向递归查找 var parentVm; for (var _i = $children.length - 1; _i >= 0; _i--) { parentVm = findVmByVueId($children[_i], vuePid); if (parentVm) { return parentVm; } } } function initBehavior(options) { return Behavior(options); } function isPage() { return !!this.route; } function initRelation(detail) { this.triggerEvent('__l', detail); } function selectAllComponents(mpInstance, selector, $refs) { var components = mpInstance.selectAllComponents(selector) || []; components.forEach(function (component) { var ref = component.dataset.ref; $refs[ref] = component.$vm || toSkip(component); { if (component.dataset.vueGeneric === 'scoped') { component.selectAllComponents('.scoped-ref').forEach(function (scopedComponent) { selectAllComponents(scopedComponent, selector, $refs); }); } } }); } function syncRefs(refs, newRefs) { var oldKeys = (0, _construct2.default)(Set, (0, _toConsumableArray2.default)(Object.keys(refs))); var newKeys = Object.keys(newRefs); newKeys.forEach(function (key) { var oldValue = refs[key]; var newValue = newRefs[key]; if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(function (value) { return oldValue.includes(value); })) { return; } refs[key] = newValue; oldKeys.delete(key); }); oldKeys.forEach(function (key) { delete refs[key]; }); return refs; } function initRefs(vm) { var mpInstance = vm.$scope; var refs = {}; Object.defineProperty(vm, '$refs', { get: function get() { var $refs = {}; selectAllComponents(mpInstance, '.vue-ref', $refs); // TODO 暂不考虑 for 中的 scoped var forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || []; forComponents.forEach(function (component) { var ref = component.dataset.ref; if (!$refs[ref]) { $refs[ref] = []; } $refs[ref].push(component.$vm || toSkip(component)); }); return syncRefs(refs, $refs); } }); } function handleLink(event) { var _ref3 = event.detail || event.value, vuePid = _ref3.vuePid, vueOptions = _ref3.vueOptions; // detail 是微信,value 是百度(dipatch) var parentVm; if (vuePid) { parentVm = findVmByVueId(this.$vm, vuePid); } if (!parentVm) { parentVm = this.$vm; } vueOptions.parent = parentVm; } function markMPComponent(component) { // 在 Vue 中标记为小程序组件 var IS_MP = '__v_isMPComponent'; Object.defineProperty(component, IS_MP, { configurable: true, enumerable: false, value: true }); return component; } function toSkip(obj) { var OB = '__ob__'; var SKIP = '__v_skip'; if (isObject(obj) && Object.isExtensible(obj)) { // 避免被 @vue/composition-api 观测 Object.defineProperty(obj, OB, { configurable: true, enumerable: false, value: (0, _defineProperty2.default)({}, SKIP, true) }); } return obj; } var WORKLET_RE = /_(.*)_worklet_factory_/; function initWorkletMethods(mpMethods, vueMethods) { if (vueMethods) { Object.keys(vueMethods).forEach(function (name) { var matches = name.match(WORKLET_RE); if (matches) { var workletName = matches[1]; mpMethods[name] = vueMethods[name]; mpMethods[workletName] = vueMethods[workletName]; } }); } } var MPPage = Page; var MPComponent = Component; var customizeRE = /:/g; var customize = cached(function (str) { return camelize(str.replace(customizeRE, '-')); }); function initTriggerEvent(mpInstance) { var oldTriggerEvent = mpInstance.triggerEvent; var newTriggerEvent = function newTriggerEvent(event) { for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { args[_key4 - 1] = arguments[_key4]; } // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件 if (this.$vm || this.dataset && this.dataset.comType) { event = customize(event); } else { // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目 var newEvent = customize(event); if (newEvent !== event) { oldTriggerEvent.apply(this, [newEvent].concat(args)); } } return oldTriggerEvent.apply(this, [event].concat(args)); }; try { // 京东小程序 triggerEvent 为只读 mpInstance.triggerEvent = newTriggerEvent; } catch (error) { mpInstance._triggerEvent = newTriggerEvent; } } function initHook(name, options, isComponent) { var oldHook = options[name]; options[name] = function () { markMPComponent(this); initTriggerEvent(this); if (oldHook) { for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } return oldHook.apply(this, args); } }; } if (!MPPage.__$wrappered) { MPPage.__$wrappered = true; Page = function Page() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; initHook('onLoad', options); return MPPage(options); }; Page.after = MPPage.after; Component = function Component() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; initHook('created', options); return MPComponent(options); }; } var PAGE_EVENT_HOOKS = ['onPullDownRefresh', 'onReachBottom', 'onAddToFavorites', 'onShareTimeline', 'onShareAppMessage', 'onPageScroll', 'onResize', 'onTabItemTap']; function initMocks(vm, mocks) { var mpInstance = vm.$mp[vm.mpType]; mocks.forEach(function (mock) { if (hasOwn(mpInstance, mock)) { vm[mock] = mpInstance[mock]; } }); } function hasHook(hook, vueOptions) { if (!vueOptions) { return true; } if (_vue.default.options && Array.isArray(_vue.default.options[hook])) { return true; } vueOptions = vueOptions.default || vueOptions; if (isFn(vueOptions)) { if (isFn(vueOptions.extendOptions[hook])) { return true; } if (vueOptions.super && vueOptions.super.options && Array.isArray(vueOptions.super.options[hook])) { return true; } return false; } if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) { return true; } var mixins = vueOptions.mixins; if (Array.isArray(mixins)) { return !!mixins.find(function (mixin) { return hasHook(hook, mixin); }); } } function initHooks(mpOptions, hooks, vueOptions) { hooks.forEach(function (hook) { if (hasHook(hook, vueOptions)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args); }; } }); } function initUnknownHooks(mpOptions, vueOptions) { var excludes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; findHooks(vueOptions).forEach(function (hook) { return initHook$1(mpOptions, hook, excludes); }); } function findHooks(vueOptions) { var hooks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; if (vueOptions) { Object.keys(vueOptions).forEach(function (name) { if (name.indexOf('on') === 0 && isFn(vueOptions[name])) { hooks.push(name); } }); } return hooks; } function initHook$1(mpOptions, hook, excludes) { if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) { mpOptions[hook] = function (args) { return this.$vm && this.$vm.__call_hook(hook, args); }; } } function initVueComponent(Vue, vueOptions) { vueOptions = vueOptions.default || vueOptions; var VueComponent; if (isFn(vueOptions)) { VueComponent = vueOptions; } else { VueComponent = Vue.extend(vueOptions); } vueOptions = VueComponent.options; return [VueComponent, vueOptions]; } function initSlots(vm, vueSlots) { if (Array.isArray(vueSlots) && vueSlots.length) { var $slots = Object.create(null); vueSlots.forEach(function (slotName) { $slots[slotName] = true; }); vm.$scopedSlots = vm.$slots = $slots; } } function initVueIds(vueIds, mpInstance) { vueIds = (vueIds || '').split(','); var len = vueIds.length; if (len === 1) { mpInstance._$vueId = vueIds[0]; } else if (len === 2) { mpInstance._$vueId = vueIds[0]; mpInstance._$vuePid = vueIds[1]; } } function initData(vueOptions, context) { var data = vueOptions.data || {}; var methods = vueOptions.methods || {}; if (typeof data === 'function') { try { data = data.call(context); // 支持 Vue.prototype 上挂的数据 } catch (e) { if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"chargingPile","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) { console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data); } } } else { try { // 对 data 格式化 data = JSON.parse(JSON.stringify(data)); } catch (e) {} } if (!isPlainObject(data)) { data = {}; } Object.keys(methods).forEach(function (methodName) { if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) { data[methodName] = methods[methodName]; } }); return data; } var PROP_TYPES = [String, Number, Boolean, Object, Array, null]; function createObserver(name) { return function observer(newVal, oldVal) { if (this.$vm) { this.$vm[name] = newVal; // 为了触发其他非 render watcher } }; } function initBehaviors(vueOptions, initBehavior) { var vueBehaviors = vueOptions.behaviors; var vueExtends = vueOptions.extends; var vueMixins = vueOptions.mixins; var vueProps = vueOptions.props; if (!vueProps) { vueOptions.props = vueProps = []; } var behaviors = []; if (Array.isArray(vueBehaviors)) { vueBehaviors.forEach(function (behavior) { behaviors.push(behavior.replace('uni://', "wx".concat("://"))); if (behavior === 'uni://form-field') { if (Array.isArray(vueProps)) { vueProps.push('name'); vueProps.push('value'); } else { vueProps.name = { type: String, default: '' }; vueProps.value = { type: [String, Number, Boolean, Array, Object, Date], default: '' }; } } }); } if (isPlainObject(vueExtends) && vueExtends.props) { behaviors.push(initBehavior({ properties: initProperties(vueExtends.props, true) })); } if (Array.isArray(vueMixins)) { vueMixins.forEach(function (vueMixin) { if (isPlainObject(vueMixin) && vueMixin.props) { behaviors.push(initBehavior({ properties: initProperties(vueMixin.props, true) })); } }); } return behaviors; } function parsePropType(key, type, defaultValue, file) { // [String]=>String if (Array.isArray(type) && type.length === 1) { return type[0]; } return type; } function initProperties(props) { var isBehavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; var options = arguments.length > 3 ? arguments[3] : undefined; var properties = {}; if (!isBehavior) { properties.vueId = { type: String, value: '' }; { if (options.virtualHost) { properties.virtualHostStyle = { type: null, value: '' }; properties.virtualHostClass = { type: null, value: '' }; } } // scopedSlotsCompiler auto properties.scopedSlotsCompiler = { type: String, value: '' }; properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots type: null, value: [], observer: function observer(newVal, oldVal) { var $slots = Object.create(null); newVal.forEach(function (slotName) { $slots[slotName] = true; }); this.setData({ $slots: $slots }); } }; } if (Array.isArray(props)) { // ['title'] props.forEach(function (key) { properties[key] = { type: null, observer: createObserver(key) }; }); } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String} Object.keys(props).forEach(function (key) { var opts = props[key]; if (isPlainObject(opts)) { // title:{type:String,default:''} var value = opts.default; if (isFn(value)) { value = value(); } opts.type = parsePropType(key, opts.type); properties[key] = { type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null, value: value, observer: createObserver(key) }; } else { // content:String var type = parsePropType(key, opts); properties[key] = { type: PROP_TYPES.indexOf(type) !== -1 ? type : null, observer: createObserver(key) }; } }); } return properties; } function wrapper$1(event) { // TODO 又得兼容 mpvue 的 mp 对象 try { event.mp = JSON.parse(JSON.stringify(event)); } catch (e) {} event.stopPropagation = noop; event.preventDefault = noop; event.target = event.target || {}; if (!hasOwn(event, 'detail')) { event.detail = {}; } if (hasOwn(event, 'markerId')) { event.detail = (0, _typeof2.default)(event.detail) === 'object' ? event.detail : {}; event.detail.markerId = event.markerId; } if (isPlainObject(event.detail)) { event.target = Object.assign({}, event.target, event.detail); } return event; } function getExtraValue(vm, dataPathsArray) { var context = vm; dataPathsArray.forEach(function (dataPathArray) { var dataPath = dataPathArray[0]; var value = dataPathArray[2]; if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable'] var propPath = dataPathArray[1]; var valuePath = dataPathArray[3]; var vFor; if (Number.isInteger(dataPath)) { vFor = dataPath; } else if (!dataPath) { vFor = context; } else if (typeof dataPath === 'string' && dataPath) { if (dataPath.indexOf('#s#') === 0) { vFor = dataPath.substr(3); } else { vFor = vm.__get_value(dataPath, context); } } if (Number.isInteger(vFor)) { context = value; } else if (!propPath) { context = vFor[value]; } else { if (Array.isArray(vFor)) { context = vFor.find(function (vForItem) { return vm.__get_value(propPath, vForItem) === value; }); } else if (isPlainObject(vFor)) { context = Object.keys(vFor).find(function (vForKey) { return vm.__get_value(propPath, vFor[vForKey]) === value; }); } else { console.error('v-for 暂不支持循环数据:', vFor); } } if (valuePath) { context = vm.__get_value(valuePath, context); } } }); return context; } function processEventExtra(vm, extra, event, __args__) { var extraObj = {}; if (Array.isArray(extra) && extra.length) { /** *[ * ['data.items', 'data.id', item.data.id], * ['metas', 'id', meta.id] *], *[ * ['data.items', 'data.id', item.data.id], * ['metas', 'id', meta.id] *], *'test' */ extra.forEach(function (dataPath, index) { if (typeof dataPath === 'string') { if (!dataPath) { // model,prop.sync extraObj['$' + index] = vm; } else { if (dataPath === '$event') { // $event extraObj['$' + index] = event; } else if (dataPath === 'arguments') { extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__; } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event); } else { extraObj['$' + index] = vm.__get_value(dataPath); } } } else { extraObj['$' + index] = getExtraValue(vm, dataPath); } }); } return extraObj; } function getObjByArray(arr) { var obj = {}; for (var i = 1; i < arr.length; i++) { var element = arr[i]; obj[element[0]] = element[1]; } return obj; } function processEventArgs(vm, event) { var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var extra = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : []; var isCustom = arguments.length > 4 ? arguments[4] : undefined; var methodName = arguments.length > 5 ? arguments[5] : undefined; var isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象 // fixed 用户直接触发 mpInstance.triggerEvent var __args__ = isPlainObject(event.detail) ? event.detail.__args__ || [event.detail] : [event.detail]; if (isCustom) { // 自定义事件 isCustomMPEvent = event.currentTarget && event.currentTarget.dataset && event.currentTarget.dataset.comType === 'wx'; if (!args.length) { // 无参数,直接传入 event 或 detail 数组 if (isCustomMPEvent) { return [event]; } return __args__; } } var extraObj = processEventExtra(vm, extra, event, __args__); var ret = []; args.forEach(function (arg) { if (arg === '$event') { if (methodName === '__set_model' && !isCustom) { // input v-model value ret.push(event.target.value); } else { if (isCustom && !isCustomMPEvent) { ret.push(__args__[0]); } else { // wxcomponent 组件或内置组件 ret.push(event); } } } else { if (Array.isArray(arg) && arg[0] === 'o') { ret.push(getObjByArray(arg)); } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) { ret.push(extraObj[arg]); } else { ret.push(arg); } } }); return ret; } var ONCE = '~'; var CUSTOM = '^'; function isMatchEventType(eventType, optType) { return eventType === optType || optType === 'regionchange' && (eventType === 'begin' || eventType === 'end'); } function getContextVm(vm) { var $parent = vm.$parent; // 父组件是 scoped slots 或者其他自定义组件时继续查找 while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) { $parent = $parent.$parent; } return $parent && $parent.$parent; } function handleEvent(event) { var _this2 = this; event = wrapper$1(event); // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]] var dataset = (event.currentTarget || event.target).dataset; if (!dataset) { return console.warn('事件信息不存在'); } var eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰 if (!eventOpts) { return console.warn('事件信息不存在'); } // [['handle',[1,2,a]],['handle1',[1,2,a]]] var eventType = event.type; var ret = []; eventOpts.forEach(function (eventOpt) { var type = eventOpt[0]; var eventsArray = eventOpt[1]; var isCustom = type.charAt(0) === CUSTOM; type = isCustom ? type.slice(1) : type; var isOnce = type.charAt(0) === ONCE; type = isOnce ? type.slice(1) : type; if (eventsArray && isMatchEventType(eventType, type)) { eventsArray.forEach(function (eventArray) { var methodName = eventArray[0]; if (methodName) { var handlerCtx = _this2.$vm; if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots handlerCtx = getContextVm(handlerCtx) || handlerCtx; } if (methodName === '$emit') { handlerCtx.$emit.apply(handlerCtx, processEventArgs(_this2.$vm, event, eventArray[1], eventArray[2], isCustom, methodName)); return; } var handler = handlerCtx[methodName]; if (!isFn(handler)) { var _type = _this2.$vm.mpType === 'page' ? 'Page' : 'Component'; var path = _this2.route || _this2.is; throw new Error("".concat(_type, " \"").concat(path, "\" does not have a method \"").concat(methodName, "\"")); } if (isOnce) { if (handler.once) { return; } handler.once = true; } var params = processEventArgs(_this2.$vm, event, eventArray[1], eventArray[2], isCustom, methodName); params = Array.isArray(params) ? params : []; // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据 if (/=\s*\S+\.eventParams\s*\|\|\s*\S+\[['"]event-params['"]\]/.test(handler.toString())) { // eslint-disable-next-line no-sparse-arrays params = params.concat([,,,,,,,,,, event]); } ret.push(handler.apply(handlerCtx, params)); } }); } }); if (eventType === 'input' && ret.length === 1 && typeof ret[0] !== 'undefined') { return ret[0]; } } var eventChannels = {}; function getEventChannel(id) { var eventChannel = eventChannels[id]; delete eventChannels[id]; return eventChannel; } var hooks = ['onShow', 'onHide', 'onError', 'onPageNotFound', 'onThemeChange', 'onUnhandledRejection']; function initEventChannel() { _vue.default.prototype.getOpenerEventChannel = function () { // 微信小程序使用自身getOpenerEventChannel { return this.$scope.getOpenerEventChannel(); } }; var callHook = _vue.default.prototype.__call_hook; _vue.default.prototype.__call_hook = function (hook, args) { if (hook === 'onLoad' && args && args.__id__) { this.__eventChannel__ = getEventChannel(args.__id__); delete args.__id__; } return callHook.call(this, hook, args); }; } function initScopedSlotsParams() { var center = {}; var parents = {}; function currentId(fn) { var vueIds = this.$options.propsData.vueId; if (vueIds) { var vueId = vueIds.split(',')[0]; fn(vueId); } } _vue.default.prototype.$hasSSP = function (vueId) { var slot = center[vueId]; if (!slot) { parents[vueId] = this; this.$on('hook:destroyed', function () { delete parents[vueId]; }); } return slot; }; _vue.default.prototype.$getSSP = function (vueId, name, needAll) { var slot = center[vueId]; if (slot) { var params = slot[name] || []; if (needAll) { return params; } return params[0]; } }; _vue.default.prototype.$setSSP = function (name, value) { var index = 0; currentId.call(this, function (vueId) { var slot = center[vueId]; var params = slot[name] = slot[name] || []; params.push(value); index = params.length - 1; }); return index; }; _vue.default.prototype.$initSSP = function () { currentId.call(this, function (vueId) { center[vueId] = {}; }); }; _vue.default.prototype.$callSSP = function () { currentId.call(this, function (vueId) { if (parents[vueId]) { parents[vueId].$forceUpdate(); } }); }; _vue.default.mixin({ destroyed: function destroyed() { var propsData = this.$options.propsData; var vueId = propsData && propsData.vueId; if (vueId) { delete center[vueId]; delete parents[vueId]; } } }); } function parseBaseApp(vm, _ref4) { var mocks = _ref4.mocks, initRefs = _ref4.initRefs; initEventChannel(); { initScopedSlotsParams(); } if (vm.$options.store) { _vue.default.prototype.$store = vm.$options.store; } uniIdMixin(_vue.default); _vue.default.prototype.mpHost = "mp-weixin"; _vue.default.mixin({ beforeCreate: function beforeCreate() { if (!this.$options.mpType) { return; } this.mpType = this.$options.mpType; this.$mp = (0, _defineProperty2.default)({ data: {} }, this.mpType, this.$options.mpInstance); this.$scope = this.$options.mpInstance; delete this.$options.mpType; delete this.$options.mpInstance; if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n var app = getApp(); if (app.$vm && app.$vm.$i18n) { this._i18n = app.$vm.$i18n; } } if (this.mpType !== 'app') { initRefs(this); initMocks(this, mocks); } } }); var appOptions = { onLaunch: function onLaunch(args) { if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前 return; } { if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断 console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上'); } } this.$vm = vm; this.$vm.$mp = { app: this }; this.$vm.$scope = this; // vm 上也挂载 globalData this.$vm.globalData = this.globalData; this.$vm._isMounted = true; this.$vm.__call_hook('mounted', args); this.$vm.__call_hook('onLaunch', args); } }; // 兼容旧版本 globalData appOptions.globalData = vm.$options.globalData || {}; // 将 methods 中的方法挂在 getApp() 中 var methods = vm.$options.methods; if (methods) { Object.keys(methods).forEach(function (name) { appOptions[name] = methods[name]; }); } initAppLocale(_vue.default, vm, getLocaleLanguage$1()); initHooks(appOptions, hooks); initUnknownHooks(appOptions, vm.$options); return appOptions; } function getLocaleLanguage$1() { var localeLanguage = ''; { var appBaseInfo = wx.getAppBaseInfo(); var language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN; localeLanguage = normalizeLocale(language) || LOCALE_EN; } return localeLanguage; } function parseApp(vm) { return parseBaseApp(vm, { mocks: mocks, initRefs: initRefs }); } function createApp(vm) { App(parseApp(vm)); return vm; } var encodeReserveRE = /[!'()*]/g; var encodeReserveReplacer = function encodeReserveReplacer(c) { return '%' + c.charCodeAt(0).toString(16); }; var commaRE = /%2C/g; // fixed encodeURIComponent which is more conformant to RFC3986: // - escapes [!'()*] // - preserve commas var encode = function encode(str) { return encodeURIComponent(str).replace(encodeReserveRE, encodeReserveReplacer).replace(commaRE, ','); }; function stringifyQuery(obj) { var encodeStr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : encode; var res = obj ? Object.keys(obj).map(function (key) { var val = obj[key]; if (val === undefined) { return ''; } if (val === null) { return encodeStr(key); } if (Array.isArray(val)) { var result = []; val.forEach(function (val2) { if (val2 === undefined) { return; } if (val2 === null) { result.push(encodeStr(key)); } else { result.push(encodeStr(key) + '=' + encodeStr(val2)); } }); return result.join('&'); } return encodeStr(key) + '=' + encodeStr(val); }).filter(function (x) { return x.length > 0; }).join('&') : null; return res ? "?".concat(res) : ''; } function parseBaseComponent(vueComponentOptions) { var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, isPage = _ref5.isPage, initRelation = _ref5.initRelation; var needVueOptions = arguments.length > 2 ? arguments[2] : undefined; var _initVueComponent = initVueComponent(_vue.default, vueComponentOptions), _initVueComponent2 = (0, _slicedToArray2.default)(_initVueComponent, 2), VueComponent = _initVueComponent2[0], vueOptions = _initVueComponent2[1]; var options = _objectSpread({ multipleSlots: true, // styleIsolation: 'apply-shared', addGlobalClass: true }, vueOptions.options || {}); { // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项 if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) { Object.assign(options, vueOptions['mp-weixin'].options); } } var componentOptions = { options: options, data: initData(vueOptions, _vue.default.prototype), behaviors: initBehaviors(vueOptions, initBehavior), properties: initProperties(vueOptions.props, false, vueOptions.__file, options), lifetimes: { attached: function attached() { var properties = this.properties; var options = { mpType: isPage.call(this) ? 'page' : 'component', mpInstance: this, propsData: properties }; initVueIds(properties.vueId, this); // 处理父子关系 initRelation.call(this, { vuePid: this._$vuePid, vueOptions: options }); // 初始化 vue 实例 this.$vm = new VueComponent(options); // 处理$slots,$scopedSlots(暂不支持动态变化$slots) initSlots(this.$vm, properties.vueSlots); // 触发首次 setData this.$vm.$mount(); }, ready: function ready() { // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发 // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800 if (this.$vm) { this.$vm._isMounted = true; this.$vm.__call_hook('mounted'); this.$vm.__call_hook('onReady'); } }, detached: function detached() { this.$vm && this.$vm.$destroy(); } }, pageLifetimes: { show: function show(args) { this.$vm && this.$vm.__call_hook('onPageShow', args); }, hide: function hide() { this.$vm && this.$vm.__call_hook('onPageHide'); }, resize: function resize(size) { this.$vm && this.$vm.__call_hook('onPageResize', size); } }, methods: { __l: handleLink, __e: handleEvent } }; // externalClasses if (vueOptions.externalClasses) { componentOptions.externalClasses = vueOptions.externalClasses; } if (Array.isArray(vueOptions.wxsCallMethods)) { vueOptions.wxsCallMethods.forEach(function (callMethod) { componentOptions.methods[callMethod] = function (args) { return this.$vm[callMethod](args); }; }); } if (needVueOptions) { return [componentOptions, vueOptions, VueComponent]; } if (isPage) { return componentOptions; } return [componentOptions, VueComponent]; } function parseComponent(vueComponentOptions, needVueOptions) { return parseBaseComponent(vueComponentOptions, { isPage: isPage, initRelation: initRelation }, needVueOptions); } var hooks$1 = ['onShow', 'onHide', 'onUnload']; hooks$1.push.apply(hooks$1, PAGE_EVENT_HOOKS); function parseBasePage(vuePageOptions) { var _parseComponent = parseComponent(vuePageOptions, true), _parseComponent2 = (0, _slicedToArray2.default)(_parseComponent, 2), pageOptions = _parseComponent2[0], vueOptions = _parseComponent2[1]; initHooks(pageOptions.methods, hooks$1, vueOptions); pageOptions.methods.onLoad = function (query) { this.options = query; var copyQuery = Object.assign({}, query); delete copyQuery.__id__; this.$page = { fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery) }; this.$vm.$mp.query = query; // 兼容 mpvue this.$vm.__call_hook('onLoad', query); }; { initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']); } { initWorkletMethods(pageOptions.methods, vueOptions.methods); } return pageOptions; } function parsePage(vuePageOptions) { return parseBasePage(vuePageOptions); } function createPage(vuePageOptions) { { return Component(parsePage(vuePageOptions)); } } function createComponent(vueOptions) { { return Component(parseComponent(vueOptions)); } } function createSubpackageApp(vm) { var appOptions = parseApp(vm); var app = getApp({ allowDefault: true }); vm.$scope = app; var globalData = app.globalData; if (globalData) { Object.keys(appOptions.globalData).forEach(function (name) { if (!hasOwn(globalData, name)) { globalData[name] = appOptions.globalData[name]; } }); } Object.keys(appOptions).forEach(function (name) { if (!hasOwn(app, name)) { app[name] = appOptions[name]; } }); if (isFn(appOptions.onShow) && wx.onAppShow) { wx.onAppShow(function () { for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } vm.__call_hook('onShow', args); }); } if (isFn(appOptions.onHide) && wx.onAppHide) { wx.onAppHide(function () { for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { args[_key7] = arguments[_key7]; } vm.__call_hook('onHide', args); }); } if (isFn(appOptions.onLaunch)) { var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync(); vm.__call_hook('onLaunch', args); } return vm; } function createPlugin(vm) { var appOptions = parseApp(vm); if (isFn(appOptions.onShow) && wx.onAppShow) { wx.onAppShow(function () { for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { args[_key8] = arguments[_key8]; } vm.__call_hook('onShow', args); }); } if (isFn(appOptions.onHide) && wx.onAppHide) { wx.onAppHide(function () { for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { args[_key9] = arguments[_key9]; } vm.__call_hook('onHide', args); }); } if (isFn(appOptions.onLaunch)) { var args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync(); vm.__call_hook('onLaunch', args); } return vm; } todos.forEach(function (todoApi) { protocols[todoApi] = false; }); canIUses.forEach(function (canIUseApi) { var apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name : canIUseApi; if (!wx.canIUse(apiName)) { protocols[canIUseApi] = false; } }); var uni = {}; if (typeof Proxy !== 'undefined' && "mp-weixin" !== 'app-plus') { uni = new Proxy({}, { get: function get(target, name) { if (hasOwn(target, name)) { return target[name]; } if (baseApi[name]) { return baseApi[name]; } if (api[name]) { return promisify(name, api[name]); } { if (extraApi[name]) { return promisify(name, extraApi[name]); } if (todoApis[name]) { return promisify(name, todoApis[name]); } } if (eventApi[name]) { return eventApi[name]; } return promisify(name, wrapper(name, wx[name])); }, set: function set(target, name, value) { target[name] = value; return true; } }); } else { Object.keys(baseApi).forEach(function (name) { uni[name] = baseApi[name]; }); { Object.keys(todoApis).forEach(function (name) { uni[name] = promisify(name, todoApis[name]); }); Object.keys(extraApi).forEach(function (name) { uni[name] = promisify(name, extraApi[name]); }); } Object.keys(eventApi).forEach(function (name) { uni[name] = eventApi[name]; }); Object.keys(api).forEach(function (name) { uni[name] = promisify(name, api[name]); }); Object.keys(wx).forEach(function (name) { if (hasOwn(wx, name) || hasOwn(protocols, name)) { uni[name] = promisify(name, wrapper(name, wx[name])); } }); } wx.createApp = createApp; wx.createPage = createPage; wx.createComponent = createComponent; wx.createSubpackageApp = createSubpackageApp; wx.createPlugin = createPlugin; var uni$1 = uni; var _default = uni$1; exports.default = _default; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js */ 1)["default"], __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 3))) /***/ }), /***/ 20: /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 21: /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 22: /*!*************************************************************!*\ !*** ./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(uni, global) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4); Object.defineProperty(exports, "__esModule", { value: true }); exports.LOCALE_ZH_HANT = exports.LOCALE_ZH_HANS = exports.LOCALE_FR = exports.LOCALE_ES = exports.LOCALE_EN = exports.I18n = exports.Formatter = void 0; exports.compileI18nJsonStr = compileI18nJsonStr; exports.hasI18nJson = hasI18nJson; exports.initVueI18n = initVueI18n; exports.isI18nStr = isI18nStr; exports.isString = void 0; exports.normalizeLocale = normalizeLocale; exports.parseI18nJson = parseI18nJson; exports.resolveLocale = resolveLocale; var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 5)); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ 23)); var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ 24)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); var isObject = function isObject(val) { return val !== null && (0, _typeof2.default)(val) === 'object'; }; var defaultDelimiters = ['{', '}']; var BaseFormatter = /*#__PURE__*/function () { function BaseFormatter() { (0, _classCallCheck2.default)(this, BaseFormatter); this._caches = Object.create(null); } (0, _createClass2.default)(BaseFormatter, [{ key: "interpolate", value: function interpolate(message, values) { var delimiters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDelimiters; if (!values) { return [message]; } var tokens = this._caches[message]; if (!tokens) { tokens = parse(message, delimiters); this._caches[message] = tokens; } return compile(tokens, values); } }]); return BaseFormatter; }(); exports.Formatter = BaseFormatter; var RE_TOKEN_LIST_VALUE = /^(?:\d)+/; var RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; function parse(format, _ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), startDelimiter = _ref2[0], endDelimiter = _ref2[1]; var tokens = []; var position = 0; var text = ''; while (position < format.length) { var char = format[position++]; if (char === startDelimiter) { if (text) { tokens.push({ type: 'text', value: text }); } text = ''; var sub = ''; char = format[position++]; while (char !== undefined && char !== endDelimiter) { sub += char; char = format[position++]; } var isClosed = char === endDelimiter; var type = RE_TOKEN_LIST_VALUE.test(sub) ? 'list' : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? 'named' : 'unknown'; tokens.push({ value: sub, type: type }); } // else if (char === '%') { // // when found rails i18n syntax, skip text capture // if (format[position] !== '{') { // text += char // } // } else { text += char; } } text && tokens.push({ type: 'text', value: text }); return tokens; } function compile(tokens, values) { var compiled = []; var index = 0; var mode = Array.isArray(values) ? 'list' : isObject(values) ? 'named' : 'unknown'; if (mode === 'unknown') { return compiled; } while (index < tokens.length) { var token = tokens[index]; switch (token.type) { case 'text': compiled.push(token.value); break; case 'list': compiled.push(values[parseInt(token.value, 10)]); break; case 'named': if (mode === 'named') { compiled.push(values[token.value]); } else { if (true) { console.warn("Type of token '".concat(token.type, "' and format of value '").concat(mode, "' don't match!")); } } break; case 'unknown': if (true) { console.warn("Detect 'unknown' type of token!"); } break; } index++; } return compiled; } var LOCALE_ZH_HANS = 'zh-Hans'; exports.LOCALE_ZH_HANS = LOCALE_ZH_HANS; var LOCALE_ZH_HANT = 'zh-Hant'; exports.LOCALE_ZH_HANT = LOCALE_ZH_HANT; var LOCALE_EN = 'en'; exports.LOCALE_EN = LOCALE_EN; var LOCALE_FR = 'fr'; exports.LOCALE_FR = LOCALE_FR; var LOCALE_ES = 'es'; exports.LOCALE_ES = LOCALE_ES; var hasOwnProperty = Object.prototype.hasOwnProperty; var hasOwn = function hasOwn(val, key) { return hasOwnProperty.call(val, key); }; var defaultFormatter = new BaseFormatter(); function include(str, parts) { return !!parts.find(function (part) { return str.indexOf(part) !== -1; }); } function startsWith(str, parts) { return parts.find(function (part) { return str.indexOf(part) === 0; }); } function normalizeLocale(locale, messages) { if (!locale) { return; } locale = locale.trim().replace(/_/g, '-'); if (messages && messages[locale]) { return locale; } locale = locale.toLowerCase(); if (locale === 'chinese') { // 支付宝 return LOCALE_ZH_HANS; } if (locale.indexOf('zh') === 0) { if (locale.indexOf('-hans') > -1) { return LOCALE_ZH_HANS; } if (locale.indexOf('-hant') > -1) { return LOCALE_ZH_HANT; } if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) { return LOCALE_ZH_HANT; } return LOCALE_ZH_HANS; } var locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; if (messages && Object.keys(messages).length > 0) { locales = Object.keys(messages); } var lang = startsWith(locale, locales); if (lang) { return lang; } } var I18n = /*#__PURE__*/function () { function I18n(_ref3) { var locale = _ref3.locale, fallbackLocale = _ref3.fallbackLocale, messages = _ref3.messages, watcher = _ref3.watcher, formater = _ref3.formater; (0, _classCallCheck2.default)(this, I18n); this.locale = LOCALE_EN; this.fallbackLocale = LOCALE_EN; this.message = {}; this.messages = {}; this.watchers = []; if (fallbackLocale) { this.fallbackLocale = fallbackLocale; } this.formater = formater || defaultFormatter; this.messages = messages || {}; this.setLocale(locale || LOCALE_EN); if (watcher) { this.watchLocale(watcher); } } (0, _createClass2.default)(I18n, [{ key: "setLocale", value: function setLocale(locale) { var _this = this; var oldLocale = this.locale; this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; if (!this.messages[this.locale]) { // 可能初始化时不存在 this.messages[this.locale] = {}; } this.message = this.messages[this.locale]; // 仅发生变化时,通知 if (oldLocale !== this.locale) { this.watchers.forEach(function (watcher) { watcher(_this.locale, oldLocale); }); } } }, { key: "getLocale", value: function getLocale() { return this.locale; } }, { key: "watchLocale", value: function watchLocale(fn) { var _this2 = this; var index = this.watchers.push(fn) - 1; return function () { _this2.watchers.splice(index, 1); }; } }, { key: "add", value: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var curMessages = this.messages[locale]; if (curMessages) { if (override) { Object.assign(curMessages, message); } else { Object.keys(message).forEach(function (key) { if (!hasOwn(curMessages, key)) { curMessages[key] = message[key]; } }); } } else { this.messages[locale] = message; } } }, { key: "f", value: function f(message, values, delimiters) { return this.formater.interpolate(message, values, delimiters).join(''); } }, { key: "t", value: function t(key, locale, values) { var message = this.message; if (typeof locale === 'string') { locale = normalizeLocale(locale, this.messages); locale && (message = this.messages[locale]); } else { values = locale; } if (!hasOwn(message, key)) { console.warn("Cannot translate the value of keypath ".concat(key, ". Use the value of keypath as default.")); return key; } return this.formater.interpolate(message[key], values).join(''); } }]); return I18n; }(); exports.I18n = I18n; function watchAppLocale(appVm, i18n) { // 需要保证 watch 的触发在组件渲染之前 if (appVm.$watchLocale) { // vue2 appVm.$watchLocale(function (newLocale) { i18n.setLocale(newLocale); }); } else { appVm.$watch(function () { return appVm.$locale; }, function (newLocale) { i18n.setLocale(newLocale); }); } } function getDefaultLocale() { if (typeof uni !== 'undefined' && uni.getLocale) { return uni.getLocale(); } // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale if (typeof global !== 'undefined' && global.getLocale) { return global.getLocale(); } return LOCALE_EN; } function initVueI18n(locale) { var messages = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var fallbackLocale = arguments.length > 2 ? arguments[2] : undefined; var watcher = arguments.length > 3 ? arguments[3] : undefined; // 兼容旧版本入参 if (typeof locale !== 'string') { var _ref4 = [messages, locale]; locale = _ref4[0]; messages = _ref4[1]; } if (typeof locale !== 'string') { // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined locale = getDefaultLocale(); } if (typeof fallbackLocale !== 'string') { fallbackLocale = typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale || LOCALE_EN; } var i18n = new I18n({ locale: locale, fallbackLocale: fallbackLocale, messages: messages, watcher: watcher }); var _t = function t(key, values) { if (typeof getApp !== 'function') { // app view /* eslint-disable no-func-assign */ _t = function t(key, values) { return i18n.t(key, values); }; } else { var isWatchedAppLocale = false; _t = function t(key, values) { var appVm = getApp().$vm; // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化 // options: { // type: Array, // default () { // return [{ // icon: 'shop', // text: t("uni-goods-nav.options.shop"), // }, { // icon: 'cart', // text: t("uni-goods-nav.options.cart") // }] // } // }, if (appVm) { // 触发响应式 appVm.$locale; if (!isWatchedAppLocale) { isWatchedAppLocale = true; watchAppLocale(appVm, i18n); } } return i18n.t(key, values); }; } return _t(key, values); }; return { i18n: i18n, f: function f(message, values, delimiters) { return i18n.f(message, values, delimiters); }, t: function t(key, values) { return _t(key, values); }, add: function add(locale, message) { var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; return i18n.add(locale, message, override); }, watch: function watch(fn) { return i18n.watchLocale(fn); }, getLocale: function getLocale() { return i18n.getLocale(); }, setLocale: function setLocale(newLocale) { return i18n.setLocale(newLocale); } }; } var isString = function isString(val) { return typeof val === 'string'; }; exports.isString = isString; var formater; function hasI18nJson(jsonObj, delimiters) { if (!formater) { formater = new BaseFormatter(); } return walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { return true; } } else { return hasI18nJson(value, delimiters); } }); } function parseI18nJson(jsonObj, values, delimiters) { if (!formater) { formater = new BaseFormatter(); } walkJsonObj(jsonObj, function (jsonObj, key) { var value = jsonObj[key]; if (isString(value)) { if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, values, delimiters); } } else { parseI18nJson(value, values, delimiters); } }); return jsonObj; } function compileI18nJsonStr(jsonStr, _ref5) { var locale = _ref5.locale, locales = _ref5.locales, delimiters = _ref5.delimiters; if (!isI18nStr(jsonStr, delimiters)) { return jsonStr; } if (!formater) { formater = new BaseFormatter(); } var localeValues = []; Object.keys(locales).forEach(function (name) { if (name !== locale) { localeValues.push({ locale: name, values: locales[name] }); } }); localeValues.unshift({ locale: locale, values: locales[locale] }); try { return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2); } catch (e) {} return jsonStr; } function isI18nStr(value, delimiters) { return value.indexOf(delimiters[0]) > -1; } function compileStr(value, values, delimiters) { return formater.interpolate(value, values, delimiters).join(''); } function compileValue(jsonObj, key, localeValues, delimiters) { var value = jsonObj[key]; if (isString(value)) { // 存在国际化 if (isI18nStr(value, delimiters)) { jsonObj[key] = compileStr(value, localeValues[0].values, delimiters); if (localeValues.length > 1) { // 格式化国际化语言 var valueLocales = jsonObj[key + 'Locales'] = {}; localeValues.forEach(function (localValue) { valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters); }); } } } else { compileJsonObj(value, localeValues, delimiters); } } function compileJsonObj(jsonObj, localeValues, delimiters) { walkJsonObj(jsonObj, function (jsonObj, key) { compileValue(jsonObj, key, localeValues, delimiters); }); return jsonObj; } function walkJsonObj(jsonObj, walk) { if (Array.isArray(jsonObj)) { for (var i = 0; i < jsonObj.length; i++) { if (walk(jsonObj, i)) { return true; } } } else if (isObject(jsonObj)) { for (var key in jsonObj) { if (walk(jsonObj, key)) { return true; } } } return false; } function resolveLocale(locales) { return function (locale) { if (!locale) { return locale; } locale = normalizeLocale(locale) || locale; return resolveLocaleChain(locale).find(function (locale) { return locales.indexOf(locale) > -1; }); }; } function resolveLocaleChain(locale) { var chain = []; var tokens = locale.split('-'); while (tokens.length) { chain.push(tokens.join('-')); tokens.pop(); } return chain; } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"], __webpack_require__(/*! ./../../../webpack/buildin/global.js */ 3))) /***/ }), /***/ 220: /*!*********************************************************************************************************************************!*\ !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/common/relation.js ***! \*********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4); Object.defineProperty(exports, "__esModule", { value: true }); exports.children = children; exports.parent = parent; var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ 18)); var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11)); var styles = function styles() { var v = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; return v.split(';').filter(function (v) { return v && !/^[\n\s]+$/.test(v); }).map(function (v) { var key = v.slice(0, v.indexOf(':')); var value = v.slice(v.indexOf(':') + 1); return (0, _defineProperty2.default)({}, key.replace(/-([a-z])/g, function () { return arguments[1].toUpperCase(); }).replace(/\s+/g, ''), value.replace(/^\s+/, '').replace(/\s+$/, '') || ''); }); }; function parent(parent) { return { provide: function provide() { return (0, _defineProperty2.default)({}, parent, this); }, data: function data() { return { el: { id: null, css: {}, views: [] } }; }, watch: { css: { handler: function handler(v) { if (this.canvasId) { this.el.css = ((0, _typeof2.default)(v) == 'object' ? v : v && Object.assign.apply(Object, (0, _toConsumableArray2.default)(styles(v)))) || {}; this.canvasWidth = this.el.css && this.el.css.width || this.canvasWidth; this.canvasHeight = this.el.css && this.el.css.height || this.canvasHeight; } }, immediate: true } } }; } function children(parent) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var indexKey = options.indexKey || 'index'; return { inject: (0, _defineProperty2.default)({}, parent, { default: null }), watch: { el: { handler: function handler(v, o) { if (JSON.stringify(v) != JSON.stringify(o)) this.bindRelation(); }, deep: true, immediate: true }, src: { handler: function handler(v, o) { if (v != o) this.bindRelation(); }, immediate: true }, text: { handler: function handler(v, o) { if (v != o) this.bindRelation(); }, immediate: true }, css: { handler: function handler(v, o) { if (v != o) this.el.css = ((0, _typeof2.default)(v) == 'object' ? v : v && Object.assign.apply(Object, (0, _toConsumableArray2.default)(styles(v)))) || {}; }, immediate: true }, replace: { handler: function handler(v, o) { if (JSON.stringify(v) != JSON.stringify(o)) this.bindRelation(); }, deep: true, immediate: true } }, created: function created() { var _this = this; if (!this._uid) { this._uid = this._.uid; } Object.defineProperty(this, 'parent', { get: function get() { return _this[parent] || []; } }); Object.defineProperty(this, 'index', { get: function get() { _this.bindRelation(); var _this$parent = _this.parent; _this$parent = _this$parent === void 0 ? {} : _this$parent; var _this$parent$el = _this$parent.el; _this$parent$el = _this$parent$el === void 0 ? {} : _this$parent$el; var _this$parent$el$views = _this$parent$el.views, views = _this$parent$el$views === void 0 ? [] : _this$parent$el$views; return views.indexOf(_this.el); } }); this.el.type = this.type; if (this.uid) { this.el.uid = this.uid; } this.bindRelation(); }, beforeDestroy: function beforeDestroy() { this.removeEl(); }, methods: { removeEl: function removeEl() { var _this2 = this; if (this.parent) { this.parent.el.views = this.parent.el.views.filter(function (item) { return item._uid !== _this2._uid; }); } }, bindRelation: function bindRelation() { var _this3 = this; if (!this.el._uid) { this.el._uid = this._uid; } if (['text', 'qrcode'].includes(this.type)) { this.el.text = this.$slots && this.$slots.default && this.$slots.default[0].text || "".concat(this.text || '').replace(/\\n/g, '\n'); } if (this.type == 'image') { this.el.src = this.src; } if (!this.parent) { return; } var views = this.parent.el.views || []; if (views.indexOf(this.el) !== -1) { this.parent.el.views = views.map(function (v) { return v._uid == _this3._uid ? _this3.el : v; }); } else { this.parent.el.views = [].concat((0, _toConsumableArray2.default)(views), [this.el]); } } }, mounted: function mounted() { // this.bindRelation() } }; } /***/ }), /***/ 221: /*!*********************************************************************************************************************************!*\ !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter/props.js ***! \*********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { props: { board: Object, pathType: String, // 'base64'、'url' fileType: { type: String, default: 'png' }, hidden: Boolean, quality: { type: Number, default: 1 }, css: [String, Object], // styles: [String, Object], width: [Number, String], height: [Number, String], pixelRatio: Number, customStyle: String, isCanvasToTempFilePath: Boolean, // useCanvasToTempFilePath: Boolean, sleep: { type: Number, default: 1000 / 30 }, beforeDelay: { type: Number, default: 100 }, afterDelay: { type: Number, default: 100 }, performance: Boolean, type: { type: String, default: '2d' } } }; exports.default = _default; /***/ }), /***/ 222: /*!*********************************************************************************************************************************!*\ !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter/utils.js ***! \*********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(uni, wx) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4); Object.defineProperty(exports, "__esModule", { value: true }); exports.base64ToPath = base64ToPath; exports.canIUseCanvas2d = canIUseCanvas2d; exports.compareVersion = compareVersion; exports.getImageInfo = getImageInfo; exports.isBase64 = void 0; exports.isNumber = isNumber; exports.networkReg = exports.isPC = void 0; exports.pathToBase64 = pathToBase64; exports.prefix = void 0; exports.sleep = sleep; exports.toPx = toPx; var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ 31)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ 11)); var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ 33)); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ 5)); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var networkReg = /^(http|\/\/)/; exports.networkReg = networkReg; var isBase64 = function isBase64(path) { return /^data:image\/(\w+);base64/.test(path); }; exports.isBase64 = isBase64; function sleep(delay) { return new Promise(function (resolve) { return setTimeout(resolve, delay); }); } var _uni$getSystemInfoSyn = uni.getSystemInfoSync(), platform = _uni$getSystemInfoSyn.platform, SDKVersion = _uni$getSystemInfoSyn.SDKVersion; var isPC = /windows|mac/.test(platform); // 缓存图片 exports.isPC = isPC; var cache = {}; function isNumber(value) { return /^-?\d+(\.\d+)?$/.test(value); } function toPx(value, baseSize) { var isDecimal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; // 如果是数字 if (typeof value === 'number') { return value; } // 如果是字符串数字 if (isNumber(value)) { return value * 1; } // 如果有单位 if (typeof value === 'string') { var reg = /^-?([0-9]+)?([.]{1}[0-9]+){0,1}(em|rpx|px|%)$/g; var results = reg.exec(value); if (!value || !results) { return 0; } var unit = results[3]; value = parseFloat(value); var res = 0; if (unit === 'rpx') { res = uni.upx2px(value); } else if (unit === 'px') { res = value * 1; } else if (unit === '%') { res = value * toPx(baseSize) / 100; } else if (unit === 'em') { res = value * toPx(baseSize || 14); } return isDecimal ? res.toFixed(2) * 1 : Math.round(res); } return 0; } // 计算版本 function compareVersion(v1, v2) { v1 = v1.split('.'); v2 = v2.split('.'); var len = Math.max(v1.length, v2.length); while (v1.length < len) { v1.push('0'); } while (v2.length < len) { v2.push('0'); } for (var i = 0; i < len; i++) { var num1 = parseInt(v1[i], 10); var num2 = parseInt(v2[i], 10); if (num1 > num2) { return 1; } else if (num1 < num2) { return -1; } } return 0; } function gte(version) { return compareVersion(SDKVersion, version) >= 0; } function canIUseCanvas2d() { return gte('2.9.2'); return false; } var prefix = function prefix() { return wx; }; /** * base64转路径 * @param {Object} base64 */ exports.prefix = prefix; function base64ToPath(base64) { var _ref = /^data:image\/(\w+);base64,/.exec(base64) || [], _ref2 = (0, _slicedToArray2.default)(_ref, 2), format = _ref2[1]; return new Promise(function (resolve, reject) { var fs = uni.getFileSystemManager(); //自定义文件名 if (!format) { reject(new Error('ERROR_BASE64SRC_PARSE')); } var time = new Date().getTime(); var pre = prefix(); var filePath = "".concat(pre.env.USER_DATA_PATH, "/").concat(time, ".").concat(format); fs.writeFile({ filePath: filePath, data: base64.split(',')[1], encoding: 'base64', success: function success() { resolve(filePath); }, fail: function fail(err) { console.error(err); reject(err); } }); }); } /** * 路径转base64 * @param {Object} string */ function pathToBase64(path) { if (/^data:/.test(path)) return path; return new Promise(function (resolve, reject) { if (uni.canIUse('getFileSystemManager')) { uni.getFileSystemManager().readFile({ filePath: path, encoding: 'base64', success: function success(res) { resolve('data:image/png;base64,' + res.data); }, fail: function fail(error) { console.error({ error: error, path: path }); reject(error); } }); } }); } function getImageInfo(path, useCORS) { var _this = this; var isCanvas2D = this && this.canvas && this.canvas.createImage; return new Promise( /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(resolve, reject) { var src, img; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: // let time = +new Date() src = path.replace(/^@\//, '/'); if (!(cache[path] && cache[path].errMsg)) { _context.next = 5; break; } resolve(cache[path]); _context.next = 22; break; case 5: _context.prev = 5; if (!(isBase64(path) && (isCanvas2D ? isPC : true))) { _context.next = 10; break; } _context.next = 9; return base64ToPath(path); case 9: src = _context.sent; case 10: _context.next = 15; break; case 12: _context.prev = 12; _context.t0 = _context["catch"](5); reject(_objectSpread(_objectSpread({}, _context.t0), {}, { src: src })); case 15: if (!(isCanvas2D && !isPC)) { _context.next = 21; break; } img = _this.canvas.createImage(); img.onload = function () { var image = { path: img, width: img.width, height: img.height }; cache[path] = image; resolve(cache[path]); }; img.onerror = function (err) { reject({ err: err, path: path }); }; img.src = src; return _context.abrupt("return"); case 21: uni.getImageInfo({ src: src, success: function success(image) { var localReg = /^\.|^\/(?=[^\/])/; image.path = localReg.test(src) ? "/".concat(image.path) : image.path; if (isCanvas2D) { var _img = _this.canvas.createImage(); _img.onload = function () { image.path = _img; cache[path] = image; resolve(cache[path]); }; _img.onerror = function (err) { reject({ err: err, path: path }); }; _img.src = src; return; } cache[path] = image; resolve(cache[path]); }, fail: function fail(err) { console.error({ err: err, path: path }); reject({ err: err, path: path }); } }); case 22: case "end": return _context.stop(); } } }, _callee, null, [[5, 12]]); })); return function (_x, _x2) { return _ref3.apply(this, arguments); }; }()); } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js */ 1)["default"])) /***/ }), /***/ 223: /*!***********************************************************************************************************************************!*\ !*** D:/zhongshuweilai/zswl.zip/zswl/code/charge_miniapp/charge_miniapp/uni_modules/lime-painter/components/l-painter/painter.js ***! \***********************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(uni, wx) { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ 4); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.Painter = void 0; var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/typeof */ 13)); var _t = function t() { return _t = Object.assign || function (t) { for (var e, i = 1, n = arguments.length; i < n; i++) { for (var r in e = arguments[i]) { Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]); } } return t; }, _t.apply(this, arguments); }; function e(t, e, i, n) { return new (i || (i = Promise))(function (r, o) { function s(t) { try { h(n.next(t)); } catch (t) { o(t); } } function a(t) { try { h(n.throw(t)); } catch (t) { o(t); } } function h(t) { var e; t.done ? r(t.value) : (e = t.value, e instanceof i ? e : new i(function (t) { t(e); })).then(s, a); } h((n = n.apply(t, e || [])).next()); }); } function i(t, e) { var i, n, r, o, s = { label: 0, sent: function sent() { if (1 & r[0]) throw r[1]; return r[1]; }, trys: [], ops: [] }; return o = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (o[Symbol.iterator] = function () { return this; }), o; function a(o) { return function (a) { return function (o) { if (i) throw new TypeError("Generator is already executing."); for (; s;) { try { if (i = 1, n && (r = 2 & o[0] ? n.return : o[0] ? n.throw || ((r = n.return) && r.call(n), 0) : n.next) && !(r = r.call(n, o[1])).done) return r; switch (n = 0, r && (o = [2 & o[0], r.value]), o[0]) { case 0: case 1: r = o; break; case 4: return s.label++, { value: o[1], done: !1 }; case 5: s.label++, n = o[1], o = [0]; continue; case 7: o = s.ops.pop(), s.trys.pop(); continue; default: if (!(r = s.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[0] && 2 !== o[0])) { s = 0; continue; } if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) { s.label = o[1]; break; } if (6 === o[0] && s.label < r[1]) { s.label = r[1], r = o; break; } if (r && s.label < r[2]) { s.label = r[2], s.ops.push(o); break; } r[2] && s.ops.pop(), s.trys.pop(); continue; } o = e.call(t, s); } catch (t) { o = [6, t], n = 0; } finally { i = r = 0; } } if (5 & o[0]) throw o[1]; return { value: o[0] ? o[1] : void 0, done: !0 }; }([o, a]); }; } } var n = { MP_WEIXIN: "mp-weixin", MP_QQ: "mp-qq", MP_ALIPAY: "mp-alipay", MP_BAIDU: "mp-baidu", MP_TOUTIAO: "mp-toutiao", MP_DINGDING: "mp-dingding", H5: "h5", WEB: "web", PLUS: "plus" }, r = ["Top", "Right", "Bottom", "Left"], o = "right", s = "bottom", a = ["contentSize", "clientSize", "borderSize", "offsetSize"], h = "row", c = "column", f = { TOP: "top", MIDDLE: "middle", BOTTOM: s }, l = { LEFT: "left", CENTER: "center", RIGHT: o }, d = "view", u = "text", p = "image", g = "qrcode", v = "block", y = "inline-block", x = "none", b = "flex", w = "absolute", m = "fixed", S = { display: v, color: "#000000", lineHeight: "1.4em", fontSize: 14, fontWeight: 400, fontFamily: "sans-serif", lineCap: "butt", flexDirection: h, flexWrap: "nowrap", textAlign: "left", alignItems: "flex-start", justifyContent: "flex-start", position: "static", transformOrigin: "".concat("center", " ").concat("center") }, z = { upx2px: function upx2px(t) { return window.innerWidth / 750 * t; }, getSystemInfoSync: function getSystemInfoSync() { return { screenWidth: window.innerWidth, screenHeight: window.innerHeight }; }, getImageInfo: function getImageInfo(t) { var e = t.src, i = t.success, n = t.fail, r = new Image(); r.onload = function () { i({ width: r.naturalWidth, height: r.naturalHeight, path: r.src, src: e }); }, r.onerror = n, r.src = e; } }, I = "object" == (typeof window === "undefined" ? "undefined" : (0, _typeof2.default)(window)) ? "undefined" == typeof uni || "undefined" != typeof uni && !uni.addInterceptor ? n.WEB : n.H5 : "object" == (typeof swan === "undefined" ? "undefined" : (0, _typeof2.default)(swan)) ? n.MP_BAIDU : "object" == (typeof tt === "undefined" ? "undefined" : (0, _typeof2.default)(tt)) ? n.MP_TOUTIAO : "object" == (typeof plus === "undefined" ? "undefined" : (0, _typeof2.default)(plus)) ? n.PLUS : "object" == (typeof wx === "undefined" ? "undefined" : (0, _typeof2.default)(wx)) ? n.MP_WEIXIN : void 0, M = I == n.MP_WEIXIN ? wx : "undefined" != typeof uni ? uni.getImageInfo ? { upx2px: function upx2px(t) { return uni.upx2px(t); }, getSystemInfoSync: function getSystemInfoSync() { return uni.getSystemInfoSync(); }, getImageInfo: function getImageInfo(t) { return uni.getImageInfo(t); }, downloadFile: function downloadFile(t) { return uni.downloadFile(t); } } : Object.assign(uni, z) : "undefined" != typeof window ? z : uni; if (!M.upx2px) { var k = ((M.getSystemInfoSync && M.getSystemInfoSync()).screenWidth || 375) / 750; M.upx2px = function (t) { return k * t; }; } function B(t) { return /^-?\d+(\.\d+)?$/.test(t); } function W(t, e, i) { if (B(t)) return 1 * t; if ("string" == typeof t) { var n = /^-?([0-9]+)?([.]{1}[0-9]+){0,1}(em|rpx|vw|vh|px|%)$/g.exec(t); if (!t || !n) return 0; var r = n[3]; t = parseFloat(t); var o = 0; if ("rpx" === r) o = M.upx2px(t);else if ("px" === r) o = 1 * t;else if ("%" === r && e) o = t * W(e) / 100;else if ("em" === r && e) o = t * W(e || 14);else if (["vw", "vh"].includes(r)) { var s = M.getSystemInfoSync(), a = s.screenWidth, h = s.screenHeight; o = t * ("vw" == r ? a : h) / 100; } return 1 * o.toFixed(2); } return 0; } function P(t) { return /%$/.test(t); } function O(t) { return /^-?([0-9]+)?([.]{1}[0-9]+){0,1}(rpx|px)$/.test(t); } var T = function T(t) { return !(!t || !t.startsWith("linear") && !t.startsWith("radial")); }, L = function L(t, e, i, n, r, o) { t.startsWith("linear") ? function (t, e, i, n, r, o) { for (var s = function (t, e, i, n, r) { void 0 === n && (n = 0); void 0 === r && (r = 0); var o = t.match(/([-]?\d{1,3})deg/), s = o && o[1] ? parseFloat(o[1]) : 0; s >= 360 && (s -= 360); s < 0 && (s += 360); if (0 === (s = Math.round(s))) return { x0: Math.round(e / 2) + n, y0: i + r, x1: Math.round(e / 2) + n, y1: r }; if (180 === s) return { x0: Math.round(e / 2) + n, y0: r, x1: Math.round(e / 2) + n, y1: i + r }; if (90 === s) return { x0: n, y0: Math.round(i / 2) + r, x1: e + n, y1: Math.round(i / 2) + r }; if (270 === s) return { x0: e + n, y0: Math.round(i / 2) + r, x1: n, y1: Math.round(i / 2) + r }; var a = Math.round(180 * Math.asin(e / Math.sqrt(Math.pow(e, 2) + Math.pow(i, 2))) / Math.PI); if (s === a) return { x0: n, y0: i + r, x1: e + n, y1: r }; if (s === 180 - a) return { x0: n, y0: r, x1: e + n, y1: i + r }; if (s === 180 + a) return { x0: e + n, y0: r, x1: n, y1: i + r }; if (s === 360 - a) return { x0: e + n, y0: i + r, x1: n, y1: r }; var h = 0, c = 0, f = 0, l = 0; if (s < a || s > 180 - a && s < 180 || s > 180 && s < 180 + a || s > 360 - a) { var d = s * Math.PI / 180, u = s < a || s > 360 - a ? i / 2 : -i / 2, p = Math.tan(d) * u, g = s < a || s > 180 - a && s < 180 ? e / 2 - p : -e / 2 - p; h = -(f = p + (v = Math.pow(Math.sin(d), 2) * g)), c = -(l = u + v / Math.tan(d)); } if (s > a && s < 90 || s > 90 && s < 90 + a || s > 180 + a && s < 270 || s > 270 && s < 360 - a) { var v; d = (90 - s) * Math.PI / 180, p = s > a && s < 90 || s > 90 && s < 90 + a ? e / 2 : -e / 2, u = Math.tan(d) * p, g = s > a && s < 90 || s > 270 && s < 360 - a ? i / 2 - u : -i / 2 - u; h = -(f = p + (v = Math.pow(Math.sin(d), 2) * g) / Math.tan(d)), c = -(l = u + v); } return h = Math.round(h + e / 2) + n, c = Math.round(i / 2 - c) + r, f = Math.round(f + e / 2) + n, l = Math.round(i / 2 - l) + r, { x0: h, y0: c, x1: f, y1: l }; }(r, t, e, i, n), a = s.x0, h = s.y0, c = s.x1, f = s.y1, l = o.createLinearGradient(a, h, c, f), d = r.match(/linear-gradient\((.+)\)/)[1], u = R(d.substring(d.indexOf(",") + 1)), p = 0; p < u.colors.length; p++) { l.addColorStop(u.percents[p], u.colors[p]); } o.setFillStyle(l); }(e, i, n, r, t, o) : t.startsWith("radial") && function (t, e, i, n, r, o) { for (var s = R(r.match(/radial-gradient\((.+)\)/)[1]), a = Math.round(t / 2) + i, h = Math.round(e / 2) + n, c = o.createRadialGradient(a, h, 0, a, h, Math.max(t, e) / 2), f = 0; f < s.colors.length; f++) { c.addColorStop(s.percents[f], s.colors[f]); } o.setFillStyle(c); }(e, i, n, r, t, o); }; function R(t) { for (var e = [], i = [], n = 0, r = t.substring(0, t.length - 1).split("%,"); n < r.length; n++) { var o = r[n]; e.push(o.substring(0, o.lastIndexOf(" ")).trim()), i.push(o.substring(o.lastIndexOf(" "), o.length) / 100); } return { colors: e, percents: i }; } function F(t, e, i) { return e in t ? Object.defineProperty(t, e, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : t[e] = i, t; } function A() { return A = Object.assign ? Object.assign.bind() : function (t) { for (var e = 1; e < arguments.length; e++) { var i = arguments[e]; for (var n in i) { Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n]); } } return t; }, A.apply(this, arguments); } function j(t, e) { return j = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, j(t, e); } function E(t, e) { (null == e || e > t.length) && (e = t.length); for (var i = 0, n = new Array(e); i < e; i++) { n[i] = t[i]; } return n; } function C(t, e) { var i = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (i) return (i = i.call(t)).next.bind(i); if (Array.isArray(t) || (i = function (t, e) { if (t) { if ("string" == typeof t) return E(t, e); var i = Object.prototype.toString.call(t).slice(8, -1); return "Object" === i && t.constructor && (i = t.constructor.name), "Map" === i || "Set" === i ? Array.from(t) : "Arguments" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? E(t, e) : void 0; } }(t)) || e && t && "number" == typeof t.length) { i && (t = i); var n = 0; return function () { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function H(t) { return "number" == typeof t; } function D(t) { return "auto" === t || null === t; } function $(t) { return /%$/.test(t); } var Y = p, U = u, N = d, X = g, _ = y, q = w, G = m; function V(t) { return t.replace(/-([a-z])/g, function (t, e) { return e.toUpperCase(); }); } function J(t, e) { var i, n, o = function (t) { var e = t.match(/([a-z]+)/)[1]; return [e, V(t.split(e)[1])]; }(t), s = o[0], a = o[1], h = e.split(" "); if (a) return (i = {})[s + a] = e, i; if (h.length && !a) { var c = h[0], f = h[1], l = h[2], d = h[3]; return (n = {})[s + r[0]] = c, n[s + r[1]] = f || c, n[s + r[2]] = l || c, n[s + r[3]] = d || f || c, n; } } function Q(t) { t = t.trim(); for (var e = new Array(), i = "+", n = "", r = t.length, o = 0; o < r; ++o) { if ("." === t[o] || !isNaN(Number(t[o])) && " " !== t[o]) n += t[o];else if ("(" === t[o]) { for (var s = 1, a = o; s > 0;) { "(" === t[a += 1] && (s += 1), ")" === t[a] && (s -= 1); } n = "".concat(Q(t.slice(o + 1, a))), o = a; } if (isNaN(Number(t[o])) && "." !== t[o] || o === r - 1) { var h = parseFloat(n); switch (i) { case "+": e.push(h); break; case "-": e.push(-h); break; case "*": e.push(e.pop() * h); break; case "/": e.push(e.pop() / h); } i = t[o], n = ""; } } for (var c = 0; e.length;) { c += e.pop(); } return c; } var Z, K = 0, et = function () { function t() { F(this, "elements", []), F(this, "afterElements", []), F(this, "beforeElements", []), F(this, "ids", []), F(this, "width", 0), F(this, "height", 0), F(this, "top", 0), F(this, "left", 0), F(this, "pre", null), F(this, "offsetX", 0), F(this, "offsetY", 0), K++, this.id = K; } var e = t.prototype; return e.fixedBind = function (t, e) { void 0 === e && (e = 0), this.container = e ? t.parent : t.root, this.container.fixedLine = this, this.fixedAdd(t); }, e.fixedAdd = function (t) { if (!this.ids.includes(t.id)) { this.ids.push(t.id), this.elements.push(t); var e = t.computedStyle.zIndex; (void 0 === e ? 0 : e) >= 0 ? this.afterElements.push(t) : this.beforeElements.push(t), this.refreshLayout(); } }, e.bind = function (t) { this.container = t.parent, this.container.line = null, this.container.lines ? (this.container.lines.push(this), this.pre = this.getPreLine(), this.top = this.pre.top + this.pre.height, this.left = this.container.contentSize.left) : (this.top = this.container.contentSize.top, this.left = this.container.contentSize.left, this.container.lines = [this]), this.isInline = t.isInline(), this.container.line = this, this.outerWidth = t.parent && t.parent.contentSize.width ? t.parent.contentSize.width : 1 / 0, this.add(t); }, e.getPreLine = function () { return this.container.lines[this.container.lines.length - 2]; }, e.canIEnter = function (t) { return !((100 * t.offsetSize.width + 100 * this.width) / 100 > this.outerWidth) || (this.closeLine(), !1); }, e.closeLine = function () { delete this.container.line; }, e.add = function (t) { this.ids.includes(t.id) || (this.ids.push(t.id), this.elements.push(t), this.refreshWidthHeight(t)); }, e.refreshWidthHeight = function (t) { t.offsetSize.height > this.height && (this.height = t.offsetSize.height), this.width += t.offsetSize.width || 0, (this.container.lineMaxWidth || 0) < this.width && (this.container.lineMaxWidth = this.width); }, e.refreshXAlign = function () { if (this.isInline) { var t = this.container.contentSize.width - this.width, e = this.container.style.textAlign; "center" === e ? t /= 2 : "left" === e && (t = 0), this.offsetX = t; } }, e.getOffsetY = function (t) { if (!t || !t.style) return 0; var e = (t.style || {}).verticalAlign; return e === s ? this.height - t.contentSize.height : "middle" === e ? (this.height - t.contentSize.height) / 2 : 0; }, e.setIndent = function (t) { var e = t.style.textIndent; if (e && /^calc/.test(e)) { var i = /^calc\((.+)\)$/.exec(e); if (i && i[1]) { var n = i[1].replace(/([^\s\(\+\-\*\/]+)\.(left|right|bottom|top|width|height)/g, function (e) { var i = e.split("."), n = i[0], r = i[1], o = t.parent.querySelector(n); if (o && o.offsetSize) { var s = { right: o.offsetSize.left + o.offsetSize.width, bottom: o.offsetSize.top + o.offsetSize.height }; return o.offsetSize[r] || s[r] || 0; } }), r = Q(n.replace(new RegExp(/-?[0-9]+(\.[0-9]+)?(rpx|px|%)/, "g"), W)); t.style.textIndent = r; } } }, e.layout = function (t, e) { var i = this; this.refreshXAlign(), this.pre ? (this.top = this.pre.top + this.pre.height + this.offsetY, this.left = e + this.offsetX) : (this.top = Math.max(this.top, this.container.contentSize.top, t) + this.offsetY, this.left = Math.max(this.left, this.container.contentSize.left, e) + this.offsetX), this.elements.forEach(function (t, e) { i.setIndent(t); var n = i.elements[e - 1], r = i.getOffsetY(t); t.style.top = i.top + r, t.style.left = n ? n.offsetSize.left + n.offsetSize.width : i.left, t.getBoxPosition(); }); }, e.refreshLayout = function () { this.afterElements = this.afterElements.sort(function (t, e) { return t.computedStyle.zIndex - e.computedStyle.zIndex; }), this.beforeElements = this.beforeElements.sort(function (t, e) { return t.computedStyle.zIndex - e.computedStyle.zIndex; }); }, t; }(), it = ((Z = {})[h] = { width: "width", contentWidth: "width", lineMaxWidth: "lineMaxWidth", left: "left", top: "top", height: "height", lineMaxHeight: "lineMaxHeight", marginLeft: "marginLeft" }, Z[c] = { width: "height", contentWidth: "height", lineMaxWidth: "lineMaxWidth", left: "top", top: "left", height: "width", lineMaxHeight: "lineMaxHeight", marginLeft: "marginTop" }, Z), nt = function (t) { var e, i; function n() { var e; return F(function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t; }(e = t.call(this) || this), "outerWidth", 0), e.exactValue = 0, e.flexTotal = 0, e.width = 0, e.key = null, e.flexDirection = "row", e; } i = t, (e = n).prototype = Object.create(i.prototype), e.prototype.constructor = e, j(e, i); var r = n.prototype; return r.bind = function (t) { this.container = t.parent, this.container.line = this, this.container.lines ? (this.container.lines.push(this), this.pre = this.getPreLine(), this.top = this.pre.top + this.pre.height, this.left = this.container.contentSize.left) : (this.top = this.container.contentSize.top, this.left = this.container.contentSize.left, this.container.lines = [this]), t.parent && (this.flexDirection = t.parent.style.flexDirection, this.key = it[this.flexDirection]), this.initHeight(t), this.outerWidth = t.parent && t.parent.contentSize[this.key.contentWidth] ? t.parent.contentSize[this.key.contentWidth] : 1 / 0, this.add(t); }, r.add = function (t) { this.ids.push(t.id); var e = t.style.flex; H(e) ? this.flexTotal += e : H(this.getWidth(t.style)) && (this.exactValue += this.getWidth(t.offsetSize)), this.elements.push(t), this.refreshWidthHeight(t), t.next || this.closeLine(); }, r.closeLine = function () { this.calcFlex(); }, r.initHeight = function (t) { this[this.key.height] = 0; }, r.getWidth = function (t) { return t[this.key.width] || 0; }, r.getHeight = function (t) { return t[this.key.height] || 0; }, r.setWidth = function (t, e) { t[this.key.width] = e; }, r.setHeight = function (t, e) { t[this.key.height] = e; }, r.calcFlex = function () { var t = this, e = this.container.contentSize[this.key.contentWidth], i = 0; this.elements.forEach(function (n) { var r = n.style, o = n.contentSize, s = t.getWidth(r) || t.getWidth(o); H(r.flex) && (s = r.flex / t.flexTotal * (e - t.exactValue)), t.setWidth(n.computedStyle, s), n.isFlexCalc = !0, delete n.line, delete n.lines, delete n.lineMaxWidth, n.getBoxWidthHeight(), i = Math.max(i, t.getHeight(n.offsetSize)); }), this.setHeight(this, i); }, r.refreshWidthHeight = function (t) { var e = this.container.style.alignItems; e && !t.style.alignSelf && (t.style.alignSelf = e); var i = this.getHeight(t.offsetSize); i > this[this.key.height] && (this.container[this.key.lineMaxHeight] = this[this.key.height] = i), this[this.key.width] += this.getWidth(t.offsetSize); var n = Math.min(this.getWidth(this), !this.getWidth(this.container.contentSize) && 1 / 0); (this.container[this.key.lineMaxWidth] || 0) < n && (this.container[this.key.lineMaxWidth] = n); }, r.refreshXAlign = function () { var t = this, e = this.elements.reduce(function (e, i) { return e + t.getWidth(i.offsetSize); }, 0), i = (this.outerWidth == 1 / 0 ? 0 : this.outerWidth - e) || 0, n = this.container.style.justifyContent; "center" === n ? i /= 2 : "flex-start" === n ? i = 0 : ["space-between", "space-around"].includes(n) && (!function (e, i) { void 0 === i && (i = 0), i /= t.elements.length + (e ? -1 : 1), t.elements.forEach(function (n, r) { var o; e && !r || (n.style.margin ? n.style.margin[t.key.marginLeft] += i : n.style.margin = ((o = {})[t.key.marginLeft] = i, o), n.getBoxPosition()); }), i = 0; }("space-between" == n, i), i = 0), this.offsetX = i || 0, this.refreshYAlign(); }, r.refreshYAlign = function () { var t = this; if (1 == this.container.lines.length) return 0; var e = this.container.lines.reduce(function (e, i) { return e + t.getHeight(i); }, 0), i = this.container.style.alignItems, n = this.getHeight(this.container.contentSize); if ("center" === i) { var r = (n - e) / (this.container.lines.length + 1); this.container.lines.forEach(function (t) { t.offsetY = r; }); } if ("flex-end" === i) { var o = n - e; this.container.lines[0].offsetY = o; } }, r.getOffsetY = function (t) { if (this.container.lines.length > 1) return 0; var e = t.style.alignSelf, i = this.getHeight(this.container.contentSize), n = i - this.getHeight(t.offsetSize); return "flex-end" === e ? n : "center" === e ? n / 2 : "stretch" === e ? (n && t.name == d && (t.style[this.key.width] = this.getWidth(t.offsetSize), t.style[this.key.height] = i, delete t.line, delete t.lines, t.getBoxWidthHeight()), 0) : 0; }, r.layout = function (t, e) { var i = this; this.refreshXAlign(), this.pre ? (this.top = this.pre.top + this.pre.height + this.offsetY, this.left = e + this.offsetX) : (this.top = Math.max(this.top, this.container.contentSize.top, t) + this.offsetY, this.left = Math.max(this.left, this.container.contentSize.left, e) + this.offsetX), this.elements.forEach(function (t, e) { i.setIndent(t); var n = i.elements[e - 1], r = i.getOffsetY(t); t.style[i.key.top] = i[i.key.top] + r, t.style[i.key.left] = n ? n.offsetSize[i.key.left] + i.getWidth(n.offsetSize) : i[i.key.left], t.getBoxPosition(); }); }, n; }(et), rt = p, ot = u, st = d, at = v, ht = y, ct = b, ft = w, lt = m, dt = 0, ut = { left: null, top: null, width: null, height: null }, pt = new Map(), gt = function () { function t(t, e, i, n) { var o = this; F(this, "id", dt++), F(this, "style", { left: null, top: null, width: null, height: null }), F(this, "computedStyle", {}), F(this, "originStyle", {}), F(this, "children", {}), F(this, "layoutBox", A({}, ut)), F(this, "contentSize", A({}, ut)), F(this, "clientSize", A({}, ut)), F(this, "borderSize", A({}, ut)), F(this, "offsetSize", A({}, ut)), this.ctx = n, this.root = i, e && (this.parent = e), this.name = t.type || t.name, this.attributes = this.getAttributes(t); var s = function (t, e) { var i, n = ["color", "fontSize", "lineHeight", "verticalAlign", "fontWeight", "textAlign"], o = t.type, s = void 0 === o ? N : o, a = t.styles, h = void 0 === a ? {} : a, c = (e || {}).computedStyle, f = Object.assign({}, S); if ([U, Y, X].includes(s) && !h.display && (f.display = _), c) for (var l = 0; l < n.length; l++) { var d = n[l]; (h[d] || c[d]) && (h[d] = h[(i = d, i.replace(/([A-Z])/g, "-$1").toLowerCase())] || h[d] || c[d]); } for (var u = function u(t) { var e, i, n, o, a = h[t]; if (/-/.test(t) && (t = V(t), f[t] = a), /^(box|text)?shadow$/i.test(t)) { var c = []; return a.replace(/((-?\d+(rpx|px|vw|vh)?\s+?){3})(.+)/, function () { for (var t = [], e = 0; e < arguments.length; e++) { t[e] = arguments[e]; } c = t[1].match(/-?\d+(rpx|px|vw|vh)?/g).map(function (t) { return W(t); }).concat(t[4]); }), /^text/.test(t) ? f.textShadow = c : f.boxShadow = c, "continue"; } if (/^border/i.test(t) && !/radius$/i.test(t)) { var l = t.match(/^border([BTRLa-z]+)?/)[0], d = t.match(/[W|S|C][a-z]+/), u = a.replace(/([\(,])\s+|\s+([\),])/g, "$1$2").split(" ").map(function (t) { return /^\d/.test(t) ? W(t, "") : t; }); return f[l] || (f[l] = {}), 1 == u.length && d ? f[l][l + d[0]] = u[0] : f[l] = ((e = {})[l + "Width"] = B(u[0]) ? u[0] : 0, e[l + "Style"] = u[1] || "solid", e[l + "Color"] = u[2] || "black", e), "continue"; } if (/^background(color)?$/i.test(t)) return f.backgroundColor = a, "continue"; if (/^objectPosition$/i.test(t)) return f[t] = a.split(" "), "continue"; if (/^backgroundPosition$/i.test(t)) return f[t] = a.split(" "), "continue"; if (/padding|margin|radius/i.test(t)) { var p = /radius$/i.test(t), g = "borderRadius", v = p ? g : t.match(/[a-z]+/)[0], y = function y(t, e) { return "border".concat(t).concat(e, "Radius"); }, x = [0, 0, 0, 0].map(function (t, e) { return p ? [y(r[0], r[3]), y(r[0], r[1]), y(r[2], r[1]), y(r[2], r[3])][e] : v + r[e]; }); if ("padding" === t || "margin" === t || /^(border)?radius$/i.test(t)) { u = "".concat(a).split(" ").map(function (e) { return /^-?\d+(rpx|px|vh|vw)?$/.test(e) ? W(e) : "margin" != t && /auto/.test(e) ? 0 : e; }, []) || [0]; var b = p ? g : t, w = u[0], m = u[1], S = u[2], z = u[3]; f[b] = ((i = {})[x[0]] = D(w) ? 0 : w, i[x[1]] = B(m) || D(m) ? m : w, i[x[2]] = D(B(S) ? S : w) ? 0 : B(S) ? S : w, i[x[3]] = B(z) ? z : null != m ? m : w, i); } else "object" == (0, _typeof2.default)(f[v]) || (f[v] = ((n = {})[x[0]] = f[v] || 0, n[x[1]] = f[v] || 0, n[x[2]] = f[v] || 0, n[x[3]] = f[v] || 0, n)), f[v][t] = "margin" == v && D(a) || $(a) ? a : W(a); return "continue"; } if (/^transform$/i.test(t)) return f[t] = {}, a.replace(/([a-zA-Z]+)\(([0-9,-\.%rpxdeg\s]+)\)/g, function (e, i, n) { var r = n.split(",").map(function (t) { return t.replace(/(^\s*)|(\s*$)/g, ""); }), o = function o(t, e) { return t.includes("deg") ? 1 * t : e && !$(e) ? W(t, e) : t; }; i.includes("matrix") ? f[t][i] = r.map(function (t) { return 1 * t; }) : i.includes("rotate") ? f[t][i] = 1 * n.match(/^-?\d+(\.\d+)?/)[0] : /[X, Y]/.test(i) ? f[t][i] = /[X]/.test(i) ? o(r[0], h.width) : o(r[0], h.height) : (f[t][i + "X"] = o(r[0], h.width), f[t][i + "Y"] = o(r[1] || r[0], h.height)); }), "continue"; if (/^font$/i.test(t) && console.warn("font 不支持简写"), /^textindent/i.test(t) && (f[t] = /^calc/.test(a) ? a : W(a)), /^textstroke/i.test(t)) { var I = t.match(/color|width|type$/i), M = (l = "textStroke", a.split(" ").map(function (t) { return /^\d+(rpx|px|vh|vw)?$/.test(t) ? W(t) : t; })); return I ? f[l] ? f[l][I[0]] = M[0] : f[l] = ((o = {})[I[0]] = M[0], o) : f[l] = { width: M[0], color: M[1], type: M[2] }, "continue"; } /^left|top$/i.test(t) && ![q, G].includes(h.position) ? f[t] = 0 : f[t] = /^-?[\d\.]+(px|rpx|vw|vh)?$/.test(a) ? W(a) : /em$/.test(a) && s == U ? W(a, h.fontSize) : a; }, p = 0, g = Object.keys(h); p < g.length; p++) { u(g[p]); } return f; }(t, e); this.isAbsolute = s.position == ft, this.isFixed = s.position == lt, this.originStyle = s, this.styles = t.styles, Object.keys(s).forEach(function (t) { Object.defineProperty(o.style, t, { configurable: !0, enumerable: !0, get: function get() { return s[t]; }, set: function set(e) { s[t] = e; } }); }); var a = { contentSize: A({}, this.contentSize), clientSize: A({}, this.clientSize), borderSize: A({}, this.borderSize), offsetSize: A({}, this.offsetSize) }; Object.keys(a).forEach(function (t) { Object.keys(o[t]).forEach(function (e) { Object.defineProperty(o[t], e, { configurable: !0, enumerable: !0, get: function get() { return a[t][e]; }, set: function set(i) { a[t][e] = i; } }); }); }), this.computedStyle = this.style; } var e = t.prototype; return e.add = function (t) { t.parent = this, this.children[t.id] = t; }, e.getChildren = function () { var t = this; return Object.keys(this.children).map(function (e) { return t.children[e]; }); }, e.prev = function (t) { void 0 === t && (t = this); var e = t.parent.getChildren(); return e[e.findIndex(function (e) { return e.id == t.id; }) - 1]; }, e.querySelector = function (t) { var e = this.getChildren(); if ("string" != typeof t) return null; var i = e.find(function (e) { var i = e.id, n = e.attributes; return i == t || n && n.uid == t; }); return i || this.parent && this.parent.querySelector && this.parent.querySelector(t) || null; }, e.getLineRect = function (t, e) { var i = { width: 0, height: 0 }, n = e ? e.lines : this.parent && this.parent.lines; return n && n.find(function (e) { return e.ids.includes(t); }) || i; }, e.setPosition = function (t, e) { var i = { left: "width", top: "height", right: "width", bottom: "height" }; Object.keys(i).forEach(function (n) { var r = n == o ? "left" : "top"; [o, s].includes(n) && void 0 !== t.style[n] && !B(t.originStyle[r]) ? t.style[r] = e[i[n]] - t.offsetSize[i[n]] - W(t.style[n], e[i[n]]) : t.style[n] = W(t.style[n], e[i[n]]); }); }, e.getAttributes = function (t) { var e = t.attributes, i = void 0 === e ? {} : e, n = t.uid, r = t.url, o = t.src, s = t.replace, a = t.text; return n && (i.uid = n), (r || o) && (i.src = i.src || r || o), s && (i.replace = s), a && (i.text = a), i; }, e.getOffsetSize = function (t, e, i) { void 0 === i && (i = a[3]); var n = e || {}, r = n.margin, o = (r = void 0 === r ? {} : r).marginLeft, s = void 0 === o ? 0 : o, h = r.marginTop, c = void 0 === h ? 0 : h, f = r.marginRight, l = void 0 === f ? 0 : f, d = r.marginBottom, u = void 0 === d ? 0 : d, p = n.padding, g = (p = void 0 === p ? {} : p).paddingLeft, v = void 0 === g ? 0 : g, y = p.paddingTop, x = void 0 === y ? 0 : y, b = p.paddingRight, w = void 0 === b ? 0 : b, m = p.paddingBottom, S = void 0 === m ? 0 : m, z = n.border, I = (z = void 0 === z ? {} : z).borderWidth, M = void 0 === I ? 0 : I, k = n.borderTop, B = (k = void 0 === k ? {} : k).borderTopWidth, W = void 0 === B ? M : B, P = n.borderBottom, O = (P = void 0 === P ? {} : P).borderBottomWidth, T = void 0 === O ? M : O, L = n.borderRight, R = (L = void 0 === L ? {} : L).borderRightWidth, F = void 0 === R ? M : R, A = n.borderLeft, j = (A = void 0 === A ? {} : A).borderLeftWidth, E = void 0 === j ? M : j, C = s < 0 && l < 0 ? Math.abs(s + l) : 0, H = c < 0 && u < 0 ? Math.abs(c + u) : 0, D = s >= 0 && l < 0, $ = c >= 0 && u < 0; return i == a[0] && (this[i].left = t.left + s + v + E + (D ? 2 * -l : 0), this[i].top = t.top + c + x + W + ($ ? 2 * -u : 0), this[i].width = t.width + (this[i].widthAdd ? 0 : C), this[i].height = t.height + (this[i].heightAdd ? 0 : H), this[i].widthAdd = C, this[i].heightAdd = H), i == a[1] && (this[i].left = t.left + s + E + (D < 0 ? -l : 0), this[i].top = t.top + c + W + ($ ? -u : 0), this[i].width = t.width + v + w, this[i].height = t.height + x + S), i == a[2] && (this[i].left = t.left + s + E / 2 + (D < 0 ? -l : 0), this[i].top = t.top + c + W / 2 + ($ ? -u : 0), this[i].width = t.width + v + w + E / 2 + F / 2, this[i].height = t.height + x + S + T / 2 + W / 2), i == a[3] && (this[i].left = t.left + (D < 0 ? -l : 0), this[i].top = t.top + ($ ? -u : 0), this[i].width = t.width + v + w + E + F + s + l, this[i].height = t.height + x + S + T + W + u + c), this[i]; }, e.layoutBoxUpdate = function (t, e, i, n) { var r = this; if (void 0 === i && (i = -1), "border-box" == e.boxSizing) { var o = e || {}, s = o.border, h = (s = void 0 === s ? {} : s).borderWidth, c = void 0 === h ? 0 : h, f = o.borderTop, l = (f = void 0 === f ? {} : f).borderTopWidth, d = void 0 === l ? c : l, u = o.borderBottom, p = (u = void 0 === u ? {} : u).borderBottomWidth, g = void 0 === p ? c : p, v = o.borderRight, y = (v = void 0 === v ? {} : v).borderRightWidth, x = void 0 === y ? c : y, b = o.borderLeft, w = (b = void 0 === b ? {} : b).borderLeftWidth, m = void 0 === w ? c : w, S = o.padding, z = (S = void 0 === S ? {} : S).paddingTop, I = void 0 === z ? 0 : z, M = S.paddingRight, k = void 0 === M ? 0 : M, B = S.paddingBottom, W = void 0 === B ? 0 : B, P = S.paddingLeft, O = void 0 === P ? 0 : P; i || (t.width -= O + k + x + m), 1 !== i || n || (t.height -= I + W + d + g); } this.layoutBox && (a.forEach(function (i) { return r.layoutBox[i] = r.getOffsetSize(t, e, i); }), this.layoutBox = Object.assign({}, this.layoutBox, this.layoutBox.borderSize)); }, e.getBoxPosition = function () { var t = this.computedStyle, e = this.fixedLine, i = this.lines, n = t.left, r = void 0 === n ? 0 : n, o = t.top, s = void 0 === o ? 0 : o, a = A({}, this.contentSize, { left: r, top: s }), h = this.contentSize.top - this.offsetSize.top, c = this.contentSize.left - this.offsetSize.left; if (this.root.fixedLine && !this.root.isDone) { this.root.isDone = !0; for (var f, l = C(this.root.fixedLine.elements); !(f = l()).done;) { var d = f.value; d.setPosition(d, this.root.offsetSize), d.getBoxPosition(); } } if (e) for (var u, p = C(e.elements); !(u = p()).done;) { var g = u.value, v = A({}, this.borderSize, { left: r, top: s }); g.setPosition(g, v); var y = this.borderSize.top - this.offsetSize.top, x = this.borderSize.left - this.offsetSize.left; g.style.left += r + x, g.style.top += s + y, g.getBoxPosition(); } if (i) for (var b, w = C(i); !(b = w()).done;) { b.value.layout(a.top + h, a.left + c); } return this.layoutBoxUpdate(a, t), this.layoutBox; }, e.getBoxState = function (t, e) { return this.isBlock(t) || this.isBlock(e); }, e.isBlock = function (t) { return void 0 === t && (t = this), t && t.style.display == at; }, e.isFlex = function (t) { return void 0 === t && (t = this), t && t.style.display == ct; }, e.isInFlow = function () { return !(this.isAbsolute || this.isFixed); }, e.inFlexBox = function (t) { return void 0 === t && (t = this), !!t.isInFlow() && !!t.parent && (!(!t.parent || t.parent.style.display !== ct) || void 0); }, e.isInline = function (t) { return void 0 === t && (t = this), t && t.style.display == ht; }, e.contrastSize = function (t, e, i) { var n = t; return i && (n = Math.min(n, i)), e && (n = Math.max(n, e)), n; }, e.measureText = function (t, e) { var i = this.ctx.measureText(t), n = i.width, r = i.actualBoundingBoxAscent, o = i.actualBoundingBoxDescent; return { ascent: r, descent: o, width: n, fontHeight: r + o || .7 * e + 1 }; }, e.getParentSize = function (t, e) { if (void 0 === t && (t = this), void 0 === e && (e = !1), t && t.parent) { if (t.parent.contentSize.width) return t.parent.contentSize; if (e) return this.getParentSize(t.parent, e); } return null; }, e.getBoxWidthHeight = function () { var t = this, e = this.name, i = this.computedStyle, n = this.attributes, r = this.parent, o = void 0 === r ? {} : r, s = this.ctx, a = this.getChildren(), h = i.left, c = void 0 === h ? 0 : h, f = i.top, l = void 0 === f ? 0 : f, d = i.bottom, u = i.right, p = i.width, g = void 0 === p ? 0 : p, v = i.minWidth, y = i.maxWidth, x = i.minHeight, b = i.maxHeight, w = i.height, m = void 0 === w ? 0 : w, S = i.fontSize, z = i.fontWeight, I = i.fontFamily, M = i.fontStyle, k = i.position; i.textIndent; var B = i.lineClamp, P = i.lineHeight, O = i.padding, T = void 0 === O ? {} : O, L = i.margin, R = void 0 === L ? {} : L, F = i.border, A = (F = void 0 === F ? {} : F).borderWidth, j = void 0 === A ? 0 : A, E = i.borderRight, C = (E = void 0 === E ? {} : E).borderRightWidth, H = void 0 === C ? j : C, Y = i.borderLeft, U = (Y = void 0 === Y ? {} : Y).borderLeftWidth, N = void 0 === U ? j : U, X = o.contentSize && o.contentSize.width, _ = o.contentSize && o.contentSize.height; if ($(g) && X && (g = W(g, X)), $(g) && !X && (g = null), $(m) && _ && (m = W(m, _)), $(m) && !_ && (m = null), $(v) && X && (v = W(v, X)), $(y) && X && (y = W(y, X)), $(x) && _ && (x = W(x, _)), $(b) && _ && (b = W(b, _)), i.padding && X) for (var q in i.padding) { Object.hasOwnProperty.call(T, q) && (T[q] = W(T[q], X)); } var G = T.paddingRight, V = void 0 === G ? 0 : G, J = T.paddingLeft, Q = void 0 === J ? 0 : J; if (i.margin && [R.marginLeft, R.marginRight].includes("auto")) if (g) { var Z = X && X - g - V - Q - N - H || 0; R.marginLeft == R.marginRight ? R.marginLeft = R.marginRight = Z / 2 : D(R.marginLeft) ? R.marginLeft = Z : R.marginRight = Z; } else R.marginLeft = R.marginRight = 0; var K = R.marginRight, tt = void 0 === K ? 0 : K, it = R.marginLeft, at = { width: g, height: m, left: 0, top: 0 }, ht = Q + V + N + H + (void 0 === it ? 0 : it) + tt; if (this.offsetWidth = ht, e == ot && !this.attributes.widths) { var ct = n.text || ""; s.save(), s.setFonts({ fontFamily: I, fontSize: S, fontWeight: z, fontStyle: M }), ct.length, "\n" == ct && (ct = "", this.isBr = !0), ("" + ct).split("\n").map(function (e) { var i = Array.from(e).map(function (e) { var i = "" + (/^[\u4e00-\u9fa5]+$/.test(e) ? "cn" : e) + I + S + z + M, n = pt.get(i); if (n) return { width: n, text: e }; var r = t.measureText(e, S).width; return pt.set(i, r), { width: r, text: e }; }), n = t.measureText(e, S), r = n.fontHeight, o = n.ascent, s = n.descent; t.attributes.fontHeight = r, t.attributes.ascent = o, t.attributes.descent = s, t.attributes.widths || (t.attributes.widths = []), t.attributes.widths.push({ widths: i, total: i.reduce(function (t, e) { return t + e.width; }, 0) }); }), s.restore(); } if (e == rt && null == g) { var lt = n.width, dt = n.height; at.width = this.contrastSize(Math.round(lt * m / dt) || 0, v, y), this.layoutBoxUpdate(at, i, 0); } if (e == ot && null == g) { var ut = this.attributes.widths, gt = Math.max.apply(Math, ut.map(function (t) { return t.total; })); if (o && X > 0 && (gt > X || this.isBlock(this)) && !this.isAbsolute && !this.isFixed) gt = X; at.width = this.contrastSize(gt, v, y), this.layoutBoxUpdate(at, i, 0); } if (e == ot && (o.style.flex || !this.attributes.lines)) { var vt = this.attributes.widths.length; this.attributes.widths.forEach(function (t) { return t.widths.reduce(function (t, e, i) { return t + e.width > at.width ? (vt++, e.width) : t + e.width; }, 0); }), vt = B && vt > B ? B : vt, this.attributes.lines = vt; } if (e == rt && null == m) { var yt = n.width, xt = n.height; n.text, at.height = this.contrastSize(W(at.width * xt / yt) || 0, x, b), this.layoutBoxUpdate(at, i, 1); } e == ot && null == m && (P = W(P, S), at.height = this.contrastSize(W(this.attributes.lines * P), x, b), this.layoutBoxUpdate(at, i, 1, !0)), !g && o && o.children && X && (!this.isFlex(o) || o.isFlexCalc) && ([st, ot].includes(e) && this.isFlex() || e == st && this.isBlock(this) && this.isInFlow()) && (at.width = this.contrastSize(X - (o.isFlexCalc ? 0 : ht), v, y), this.layoutBoxUpdate(at, i)), g && !$(g) && (at.width = this.contrastSize(g, v, y), this.layoutBoxUpdate(at, i, 0)), m && !$(m) && (at.height = this.contrastSize(at.height, x, b), this.layoutBoxUpdate(at, i, 1)); var bt = 0; if (a.length) { var wt = null, mt = !1; a.forEach(function (e, n) { e.getBoxWidthHeight(); var r = a[n + 1]; if (r && r.isInFlow() && (e.next = r), !t.line || !t.line.ids.includes(e.id)) if (e.isInFlow() && !e.inFlexBox()) { var o = t.getBoxState(wt, e); if (e.isBr) return mt = !0; t.line && t.line.canIEnter(e) && !o && !mt ? t.line.add(e) : (mt = !1, new et().bind(e)), wt = e; } else e.inFlexBox() ? t.line && (t.line.canIEnter(e) || "nowrap" == i.flexWrap) ? t.line.add(e) : new nt().bind(e) : e.isFixed ? t.root.fixedLine ? t.root.fixedLine.fixedAdd(e) : new et().fixedBind(e) : t.fixedLine ? t.fixedLine.fixedAdd(e) : new et().fixedBind(e, 1); }), this.lines && (bt = this.lines.reduce(function (t, e) { return t + e.height; }, 0)); } var St = 0, zt = 0; if (!g && (this.isAbsolute || this.isFixed) && X) { var It = k == ft ? X : this.root.width, Mt = It - ($(c) ? W(c, It) : c) - ($(u) ? W(u, It) : u); St = i.left ? Mt : this.lineMaxWidth; } if (!m && (null != l ? l : this.isAbsolute || this.isFixed && _)) { var kt = k == ft ? _ : this.root.height, Bt = kt - ($(l) ? W(l, kt) : l) - ($(d) ? W(d, kt) : d); zt = i.top ? Bt : 0; } if (g && !$(g) || at.width || (at.width = St || this.contrastSize((this.isBlock(this) && !this.isInFlow() ? X || o.lineMaxWidth : this.lineMaxWidth) || this.lineMaxWidth, v, y), this.layoutBoxUpdate(at, i, 0)), m || !bt && !zt || (at.height = zt || this.contrastSize(bt, x, b), this.layoutBoxUpdate(at, i)), i.borderRadius && this.borderSize && this.borderSize.width) for (var q in i.borderRadius) { Object.hasOwnProperty.call(i.borderRadius, q) && (i.borderRadius[q] = W(i.borderRadius[q], this.borderSize.width)); } return this.layoutBox; }, e.layout = function () { return this.getBoxWidthHeight(), this.root.offsetSize = this.offsetSize, this.root.contentSize = this.contentSize, this.getBoxPosition(), this.offsetSize; }, t; }(), vt = function () { var t, e, i, n, r, o, s = [0, 11, 15, 19, 23, 27, 31, 16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24, 26, 28, 28, 22, 24, 24, 26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28], a = [3220, 1468, 2713, 1235, 3062, 1890, 2119, 1549, 2344, 2936, 1117, 2583, 1330, 2470, 1667, 2249, 2028, 3780, 481, 4011, 142, 3098, 831, 3445, 592, 2517, 1776, 2234, 1951, 2827, 1070, 2660, 1345, 3177], h = [30660, 29427, 32170, 30877, 26159, 25368, 27713, 26998, 21522, 20773, 24188, 23371, 17913, 16590, 20375, 19104, 13663, 12392, 16177, 14854, 9396, 8579, 11994, 11245, 5769, 5054, 7399, 6608, 1890, 597, 3340, 2107], c = [1, 0, 19, 7, 1, 0, 16, 10, 1, 0, 13, 13, 1, 0, 9, 17, 1, 0, 34, 10, 1, 0, 28, 16, 1, 0, 22, 22, 1, 0, 16, 28, 1, 0, 55, 15, 1, 0, 44, 26, 2, 0, 17, 18, 2, 0, 13, 22, 1, 0, 80, 20, 2, 0, 32, 18, 2, 0, 24, 26, 4, 0, 9, 16, 1, 0, 108, 26, 2, 0, 43, 24, 2, 2, 15, 18, 2, 2, 11, 22, 2, 0, 68, 18, 4, 0, 27, 16, 4, 0, 19, 24, 4, 0, 15, 28, 2, 0, 78, 20, 4, 0, 31, 18, 2, 4, 14, 18, 4, 1, 13, 26, 2, 0, 97, 24, 2, 2, 38, 22, 4, 2, 18, 22, 4, 2, 14, 26, 2, 0, 116, 30, 3, 2, 36, 22, 4, 4, 16, 20, 4, 4, 12, 24, 2, 2, 68, 18, 4, 1, 43, 26, 6, 2, 19, 24, 6, 2, 15, 28, 4, 0, 81, 20, 1, 4, 50, 30, 4, 4, 22, 28, 3, 8, 12, 24, 2, 2, 92, 24, 6, 2, 36, 22, 4, 6, 20, 26, 7, 4, 14, 28, 4, 0, 107, 26, 8, 1, 37, 22, 8, 4, 20, 24, 12, 4, 11, 22, 3, 1, 115, 30, 4, 5, 40, 24, 11, 5, 16, 20, 11, 5, 12, 24, 5, 1, 87, 22, 5, 5, 41, 24, 5, 7, 24, 30, 11, 7, 12, 24, 5, 1, 98, 24, 7, 3, 45, 28, 15, 2, 19, 24, 3, 13, 15, 30, 1, 5, 107, 28, 10, 1, 46, 28, 1, 15, 22, 28, 2, 17, 14, 28, 5, 1, 120, 30, 9, 4, 43, 26, 17, 1, 22, 28, 2, 19, 14, 28, 3, 4, 113, 28, 3, 11, 44, 26, 17, 4, 21, 26, 9, 16, 13, 26, 3, 5, 107, 28, 3, 13, 41, 26, 15, 5, 24, 30, 15, 10, 15, 28, 4, 4, 116, 28, 17, 0, 42, 26, 17, 6, 22, 28, 19, 6, 16, 30, 2, 7, 111, 28, 17, 0, 46, 28, 7, 16, 24, 30, 34, 0, 13, 24, 4, 5, 121, 30, 4, 14, 47, 28, 11, 14, 24, 30, 16, 14, 15, 30, 6, 4, 117, 30, 6, 14, 45, 28, 11, 16, 24, 30, 30, 2, 16, 30, 8, 4, 106, 26, 8, 13, 47, 28, 7, 22, 24, 30, 22, 13, 15, 30, 10, 2, 114, 28, 19, 4, 46, 28, 28, 6, 22, 28, 33, 4, 16, 30, 8, 4, 122, 30, 22, 3, 45, 28, 8, 26, 23, 30, 12, 28, 15, 30, 3, 10, 117, 30, 3, 23, 45, 28, 4, 31, 24, 30, 11, 31, 15, 30, 7, 7, 116, 30, 21, 7, 45, 28, 1, 37, 23, 30, 19, 26, 15, 30, 5, 10, 115, 30, 19, 10, 47, 28, 15, 25, 24, 30, 23, 25, 15, 30, 13, 3, 115, 30, 2, 29, 46, 28, 42, 1, 24, 30, 23, 28, 15, 30, 17, 0, 115, 30, 10, 23, 46, 28, 10, 35, 24, 30, 19, 35, 15, 30, 17, 1, 115, 30, 14, 21, 46, 28, 29, 19, 24, 30, 11, 46, 15, 30, 13, 6, 115, 30, 14, 23, 46, 28, 44, 7, 24, 30, 59, 1, 16, 30, 12, 7, 121, 30, 12, 26, 47, 28, 39, 14, 24, 30, 22, 41, 15, 30, 6, 14, 121, 30, 6, 34, 47, 28, 46, 10, 24, 30, 2, 64, 15, 30, 17, 4, 122, 30, 29, 14, 46, 28, 49, 10, 24, 30, 24, 46, 15, 30, 4, 18, 122, 30, 13, 32, 46, 28, 48, 14, 24, 30, 42, 32, 15, 30, 20, 4, 117, 30, 40, 7, 47, 28, 43, 22, 24, 30, 10, 67, 15, 30, 19, 6, 118, 30, 18, 31, 47, 28, 34, 34, 24, 30, 20, 61, 15, 30], f = [255, 0, 1, 25, 2, 50, 26, 198, 3, 223, 51, 238, 27, 104, 199, 75, 4, 100, 224, 14, 52, 141, 239, 129, 28, 193, 105, 248, 200, 8, 76, 113, 5, 138, 101, 47, 225, 36, 15, 33, 53, 147, 142, 218, 240, 18, 130, 69, 29, 181, 194, 125, 106, 39, 249, 185, 201, 154, 9, 120, 77, 228, 114, 166, 6, 191, 139, 98, 102, 221, 48, 253, 226, 152, 37, 179, 16, 145, 34, 136, 54, 208, 148, 206, 143, 150, 219, 189, 241, 210, 19, 92, 131, 56, 70, 64, 30, 66, 182, 163, 195, 72, 126, 110, 107, 58, 40, 84, 250, 133, 186, 61, 202, 94, 155, 159, 10, 21, 121, 43, 78, 212, 229, 172, 115, 243, 167, 87, 7, 112, 192, 247, 140, 128, 99, 13, 103, 74, 222, 237, 49, 197, 254, 24, 227, 165, 153, 119, 38, 184, 180, 124, 17, 68, 146, 217, 35, 32, 137, 46, 55, 63, 209, 91, 149, 188, 207, 205, 144, 135, 151, 178, 220, 252, 190, 97, 242, 86, 211, 171, 20, 42, 93, 158, 132, 60, 57, 83, 71, 109, 65, 162, 31, 45, 67, 216, 183, 123, 164, 118, 196, 23, 73, 236, 127, 12, 111, 246, 108, 161, 59, 82, 41, 157, 85, 170, 251, 96, 134, 177, 187, 204, 62, 90, 203, 89, 95, 176, 156, 169, 160, 81, 11, 245, 22, 235, 122, 117, 44, 215, 79, 174, 213, 233, 230, 231, 173, 232, 116, 214, 244, 234, 168, 80, 88, 175], l = [1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117, 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181, 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222, 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211, 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34, 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118, 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21, 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209, 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150, 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56, 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172, 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44, 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142, 0], d = [], u = [], p = [], g = [], v = [], y = 2; function x(t, e) { var i; t > e && (i = t, t = e, e = i), i = e, i *= e, i += e, i >>= 1, g[i += t] = 1; } function b(t, i) { var n; for (p[t + e * i] = 1, n = -2; n < 2; n++) { p[t + n + e * (i - 2)] = 1, p[t - 2 + e * (i + n + 1)] = 1, p[t + 2 + e * (i + n)] = 1, p[t + n + 1 + e * (i + 2)] = 1; } for (n = 0; n < 2; n++) { x(t - 1, i + n), x(t + 1, i - n), x(t - n, i - 1), x(t + n, i + 1); } } function w(t) { for (; t >= 255;) { t = ((t -= 255) >> 8) + (255 & t); } return t; } var m = []; function S(t, e, i, n) { var r, o, s; for (r = 0; r < n; r++) { d[i + r] = 0; } for (r = 0; r < e; r++) { if (255 != (s = f[d[t + r] ^ d[i]])) for (o = 1; o < n; o++) { d[i + o - 1] = d[i + o] ^ l[w(s + m[n - o])]; } else for (o = i; o < i + n; o++) { d[o] = d[o + 1]; } d[i + n - 1] = 255 == s ? 0 : l[w(s + m[0])]; } } function z(t, e) { var i; return t > e && (i = t, t = e, e = i), i = e, i += e * e, i >>= 1, g[i += t]; } function I(t) { var i, n, r, o; switch (t) { case 0: for (n = 0; n < e; n++) { for (i = 0; i < e; i++) { i + n & 1 || z(i, n) || (p[i + n * e] ^= 1); } } break; case 1: for (n = 0; n < e; n++) { for (i = 0; i < e; i++) { 1 & n || z(i, n) || (p[i + n * e] ^= 1); } } break; case 2: for (n = 0; n < e; n++) { for (r = 0, i = 0; i < e; i++, r++) { 3 == r && (r = 0), r || z(i, n) || (p[i + n * e] ^= 1); } } break; case 3: for (o = 0, n = 0; n < e; n++, o++) { for (3 == o && (o = 0), r = o, i = 0; i < e; i++, r++) { 3 == r && (r = 0), r || z(i, n) || (p[i + n * e] ^= 1); } } break; case 4: for (n = 0; n < e; n++) { for (r = 0, o = n >> 1 & 1, i = 0; i < e; i++, r++) { 3 == r && (r = 0, o = !o), o || z(i, n) || (p[i + n * e] ^= 1); } } break; case 5: for (o = 0, n = 0; n < e; n++, o++) { for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) { 3 == r && (r = 0), (i & n & 1) + !(!r | !o) || z(i, n) || (p[i + n * e] ^= 1); } } break; case 6: for (o = 0, n = 0; n < e; n++, o++) { for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) { 3 == r && (r = 0), (i & n & 1) + (r && r == o) & 1 || z(i, n) || (p[i + n * e] ^= 1); } } break; case 7: for (o = 0, n = 0; n < e; n++, o++) { for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) { 3 == r && (r = 0), (r && r == o) + (i + n & 1) & 1 || z(i, n) || (p[i + n * e] ^= 1); } } } } function M(t) { var e, i = 0; for (e = 0; e <= t; e++) { v[e] >= 5 && (i += 3 + v[e] - 5); } for (e = 3; e < t - 1; e += 2) { v[e - 2] == v[e + 2] && v[e + 2] == v[e - 1] && v[e - 1] == v[e + 1] && 3 * v[e - 1] == v[e] && (0 == v[e - 3] || e + 3 > t || 3 * v[e - 3] >= 4 * v[e] || 3 * v[e + 3] >= 4 * v[e]) && (i += 40); } return i; } function k() { var t, i, n, r, o, s = 0, a = 0; for (i = 0; i < e - 1; i++) { for (t = 0; t < e - 1; t++) { (p[t + e * i] && p[t + 1 + e * i] && p[t + e * (i + 1)] && p[t + 1 + e * (i + 1)] || !(p[t + e * i] || p[t + 1 + e * i] || p[t + e * (i + 1)] || p[t + 1 + e * (i + 1)])) && (s += 3); } } for (i = 0; i < e; i++) { for (v[0] = 0, n = r = t = 0; t < e; t++) { (o = p[t + e * i]) == r ? v[n]++ : v[++n] = 1, a += (r = o) ? 1 : -1; } s += M(n); } a < 0 && (a = -a); var h = a, c = 0; for (h += h << 2, h <<= 1; h > e * e;) { h -= e * e, c++; } for (s += 10 * c, t = 0; t < e; t++) { for (v[0] = 0, n = r = i = 0; i < e; i++) { (o = p[t + e * i]) == r ? v[n]++ : v[++n] = 1, r = o; } s += M(n); } return s; } var B = null; return { api: { get ecclevel() { return y; }, set ecclevel(t) { y = t; }, get size() { return _size; }, set size(t) { _size = t; }, get canvas() { return B; }, set canvas(t) { B = t; }, getFrame: function getFrame(v) { return function (v) { var M, B, W, P, O, T, L, R; P = v.length, t = 0; do { if (t++, W = 4 * (y - 1) + 16 * (t - 1), i = c[W++], n = c[W++], r = c[W++], o = c[W], P <= (W = r * (i + n) + n - 3 + (t <= 9))) break; } while (t < 40); for (e = 17 + 4 * t, O = r + (r + o) * (i + n) + n, P = 0; P < O; P++) { u[P] = 0; } for (d = v.slice(0), P = 0; P < e * e; P++) { p[P] = 0; } for (P = 0; P < (e * (e + 1) + 1) / 2; P++) { g[P] = 0; } for (P = 0; P < 3; P++) { for (W = 0, B = 0, 1 == P && (W = e - 7), 2 == P && (B = e - 7), p[B + 3 + e * (W + 3)] = 1, M = 0; M < 6; M++) { p[B + M + e * W] = 1, p[B + e * (W + M + 1)] = 1, p[B + 6 + e * (W + M)] = 1, p[B + M + 1 + e * (W + 6)] = 1; } for (M = 1; M < 5; M++) { x(B + M, W + 1), x(B + 1, W + M + 1), x(B + 5, W + M), x(B + M + 1, W + 5); } for (M = 2; M < 4; M++) { p[B + M + e * (W + 2)] = 1, p[B + 2 + e * (W + M + 1)] = 1, p[B + 4 + e * (W + M)] = 1, p[B + M + 1 + e * (W + 4)] = 1; } } if (t > 1) for (P = s[t], B = e - 7;;) { for (M = e - 7; M > P - 3 && (b(M, B), !(M < P));) { M -= P; } if (B <= P + 9) break; b(6, B -= P), b(B, 6); } for (p[8 + e * (e - 8)] = 1, B = 0; B < 7; B++) { x(7, B), x(e - 8, B), x(7, B + e - 7); } for (M = 0; M < 8; M++) { x(M, 7), x(M + e - 8, 7), x(M, e - 8); } for (M = 0; M < 9; M++) { x(M, 8); } for (M = 0; M < 8; M++) { x(M + e - 8, 8), x(8, M); } for (B = 0; B < 7; B++) { x(8, B + e - 7); } for (M = 0; M < e - 14; M++) { 1 & M ? (x(8 + M, 6), x(6, 8 + M)) : (p[8 + M + 6 * e] = 1, p[6 + e * (8 + M)] = 1); } if (t > 6) for (P = a[t - 7], W = 17, M = 0; M < 6; M++) { for (B = 0; B < 3; B++, W--) { 1 & (W > 11 ? t >> W - 12 : P >> W) ? (p[5 - M + e * (2 - B + e - 11)] = 1, p[2 - B + e - 11 + e * (5 - M)] = 1) : (x(5 - M, 2 - B + e - 11), x(2 - B + e - 11, 5 - M)); } } for (B = 0; B < e; B++) { for (M = 0; M <= B; M++) { p[M + e * B] && x(M, B); } } for (O = d.length, T = 0; T < O; T++) { u[T] = d.charCodeAt(T); } if (d = u.slice(0), O >= (M = r * (i + n) + n) - 2 && (O = M - 2, t > 9 && O--), T = O, t > 9) { for (d[T + 2] = 0, d[T + 3] = 0; T--;) { P = d[T], d[T + 3] |= 255 & P << 4, d[T + 2] = P >> 4; } d[2] |= 255 & O << 4, d[1] = O >> 4, d[0] = 64 | O >> 12; } else { for (d[T + 1] = 0, d[T + 2] = 0; T--;) { P = d[T], d[T + 2] |= 255 & P << 4, d[T + 1] = P >> 4; } d[1] |= 255 & O << 4, d[0] = 64 | O >> 4; } for (T = O + 3 - (t < 10); T < M;) { d[T++] = 236, d[T++] = 17; } for (m[0] = 1, T = 0; T < o; T++) { for (m[T + 1] = 1, L = T; L > 0; L--) { m[L] = m[L] ? m[L - 1] ^ l[w(f[m[L]] + T)] : m[L - 1]; } m[0] = l[w(f[m[0]] + T)]; } for (T = 0; T <= o; T++) { m[T] = f[m[T]]; } for (W = M, B = 0, T = 0; T < i; T++) { S(B, r, W, o), B += r, W += o; } for (T = 0; T < n; T++) { S(B, r + 1, W, o), B += r + 1, W += o; } for (B = 0, T = 0; T < r; T++) { for (L = 0; L < i; L++) { u[B++] = d[T + L * r]; } for (L = 0; L < n; L++) { u[B++] = d[i * r + T + L * (r + 1)]; } } for (L = 0; L < n; L++) { u[B++] = d[i * r + T + L * (r + 1)]; } for (T = 0; T < o; T++) { for (L = 0; L < i + n; L++) { u[B++] = d[M + T + L * o]; } } for (d = u, M = B = e - 1, W = O = 1, R = (r + o) * (i + n) + n, T = 0; T < R; T++) { for (P = d[T], L = 0; L < 8; L++, P <<= 1) { 128 & P && (p[M + e * B] = 1); do { O ? M-- : (M++, W ? 0 != B ? B-- : (W = !W, 6 == (M -= 2) && (M--, B = 9)) : B != e - 1 ? B++ : (W = !W, 6 == (M -= 2) && (M--, B -= 8))), O = !O; } while (z(M, B)); } } for (d = p.slice(0), P = 0, B = 3e4, W = 0; W < 8 && (I(W), (M = k()) < B && (B = M, P = W), 7 != P); W++) { p = d.slice(0); } for (P != W && I(P), B = h[P + (y - 1 << 3)], W = 0; W < 8; W++, B >>= 1) { 1 & B && (p[e - 1 - W + 8 * e] = 1, W < 6 ? p[8 + e * W] = 1 : p[8 + e * (W + 1)] = 1); } for (W = 0; W < 7; W++, B >>= 1) { 1 & B && (p[8 + e * (e - 7 + W)] = 1, W ? p[6 - W + 8 * e] = 1 : p[7 + 8 * e] = 1); } return p; }(v); }, utf16to8: function utf16to8(t) { var e, i, n, r; for (e = "", n = t.length, i = 0; i < n; i++) { (r = t.charCodeAt(i)) >= 1 && r <= 127 ? e += t.charAt(i) : r > 2047 ? (e += String.fromCharCode(224 | r >> 12 & 15), e += String.fromCharCode(128 | r >> 6 & 63), e += String.fromCharCode(128 | r >> 0 & 63)) : (e += String.fromCharCode(192 | r >> 6 & 31), e += String.fromCharCode(128 | r >> 0 & 63)); } return e; }, draw: function draw(t, i, n, r, o) { i.drawView(n, r); var s = i.ctx, a = n.contentSize, h = a.width, c = a.height, f = a.left, l = a.top; r.borderRadius, r.backgroundColor; var d = r.color, u = void 0 === d ? "#000000" : d; r.border, n.contentSize.left, n.borderSize.left, n.contentSize.top, n.borderSize.top; if (y = o || y, s) { s.save(), i.setOpacity(r), i.setTransform(n, r); var p = Math.min(h, c); t = this.utf16to8(t); var g = this.getFrame(t), v = p / e; s.setFillStyle(u); for (var x = 0; x < e; x++) { for (var b = 0; b < e; b++) { g[b * e + x] && s.fillRect(f + v * x, l + v * b, v, v); } } s.restore(), i.setBorder(n, r); } else console.warn("No canvas provided to draw QR code in!"); } } }; }(), yt = p, xt = u, bt = g, wt = d, mt = f.TOP, St = f.MIDDLE, zt = f.BOTTOM, It = l.LEFT, Mt = l.CENTER, kt = l.RIGHT, Bt = function () { function r(t) { var e, i, r = this; this.v = "1.9.5.1", this.id = null, this.pixelRatio = 1, this.width = 0, this.height = 0, this.sleep = 1e3 / 30, this.count = 0, this.isRate = !1, this.isDraw = !0, this.isCache = !0, this.fixed = "", this.useCORS = !1, this.performance = !1, this.imageBus = [], this.createImage = function (t, e) { return new Promise(function (i, n) { var o = null; window || r.canvas.createImage ? (o = r.canvas && r.canvas.createImage ? r.canvas.createImage() : new Image(), e && o.setAttribute("crossOrigin", "Anonymous"), o.src = t, o.onload = function () { i({ width: o.naturalWidth || o.width, height: o.naturalHeight || o.height, path: o, src: this.src }); }, o.onerror = function (t) { n(t); }) : n({ fail: "getImageInfo fail", src: t }); }); }, this.options = t, Object.assign(this, t), this.ctx = (e = t.context, i = { get: function get(t, i) { if ("setFonts" === i) return function (t) { var i = t.fontFamily, r = void 0 === i ? "sans-serif" : i, o = t.fontSize, s = void 0 === o ? 14 : o, a = t.fontWeight, h = void 0 === a ? "normal" : a, c = t.fontStyle, f = void 0 === c ? "normal" : c; I == n.MP_TOUTIAO && (h = "bold" == h ? "bold" : "", f = "italic" == f ? "italic" : ""), e.font = "".concat(f, " ").concat(h, " ").concat(Math.round(s), "px ").concat(r); }; if (!e.draw || !e.setFillStyle) { if ("setFillStyle" === i) return function (t) { e.fillStyle = t; }; if ("setStrokeStyle" === i) return function (t) { e.strokeStyle = t; }; if ("setLineWidth" === i) return function (t) { e.lineWidth = t; }; if ("setLineCap" === i) return function (t) { e.lineCap = t; }; if ("setFontSize" === i) return function (t) { e.font = "".concat(String(t), "px sans-serif"); }; if ("setGlobalAlpha" === i) return function (t) { e.globalAlpha = t; }; if ("setLineJoin" === i) return function (t) { e.lineJoin = t; }; if ("setTextAlign" === i) return function (t) { e.textAlign = t; }; if ("setMiterLimit" === i) return function (t) { e.miterLimit = t; }; if ("setShadow" === i) return function (t, i, n, r) { e.shadowOffsetX = t, e.shadowOffsetY = i, e.shadowBlur = n, e.shadowColor = r; }; if ("setTextBaseline" === i) return function (t) { e.textBaseline = t; }; if ("createCircularGradient" === i) return function () {}; if ("draw" === i) return function () {}; if ("function" == typeof e[i]) return function () { for (var t = [], n = 0; n < arguments.length; n++) { t[n] = arguments[n]; } return e[i].apply(e, t); }; } return t[i]; }, set: function set(t, i, n) { return e[i] = n, !0; } }, new Proxy(e, i)), this.progress = 0, this.root = { width: t.width, height: t.height, fontSizeRate: 1, fixedLine: null }, this.size = this.root; var o = 0; Object.defineProperty(this, "progress", { configurable: !0, set: function set(t) { o = t, r.lifecycle("onProgress", t / r.count); }, get: function get() { return o || 0; } }); } return r.prototype.lifecycle = function (t, e) { this.options.listen && this.options.listen[t] && this.options.listen[t](e); }, r.prototype.setContext = function (t) { t && (this.ctx = t); }, r.prototype.init = function () { if (this.canvas.height || n.WEB == I) { this.ctx.setTransform(1, 0, 0, 1, 0, 0); var t = this.size.height * this.pixelRatio, e = this.size.width * this.pixelRatio; this.canvas.height = t, this.canvas.width = e, this.ctx.scale(this.pixelRatio, this.pixelRatio); } }, r.prototype.clear = function () { this.ctx.clearRect(0, 0, this.size.width, this.size.height); }, r.prototype.clipPath = function (t, e, i, n, r, o, s) { void 0 === o && (o = !1), void 0 === s && (s = !1); var a = this.ctx; if (/polygon/.test(r)) { var h = r.match(/-?\d+(rpx|px|%)?\s+-?\d+(rpx|px|%)?/g) || []; a.beginPath(), h.map(function (r) { var o = r.split(" "), s = o[0], a = o[1]; return [W(s, i) + t, W(a, n) + e]; }).forEach(function (t, e) { 0 == e ? a.moveTo(t[0], t[1]) : a.lineTo(t[0], t[1]); }), a.closePath(), s && a.stroke(), o && a.fill(); } }, r.prototype.roundRect = function (t, e, i, n, r, o, s) { if (void 0 === o && (o = !1), void 0 === s && (s = !1), !(r < 0)) { var a = this.ctx; if (a.beginPath(), r) { var h = r || {}, c = h.borderTopLeftRadius, f = void 0 === c ? r || 0 : c, l = h.borderTopRightRadius, d = void 0 === l ? r || 0 : l, u = h.borderBottomRightRadius, p = void 0 === u ? r || 0 : u, g = h.borderBottomLeftRadius, v = void 0 === g ? r || 0 : g; a.arc(t + i - p, e + n - p, p, 0, .5 * Math.PI), a.lineTo(t + v, e + n), a.arc(t + v, e + n - v, v, .5 * Math.PI, Math.PI), a.lineTo(t, e + f), a.arc(t + f, e + f, f, Math.PI, 1.5 * Math.PI), a.lineTo(t + i - d, e), a.arc(t + i - d, e + d, d, 1.5 * Math.PI, 2 * Math.PI), a.lineTo(t + i, e + n - p); } else a.rect(t, e, i, n); a.closePath(), s && a.stroke(), o && a.fill(); } }, r.prototype.setTransform = function (t, e) { var i = e.transform, n = e.transformOrigin, r = this.ctx, o = i || {}, s = o.scaleX, a = void 0 === s ? 1 : s, h = o.scaleY, c = void 0 === h ? 1 : h, f = o.translateX, l = void 0 === f ? 0 : f, d = o.translateY, u = void 0 === d ? 0 : d, p = o.rotate, g = void 0 === p ? 0 : p, v = o.skewX, y = void 0 === v ? 0 : v, x = o.skewY, b = void 0 === x ? 0 : x, w = t.left, m = t.top, S = t.width, z = t.height; l = W(l, S) || 0, u = W(u, z) || 0; var I = W("0%", 1), M = W("50%", 1), k = W("100%", 1), P = { top: I, center: M, bottom: k }, O = { left: I, center: M, right: k }; if (n = n.split(" ").filter(function (t, e) { return e < 2; }).reduce(function (t, e) { if (/\d+/.test(e)) { var i = W(e, 1) / (/px|rpx$/.test(e) ? B(t.x) ? z : S : 1); return B(t.x) ? Object.assign(t, { y: i }) : Object.assign(t, { x: i }); } return B(O[e]) && !B(t.x) ? Object.assign(t, { x: O[e] }) : Object.assign(t, { y: P[e] || .5 }); }, {}), (l || u) && r.translate(l, u), (a || c) && r.scale(a, c), g) { var T = w + S * n.x, L = m + z * n.y; r.translate(T, L), r.rotate(g * Math.PI / 180), r.translate(-T, -L); } (y || b) && r.transform(1, Math.tan(b * Math.PI / 180), Math.tan(y * Math.PI / 180), 1, 0, 0); }, r.prototype.setBackground = function (t, e, i, r, o) { var s = this.ctx; t && "transparent" != t ? T(t) ? L(t, e, i, r, o, s) : s.setFillStyle(t) : [n.MP_TOUTIAO, n.MP_BAIDU].includes(I) ? s.setFillStyle("rgba(0,0,0,0)") : s.setFillStyle("transparent"); }, r.prototype.setShadow = function (t) { var e = t.boxShadow, i = void 0 === e ? [] : e, n = this.ctx; if (i.length) { var r = i[0], o = i[1], s = i[2], a = i[3]; n.setShadow(r, o, s, a); } }, r.prototype.setBorder = function (t, e) { var i = this.ctx, n = t.width, r = t.height, o = t.left, s = t.top, a = e.border, h = e.borderBottom, c = e.borderTop, f = e.borderRight, l = e.borderLeft, d = e.borderRadius, u = e.lineCap, p = a || {}, g = p.borderWidth, v = void 0 === g ? 0 : g, y = p.borderStyle, x = p.borderColor, b = h || {}, w = b.borderBottomWidth, m = void 0 === w ? v : w, S = b.borderBottomStyle, z = void 0 === S ? y : S, M = b.borderBottomColor, k = void 0 === M ? x : M, B = c || {}, W = B.borderTopWidth, P = void 0 === W ? v : W, O = B.borderTopStyle, T = void 0 === O ? y : O, L = B.borderTopColor, R = void 0 === L ? x : L, F = f || {}, A = F.borderRightWidth, j = void 0 === A ? v : A, E = F.borderRightStyle, C = void 0 === E ? y : E, H = F.borderRightColor, D = void 0 === H ? x : H, $ = l || {}, Y = $.borderLeftWidth, U = void 0 === Y ? v : Y, N = $.borderLeftStyle, X = void 0 === N ? y : N, _ = $.borderLeftColor, q = void 0 === _ ? x : _, G = d || {}, V = G.borderTopLeftRadius, J = void 0 === V ? d || 0 : V, Q = G.borderTopRightRadius, Z = void 0 === Q ? d || 0 : Q, K = G.borderBottomRightRadius, tt = void 0 === K ? d || 0 : K, et = G.borderBottomLeftRadius, it = void 0 === et ? d || 0 : et; if (h || l || c || f || a) { var nt = function nt(t, e, n) { "dashed" == e ? /mp/.test(I) ? i.setLineDash([Math.ceil(4 * t / 3), Math.ceil(4 * t / 3)]) : i.setLineDash([Math.ceil(6 * t), Math.ceil(6 * t)]) : "dotted" == e && i.setLineDash([t, t]), i.setStrokeStyle(n); }, rt = function rt(t, e, n, r, o, s, a, h, c, f, l, d, p, g, v) { i.save(), i.setLineCap(v ? "square" : u), i.setLineWidth(d), nt(d, p, g), i.beginPath(), i.arc(t, e, a, Math.PI * c, Math.PI * f), i.lineTo(n, r), i.arc(o, s, h, Math.PI * f, Math.PI * l), i.stroke(), i.restore(); }; if (i.save(), a && !h && !l && !c && !f) return i.setLineWidth(v), nt(v, y, x), this.roundRect(o, s, n, r, d, !1, !!x), void i.restore(); m && rt(o + n - tt, s + r - tt, o + it, s + r, o + it, s + r - it, tt, it, .25, .5, .75, m, z, k, U && j), U && rt(o + it, s + r - it, o, s + J, o + J, s + J, it, J, .75, 1, 1.25, U, X, q, P && m), P && rt(o + J, s + J, o + n - Z, s, o + n - Z, s + Z, J, Z, 1.25, 1.5, 1.75, P, T, R, U && j), j && rt(o + n - Z, s + Z, o + n, s + r - tt, o + n - tt, s + r - tt, Z, tt, 1.75, 2, .25, j, C, D, P && m); } }, r.prototype.setOpacity = function (t) { var e = t.opacity, i = void 0 === e ? 1 : e; this.ctx.setGlobalAlpha(i); }, r.prototype.drawPattern = function (t, n, r) { return e(this, void 0, void 0, function () { var e = this; return i(this, function (i) { return [2, new Promise(function (i, o) { e.drawView(n, r, !0, !1, !0); var s = e, a = s.ctx; s.canvas; var h = n.width, c = n.height, f = n.left, l = n.top, d = r || {}, u = d.borderRadius, p = void 0 === u ? 0 : u, g = d.backgroundImage, v = d.backgroundRepeat, y = void 0 === v ? "repeat" : v; g && function (t) { var o = a.createPattern(t.src, y); a.setFillStyle(o), e.roundRect(f, l, h, c, p, !0, !1), e.setBorder(n, r), i(); }(t); })]; }); }); }, r.prototype.drawView = function (t, e, i, n, r) { void 0 === i && (i = !0), void 0 === n && (n = !0), void 0 === r && (r = !0); var o = this.ctx, s = t.width, a = t.height, h = t.left, c = t.top, f = e || {}, l = f.borderRadius, d = void 0 === l ? 0 : l, u = f.backgroundColor, p = void 0 === u ? "transparent" : u, g = f.overflow; e.opacity && this.setOpacity(e), this.setTransform(t, e), r && (o.save(), this.setShadow(e)), i && this.setBackground(p, s, a, h, c), e.clipPath ? this.clipPath(h, c, s, a, e.clipPath, i, !1) : this.roundRect(h, c, s, a, d, i, !1), r && o.restore(), n && this.setBorder(t, e), "hidden" == g && o.clip(); }, r.prototype.drawImage = function (t, r, o, s) { return void 0 === r && (r = {}), void 0 === o && (o = {}), void 0 === s && (s = !0), e(this, void 0, void 0, function () { var a = this; return i(this, function (h) { switch (h.label) { case 0: return [4, new Promise(function (h, c) { return e(a, void 0, void 0, function () { var e, a, c, f, l, d, u, p, g, v, y, x, b, w, m, S, z, M, k, B, T, L = this; return i(this, function (i) { return e = this.ctx, a = o.borderRadius, c = void 0 === a ? 0 : a, f = o.backgroundColor, l = void 0 === f ? "transparent" : f, d = o.objectFit, u = void 0 === d ? "fill" : d, p = o.backgroundSize, g = void 0 === p ? "fill" : p, v = o.objectPosition, y = o.backgroundPosition, x = o.boxShadow, o.backgroundImage && (u = g, v = y), x && this.drawView(r, Object.assign(o, { backgroundColor: l || x && (l || "#ffffff") }), !0, !1, !0), b = r.width, w = r.height, m = r.left, S = r.top, e.save(), z = r.contentSize.left - r.borderSize.left, M = r.contentSize.top - r.borderSize.top, s || (this.setOpacity(o), this.setTransform(r, o), this.setBackground(l, b, w, m, S), this.roundRect(m, S, b, w, c, !!(c || !x && l), !1)), m += z, S += M, e.clip(), k = function k(t) { if ("fill" !== u) { var i = function (t, e, i) { var n = t.objectFit, r = t.objectPosition, o = e.width / e.height, s = i.width / i.height, a = 1, h = "contain", c = "cover"; n == h && o >= s || n == c && o < s ? a = e.height / i.height : (n == h && o < s || n == c && o >= s) && (a = e.width / i.width); var f = i.width * a, l = i.height * a, d = r || [], u = d[0], p = d[1], g = O(u) ? W(u, e.width) : (e.width - f) * (P(u) ? W(u, 1) : { left: 0, center: .5, right: 1 }[u || "center"]), v = O(p) ? W(p, e.height) : (e.height - l) * (P(p) ? W(p, 1) : { top: 0, center: .5, bottom: 1 }[p || "center"]), y = function y(t, e) { return [(t - g) / a, (e - v) / a]; }, x = y(0, 0), b = x[0], w = x[1], m = y(e.width, e.height), S = m[0], z = m[1], I = Math.max, M = Math.min; return { sx: I(b, 0), sy: I(w, 0), sw: M(S - b, i.width), sh: M(z - w, i.height), dx: I(g, 0), dy: I(v, 0), dw: M(f, e.width), dh: M(l, e.height) }; }({ objectFit: u, objectPosition: v }, r.contentSize, t), o = i.sx, s = i.sy, a = i.sh, h = i.sw, c = i.dx, f = i.dy, l = i.dh, d = i.dw; I == n.MP_BAIDU ? e.drawImage(t.src, c + m, f + S, d, l, o, s, h, a) : e.drawImage(t.src, o, s, h, a, c + m, f + S, d, l); } else e.drawImage(t.src, m, S, b, w); }, B = function B() { e.restore(), L.drawView(r, o, !1, !0, !1), h(1); }, T = function T(t) { k(t), B(); }, T(t), [2]; }); }); })]; case 1: return h.sent(), [2]; } }); }); }, r.prototype.drawText = function (t, e, i, n) { var r = this, o = this.ctx, s = e.borderSize, a = e.contentSize, h = e.left, c = e.top, f = a.width, l = a.height, d = a.left - s.left || 0, u = a.top - s.top || 0, p = i.color, g = i.lineHeight, v = i.fontSize, y = i.fontWeight, x = i.fontFamily, b = i.fontStyle, w = i.textIndent, m = void 0 === w ? 0 : w, S = i.textAlign, z = i.textStroke, I = i.verticalAlign, M = void 0 === I ? St : I, k = i.backgroundColor, P = i.lineClamp, O = i.backgroundClip, T = i.textShadow, L = i.textDecoration; if (m = B(m) ? m : 0, this.drawView(e, i, O != xt), g = W(g, v), t) { o.save(), h += d, c += u; var R = n.fontHeight, F = n.descent, A = void 0 === F ? 0 : F, j = n.ascent, E = A + (void 0 === j ? 0 : j); switch (o.setFonts({ fontFamily: x, fontSize: v, fontWeight: y, fontStyle: b }), o.setTextBaseline(St), o.setTextAlign(S), O ? this.setBackground(k, f, l, h, c) : o.setFillStyle(p), S) { case It: break; case Mt: h += .5 * f; break; case kt: h += f; } var C = n.lines * g, H = Math.ceil((l - C) / 2); switch (H < 0 && (H = 0), M) { case mt: break; case St: c += H; break; case zt: c += 2 * H; } var D = (g - R) / 2, $ = g / 2, Y = function Y(t) { var e = o.measureText(t), i = e.actualBoundingBoxDescent, n = void 0 === i ? 0 : i, r = e.actualBoundingBoxAscent; return M == mt ? { fix: E ? void 0 === r ? 0 : r : $ - D / 2, lineY: E ? 0 : D - D / 2 } : M == St ? { fix: E ? $ + n / 4 : $, lineY: E ? 0 : D } : M == zt ? { fix: E ? g - n : $ + D / 2, lineY: E ? 2 * D : D + D / 2 } : { fix: 0, height: 0, lineY: 0 }; }, U = function U(t, e, i) { var r = t; switch (S) { case It: r += i; break; case Mt: r = (t -= i / 2) + i; break; case kt: r = t, t -= i; } if (L) { o.setLineWidth(v / 13), o.beginPath(); var s = .1 * n.fontHeight; /\bunderline\b/.test(L) && (o.moveTo(t, e + n.fontHeight + s), o.lineTo(r, e + n.fontHeight + s)), /\boverline\b/.test(L) && (o.moveTo(t, e - s), o.lineTo(r, e - s)), /\bline-through\b/.test(L) && (o.moveTo(t, e + .5 * n.fontHeight), o.lineTo(r, e + .5 * n.fontHeight)), o.closePath(), o.setStrokeStyle(p), o.stroke(); } }, N = function N(t, e, i) { var n = function n() { o.setLineWidth(z.width), o.setStrokeStyle(z.color), o.strokeText(t, e, i); }, s = "outset"; z && z.type !== s ? (o.save(), r.setShadow({ boxShadow: T }), o.fillText(t, e, i), o.restore(), n()) : z && z.type == s ? (o.save(), r.setShadow({ boxShadow: T }), n(), o.restore(), o.save(), o.fillText(t, e, i), o.restore()) : (r.setShadow({ boxShadow: T }), o.fillText(t, e, i)); }; if (!n.widths || 1 == n.widths.length && n.widths[0].total + m <= a.width) { var X = Y(t), _ = X.fix, q = void 0 === _ ? 0 : _, G = X.lineY; return N(t, h + m, c + q), U(h + m, c + G, n && n.widths && n.widths[0].total || n.text), c += g, o.restore(), void this.setBorder(e, i); } for (var V = c, J = h, Q = "", Z = 0, K = o.measureText("...").width, tt = n.widths, et = 0; et < tt.length; et++) { var it = tt[et].widths, nt = 0; Q = "", c += 1 == (Z += 1) ? 0 : g, 1 == Z && m && (nt = m, J = h + m); for (var rt = 0; rt < it.length; rt++) { 1 !== Z && m && (J = h); var ot = it[rt], st = ot.width, at = ot.text, ht = (it[rt + 1] || {}).width; if (Q += at, (nt += st) + (void 0 === ht ? 0 : ht) + (0 == Z ? m : 0) + (Z == P ? K : 0) > a.width) { Z >= P && (Q += "…"), Z++, nt = 0; var ct = Y(Q); q = ct.fix, G = ct.lineY; N(Q, J, c + q), U(J, c + G, nt), c += g, Q = ""; } else if (rt == it.length - 1) { et != tt.length - 1 && Z == P && K + nt < a.width && (Q += "…"); var ft = Y(Q); q = ft.fix, G = ft.lineY; N(Q, J, c + q), U(J, c + G, nt); } if (c > V + l || Z > P) break; } } o.restore(); } }, r.prototype.source = function (t) { return e(this, void 0, void 0, function () { var e, n, r, o, s = this; return i(this, function (i) { switch (i.label) { case 0: if (this.node = null, e = +new Date(), "{}" == JSON.stringify(t)) return [2]; if (t.styles = t.styles || t.css || {}, !t.type) for (n in t.type = wt, t) { ["views", "children", "type", "css", "styles"].includes(n) || (t.styles[n] = t[n], delete t[n]); } return t.styles.boxSizing || (t.styles.boxSizing = "border-box"), [4, this.create(t)]; case 1: return (r = i.sent()) ? (o = r.layout() || {}, this.size = o, this.node = r, this.onEffectFinished().then(function (t) { return s.lifecycle("onEffectSuccess", t); }).catch(function (t) { return s.lifecycle("onEffectFail", t); }), this.performance && console.log("布局用时:" + (+new Date() - e) + "ms"), [2, this.size]) : [2, console.warn("no node")]; } }); }); }, r.prototype.getImageInfo = function (t) { return this.imageBus[t] || (this.imageBus[t] = this.createImage(t, this.useCORS)), this.imageBus[t]; }, r.prototype.create = function (n, r) { return e(this, void 0, void 0, function () { function e(i, n, r) { void 0 === n && (n = {}), void 0 === r && (r = !0); var o = []; return i.forEach(function (i) { var s = i.styles, a = void 0 === s ? {} : s, h = i.css, c = void 0 === h ? {} : h, f = i.children, l = void 0 === f ? [] : f, d = i.views, u = void 0 === d ? [] : d, p = i.text, g = void 0 === p ? "" : p, v = i.type, y = void 0 === v ? "" : v; !l && u && (i.children = l = u); var x = {}; x = _t(_t(r ? _t({}, n) : {}, a), c); var b = {}, w = {}, m = {}; Object.keys(x).map(function (t) { if (t.includes("padding") || t.includes("margin")) { var e = J(t, x[t]); Object.keys(e).map(function (t) { t.includes("Left") ? w[t] = e[t] : t.includes("Right") ? m[t] = e[t] : b[t] = e[t]; }); } }); if (x.textIndent && (w.textIndent = x.textIndent, delete n.textIndent), "" !== g) { var S = Array.from(g); S.forEach(function (t, e) { var i = Object.assign({}, x, b); 0 === e ? Object.assign(i, w) : e == S.length - 1 && Object.assign(i, m), delete i.padding, delete i.margin, o.push({ type: "text", text: t, styles: i }); }); } if (y == yt || y == bt) o.push(i);else if ("block" === a.display && l.length > 0) { var z = e(l, x, !1); i.children = z, i.flattened = !0, o.push(i); } else if (l.length > 0) { z = e(l, x, r); o = o.concat(z); } }), o; } var o, s, a, h, c, f, l, d, u, p, g, v, y, b, w, m, S, z, I, M, k, B, W, P; return i(this, function (i) { switch (i.label) { case 0: if (!n) return [2]; if (n.styles || (n.styles = n.css || {}), o = n.type, s = n.show, a = void 0 === s || s, h = o == yt, c = [xt, bt].includes(o), f = "textBox" == o, l = n.styles || {}, d = l.backgroundImage, u = l.display, h && !n.src && !n.url) return [2]; if (u == x || !a) return [2]; if (c || f) { if (p = n.children, g = n.views, !p && g && (n.children = p = g), !n.text && (!p || p && !p.length)) return [2]; p && p.length && !n.flattened && (v = e(n.children || n.views), n.type = "view", n.children = v); } if (!(h || n.type == wt && d)) return [3, 4]; y = h ? n.src : "", b = /url\(['"]?(.*?)['"]?\)/.exec(d), d && b && b[1] && (y = b[1] || ""), i.label = 1; case 1: return i.trys.push([1, 3,, 4]), [4, this.getImageInfo(y)]; case 2: return w = i.sent(), m = w.width, S = w.height, !(z = w.path) && h ? [2] : (z && (n.attributes = Object.assign(n.attributes || {}, { width: m, height: S, path: z, src: z, naturalSrc: y })), [3, 4]); case 3: return I = i.sent(), n.type != wt ? [2] : (this.lifecycle("onEffectFail", _t(_t({}, I), { src: y })), [3, 4]); case 4: if (this.count += 1, M = new gt(n, r, this.root, this.ctx), !(k = n.children || n.views)) return [3, 8]; B = 0, i.label = 5; case 5: return B < k.length ? (W = k[B], [4, this.create(W, M)]) : [3, 8]; case 6: (P = i.sent()) && M.add(P), i.label = 7; case 7: return B++, [3, 5]; case 8: return [2, M]; } }); }); }, r.prototype.drawNode = function (t, n) { return void 0 === n && (n = !1), e(this, void 0, void 0, function () { var e, r, o, s, a, h, c, f, l, d, u, p, g, v, y, x, b, w, m, S, z, I, M; return i(this, function (i) { switch (i.label) { case 0: return e = t.layoutBox, r = t.computedStyle, o = t.attributes, s = t.name, a = t.children, h = t.fixedLine, c = t.attributes, f = c.src, l = c.text, d = r.position, u = r.backgroundImage, p = r.backgroundRepeat, ["fixed"].includes(d) && !n ? [2] : (this.ctx.save(), s !== wt ? [3, 7] : f && u ? p ? [4, this.drawPattern(o, e, r)] : [3, 2] : [3, 5]); case 1: return i.sent(), [3, 4]; case 2: return [4, this.drawImage(o, e, r, !1)]; case 3: i.sent(), i.label = 4; case 4: return [3, 6]; case 5: this.drawView(e, r), i.label = 6; case 6: return [3, 10]; case 7: return s === yt && f ? [4, this.drawImage(o, e, r, !1)] : [3, 9]; case 8: return i.sent(), [3, 10]; case 9: s === xt ? this.drawText(l, e, r, o) : s === bt && vt.api && vt.api.draw(l, this, e, r), i.label = 10; case 10: if (this.progress += 1, v = (g = h || {}).beforeElements, y = g.afterElements, !v) return [3, 14]; x = 0, b = v, i.label = 11; case 11: return x < b.length ? (M = b[x], [4, this.drawNode(M)]) : [3, 14]; case 12: i.sent(), i.label = 13; case 13: return x++, [3, 11]; case 14: if (!a) return [3, 18]; w = Object.values ? Object.values(a) : Object.keys(a).map(function (t) { return a[t]; }), m = 0, S = w, i.label = 15; case 15: return m < S.length ? "absolute" === (M = S[m]).computedStyle.position ? [3, 17] : [4, this.drawNode(M)] : [3, 18]; case 16: i.sent(), i.label = 17; case 17: return m++, [3, 15]; case 18: if (!y) return [3, 22]; z = 0, I = y, i.label = 19; case 19: return z < I.length ? (M = I[z], [4, this.drawNode(M)]) : [3, 22]; case 20: i.sent(), i.label = 21; case 21: return z++, [3, 19]; case 22: return this.ctx.restore(), [2]; } }); }); }, r.prototype.render = function (t) { var n = this; return void 0 === t && (t = 30), new Promise(function (r, o) { return e(n, void 0, void 0, function () { var e, n, s, a, h, c, f, l, d, u; return i(this, function (i) { switch (i.label) { case 0: return e = +new Date(), this.init(), [4, (p = t, void 0 === p && (p = 0), new Promise(function (t) { return setTimeout(t, p); }))]; case 1: i.sent(), i.label = 2; case 2: if (i.trys.push([2, 14,, 15]), !this.node) return [3, 12]; if (n = this.root.fixedLine || {}, s = n.beforeElements, a = n.afterElements, !s) return [3, 6]; h = 0, c = s, i.label = 3; case 3: return h < c.length ? (d = c[h], [4, this.drawNode(d, !0)]) : [3, 6]; case 4: i.sent(), i.label = 5; case 5: return h++, [3, 3]; case 6: return [4, this.drawNode(this.node)]; case 7: if (i.sent(), !a) return [3, 11]; f = 0, l = a, i.label = 8; case 8: return f < l.length ? (d = l[f], [4, this.drawNode(d, !0)]) : [3, 11]; case 9: i.sent(), i.label = 10; case 10: return f++, [3, 8]; case 11: return r(this.node), [3, 13]; case 12: this.lifecycle("onEffectFail", "node is empty"), i.label = 13; case 13: return [3, 15]; case 14: return u = i.sent(), this.lifecycle("onEffectFail", u), o(u), [3, 15]; case 15: return this.performance && console.log("渲染用时:" + (+new Date() - e - 30) + "ms"), [2]; } var p; }); }); }); }, r.prototype.onEffectFinished = function () { var t = this, e = Object.keys(this.imageBus).map(function (e) { return t.imageBus[e]; }); return Promise.all(e); }, r.prototype.destroy = function () { this.node = []; }, r.prototype.save = function (t) { try { var e = t || {}, i = e.fileType, n = void 0 === i ? "png" : i, r = e.quality, o = void 0 === r ? 1 : r; return this.canvas.toDataURL("image/".concat(n), o); } catch (t) { return this.lifecycle("onEffectFail", "image cross domain"), t; } }, r; }(); exports.default = exports.Painter = Bt; n.WEB == I && (window.Painter = Bt); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"], __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js */ 1)["default"])) /***/ }), /***/ 23: /*!***************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***! \***************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 24: /*!************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ 12); function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ 25: /*!******************************************************************************************!*\ !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js ***! \******************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/*! * Vue.js v2.6.11 * (c) 2014-2024 Evan You * Released under the MIT License. */ /* */ var emptyObject = Object.freeze({}); // These helpers produce better VM code in JS engines due to their // explicitness and function inlining. function isUndef (v) { return v === undefined || v === null } function isDef (v) { return v !== undefined && v !== null } function isTrue (v) { return v === true } function isFalse (v) { return v === false } /** * Check if value is primitive. */ function isPrimitive (value) { return ( typeof value === 'string' || typeof value === 'number' || // $flow-disable-line typeof value === 'symbol' || typeof value === 'boolean' ) } /** * Quick object check - this is primarily used to tell * Objects from primitive values when we know the value * is a JSON-compliant type. */ function isObject (obj) { return obj !== null && typeof obj === 'object' } /** * Get the raw type string of a value, e.g., [object Object]. */ var _toString = Object.prototype.toString; function toRawType (value) { return _toString.call(value).slice(8, -1) } /** * Strict object type check. Only returns true * for plain JavaScript objects. */ function isPlainObject (obj) { return _toString.call(obj) === '[object Object]' } function isRegExp (v) { return _toString.call(v) === '[object RegExp]' } /** * Check if val is a valid array index. */ function isValidArrayIndex (val) { var n = parseFloat(String(val)); return n >= 0 && Math.floor(n) === n && isFinite(val) } function isPromise (val) { return ( isDef(val) && typeof val.then === 'function' && typeof val.catch === 'function' ) } /** * Convert a value to a string that is actually rendered. */ function toString (val) { return val == null ? '' : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ? JSON.stringify(val, null, 2) : String(val) } /** * Convert an input value to a number for persistence. * If the conversion fails, return original string. */ function toNumber (val) { var n = parseFloat(val); return isNaN(n) ? val : n } /** * Make a map and return a function for checking if a key * is in that map. */ function makeMap ( str, expectsLowerCase ) { var map = Object.create(null); var list = str.split(','); for (var i = 0; i < list.length; i++) { map[list[i]] = true; } return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; } } /** * Check if a tag is a built-in tag. */ var isBuiltInTag = makeMap('slot,component', true); /** * Check if an attribute is a reserved attribute. */ var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is'); /** * Remove an item from an array. */ function remove (arr, item) { if (arr.length) { var index = arr.indexOf(item); if (index > -1) { return arr.splice(index, 1) } } } /** * Check whether an object has the property. */ var hasOwnProperty = Object.prototype.hasOwnProperty; function hasOwn (obj, key) { return hasOwnProperty.call(obj, key) } /** * Create a cached version of a pure function. */ function cached (fn) { var cache = Object.create(null); return (function cachedFn (str) { var hit = cache[str]; return hit || (cache[str] = fn(str)) }) } /** * Camelize a hyphen-delimited string. */ var camelizeRE = /-(\w)/g; var camelize = cached(function (str) { return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) }); /** * Capitalize a string. */ var capitalize = cached(function (str) { return str.charAt(0).toUpperCase() + str.slice(1) }); /** * Hyphenate a camelCase string. */ var hyphenateRE = /\B([A-Z])/g; var hyphenate = cached(function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase() }); /** * Simple bind polyfill for environments that do not support it, * e.g., PhantomJS 1.x. Technically, we don't need this anymore * since native bind is now performant enough in most browsers. * But removing it would mean breaking code that was able to run in * PhantomJS 1.x, so this must be kept for backward compatibility. */ /* istanbul ignore next */ function polyfillBind (fn, ctx) { function boundFn (a) { var l = arguments.length; return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx) } boundFn._length = fn.length; return boundFn } function nativeBind (fn, ctx) { return fn.bind(ctx) } var bind = Function.prototype.bind ? nativeBind : polyfillBind; /** * Convert an Array-like object to a real Array. */ function toArray (list, start) { start = start || 0; var i = list.length - start; var ret = new Array(i); while (i--) { ret[i] = list[i + start]; } return ret } /** * Mix properties into target object. */ function extend (to, _from) { for (var key in _from) { to[key] = _from[key]; } return to } /** * Merge an Array of Objects into a single Object. */ function toObject (arr) { var res = {}; for (var i = 0; i < arr.length; i++) { if (arr[i]) { extend(res, arr[i]); } } return res } /* eslint-disable no-unused-vars */ /** * Perform no operation. * Stubbing args to make Flow happy without leaving useless transpiled code * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/). */ function noop (a, b, c) {} /** * Always return false. */ var no = function (a, b, c) { return false; }; /* eslint-enable no-unused-vars */ /** * Return the same value. */ var identity = function (_) { return _; }; /** * Check if two values are loosely equal - that is, * if they are plain objects, do they have the same shape? */ function looseEqual (a, b) { if (a === b) { return true } var isObjectA = isObject(a); var isObjectB = isObject(b); if (isObjectA && isObjectB) { try { var isArrayA = Array.isArray(a); var isArrayB = Array.isArray(b); if (isArrayA && isArrayB) { return a.length === b.length && a.every(function (e, i) { return looseEqual(e, b[i]) }) } else if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime() } else if (!isArrayA && !isArrayB) { var keysA = Object.keys(a); var keysB = Object.keys(b); return keysA.length === keysB.length && keysA.every(function (key) { return looseEqual(a[key], b[key]) }) } else { /* istanbul ignore next */ return false } } catch (e) { /* istanbul ignore next */ return false } } else if (!isObjectA && !isObjectB) { return String(a) === String(b) } else { return false } } /** * Return the first index at which a loosely equal value can be * found in the array (if value is a plain object, the array must * contain an object of the same shape), or -1 if it is not present. */ function looseIndexOf (arr, val) { for (var i = 0; i < arr.length; i++) { if (looseEqual(arr[i], val)) { return i } } return -1 } /** * Ensure a function is called only once. */ function once (fn) { var called = false; return function () { if (!called) { called = true; fn.apply(this, arguments); } } } var ASSET_TYPES = [ 'component', 'directive', 'filter' ]; var LIFECYCLE_HOOKS = [ 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeDestroy', 'destroyed', 'activated', 'deactivated', 'errorCaptured', 'serverPrefetch' ]; /* */ var config = ({ /** * Option merge strategies (used in core/util/options) */ // $flow-disable-line optionMergeStrategies: Object.create(null), /** * Whether to suppress warnings. */ silent: false, /** * Show production mode tip message on boot? */ productionTip: "development" !== 'production', /** * Whether to enable devtools */ devtools: "development" !== 'production', /** * Whether to record perf */ performance: false, /** * Error handler for watcher errors */ errorHandler: null, /** * Warn handler for watcher warns */ warnHandler: null, /** * Ignore certain custom elements */ ignoredElements: [], /** * Custom user key aliases for v-on */ // $flow-disable-line keyCodes: Object.create(null), /** * Check if a tag is reserved so that it cannot be registered as a * component. This is platform-dependent and may be overwritten. */ isReservedTag: no, /** * Check if an attribute is reserved so that it cannot be used as a component * prop. This is platform-dependent and may be overwritten. */ isReservedAttr: no, /** * Check if a tag is an unknown element. * Platform-dependent. */ isUnknownElement: no, /** * Get the namespace of an element */ getTagNamespace: noop, /** * Parse the real tag name for the specific platform. */ parsePlatformTagName: identity, /** * Check if an attribute must be bound using property, e.g. value * Platform-dependent. */ mustUseProp: no, /** * Perform updates asynchronously. Intended to be used by Vue Test Utils * This will significantly reduce performance if set to false. */ async: true, /** * Exposed for legacy reasons */ _lifecycleHooks: LIFECYCLE_HOOKS }); /* */ /** * unicode letters used for parsing html tags, component names and property paths. * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname * skipping \u10000-\uEFFFF due to it freezing up PhantomJS */ var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/; /** * Check if a string starts with $ or _ */ function isReserved (str) { var c = (str + '').charCodeAt(0); return c === 0x24 || c === 0x5F } /** * Define a property. */ function def (obj, key, val, enumerable) { Object.defineProperty(obj, key, { value: val, enumerable: !!enumerable, writable: true, configurable: true }); } /** * Parse simple path. */ var bailRE = new RegExp(("[^" + (unicodeRegExp.source) + ".$_\\d]")); function parsePath (path) { if (bailRE.test(path)) { return } var segments = path.split('.'); return function (obj) { for (var i = 0; i < segments.length; i++) { if (!obj) { return } obj = obj[segments[i]]; } return obj } } /* */ // can we use __proto__? var hasProto = '__proto__' in {}; // Browser environment sniffing var inBrowser = typeof window !== 'undefined'; var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); var UA = inBrowser && window.navigator && window.navigator.userAgent.toLowerCase(); var isIE = UA && /msie|trident/.test(UA); var isIE9 = UA && UA.indexOf('msie 9.0') > 0; var isEdge = UA && UA.indexOf('edge/') > 0; var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; var isPhantomJS = UA && /phantomjs/.test(UA); var isFF = UA && UA.match(/firefox\/(\d+)/); // Firefox has a "watch" function on Object.prototype... var nativeWatch = ({}).watch; if (inBrowser) { try { var opts = {}; Object.defineProperty(opts, 'passive', ({ get: function get () { } })); // https://github.com/facebook/flow/issues/285 window.addEventListener('test-passive', null, opts); } catch (e) {} } // this needs to be lazy-evaled because vue may be required before // vue-server-renderer can set VUE_ENV var _isServer; var isServerRendering = function () { if (_isServer === undefined) { /* istanbul ignore if */ if (!inBrowser && !inWeex && typeof global !== 'undefined') { // detect presence of vue-server-renderer and avoid // Webpack shimming the process _isServer = global['process'] && global['process'].env.VUE_ENV === 'server'; } else { _isServer = false; } } return _isServer }; // detect devtools var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; /* istanbul ignore next */ function isNative (Ctor) { return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) } var hasSymbol = typeof Symbol !== 'undefined' && isNative(Symbol) && typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); var _Set; /* istanbul ignore if */ // $flow-disable-line if (typeof Set !== 'undefined' && isNative(Set)) { // use native Set when available. _Set = Set; } else { // a non-standard Set polyfill that only works with primitive keys. _Set = /*@__PURE__*/(function () { function Set () { this.set = Object.create(null); } Set.prototype.has = function has (key) { return this.set[key] === true }; Set.prototype.add = function add (key) { this.set[key] = true; }; Set.prototype.clear = function clear () { this.set = Object.create(null); }; return Set; }()); } /* */ var warn = noop; var tip = noop; var generateComponentTrace = (noop); // work around flow check var formatComponentName = (noop); if (true) { var hasConsole = typeof console !== 'undefined'; var classifyRE = /(?:^|[-_])(\w)/g; var classify = function (str) { return str .replace(classifyRE, function (c) { return c.toUpperCase(); }) .replace(/[-_]/g, ''); }; warn = function (msg, vm) { var trace = vm ? generateComponentTrace(vm) : ''; if (config.warnHandler) { config.warnHandler.call(null, msg, vm, trace); } else if (hasConsole && (!config.silent)) { console.error(("[Vue warn]: " + msg + trace)); } }; tip = function (msg, vm) { if (hasConsole && (!config.silent)) { console.warn("[Vue tip]: " + msg + ( vm ? generateComponentTrace(vm) : '' )); } }; formatComponentName = function (vm, includeFile) { if (vm.$root === vm) { if (vm.$options && vm.$options.__file) { // fixed by xxxxxx return ('') + vm.$options.__file } return '' } var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm; var name = options.name || options._componentTag; var file = options.__file; if (!name && file) { var match = file.match(/([^/\\]+)\.vue$/); name = match && match[1]; } return ( (name ? ("<" + (classify(name)) + ">") : "") + (file && includeFile !== false ? (" at " + file) : '') ) }; var repeat = function (str, n) { var res = ''; while (n) { if (n % 2 === 1) { res += str; } if (n > 1) { str += str; } n >>= 1; } return res }; generateComponentTrace = function (vm) { if (vm._isVue && vm.$parent) { var tree = []; var currentRecursiveSequence = 0; while (vm && vm.$options.name !== 'PageBody') { if (tree.length > 0) { var last = tree[tree.length - 1]; if (last.constructor === vm.constructor) { currentRecursiveSequence++; vm = vm.$parent; continue } else if (currentRecursiveSequence > 0) { tree[tree.length - 1] = [last, currentRecursiveSequence]; currentRecursiveSequence = 0; } } !vm.$options.isReserved && tree.push(vm); vm = vm.$parent; } return '\n\nfound in\n\n' + tree .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") : formatComponentName(vm))); }) .join('\n') } else { return ("\n\n(found in " + (formatComponentName(vm)) + ")") } }; } /* */ var uid = 0; /** * A dep is an observable that can have multiple * directives subscribing to it. */ var Dep = function Dep () { this.id = uid++; this.subs = []; }; Dep.prototype.addSub = function addSub (sub) { this.subs.push(sub); }; Dep.prototype.removeSub = function removeSub (sub) { remove(this.subs, sub); }; Dep.prototype.depend = function depend () { if (Dep.SharedObject.target) { Dep.SharedObject.target.addDep(this); } }; Dep.prototype.notify = function notify () { // stabilize the subscriber list first var subs = this.subs.slice(); if ( true && !config.async) { // subs aren't sorted in scheduler if not running async // we need to sort them now to make sure they fire in correct // order subs.sort(function (a, b) { return a.id - b.id; }); } for (var i = 0, l = subs.length; i < l; i++) { subs[i].update(); } }; // The current target watcher being evaluated. // This is globally unique because only one watcher // can be evaluated at a time. // fixed by xxxxxx (nvue shared vuex) /* eslint-disable no-undef */ Dep.SharedObject = {}; Dep.SharedObject.target = null; Dep.SharedObject.targetStack = []; function pushTarget (target) { Dep.SharedObject.targetStack.push(target); Dep.SharedObject.target = target; Dep.target = target; } function popTarget () { Dep.SharedObject.targetStack.pop(); Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1]; Dep.target = Dep.SharedObject.target; } /* */ var VNode = function VNode ( tag, data, children, text, elm, context, componentOptions, asyncFactory ) { this.tag = tag; this.data = data; this.children = children; this.text = text; this.elm = elm; this.ns = undefined; this.context = context; this.fnContext = undefined; this.fnOptions = undefined; this.fnScopeId = undefined; this.key = data && data.key; this.componentOptions = componentOptions; this.componentInstance = undefined; this.parent = undefined; this.raw = false; this.isStatic = false; this.isRootInsert = true; this.isComment = false; this.isCloned = false; this.isOnce = false; this.asyncFactory = asyncFactory; this.asyncMeta = undefined; this.isAsyncPlaceholder = false; }; var prototypeAccessors = { child: { configurable: true } }; // DEPRECATED: alias for componentInstance for backwards compat. /* istanbul ignore next */ prototypeAccessors.child.get = function () { return this.componentInstance }; Object.defineProperties( VNode.prototype, prototypeAccessors ); var createEmptyVNode = function (text) { if ( text === void 0 ) text = ''; var node = new VNode(); node.text = text; node.isComment = true; return node }; function createTextVNode (val) { return new VNode(undefined, undefined, undefined, String(val)) } // optimized shallow clone // used for static nodes and slot nodes because they may be reused across // multiple renders, cloning them avoids errors when DOM manipulations rely // on their elm reference. function cloneVNode (vnode) { var cloned = new VNode( vnode.tag, vnode.data, // #7975 // clone children array to avoid mutating original in case of cloning // a child. vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory ); cloned.ns = vnode.ns; cloned.isStatic = vnode.isStatic; cloned.key = vnode.key; cloned.isComment = vnode.isComment; cloned.fnContext = vnode.fnContext; cloned.fnOptions = vnode.fnOptions; cloned.fnScopeId = vnode.fnScopeId; cloned.asyncMeta = vnode.asyncMeta; cloned.isCloned = true; return cloned } /* * not type checking this file because flow doesn't play well with * dynamically accessing methods on Array prototype */ var arrayProto = Array.prototype; var arrayMethods = Object.create(arrayProto); var methodsToPatch = [ 'push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse' ]; /** * Intercept mutating methods and emit events */ methodsToPatch.forEach(function (method) { // cache original method var original = arrayProto[method]; def(arrayMethods, method, function mutator () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; var result = original.apply(this, args); var ob = this.__ob__; var inserted; switch (method) { case 'push': case 'unshift': inserted = args; break case 'splice': inserted = args.slice(2); break } if (inserted) { ob.observeArray(inserted); } // notify change ob.dep.notify(); return result }); }); /* */ var arrayKeys = Object.getOwnPropertyNames(arrayMethods); /** * In some cases we may want to disable observation inside a component's * update computation. */ var shouldObserve = true; function toggleObserving (value) { shouldObserve = value; } /** * Observer class that is attached to each observed * object. Once attached, the observer converts the target * object's property keys into getter/setters that * collect dependencies and dispatch updates. */ var Observer = function Observer (value) { this.value = value; this.dep = new Dep(); this.vmCount = 0; def(value, '__ob__', this); if (Array.isArray(value)) { if (hasProto) { {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑 if(value.push !== value.__proto__.push){ copyAugment(value, arrayMethods, arrayKeys); } else { protoAugment(value, arrayMethods); } } } else { copyAugment(value, arrayMethods, arrayKeys); } this.observeArray(value); } else { this.walk(value); } }; /** * Walk through all properties and convert them into * getter/setters. This method should only be called when * value type is Object. */ Observer.prototype.walk = function walk (obj) { var keys = Object.keys(obj); for (var i = 0; i < keys.length; i++) { defineReactive$$1(obj, keys[i]); } }; /** * Observe a list of Array items. */ Observer.prototype.observeArray = function observeArray (items) { for (var i = 0, l = items.length; i < l; i++) { observe(items[i]); } }; // helpers /** * Augment a target Object or Array by intercepting * the prototype chain using __proto__ */ function protoAugment (target, src) { /* eslint-disable no-proto */ target.__proto__ = src; /* eslint-enable no-proto */ } /** * Augment a target Object or Array by defining * hidden properties. */ /* istanbul ignore next */ function copyAugment (target, src, keys) { for (var i = 0, l = keys.length; i < l; i++) { var key = keys[i]; def(target, key, src[key]); } } /** * Attempt to create an observer instance for a value, * returns the new observer if successfully observed, * or the existing observer if the value already has one. */ function observe (value, asRootData) { if (!isObject(value) || value instanceof VNode) { return } var ob; if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { ob = value.__ob__; } else if ( shouldObserve && !isServerRendering() && (Array.isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue && !value.__v_isMPComponent ) { ob = new Observer(value); } if (asRootData && ob) { ob.vmCount++; } return ob } /** * Define a reactive property on an Object. */ function defineReactive$$1 ( obj, key, val, customSetter, shallow ) { var dep = new Dep(); var property = Object.getOwnPropertyDescriptor(obj, key); if (property && property.configurable === false) { return } // cater for pre-defined getter/setters var getter = property && property.get; var setter = property && property.set; if ((!getter || setter) && arguments.length === 2) { val = obj[key]; } var childOb = !shallow && observe(val); Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter () { var value = getter ? getter.call(obj) : val; if (Dep.SharedObject.target) { // fixed by xxxxxx dep.depend(); if (childOb) { childOb.dep.depend(); if (Array.isArray(value)) { dependArray(value); } } } return value }, set: function reactiveSetter (newVal) { var value = getter ? getter.call(obj) : val; /* eslint-disable no-self-compare */ if (newVal === value || (newVal !== newVal && value !== value)) { return } /* eslint-enable no-self-compare */ if ( true && customSetter) { customSetter(); } // #7981: for accessor properties without setter if (getter && !setter) { return } if (setter) { setter.call(obj, newVal); } else { val = newVal; } childOb = !shallow && observe(newVal); dep.notify(); } }); } /** * Set a property on an object. Adds the new property and * triggers change notification if the property doesn't * already exist. */ function set (target, key, val) { if ( true && (isUndef(target) || isPrimitive(target)) ) { warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target)))); } if (Array.isArray(target) && isValidArrayIndex(key)) { target.length = Math.max(target.length, key); target.splice(key, 1, val); return val } if (key in target && !(key in Object.prototype)) { target[key] = val; return val } var ob = (target).__ob__; if (target._isVue || (ob && ob.vmCount)) { true && warn( 'Avoid adding reactive properties to a Vue instance or its root $data ' + 'at runtime - declare it upfront in the data option.' ); return val } if (!ob) { target[key] = val; return val } defineReactive$$1(ob.value, key, val); ob.dep.notify(); return val } /** * Delete a property and trigger change if necessary. */ function del (target, key) { if ( true && (isUndef(target) || isPrimitive(target)) ) { warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target)))); } if (Array.isArray(target) && isValidArrayIndex(key)) { target.splice(key, 1); return } var ob = (target).__ob__; if (target._isVue || (ob && ob.vmCount)) { true && warn( 'Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.' ); return } if (!hasOwn(target, key)) { return } delete target[key]; if (!ob) { return } ob.dep.notify(); } /** * Collect dependencies on array elements when the array is touched, since * we cannot intercept array element access like property getters. */ function dependArray (value) { for (var e = (void 0), i = 0, l = value.length; i < l; i++) { e = value[i]; e && e.__ob__ && e.__ob__.dep.depend(); if (Array.isArray(e)) { dependArray(e); } } } /* */ /** * Option overwriting strategies are functions that handle * how to merge a parent option value and a child option * value into the final value. */ var strats = config.optionMergeStrategies; /** * Options with restrictions */ if (true) { strats.el = strats.propsData = function (parent, child, vm, key) { if (!vm) { warn( "option \"" + key + "\" can only be used during instance " + 'creation with the `new` keyword.' ); } return defaultStrat(parent, child) }; } /** * Helper that recursively merges two data objects together. */ function mergeData (to, from) { if (!from) { return to } var key, toVal, fromVal; var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from); for (var i = 0; i < keys.length; i++) { key = keys[i]; // in case the object is already observed... if (key === '__ob__') { continue } toVal = to[key]; fromVal = from[key]; if (!hasOwn(to, key)) { set(to, key, fromVal); } else if ( toVal !== fromVal && isPlainObject(toVal) && isPlainObject(fromVal) ) { mergeData(toVal, fromVal); } } return to } /** * Data */ function mergeDataOrFn ( parentVal, childVal, vm ) { if (!vm) { // in a Vue.extend merge, both should be functions if (!childVal) { return parentVal } if (!parentVal) { return childVal } // when parentVal & childVal are both present, // we need to return a function that returns the // merged result of both functions... no need to // check if parentVal is a function here because // it has to be a function to pass previous merges. return function mergedDataFn () { return mergeData( typeof childVal === 'function' ? childVal.call(this, this) : childVal, typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal ) } } else { return function mergedInstanceDataFn () { // instance merge var instanceData = typeof childVal === 'function' ? childVal.call(vm, vm) : childVal; var defaultData = typeof parentVal === 'function' ? parentVal.call(vm, vm) : parentVal; if (instanceData) { return mergeData(instanceData, defaultData) } else { return defaultData } } } } strats.data = function ( parentVal, childVal, vm ) { if (!vm) { if (childVal && typeof childVal !== 'function') { true && warn( 'The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm ); return parentVal } return mergeDataOrFn(parentVal, childVal) } return mergeDataOrFn(parentVal, childVal, vm) }; /** * Hooks and props are merged as arrays. */ function mergeHook ( parentVal, childVal ) { var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal; return res ? dedupeHooks(res) : res } function dedupeHooks (hooks) { var res = []; for (var i = 0; i < hooks.length; i++) { if (res.indexOf(hooks[i]) === -1) { res.push(hooks[i]); } } return res } LIFECYCLE_HOOKS.forEach(function (hook) { strats[hook] = mergeHook; }); /** * Assets * * When a vm is present (instance creation), we need to do * a three-way merge between constructor options, instance * options and parent options. */ function mergeAssets ( parentVal, childVal, vm, key ) { var res = Object.create(parentVal || null); if (childVal) { true && assertObjectType(key, childVal, vm); return extend(res, childVal) } else { return res } } ASSET_TYPES.forEach(function (type) { strats[type + 's'] = mergeAssets; }); /** * Watchers. * * Watchers hashes should not overwrite one * another, so we merge them as arrays. */ strats.watch = function ( parentVal, childVal, vm, key ) { // work around Firefox's Object.prototype.watch... if (parentVal === nativeWatch) { parentVal = undefined; } if (childVal === nativeWatch) { childVal = undefined; } /* istanbul ignore if */ if (!childVal) { return Object.create(parentVal || null) } if (true) { assertObjectType(key, childVal, vm); } if (!parentVal) { return childVal } var ret = {}; extend(ret, parentVal); for (var key$1 in childVal) { var parent = ret[key$1]; var child = childVal[key$1]; if (parent && !Array.isArray(parent)) { parent = [parent]; } ret[key$1] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child]; } return ret }; /** * Other object hashes. */ strats.props = strats.methods = strats.inject = strats.computed = function ( parentVal, childVal, vm, key ) { if (childVal && "development" !== 'production') { assertObjectType(key, childVal, vm); } if (!parentVal) { return childVal } var ret = Object.create(null); extend(ret, parentVal); if (childVal) { extend(ret, childVal); } return ret }; strats.provide = mergeDataOrFn; /** * Default strategy. */ var defaultStrat = function (parentVal, childVal) { return childVal === undefined ? parentVal : childVal }; /** * Validate component names */ function checkComponents (options) { for (var key in options.components) { validateComponentName(key); } } function validateComponentName (name) { if (!new RegExp(("^[a-zA-Z][\\-\\.0-9_" + (unicodeRegExp.source) + "]*$")).test(name)) { warn( 'Invalid component name: "' + name + '". Component names ' + 'should conform to valid custom element name in html5 specification.' ); } if (isBuiltInTag(name) || config.isReservedTag(name)) { warn( 'Do not use built-in or reserved HTML elements as component ' + 'id: ' + name ); } } /** * Ensure all props option syntax are normalized into the * Object-based format. */ function normalizeProps (options, vm) { var props = options.props; if (!props) { return } var res = {}; var i, val, name; if (Array.isArray(props)) { i = props.length; while (i--) { val = props[i]; if (typeof val === 'string') { name = camelize(val); res[name] = { type: null }; } else if (true) { warn('props must be strings when using array syntax.'); } } } else if (isPlainObject(props)) { for (var key in props) { val = props[key]; name = camelize(key); res[name] = isPlainObject(val) ? val : { type: val }; } } else if (true) { warn( "Invalid value for option \"props\": expected an Array or an Object, " + "but got " + (toRawType(props)) + ".", vm ); } options.props = res; } /** * Normalize all injections into Object-based format */ function normalizeInject (options, vm) { var inject = options.inject; if (!inject) { return } var normalized = options.inject = {}; if (Array.isArray(inject)) { for (var i = 0; i < inject.length; i++) { normalized[inject[i]] = { from: inject[i] }; } } else if (isPlainObject(inject)) { for (var key in inject) { var val = inject[key]; normalized[key] = isPlainObject(val) ? extend({ from: key }, val) : { from: val }; } } else if (true) { warn( "Invalid value for option \"inject\": expected an Array or an Object, " + "but got " + (toRawType(inject)) + ".", vm ); } } /** * Normalize raw function directives into object format. */ function normalizeDirectives (options) { var dirs = options.directives; if (dirs) { for (var key in dirs) { var def$$1 = dirs[key]; if (typeof def$$1 === 'function') { dirs[key] = { bind: def$$1, update: def$$1 }; } } } } function assertObjectType (name, value, vm) { if (!isPlainObject(value)) { warn( "Invalid value for option \"" + name + "\": expected an Object, " + "but got " + (toRawType(value)) + ".", vm ); } } /** * Merge two option objects into a new one. * Core utility used in both instantiation and inheritance. */ function mergeOptions ( parent, child, vm ) { if (true) { checkComponents(child); } if (typeof child === 'function') { child = child.options; } normalizeProps(child, vm); normalizeInject(child, vm); normalizeDirectives(child); // Apply extends and mixins on the child options, // but only if it is a raw options object that isn't // the result of another mergeOptions call. // Only merged options has the _base property. if (!child._base) { if (child.extends) { parent = mergeOptions(parent, child.extends, vm); } if (child.mixins) { for (var i = 0, l = child.mixins.length; i < l; i++) { parent = mergeOptions(parent, child.mixins[i], vm); } } } var options = {}; var key; for (key in parent) { mergeField(key); } for (key in child) { if (!hasOwn(parent, key)) { mergeField(key); } } function mergeField (key) { var strat = strats[key] || defaultStrat; options[key] = strat(parent[key], child[key], vm, key); } return options } /** * Resolve an asset. * This function is used because child instances need access * to assets defined in its ancestor chain. */ function resolveAsset ( options, type, id, warnMissing ) { /* istanbul ignore if */ if (typeof id !== 'string') { return } var assets = options[type]; // check local registration variations first if (hasOwn(assets, id)) { return assets[id] } var camelizedId = camelize(id); if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } var PascalCaseId = capitalize(camelizedId); if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } // fallback to prototype chain var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; if ( true && warnMissing && !res) { warn( 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, options ); } return res } /* */ function validateProp ( key, propOptions, propsData, vm ) { var prop = propOptions[key]; var absent = !hasOwn(propsData, key); var value = propsData[key]; // boolean casting var booleanIndex = getTypeIndex(Boolean, prop.type); if (booleanIndex > -1) { if (absent && !hasOwn(prop, 'default')) { value = false; } else if (value === '' || value === hyphenate(key)) { // only cast empty string / same name to boolean if // boolean has higher priority var stringIndex = getTypeIndex(String, prop.type); if (stringIndex < 0 || booleanIndex < stringIndex) { value = true; } } } // check default value if (value === undefined) { value = getPropDefaultValue(vm, prop, key); // since the default value is a fresh copy, // make sure to observe it. var prevShouldObserve = shouldObserve; toggleObserving(true); observe(value); toggleObserving(prevShouldObserve); } if ( true ) { assertProp(prop, key, value, vm, absent); } return value } /** * Get the default value of a prop. */ function getPropDefaultValue (vm, prop, key) { // no default, return undefined if (!hasOwn(prop, 'default')) { return undefined } var def = prop.default; // warn against non-factory defaults for Object & Array if ( true && isObject(def)) { warn( 'Invalid default value for prop "' + key + '": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm ); } // the raw prop value was also undefined from previous render, // return previous default value to avoid unnecessary watcher trigger if (vm && vm.$options.propsData && vm.$options.propsData[key] === undefined && vm._props[key] !== undefined ) { return vm._props[key] } // call factory function for non-Function types // a value is Function if its prototype is function even across different execution context return typeof def === 'function' && getType(prop.type) !== 'Function' ? def.call(vm) : def } /** * Assert whether a prop is valid. */ function assertProp ( prop, name, value, vm, absent ) { if (prop.required && absent) { warn( 'Missing required prop: "' + name + '"', vm ); return } if (value == null && !prop.required) { return } var type = prop.type; var valid = !type || type === true; var expectedTypes = []; if (type) { if (!Array.isArray(type)) { type = [type]; } for (var i = 0; i < type.length && !valid; i++) { var assertedType = assertType(value, type[i]); expectedTypes.push(assertedType.expectedType || ''); valid = assertedType.valid; } } if (!valid) { warn( getInvalidTypeMessage(name, value, expectedTypes), vm ); return } var validator = prop.validator; if (validator) { if (!validator(value)) { warn( 'Invalid prop: custom validator check failed for prop "' + name + '".', vm ); } } } var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; function assertType (value, type) { var valid; var expectedType = getType(type); if (simpleCheckRE.test(expectedType)) { var t = typeof value; valid = t === expectedType.toLowerCase(); // for primitive wrapper objects if (!valid && t === 'object') { valid = value instanceof type; } } else if (expectedType === 'Object') { valid = isPlainObject(value); } else if (expectedType === 'Array') { valid = Array.isArray(value); } else { valid = value instanceof type; } return { valid: valid, expectedType: expectedType } } /** * Use function string name to check built-in types, * because a simple equality check will fail when running * across different vms / iframes. */ function getType (fn) { var match = fn && fn.toString().match(/^\s*function (\w+)/); return match ? match[1] : '' } function isSameType (a, b) { return getType(a) === getType(b) } function getTypeIndex (type, expectedTypes) { if (!Array.isArray(expectedTypes)) { return isSameType(expectedTypes, type) ? 0 : -1 } for (var i = 0, len = expectedTypes.length; i < len; i++) { if (isSameType(expectedTypes[i], type)) { return i } } return -1 } function getInvalidTypeMessage (name, value, expectedTypes) { var message = "Invalid prop: type check failed for prop \"" + name + "\"." + " Expected " + (expectedTypes.map(capitalize).join(', ')); var expectedType = expectedTypes[0]; var receivedType = toRawType(value); var expectedValue = styleValue(value, expectedType); var receivedValue = styleValue(value, receivedType); // check if we need to specify expected value if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) { message += " with value " + expectedValue; } message += ", got " + receivedType + " "; // check if we need to specify received value if (isExplicable(receivedType)) { message += "with value " + receivedValue + "."; } return message } function styleValue (value, type) { if (type === 'String') { return ("\"" + value + "\"") } else if (type === 'Number') { return ("" + (Number(value))) } else { return ("" + value) } } function isExplicable (value) { var explicitTypes = ['string', 'number', 'boolean']; return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; }) } function isBoolean () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; }) } /* */ function handleError (err, vm, info) { // Deactivate deps tracking while processing error handler to avoid possible infinite rendering. // See: https://github.com/vuejs/vuex/issues/1505 pushTarget(); try { if (vm) { var cur = vm; while ((cur = cur.$parent)) { var hooks = cur.$options.errorCaptured; if (hooks) { for (var i = 0; i < hooks.length; i++) { try { var capture = hooks[i].call(cur, err, vm, info) === false; if (capture) { return } } catch (e) { globalHandleError(e, cur, 'errorCaptured hook'); } } } } } globalHandleError(err, vm, info); } finally { popTarget(); } } function invokeWithErrorHandling ( handler, context, args, vm, info ) { var res; try { res = args ? handler.apply(context, args) : handler.call(context); if (res && !res._isVue && isPromise(res) && !res._handled) { res.catch(function (e) { return handleError(e, vm, info + " (Promise/async)"); }); // issue #9511 // avoid catch triggering multiple times when nested calls res._handled = true; } } catch (e) { handleError(e, vm, info); } return res } function globalHandleError (err, vm, info) { if (config.errorHandler) { try { return config.errorHandler.call(null, err, vm, info) } catch (e) { // if the user intentionally throws the original error in the handler, // do not log it twice if (e !== err) { logError(e, null, 'config.errorHandler'); } } } logError(err, vm, info); } function logError (err, vm, info) { if (true) { warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); } /* istanbul ignore else */ if ((inBrowser || inWeex) && typeof console !== 'undefined') { console.error(err); } else { throw err } } /* */ var callbacks = []; var pending = false; function flushCallbacks () { pending = false; var copies = callbacks.slice(0); callbacks.length = 0; for (var i = 0; i < copies.length; i++) { copies[i](); } } // Here we have async deferring wrappers using microtasks. // In 2.5 we used (macro) tasks (in combination with microtasks). // However, it has subtle problems when state is changed right before repaint // (e.g. #6813, out-in transitions). // Also, using (macro) tasks in event handler would cause some weird behaviors // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109). // So we now use microtasks everywhere, again. // A major drawback of this tradeoff is that there are some scenarios // where microtasks have too high a priority and fire in between supposedly // sequential events (e.g. #4521, #6690, which have workarounds) // or even between bubbling of the same event (#6566). var timerFunc; // The nextTick behavior leverages the microtask queue, which can be accessed // via either native Promise.then or MutationObserver. // MutationObserver has wider support, however it is seriously bugged in // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It // completely stops working after triggering a few times... so, if native // Promise is available, we will use it: /* istanbul ignore next, $flow-disable-line */ if (typeof Promise !== 'undefined' && isNative(Promise)) { var p = Promise.resolve(); timerFunc = function () { p.then(flushCallbacks); // In problematic UIWebViews, Promise.then doesn't completely break, but // it can get stuck in a weird state where callbacks are pushed into the // microtask queue but the queue isn't being flushed, until the browser // needs to do some other work, e.g. handle a timer. Therefore we can // "force" the microtask queue to be flushed by adding an empty timer. if (isIOS) { setTimeout(noop); } }; } else if (!isIE && typeof MutationObserver !== 'undefined' && ( isNative(MutationObserver) || // PhantomJS and iOS 7.x MutationObserver.toString() === '[object MutationObserverConstructor]' )) { // Use MutationObserver where native Promise is not available, // e.g. PhantomJS, iOS7, Android 4.4 // (#6466 MutationObserver is unreliable in IE11) var counter = 1; var observer = new MutationObserver(flushCallbacks); var textNode = document.createTextNode(String(counter)); observer.observe(textNode, { characterData: true }); timerFunc = function () { counter = (counter + 1) % 2; textNode.data = String(counter); }; } else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) { // Fallback to setImmediate. // Technically it leverages the (macro) task queue, // but it is still a better choice than setTimeout. timerFunc = function () { setImmediate(flushCallbacks); }; } else { // Fallback to setTimeout. timerFunc = function () { setTimeout(flushCallbacks, 0); }; } function nextTick (cb, ctx) { var _resolve; callbacks.push(function () { if (cb) { try { cb.call(ctx); } catch (e) { handleError(e, ctx, 'nextTick'); } } else if (_resolve) { _resolve(ctx); } }); if (!pending) { pending = true; timerFunc(); } // $flow-disable-line if (!cb && typeof Promise !== 'undefined') { return new Promise(function (resolve) { _resolve = resolve; }) } } /* */ /* not type checking this file because flow doesn't play well with Proxy */ var initProxy; if (true) { var allowedGlobals = makeMap( 'Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + 'require' // for Webpack/Browserify ); var warnNonPresent = function (target, key) { warn( "Property or method \"" + key + "\" is not defined on the instance but " + 'referenced during render. Make sure that this property is reactive, ' + 'either in the data option, or for class-based components, by ' + 'initializing the property. ' + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target ); }; var warnReservedPrefix = function (target, key) { warn( "Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + 'prevent conflicts with Vue internals. ' + 'See: https://vuejs.org/v2/api/#data', target ); }; var hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy); if (hasProxy) { var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact'); config.keyCodes = new Proxy(config.keyCodes, { set: function set (target, key, value) { if (isBuiltInModifier(key)) { warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); return false } else { target[key] = value; return true } } }); } var hasHandler = { has: function has (target, key) { var has = key in target; var isAllowed = allowedGlobals(key) || (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data)); if (!has && !isAllowed) { if (key in target.$data) { warnReservedPrefix(target, key); } else { warnNonPresent(target, key); } } return has || !isAllowed } }; var getHandler = { get: function get (target, key) { if (typeof key === 'string' && !(key in target)) { if (key in target.$data) { warnReservedPrefix(target, key); } else { warnNonPresent(target, key); } } return target[key] } }; initProxy = function initProxy (vm) { if (hasProxy) { // determine which proxy handler to use var options = vm.$options; var handlers = options.render && options.render._withStripped ? getHandler : hasHandler; vm._renderProxy = new Proxy(vm, handlers); } else { vm._renderProxy = vm; } }; } /* */ var seenObjects = new _Set(); /** * Recursively traverse an object to evoke all converted * getters, so that every nested property inside the object * is collected as a "deep" dependency. */ function traverse (val) { _traverse(val, seenObjects); seenObjects.clear(); } function _traverse (val, seen) { var i, keys; var isA = Array.isArray(val); if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) { return } if (val.__ob__) { var depId = val.__ob__.dep.id; if (seen.has(depId)) { return } seen.add(depId); } if (isA) { i = val.length; while (i--) { _traverse(val[i], seen); } } else { keys = Object.keys(val); i = keys.length; while (i--) { _traverse(val[keys[i]], seen); } } } var mark; var measure; if (true) { var perf = inBrowser && window.performance; /* istanbul ignore if */ if ( perf && perf.mark && perf.measure && perf.clearMarks && perf.clearMeasures ) { mark = function (tag) { return perf.mark(tag); }; measure = function (name, startTag, endTag) { perf.measure(name, startTag, endTag); perf.clearMarks(startTag); perf.clearMarks(endTag); // perf.clearMeasures(name) }; } } /* */ var normalizeEvent = cached(function (name) { var passive = name.charAt(0) === '&'; name = passive ? name.slice(1) : name; var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first name = once$$1 ? name.slice(1) : name; var capture = name.charAt(0) === '!'; name = capture ? name.slice(1) : name; return { name: name, once: once$$1, capture: capture, passive: passive } }); function createFnInvoker (fns, vm) { function invoker () { var arguments$1 = arguments; var fns = invoker.fns; if (Array.isArray(fns)) { var cloned = fns.slice(); for (var i = 0; i < cloned.length; i++) { invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler"); } } else { // return handler return value for single handlers return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler") } } invoker.fns = fns; return invoker } function updateListeners ( on, oldOn, add, remove$$1, createOnceHandler, vm ) { var name, def$$1, cur, old, event; for (name in on) { def$$1 = cur = on[name]; old = oldOn[name]; event = normalizeEvent(name); if (isUndef(cur)) { true && warn( "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), vm ); } else if (isUndef(old)) { if (isUndef(cur.fns)) { cur = on[name] = createFnInvoker(cur, vm); } if (isTrue(event.once)) { cur = on[name] = createOnceHandler(event.name, cur, event.capture); } add(event.name, cur, event.capture, event.passive, event.params); } else if (cur !== old) { old.fns = cur; on[name] = old; } } for (name in oldOn) { if (isUndef(on[name])) { event = normalizeEvent(name); remove$$1(event.name, oldOn[name], event.capture); } } } /* */ /* */ // fixed by xxxxxx (mp properties) function extractPropertiesFromVNodeData(data, Ctor, res, context) { var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties; if (isUndef(propOptions)) { return res } var externalClasses = Ctor.options.mpOptions.externalClasses || []; var attrs = data.attrs; var props = data.props; if (isDef(attrs) || isDef(props)) { for (var key in propOptions) { var altKey = hyphenate(key); var result = checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false); // externalClass if ( result && res[key] && externalClasses.indexOf(altKey) !== -1 && context[camelize(res[key])] ) { // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串) res[key] = context[camelize(res[key])]; } } } return res } function extractPropsFromVNodeData ( data, Ctor, tag, context// fixed by xxxxxx ) { // we are only extracting raw values here. // validation and default values are handled in the child // component itself. var propOptions = Ctor.options.props; if (isUndef(propOptions)) { // fixed by xxxxxx return extractPropertiesFromVNodeData(data, Ctor, {}, context) } var res = {}; var attrs = data.attrs; var props = data.props; if (isDef(attrs) || isDef(props)) { for (var key in propOptions) { var altKey = hyphenate(key); if (true) { var keyInLowerCase = key.toLowerCase(); if ( key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase) ) { tip( "Prop \"" + keyInLowerCase + "\" is passed to component " + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + " \"" + key + "\". " + "Note that HTML attributes are case-insensitive and camelCased " + "props need to use their kebab-case equivalents when using in-DOM " + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." ); } } checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false); } } // fixed by xxxxxx return extractPropertiesFromVNodeData(data, Ctor, res, context) } function checkProp ( res, hash, key, altKey, preserve ) { if (isDef(hash)) { if (hasOwn(hash, key)) { res[key] = hash[key]; if (!preserve) { delete hash[key]; } return true } else if (hasOwn(hash, altKey)) { res[key] = hash[altKey]; if (!preserve) { delete hash[altKey]; } return true } } return false } /* */ // The template compiler attempts to minimize the need for normalization by // statically analyzing the template at compile time. // // For plain HTML markup, normalization can be completely skipped because the // generated render function is guaranteed to return Array. There are // two cases where extra normalization is needed: // 1. When the children contains components - because a functional component // may return an Array instead of a single root. In this case, just a simple // normalization is needed - if any child is an Array, we flatten the whole // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep // because functional components already normalize their own children. function simpleNormalizeChildren (children) { for (var i = 0; i < children.length; i++) { if (Array.isArray(children[i])) { return Array.prototype.concat.apply([], children) } } return children } // 2. When the children contains constructs that always generated nested Arrays, // e.g.